Как использовать деривацию ключей и «выбор монет» для повышения конфиденциальности, как в биткойнах?

В Биткойне вы можете повысить конфиденциальность, никогда не используя адреса повторно. Один закрытый ключ может генерировать множество адресов, если вы используете схему получения ключей.

В Ethereum вместо UTXO у вас есть учетные записи. И вы можете использовать схему получения ключей поверх Ethereum, чтобы сгенерировать несколько закрытых ключей для нескольких учетных записей. Я хочу сделать то же самое в Ethereum — избежать повторного использования учетной записи, чтобы повысить конфиденциальность.

Но я не могу найти кошелек Ethereum, который позволит вам отслеживать эти несколько учетных записей, а затем выполнять «выбор монеты» (на самом деле «выбор учетной записи») при отправке эфира из кошелька.

Поддерживают ли какие-либо кошельки ethereum алгоритм «выбора монет»?

Ответы (1)

Насколько мне известно, для Эфириума нет кошельков, позволяющих выбирать монеты с разных аккаунтов. Существуют кошельки, такие как Parity (по крайней мере, в сочетании с аппаратным кошельком), Jaxx и MyCrypto, которые используют схемы деривации ключей, которые позволяют генерировать и использовать детерминированные адреса учетных записей.

Из-за того, как UTXO работают в биткойнах, возможность объединять входные данные, отправленные на несколько учетных записей, стоит столько же, сколько объединение входных данных, отправленных на одну учетную запись, нет никаких недостатков в получении биткойнов в разных учетных записях и последующем объединении. Кроме того, Биткойн позволяет объединять несколько входов в один или несколько выходов. Таким образом, если получатель платежа ожидает 1 BTC в качестве платежа, он может искать одну транзакцию на эту сумму; транзакция может состоять из одного или нескольких UTXO на общую сумму не менее 1 BTC (плюс сборы) и иметь вывод 1 BTC.

В Ethereum из-за отсутствия UTXO стоимость базовой транзакции с одного счета на другой (выраженная в газе) фиксирована, независимо от размера транзакции и истории счетов (в отличие от Биткойна, где это стоит много тратить «пыль»). Каждая транзакция инициируется ровно одной учетной записью, и, по крайней мере в настоящее время, я не думаю, что есть какой-либо способ подключить другие учетные записи для участия в расходовании эфира, кроме как через контракт (в этом случае контракт — это сущность с эфир). Таким образом, попытка отправить определенное количество эфира получателю с использованием нескольких учетных записей будет зависеть от количества используемых учетных записей, а самый дешевый способ — просто использовать одну учетную запись. Кроме того, попытка отправить, скажем, 1 ETH на счет, используя n аккаунтов, приводит к nтранзакции, которые в сумме составляют до 1 ETH на выходе. Это становится труднее отслеживать (и, действительно, когда несколько человек отправляют на один и тот же счет разные фактические транзакции с разными суммами, становится NP-complete ).

Однако, если вы заинтересованы в конфиденциальности транзакций, вы можете сами смешать монеты (что может быть дорого) и в итоге получить учетную запись с правильным количеством эфира для отправки в окончательной транзакции, или вы можете обменять свой эфир, скажем, на Зкеш и обратно. С другой стороны, вы можете дождаться более широкого распространения zkSNARK в сети Ethereum; zkSNARK уже поддерживаются в основной сети.