HD-кошельки и повторное использование адресов

HD-кошельки создают серию адресов, а затем, когда один адрес получил вход, он даст вам новый адрес, который еще не получил входы.

Таким образом, если вы отправляете себе биткойны с биржи и постоянно имеете разные адреса на бирже и разные адреса в своих кошельках, то наблюдатель не сможет отследить сумму всех ваших средств.

Но разве все это не подрывается, когда вы перемещаете большое количество биткойнов, а транзакция объединяет биткойны со всех адресов в этом кошельке?

Как избежать этой части, сохраняя при этом возможность реально быстро и удобно отправлять средства? Я понимаю, что можно сформировать транзакцию, чтобы использовать только определенный адрес для отправки, но в конечном итоге все еще есть третья сторона с одним адресом, на который я хочу отправить биткойн. Так что мне придется использовать несколько своих адресов, чтобы получить соответствующий баланс.

Кажется, это полностью нарушает мою конфиденциальность. Не обязательно из анализа блокчейна, а имея записи одного адреса (например, с биржи).

Например, предположим, что биржа передала имена пользователей правительству. Затем правительство просматривает все адреса, на которые пользователи отправляли биткойны с биржи. Затем они просто ищут этот адрес в блокчейне и смотрят, где он снова использовался для объединения биткойнов с другими адресами, поскольку это показывает, что у одного человека были закрытые ключи ко всем этим используемым адресам. Конфиденциальность нарушена.

Решение? Я могу представить сценарий, в котором я мог бы выполнять одну транзакцию за раз обратно на другую биржу, генерируя новые адреса в своем биржевом кошельке. Громоздкий. Но для чего-то вроде оплаты через битпей я не вижу, насколько это практично, если только третьи лица не позволят мне выбрать, сколько адресов они будут генерировать для меня.

Ответы (4)

Как уже упоминалось, я не верю, что HD-кошельки имеют отношение к этой проблеме. Даже с простыми кошельками, объединяющими входы с нескольких адресов, доказывается, что все включенные адреса принадлежат одному человеку. Я не уверен, что это удовлетворит ваши конкретные потребности в конфиденциальности, но это, по крайней мере, простой способ избежать этой проблемы:

Предположим, у вас есть 4 адреса: A, B, C и D. Вы хотите отправить транзакцию, требующую средств со всех 4, не доказывая, что они принадлежат одному и тому же человеку. Вы можете сгенерировать 4-й адрес E и в течение нескольких дней объединить все значения адреса по новому адресу.

Хотя блокчейн покажет, что средства в E поступили из AD, не будет никаких доказательств того, что AD принадлежит одному и тому же человеку, поскольку они никогда не участвовали в одной транзакции вместе, и вполне возможно, что все 4 разных человека перевели значение в E, вместо того, чтобы тот же человек переводил значение в E.

Представляется целесообразным написать клиент, который будет следовать этой политике никогда не объединять входные данные с нескольких адресов в одной транзакции, что, по крайней мере, позволит правдоподобное отрицание. Пользователь сможет управлять временными рамками в зависимости от своих потребностей, чтобы комбинация могла происходить в течение часа или года, в зависимости от того, как скоро ему нужна транзакция. Вы также можете добавить несколько промежуточных шагов, чтобы немного разделить вещи и пройти через несколько дополнительных адресов, чтобы немного усложнить отслеживание.

Так как это общедоступная книга, это не очень анонимная система, и достичь анонимности сложно без микшера, но самым большим компромиссом для анонимности является подключение нескольких адресов к одному вводу, поэтому просто избегать этого будет полезно, но в ущерб удобству.

хм, да, алгоритм никогда не объединяет входные данные
Есть ли способ извлечь адрес из HD-кошелька? удалить существующий адрес из последовательности адресов?
К сожалению, я не могу представить, как это было бы возможно. Цель HD-кошелька состоит в том, чтобы одно семя могло генерировать все адреса под ним детерминированным образом. Поэтому, если кошелек попадает под место вашего сида, вам нужно будет отменить законы математики, чтобы избавиться от него. Лучше всего было бы создать новое семя и отправить туда свои монеты.
интересно, я думаю, что BIP32, BIP39 и BIP44 должны идти с лучшими практиками. Я вижу множество проблем с ним, которые могут быть неочевидными. Что он может сделать и что он не может сделать для вас.

Конфиденциальность — один из самых распространенных мифов о биткойнах. По умолчанию он не обеспечивает анонимность по многим причинам, в том числе и по упомянутым вами. Применение теории графов к транзакциям может раскрыть много информации, соединить, казалось бы, независимые адреса и, таким образом, скомпрометировать их. Биткойн никогда не предназначался для обеспечения анонимности «из коробки», поэтому его трудно винить.

Однако это не означает, что анонимности добиться невозможно. На этом специализируются многие сторонние сервисы, смешивающие ваши монеты с чужими, например, bitmixer.io . Вы можете найти больше таких сервисов и использовать их в цепочке для еще большей анонимности, просто поищите в Интернете биткойн-микшер или биткойн-прачечную .

Примечание: проблема привязки адресов к одному и тому же владельцу характерна не только для HD-кошельков, но и для простых кошельков, которые генерируют все адреса случайным образом. Стороннему наблюдателю невозможно определить, используете ли вы тот или иной адрес, но эта информация не нужна для соединения адресов после того, как вы совершили транзакцию, объединив их входы.

микшеры неудобны, дороги, централизованы, не являются ненадежными, содержат записи, ни пользователь, ни администратор никогда не узнают, если микшер был скомпрометирован годами, и в конечном итоге это сильно увеличивает стоимость транзакций. во-вторых, если это не будет сделано до того, как кто-то попытается совершить несвязываемый платеж, например, на адрес bitpay, тогда они не смогут смешиваться в течение 15-минутного окна, которое дает bitpay.
да, по сути, это правда, о чем вы говорите, но биткойн-миксины играют значительную роль, особенно на черных рынках, где анонимность монет имеет важное значение. Обычной практикой является всегда держать в кошельке несколько «смешанных монет», чтобы вы могли использовать их (немедленно) при необходимости. Вы можете повысить анонимность, используя несколько примесей подряд, но, очевидно, вы никогда не сможете быть уверены на 100%. Что ж, думаю, Биткойну было бы намного сложнее получить юридическое признание, если бы он был анонимным :-)

Каким бы ни был ответ сегодня, он, вероятно, не будет иметь значения в недалеком будущем. Блокчейн — это общедоступная и постоянная запись всех транзакций.

Помимо того факта, что нужно быть на 100% анонимным для каждой транзакции, 100% времени, чтобы оставаться анонимным (каким бы ни было это решение)... Существует постоянная публичная запись каждой из ваших транзакций. Если кто-то захочет, он в конечном итоге соединит точки из достаточного количества общедоступных и частных баз данных. Не говоря уже о квантовых вычислениях или других будущих достижениях.

Если бы я был сборщиком налогов и хотел предотвратить мошенничество, я бы создал надежную систему для постоянного учета каждой транзакции. Тогда мы могли бы сделать это проще, троллить блокчейн и ежемесячно отправлять налоговые счета моим миньонам. Не платить? Ваши транзакции не будут подтверждены. Не могу потратить. Тогда трудно опровергнуть.

чистая догадка, Джон, оператор биржи, не может доказать, что Алиса, владелец аккаунта на бирже, владеет закрытым ключом, просто потому, что Алиса отправляет биткойны с одного адреса на другой. если Алиса использует разные адреса для каждой транзакции, просто не будет точек для соединения. Ваш ответ предполагает, что вы понятия не имеете, какова реальная «угроза» квантовых компьютеров.
Да, предположение. Отсюда и «наверное». Я хочу сказать, что что бы ни случилось в будущем, есть постоянная запись в блокчейне, которая будет использоваться для задержания людей задним числом. Один вектор, который мы в настоящее время знаем, — это квантовые вычисления и возможность взломать наши ключи (не говоря уже о SSL и т. д.). Другим вектором может быть смешивание вашей банковской информации с вашими биткойнами путем покупки монет у кого-то вроде Coinbase. Coinbase легко может быть принуждена предоставить информацию, отслеживающую покупку моих монет, соединяя точки.
Вы упускаете суть. Весь сценарий уже предполагает, что это уже происходит, учтите, что биржа уже имеет эту информацию, лучшие практики из технического документа Сатоши 2008 года все еще противодействуют этому. вы просто ради этого пишете случайную тарабарщину, речь идет об отвязке транзакций, где отвязка есть отвязка. Не нужно было бы проводить корреляции, не нужно было бы ломать шифрование.

Я заполню технические аспекты, где смогу, позже сегодня, но в принципе то, что происходит, это то, что закрытый ключ изменяется таким образом, чтобы можно было создать открытые ключи HD и проследить генеалогическое древо, которое мы оба знаем.

Но вот несколько вещей, которые следует учитывать:

  1. Можно ли выделить публичный ключ как ваш ключ? Скорее всего, нет, но если предположить, что это всего лишь общедоступный хеш160. Что сказать, например, вы не изменили сиды кошелька?
  2. Предполагая, что 1 соответствует истине, изменение SHA256 Иripemd160 для ваших координат x/y открытого ключа ~ невозможно, т.е.

    pubkey <==A==> хэш <=====B===== 0x04 X + Y

          A = base58,     B = SHA256/RIPEMD160
    

    .

  3. Единственный возможный способ найти связь между открытым ключом и закрытым ключом — это иметь как минимум закрытый ключ, а в идеале для злоумышленника — набор закрытых ключей.

да, но скажем, у меня есть 3 pubKeys, по 1 биткойну каждый. Затем я сталкиваюсь с pubKey BitPay, и для получения товара/услуги я должен отправить на этот адрес BitPay 2,5 биткойна. Любая вещь, о которой я думаю, будет объединять транзакции из публичных ключей A, B и C, независимо от того, делаю ли я это в одной транзакции или в 3+ транзакциях в течение 15-минутного периода времени, который позволяет Bitpay.