✅✅✅
Протокол конфиденциальности Dandelion
Для
стека биткоина
⬇️⬇️⬇️
Начну я с презентации своих старых постов на тему конфиденциальности:
MimbleWimble
CoinJoin, CoinShuffle и Stealth-Addresses
Bulletproofs
Теперь к нашим "Одуванчикам" (англ. Dandelion)...
Биткоин можно разделить на два уровня функционирования:
1) Прикладной уровень: управление транзакциями, блокчейн, майнинг, идентификация узлов в сети по PublicKey
2) Сетевой уровень: обработка связей между узлами через P2P-сеть, идентификация узлов по IP.
Суть в том, что сетевой уровень должен обладать:
а) низкой задержкой. Максимальное время, за которое сообщение достигнет всех узлов сети, должно быть небольшим и ограниченным.
б) анонимность. Невозможность связать сообщения от транзакциях с IP-адресом, который инициировал транзакцию.
Совершая транзакцию с узла, она передается всем связанным узлам, далее другим связанным, и по цепочке.
Думаю, всем известный факт...Создается цепочка, которую можно отследить до начального узла. Каждый узел получающий данные о транзакции, становится доступным для запроса. Передача транзакции происходит с экспоненциальными задержками, что позволяет якобы усилить анонимность IP-адреса, но такое решение ее не обеспечивает.
Ссылка, где объясняется способ деанонимизации транзакций и вычисление IP.
Летом 2017 года Shaileshh Bojja, Giulia Fant, Pramod Viswanath опубликовали
BIP - сетевое решение для Биткойна, которое легко интегрируется в существующие блокчейн-сети. Протокол Dandelion - это решение для улучшения анонимизации на сетевом уровне.
Dandelion повышает конфиденциальность пользователей, отправляя транзакции через фазу анонимности, прежде чем передать их по сети. Dandelion повышает конфиденциальность за счет нарушения симметрии диффузии (форма передачи транзакции), и смешивания транзакций путем пересылки сообщений из разных источников по одному и тому же пути.
Версия "Одуванчик" предложенная в 2017 году имела ряд недостатков и потому в 2018 году вышла новая версия - Dandelion++. Протокол делает попытку деанонимизации - непрактичным.
Работает это все по аналогии с одуванчиком (см. рисунок ниже):
1) Stem Phase (фаза стебля)
Этот этап предназначен для избежания отслеживания транзакций к исходной. Каждый узел отправляет транзакцию одному рандомному (на основе алгоритма) узлу. Этот узел передает сообщение о транзакции другому рандомному узлу и т.д. Информация передается по переплетенным маршрутам. Они могут быть фрагментированы, но распространение ограничено локально. То есть транзакция остается анонимной для сети, кроме тех узлов, которые ее получают. В какой-то точке (каком-то из узлов) сообщение о транзакции транслируется в сеть. Эта какая-то точка определяется протоколом. Выбирается 4 одноранговых узла, позволяющих использовать 2 пути для передачи сообщения о транзакции.
2) Fluff Phase (фаза пуха)
Начало процесса диффузии (передачи транзакций в сеть).
"Распушивание" транзакции происходит либо:
- путем вероятностной игры, когда каждый узел, который получал транзакцию в фазе стебля с 90%-ой вероятностью, передает сообщение дальше
- путем истечения времени задержки, которое определяется индивидуально каждым узлом на фазе стебля.
Важно заметить, что при передаче сообщения о транзакции на стебле, каждый узел проверяет сеть на наличие этой транзакции. Если эта транзакция появилась в сети, узлы передают копию сообщения в сеть.
Протокол не требует сложных вычислений и может быть развернут без каких-либо изменений в базовом протоколе сети Биткойн.
#Privacy