HD-кошельки создают серию адресов, а затем, когда один адрес получил вход, он даст вам новый адрес, который еще не получил входы.
Таким образом, если вы отправляете себе биткойны с биржи и постоянно имеете разные адреса на бирже и разные адреса в своих кошельках, то наблюдатель не сможет отследить сумму всех ваших средств.
Но разве все это не подрывается, когда вы перемещаете большое количество биткойнов, а транзакция объединяет биткойны со всех адресов в этом кошельке?
Как избежать этой части, сохраняя при этом возможность реально быстро и удобно отправлять средства? Я понимаю, что можно сформировать транзакцию, чтобы использовать только определенный адрес для отправки, но в конечном итоге все еще есть третья сторона с одним адресом, на который я хочу отправить биткойн. Так что мне придется использовать несколько своих адресов, чтобы получить соответствующий баланс.
Кажется, это полностью нарушает мою конфиденциальность. Не обязательно из анализа блокчейна, а имея записи одного адреса (например, с биржи).
Например, предположим, что биржа передала имена пользователей правительству. Затем правительство просматривает все адреса, на которые пользователи отправляли биткойны с биржи. Затем они просто ищут этот адрес в блокчейне и смотрят, где он снова использовался для объединения биткойнов с другими адресами, поскольку это показывает, что у одного человека были закрытые ключи ко всем этим используемым адресам. Конфиденциальность нарушена.
Решение? Я могу представить сценарий, в котором я мог бы выполнять одну транзакцию за раз обратно на другую биржу, генерируя новые адреса в своем биржевом кошельке. Громоздкий. Но для чего-то вроде оплаты через битпей я не вижу, насколько это практично, если только третьи лица не позволят мне выбрать, сколько адресов они будут генерировать для меня.
Как уже упоминалось, я не верю, что HD-кошельки имеют отношение к этой проблеме. Даже с простыми кошельками, объединяющими входы с нескольких адресов, доказывается, что все включенные адреса принадлежат одному человеку. Я не уверен, что это удовлетворит ваши конкретные потребности в конфиденциальности, но это, по крайней мере, простой способ избежать этой проблемы:
Предположим, у вас есть 4 адреса: A, B, C и D. Вы хотите отправить транзакцию, требующую средств со всех 4, не доказывая, что они принадлежат одному и тому же человеку. Вы можете сгенерировать 4-й адрес E и в течение нескольких дней объединить все значения адреса по новому адресу.
Хотя блокчейн покажет, что средства в E поступили из AD, не будет никаких доказательств того, что AD принадлежит одному и тому же человеку, поскольку они никогда не участвовали в одной транзакции вместе, и вполне возможно, что все 4 разных человека перевели значение в E, вместо того, чтобы тот же человек переводил значение в E.
Представляется целесообразным написать клиент, который будет следовать этой политике никогда не объединять входные данные с нескольких адресов в одной транзакции, что, по крайней мере, позволит правдоподобное отрицание. Пользователь сможет управлять временными рамками в зависимости от своих потребностей, чтобы комбинация могла происходить в течение часа или года, в зависимости от того, как скоро ему нужна транзакция. Вы также можете добавить несколько промежуточных шагов, чтобы немного разделить вещи и пройти через несколько дополнительных адресов, чтобы немного усложнить отслеживание.
Так как это общедоступная книга, это не очень анонимная система, и достичь анонимности сложно без микшера, но самым большим компромиссом для анонимности является подключение нескольких адресов к одному вводу, поэтому просто избегать этого будет полезно, но в ущерб удобству.
Конфиденциальность — один из самых распространенных мифов о биткойнах. По умолчанию он не обеспечивает анонимность по многим причинам, в том числе и по упомянутым вами. Применение теории графов к транзакциям может раскрыть много информации, соединить, казалось бы, независимые адреса и, таким образом, скомпрометировать их. Биткойн никогда не предназначался для обеспечения анонимности «из коробки», поэтому его трудно винить.
Однако это не означает, что анонимности добиться невозможно. На этом специализируются многие сторонние сервисы, смешивающие ваши монеты с чужими, например, bitmixer.io . Вы можете найти больше таких сервисов и использовать их в цепочке для еще большей анонимности, просто поищите в Интернете биткойн-микшер или биткойн-прачечную .
Примечание: проблема привязки адресов к одному и тому же владельцу характерна не только для HD-кошельков, но и для простых кошельков, которые генерируют все адреса случайным образом. Стороннему наблюдателю невозможно определить, используете ли вы тот или иной адрес, но эта информация не нужна для соединения адресов после того, как вы совершили транзакцию, объединив их входы.
Каким бы ни был ответ сегодня, он, вероятно, не будет иметь значения в недалеком будущем. Блокчейн — это общедоступная и постоянная запись всех транзакций.
Помимо того факта, что нужно быть на 100% анонимным для каждой транзакции, 100% времени, чтобы оставаться анонимным (каким бы ни было это решение)... Существует постоянная публичная запись каждой из ваших транзакций. Если кто-то захочет, он в конечном итоге соединит точки из достаточного количества общедоступных и частных баз данных. Не говоря уже о квантовых вычислениях или других будущих достижениях.
Если бы я был сборщиком налогов и хотел предотвратить мошенничество, я бы создал надежную систему для постоянного учета каждой транзакции. Тогда мы могли бы сделать это проще, троллить блокчейн и ежемесячно отправлять налоговые счета моим миньонам. Не платить? Ваши транзакции не будут подтверждены. Не могу потратить. Тогда трудно опровергнуть.
Я заполню технические аспекты, где смогу, позже сегодня, но в принципе то, что происходит, это то, что закрытый ключ изменяется таким образом, чтобы можно было создать открытые ключи HD и проследить генеалогическое древо, которое мы оба знаем.
Но вот несколько вещей, которые следует учитывать:
Предполагая, что 1 соответствует истине, изменение SHA256 Иripemd160 для ваших координат x/y открытого ключа ~ невозможно, т.е.
pubkey <==A==> хэш <=====B===== 0x04 X + Y
A = base58, B = SHA256/RIPEMD160
.
Единственный возможный способ найти связь между открытым ключом и закрытым ключом — это иметь как минимум закрытый ключ, а в идеале для злоумышленника — набор закрытых ключей.
CQM
CQM
Энди Грофф
CQM