Многие считают биткоин анонимной цифровой валютой, характеристики конфиденциальности которой позволяют скрывать свои действия при покупке сомнительных и незаконных товаров в даркнете.
Эти же люди со временем с удивлением узнают, что биткоин далеко не анонимен. Блокчейн, базовая технология криптовалюты, на самом деле имеет ряд технологических «окон», с помощью которых может быть определена личность пользователей сети. Заинтересованные в этом стороны, будь то аналитические компании, правительства или кто-либо с достаточными знаниями в области IT, могут использовать сетевой P2P-анализ, чтобы связать публичный адрес сети Биткоина с IP-адресом. Это позволяет узнать, кто владеет кошельком и кому он отправлял свои средства.
При отслеживании транзакций и публичных адресов до IP-адресов пользователей эти «шпионы», также известные как «оппоненты», эффективно деанонимизируют пользователей. Сообщество Биткоина уже давно пыталось найти способ решить эту проблему с конфиденциальностью.
Эта работа привела к созданию Dandelion – протокола, разработанного Джулией Фанти (Giulia Fanti) вместе с Шайлешем Боджей Венкатакришнаном (Shaileshh Bojja Venkatakrishnan), Сурьей Бакши (Surya Bakshi), Брэдли Денби (Bradley Denby), Шрути Бхаргавой (Shruti Bhargava), Эндрю Миллером (Andrew Miller) и Прамодом Вишванатом (Pramod Viswanath), исследователями из Школы информатики Университета Карнеги-Меллона в Питтсбурге, Массачусетского технологического института и Иллинойского университета.
Если их теория сможет быть реализована на практике, Dandelion эффективно нейтрализует P2P-анализ, который играет значительную роль в компрометации личности пользователей.
Проблема
Всякий раз, когда кто-то отправляет транзакцию в сети Биткоина, как правило, эта транзакция транслируется на несколько узлов, пока она не будет подхвачена майнером и включена в блок.
Этот процесс ретрансляции известен как распространение транзакций в сети. Он начинается, когда исходный узел (тот, который создал транзакцию), передает ее другим узлам сети. Как только узел транслирует транзакцию, каждый из других узлов, входящих в сеть, продолжает независимо распространять ее, отправляя транзакцию другим с экспоненциальными задержками.
Во время презентации Dandelion на конференции «Building on Bitcoin» в Лиссабоне, Джулия Фанти объяснила, что IP-адрес исходного узла часто можно распознать, потому что «распространение восприимчиво к обнаружению». Когда находящиеся в сети узлы-шпионы получают транзакцию, они могут участвовать в P2P-анализе сети, чтобы отследить путь транзакции.
В принципе, наблюдая за временными характеристиками каждой трансляции и изучая структуру активных узлов сети, шпионы могут отследить транзакцию до исходного узла. А из него шпион имеет высокие шансы получить IP-адрес отправителя транзакции.
Решение Dandelion
Dandelion стремится абстрагировать процесс ретрансляции, чтобы сделать его более сложным для отслеживания транзакций. Это по сути сделает почти невозможным отслеживание транзакции до исходного узла, который первым начал ее передачу.
Для достижения этой цели Dandelion отправляет транзакцию по случайному пути через переменное количество узлов до того, как транзакция будет распространена по всей сети. Случайный путь известен как фаза «стебля» (stem) протокола, поскольку транзакции, передаваемые на этом этапе, распространяются только между собой, передаваясь от одного узла к другому. Фаза распространения известна как фаза «пуха» (fluff), поскольку транзакция транслируется на несколько узлов, которые должны быть распределены по сети (визуально и по сути, оба эти процесса повторяют анатомию одуванчика (dandelion), отсюда и терминология).
В фазе «стебля» каждый узел имеет шансы 50/50 либо продолжить фазу «стебля», передавая трансляцию другому узлу, либо распространить транзакцию остальной части сети. В случае дальнейшей передачи, у следующего узла будут аналогичные шансы, и транзакция будет передаваться и дальше, пока не будет инициирован процесс распространения.
Добавление первой фазы транзакции до распространения предназначено для реализации слоя анонимности в процесс передачи транзакций. Если сеть передает транзакцию нескольким потенциальным исходным узлам перед распространением, это теоретически должно скрыть, откуда была начата передача, тем самым чрезвычайно усложнив отслеживание транзакции до ее источника.
Рост Dandelion
Предложение Dandelion считается возможным шагом к решению вопроса анонимности Биткоина, который не требует полного пересмотра его кода и дополнения P2P-инструментами обфускации сети, которые разрабатывают такие криптовалюты, как Monero.
Команду часто спрашивают, почему она не хочет использовать ту же многослойную маршрутизацию, на которой фокусируется Monero. Фанти призналась, что «Monero обращается к той же самой проблеме, которую пытается решить Dandelion». Однако отметила, что «подобная реализация весьма трудоемка», поскольку команда разработчиков Monero трудится над ней с 2014 года.
Сфокусировавшись вместо этого на собственном базовом подходе, Dandelion прошел большой путь после того, как был представлен 2017 году. После того, как во время экспертного изучения его кода были обнаружены серьезные недостатки, команда внесла в него обновления и повторно выпустила новую Белую книгу с обновленным методом (известным как Dandelion ++) в мае 2018 года.
Ожидается, что Dandelion будет внедрен в будущее обновление Bitcoin Core, хотя он и не будет частью предстоящего релиза 0.17.0.
Над решением проблемы конфиденциальности Биткоина работают и другие команды. В январе этого года Грегори Максвелл (Greg Maxwell), один из известных разработчиков сети, предложил возможное решение – технологию Taproot. Кроме того, другие команды также продолжают работать над проблемой в рамках других проектов.