Только медийное адаптивное
Только медийное адаптивное

CashFusion и неравная сумма транзакции CoinJoin — журнал Bitcoin

15

Хотя официальный документ Сатоши Накамото предполагает, что конфиденциальность была целью разработки протокола Биткойн, анализ цепочки блоков часто может нарушить конфиденциальность пользователей. Это проблема. Пользователи биткойнов не обязательно хотят, чтобы мир знал, где они тратят свои деньги, что они зарабатывают или сколько у них есть, в то время как компании могут не захотеть передавать детали транзакций конкурентам — назвать некоторые примеры.

Но есть решения для восстановления конфиденциальности, такие как CoinJoin. Некоторые из самых популярных решений для смешивания, доступных сегодня, используют этот прием, включая Wasabi Wallet (который использует ZeroLink) и Samourai Wallet (который использует Whirlpool). В обоих случаях пользователи измельчают свои монеты в равных количествах, чтобы смешать их друг с другом. Использование равных количеств считается решающим шагом для эффективности смеси.

Однако новый протокол микширования CashFusion, разрабатываемый для сети Bitcoin Cash, ставит под сомнение это предположение. Разработчики протокола утверждают, что CashFusion обеспечивает конфиденциальность через CoinJoins без необходимости смешивать только равные суммы. Если это правда, это может кардинально изменить наше отношение к конфиденциальности в биткойнах.

Если правда…

CoinJoin

Давайте начнем с самого начала. (Или пропустите эту часть, если вы знаете, что такое CoinJoin.)

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

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

Потенциальное решение этой проблемы, впервые предложенное участником Bitcoin Core Грегори Максвеллом в 2013 году, называется CoinJoin. Идея CoinJoin проста: несколько независимых транзакций объединяются в одну большую транзакцию. Таким образом, если две транзакции имеют два входа и два выхода в каждой, это объединяется в одну транзакцию, которая имеет четыре входа и четыре выхода. Это, по крайней мере, нарушает предположение, что все входные адреса принадлежат одному и тому же человеку, и может помочь сломать след монет.

Почему равные суммы

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

Интересное  Слуховая мельница: Coinbase, видимо, планирует стать публичной

Например, давайте возьмем две транзакции: одну от Алисы до Кэрол и одну от Боба до Дэйва. У Алисы есть два куска монет стоимостью 2,3 и 1,4 биткойна, и она хочет заплатить Кэрол 3,2 биткойна. У Боба есть 3 и 2 биткойна, и он хочет заплатить Дэйву 4 биткойна.

Упрощенно, эти транзакции выглядят так:

2,3 + 1,4 = 3,2 + 0,5

и

3 + 2 = 4 + 1

(Выходы 0,5 BTC и 1 BTC изменяются.)

Объединенная транзакция CoinJoin будет выглядеть так:

3 + 2,3 + 2 + 1,4 = 4 + 3,2 + 1 + 0,5

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

По этой причине популярные решения для смешивания, такие как ZeroLink и Whirlpool, ограничиваются смешиванием в равных количествах. Независимо от того, какие суммы включены в микс в качестве входных данных, смешанные выходные данные неотличимы друг от друга, что означает, что любой участник мог получить любой кусок монеты фиксированного размера.

Если фиксированные суммы установлены в 1 BTC, Алиса, Боб, Кэрол и Дейв CoinJoin будут выглядеть так:

3 + 2,3 + 2 + 1,4 = 1 + 1 + 1 + 1 +1 + 1 + 1 + 1 + 0,5 + 0,2

Это большое улучшение, поскольку любой из фрагментов 1 может быть объединен в одну из двух исходных транзакций. Непонятно, какой из 1 BTC принадлежит Алисе, Бобу, Кэрол или Дейву, и даже какой паре.

Тем не менее, это все еще не идеально, потому что остаются неравные результаты. Эти результаты, именно потому, что они не имеют равных количеств, все же могут быть связаны с конкретными входами: Алисы. Это также означает, что входы Алисы могут быть связаны друг с другом. И если после нескольких миксов кто-то объединяет неравные результаты в следующей транзакции, это также наносит ущерб конфиденциальности: он связывает разные блоки с одним и тем же человеком. Более того, если неодинаковые выходы позже будут использоваться в сочетании с выходами с фиксированной суммой, эти утечки могут разрушить сам процесс начального смешивания.

CashFusion

CashFusion, проект разработчиков Bitcoin Cash Марка Лундеберга и Джональда Фьюкбола, решил заняться проблемой «оставшихся» выходов. Первоначально они создали это как дополнение к CashShuffle, который представляет собой реализацию CoinShuffle для биткойн-кэш, и смешивает равные суммы. Однако несколько удивительный потенциал CashFusion может также означать, что он становится собственным автономным протоколом микширования.

Чтобы понять этот потенциал, давайте рассмотрим другой набор транзакций. Допустим, Алиса хочет заплатить Кэрол 4 монеты, и у нее есть два UTXO на 2 и 3 монеты. Тем временем Боб хочет заплатить Дейву 9 монет, и у него есть два UTXO на 7 и 8 монет.

Интересное  Bayer Leverkusen теперь пинает блокчейн

Упрощенно, эти транзакции выглядят так:

3 + 2 = 4 + 1

и

8 + 7 = 9 + 6

Объединенная транзакция CoinJoin будет выглядеть так:

8 + 7 + 3 + 2 = 9 + 6 + 4 + 1

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

Например:

8 + 2 = 9 + 1

и

7 + 3 = 6 + 4

Или:

8 + 2 = 6 + 4

и

7 + 3 = 9 + 1

Или:

7 + 2 = 9

и

Смотрите также


8 + 3 = 6 + 4 + 1

Или:

7 = 6 + 1

и

8 + 3 + 2 = 9 + 4

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

CashFusion построен на основе теории, основанной на области Combinatorics, согласно которой достаточно крупная транзакция CoinJoin часто (если не всегда) предлагает несколько различных решений головоломки, даже когда используются реалистичные суммы. И это, поскольку больше входов и выходов включено, больше потенциальных конфигураций может быть получено из этого. (Это должно быть особенно актуально, если суммы находятся на одном уровне — например, 1 BCH — что пользователи CashFusion рекомендуют делать ради собственной конфиденциальности.)

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

Чтобы улучшить этот потенциал, CashFusion включает в себя дополнительный трюк, чтобы еще сложнее разобрать оригинальную конфигурацию: он позволяет пользователям полу-случайным образом разделять свои выходы на несколько меньших выходов. Таким образом, вместо того, чтобы Алиса платила Кэрол один вывод в 4 монеты, Алиса могла, например, отправлять вывод Кэрол в 3 и 1 монету. Боб, вместо того, чтобы заплатить 9 монет, мог отправить Дэйву 5, 3 и 1 монету.

В то же время пользователям предлагается также внести несколько вкладов, возможно, из предыдущих миксов. Это позволяет им объединять свои меньшие порции в более крупные порции, что неочевидно для блокчейна. (Алиса, например, предоставила бы входные данные 2 + 2 + 1; Боб предоставил бы входные данные 6 + 5 + 4.) Действительно, объединение неравных остатков в более крупные выходы было первоначальной идеей и служит источником протокола. Название: CashFusion.

Но верно ли предположение?

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

На первый взгляд, подход CashFusion кажется ошибочным, поскольку более ранние схемы смешивания неравных сумм, такие как SharedCoin в Blockchain, были сломаны несколько лет назад. Но принципиальное отличие, по мнению Lundeberg и Fyookball, состоит в том, что транзакция CashFusion будет включать больше входов и выходов, чем транзакция SharedCoin. Подобно другим неинтуитивным математическим ухищрениям, таким как проблема дня рождения, число потенциальных конфигураций растет экспоненциально для каждого добавленного входа и выхода, решая проблему, которая была у SharedCoin — хотя Лундеберг соглашается, что для правильного подтверждения этого понадобятся лучшие математические доказательства.

Интересное  Биткойн становится сильнее из кризиса

Само описание CashFusion включает в себя то, что Лундеберг, по общему признанию, считает «математикой для салфеток», чуть более продвинутая версия которой была опубликована им на Reddit. Эти оценки предполагают, что даже при наличии только 10 участников, каждый из которых предоставляет 10 входных данных, которые должны быть объединены в один выход (в общей сложности 100 входных и 10 выходных данных), число возможных конфигураций в среднем будет находиться в диапазоне 100 квинтиллионов. (Это один с двадцатью нулями, или 10 ^ 20.) Даже простое вычисление всех этих возможностей займет довольно много времени — не говоря уже о правильном восстановлении исходных транзакций.

На момент написания этой статьи проводились дополнительные исследования; Fyookball недавно опубликовал свой собственный анализ в этом блоге. На данный момент, Lundeberg, Fyookball и другие, по крайней мере, достаточно убеждены в протоколе CashFusion, чтобы захотеть его развернуть. Альфа-клиент программного обеспечения CashFusion доступен для тестирования; полный релиз ожидается в течение нескольких месяцев.

Но другие не так убеждены. Критика предложения заключается в том, что — даже если число 10 ^ 20 (примерно) сохраняется — не все выходы CashFusion CoinJoin с одинаковой вероятностью будут поступать из каждого входа. Другими словами, в то время как некоторые участники могут получить значительную конфиденциальность, другие могут получить гораздо меньшую конфиденциальность из того же сочетания. И для любого отдельного пользователя было бы трудно сказать, получают ли они большую конфиденциальность или нет. (Эту критику и другие критические замечания можно найти в этой недавней ветке электронной почты bitcoin-dev.)

Напротив, смешивание в равных количествах обеспечивает одинаковую конфиденциальность для всех участников и приводит к максимальному количеству возможных конфигураций. В некотором смысле, смешанные равные суммы приводят к «идеальному» CashFusion CoinJoin и, следовательно, строго лучше — если игнорировать проблему неравных изменений.

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

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

Спасибо Марку Лундебергу за информацию и отзывы.

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

Только медийное адаптивное
Только медийное адаптивное

Оставьте ответ

Ваш электронный адрес не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

elementum nec felis ut tempus dolor Curabitur id dolor. venenatis, pulvinar Nullam