April 17, 2020

Value Shuffle - протокол микширования на базе CoinJoin

Есть предложения или нашел неточности? Для обратной связи t.me/Russiano55.

А также приглашаю к себе на канал t.me/Cryptobotan, где нет сигналов и торговых идей, обзоров ICO и IPO, рекомендаций и советов к покупке, упоминаний нашумевших событий и новостей - об этом напишут другие каналы. Я изучаю и даю возможность изучать вместе со мной. Так что если тебе интересны не только деньги, мне будет приятно если ты найдешь у меня на канале полезную для себя информацию. Буду рад тебя видеть:) Эта статья относится к серии моих постов по разбору стека биткоина (ссылка на bitcointalk, где дублируются посты относящиеся к стеку)

Вместо введения

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

Решения, призванные преодолеть эти недостатки не нарушая целостности системы, предлагаемые на протяжении этих 11 лет, лишь частично решают проблемы анонимности Биткойна. Их фокус направлен на решение лишь отдельных аспектов приватности, таких как анонимность плательщика, анонимность получателя, конфиденциальность стоимости платежа, нарушение эвристики анализа и т.д и т.п. Сервисы микширования предназначенные для отбеливания ваших средств, пока еще справляются с отбеливанием. Но ваши средства, легко могут быть украдены, а вы деанонимизированы. Но мы же говорим об обеспечении приватности в сети, потому сервисы микширования "это о том, но не об этом".

Недостатки в протоколах обеспечения конфиденциальности

Протокол CoinJoin стал базовым решением для усиления конфиденциальности транзакций в сети, но имел недостатки:

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

CoinShuffle - основанный на CoinJoin решает проблему деанонимизации пользователей групповых транзакций друг перед другом. Но необходимо организовывать группы участников и взаимодействовать между собой. Не решается проблема сокрытия сумм перевода.

Так как CoinShuffle и CoinJoin производят миксинг в одной транзакции, они уязвимы для DoS-атак.

CoinSwap - разрушает связь транзакций между отправленными и полученными биткоинами, но может быть идентифицирован, если транзакция станет общей, т.к. это 2-2 escrow-транзакция. Протокол требует большого количества взаимодействий между участниками и требует минимум 4-х транзакций, что не идет на пользу тяжелой и загруженной сети Биткойн. Посредник, участвующий в сделке и знающий о транзакции, может повторно восстановить связь между ними.

TumbleBit - однонаправленный, несвязываемый платежный хаб для анонимных платежей. Это улучшенная версия CoinSwap. Он хоть и решает проблему с посредником в транзакции CoinSwap, но все равно далек от решения проблемы приватности. Tumbler, использующийся как посредник при проведении платежа, может быть взломан, а участники скомпрометированы. Не думаю, что такой подход можно назвать децентрализованным. Плюс, на сегодняшний день, TumbleBit может работать только с фиксированным номиналом, превышая который, потребуется несколько платежей.

Dandelion - это решение для улучшения анонимизации на сетевом уровне. Недостаток тут в том, что он делает попытку деанонимизации не невозможным, а непрактичным. А также используя атаки маршрутизации, пользователь может быть деанонимизирован.

ZeroLink - это система микширования, которая использует слепые подписи и обеспечивает конфиденциальность в зависимости от количества транзакций в секунду. И опять же, действия происходят с использованием сервера, который проверяет и подписывает входы, что также нельзя назвать децентрализованным решением.

P2EP - Pay to Endpoint (Оплата до конечной точки) - протокол для нарушения эвристики собственности общих входных данных. Это решение прямой потомок P2IP внедренный самим Сатоши в базовый код Биткойна, который по соображениям безопасности, был убран. Хоть это и одно из самых обсуждаемых решений, здесь также не все так гладко:

1) Обе стороны сделки должны быть онлайн;
2) Получатель должен иметь "hot wallet" для подписи транзакций;
3) Более высокие комиссионные сборы из-за увеличения объема транзакции;
4) Получатель должен иметь доступ к полному узлу.

Это одно из самых эффективных и обсуждаемых решений.

Confidential Transactions - это метод сокрытия сумм отправляемых и получаемых средств, c возможностью проверки этих сумм без их раскрытия. Это решение реализовано в Liquid, Monero и BitShares в разных имплементациях и модификациях. В сети Биткойн CT требуют внесения изменений в консенсус. CT не скрывают адреса участников сделки.

ValueShuffle (VS)

Я не зря решил написать о своих выводах совместно с описанием протокола ValueShuffle. По отдельности, эти решения не в состоянии обеспечить полную конфиденциальность проведения платежей. В то же время, ошибочно полагать, что полную конфиденциальность можно достичь объединив эти решения. Но по-крайней мере приблизиться к цели и сделать процесс анализа и раскрытия более трудоемким - возможно. ValueShuffle она базе CoinJoin (CJ), объединяет в себе Confidential Transactions (CT) и Stealth Addresses (SA).

Stealth Addresses или "адреса-невидимки" - это средство для генерации одноразовых адресов. SA могут быть легко объединены с протоколами миксинга CJ. В то же время и CT совместим с CJ. В CT транзакция создается только одним пользователем, а в протоколах миксинга - всеми участниками сделки.

Беря в расчет сведения о недостатках каждого из этих решений, ValueShuffle, объединяя их, является протоколом P2P смешивания, позволяющий группе не доверяющих друг другу пользователей создать confidential transaction-CoinJoin, не раскрывая отношения между входами, выходами и суммами платежей друг другу. Т.е. обеспечивает анонимность плательщика и получателя платежа, а также сумму платежа.

VS - это первый протокол миксинга совместимый с CT. Так как он построен на CoinJoin, то наследует множество функций (например соместимость с bitcoin-script) позволяющий ему без внесения изменений в консенсус развернуться в экосистеме Биткойна. Он является более широкой версией протокола CoinShuffle++, разработанный в результате создания протокола смешивания сообщений DiceMix.

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

Все виды миксинга ограничены смешиванием средств одинаковой величины (номнальным значением), иначе третей стороне не составит труда связать входы и выходы, несмотря на сам механизм смешивания. Если же устранить ограничение номинальных значений платежей, встает вопрос о доказательстве отсутствия действий для создания средств при смешивании. Т.е. что деньги не были созданы из воздуха.

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

ValueShuffle, используя Stealth Addresses и Confidential Transactions, позволяет отправлять средства сразу получателям, одной транзакцией. При выполнении транзакций, третья сторона, наблюдающая за сетью или даже участвующая в такой транзакции, не сможет связать входы и выходы транзакции-CJ. Входной адрес плательщика не может быть идентифицирован среди входных адресов в процессе микширования. SA предоставляет одноразовые адреса для приема платежей, что не допускает привязку к получателю, а CT обеспечивает сокрытие суммы платежа.

Чтобы обеспечить несвязанность входов и выходов в транзакции-CJ не требуется анонимный канал, по типу Tor. Но для обеспечения несвязности входных данных с IP, стоит подумать о дополнительных средствах достижения анонимности.

Mixing Confidential Transactions: Comprehensive Transaction Privacy for Bitcoin

P.S.

Вопрос приватности — действительно серьезная проблема, потому что только приватность позволяет нам свободно решать, кто мы есть и кем мы хотим быть. © Эдвард Сноуден