Почему биткоин-кошелькам нужны фильтры блоков

Почему биткоин-кошелькам нужны фильтры блоков

Большинство биткоин-кошельков передают вашу личную информацию провайдеру кошелька, но фильтры блоков могут помочь это исправить.

С появлением таких инструментов разработки программного обеспечения, как BDK и LDK, создание биткоин-кошелька стало еще проще. Однако, помимо необходимости упрощения разработки, важно подумать и о защите безопасности и конфиденциальности пользователей. Например, важным вопросом, который необходимо решить, является то, как light-кошелек подключается к стороннему серверу для получения и отправки данных о транзакциях.

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

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

Лишь немногие пользователи запускают полные узлы

Запуск и использование Биткоин-узла – лучшее, что вы можете сделать, поскольку вы являетесь частью сети и вам не нужны посредники для получения и передачи данных транзакций. Однако очевидно, что запуск полного узла подходит не всем; существование и потребность в light-клиентах (простая проверка платежей (SPV)) была даже предусмотрена Сатоши в white paper Биткоина.

Нельзя узнать, сколько пользователей используют полный узел, мы можем знать только количество узлов. По скромным оценкам, это число составляет около 16 000, согласно сайту Bitnodes.io. Более точные оценки, подсчитывающие как прослушивающие, так и непрослушивающие узлы, такие как инструмент подсчета узлов Люка Дашджара, показывают, что это число выше – около 53 000.

Почему биткоин-кошелькам нужны фильтры блоков

Также важно знать исторический контекст количества полных Биткоин-узлов. Согласно истории подсчета Биткоин-узлов Люка Дашджара, можно сказать, что использование узлов еще не достигло своего пика. 13 января 2018 года их число достигло 205 000. Это было во многом связано с тем фактом, что биткоин достиг своего предыдущего рекордного максимума несколькими неделями ранее. В 2021 году мы можем наблюдать, что количество узлов также увеличилось с ростом цены, но достигло лишь почти 90 000.

Почему биткоин-кошелькам нужны фильтры блоков

Можно подтвердить, что на Биткоин-узлах работает немного пользователей, и что это число не увеличивается с течением времени. Light-кошельки гораздо проще использовать, чем Биткоин-узлы, и нам нужно найти правильное решение для обеспечения конфиденциальности сети. Давайте посмотрим на наиболее используемую сегодня технологию – API-кошельки.

Поставщики услуг API-кошельков собирают ваши данные по умолчанию

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

Когда вы открываете стандартный биткоин-кошелек, вы импортируете или создаете мнемоническую seed-фразу и устанавливаете желаемый путь деривации (часто автоматически). Это дает вам главный открытый ключ, часто называемый xpub. Вот как он выглядит:

xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz

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

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

Давайте теперь рассмотрим альтернативный метод, не зависящий от одного сервера, – использование фильтров Блума на light-кошельках.

Почему фильтров Блума недостаточно для обеспечения конфиденциальности

Некоторые кошельки позволяют пользователю получать и отправлять данные о транзакциях через фильтры Блума. Этот метод связи был представлен в BIP37 и изначально считался конфиденциальным. В этом разделе мы расскажем, что такое фильтры Блума и почему они на самом деле вредны для конфиденциальности.

Фильтры Блума – это вероятностные структуры данных, используемые для проверки того, является ли элемент членом набора. В контексте Биткоина фильтры Блума создаются light-клиентом и отправляются узлам сети, которые проверяют, существует ли совпадение между адресом (элементом) и данными блокчейна (набором). Если есть совпадение, данные транзакции отправляются light-клиенту. Это вероятностный подход, поскольку бывают ложные срабатывания, но они позже отбрасываются легким клиентом.

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

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

Подробнее о проблемах конфиденциальности, связанных с BIP37, можно прочитать здесь. Теперь давайте рассмотрим оставшееся сетевое решение с использованием light-клиентов.

Биткоин-кошельку нужны фильтры блоков для обеспечения конфиденциальности

Еще в 2018 году реального решения этой проблемы не было, фильтров блоков еще не существовало. К счастью, они были представлены в следующем году в BIP157 и 158, а теперь реализованы в нескольких кошельках и Биткоин-программах, таких как Wasabi, Blixt, Breez, LND и LDK. Их часто называют Neutrino. В этом разделе мы рассмотрим, как они работают и почему они являются правильным решением для обеспечения конфиденциальности в сети.

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

Процесс фильтра блоков обычно включает три этапа. Сначала пользователь загружает фильтры блоков, представляющие блокчейн, с узла сети в случае Breez или с сервера-координатора в случае Wasabi. Затем light-клиент проверяет, соответствуют ли адреса в пределах интервала фильтру блоков. Наконец, если есть совпадение, загружается соответствующий блок.

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

Фильтры блоков являются частью решения проблемы конфиденциальности сети, но для полноты картины необходимо кое-что еще.

Tor – последняя оставшаяся часть решения проблемы конфиденциальности сети

Tor и Биткоин идут рука об руку и вместе с фильтрами блоков могут обеспечить конфиденциальность сети для light-клиентов. Tor скрывает IP-адрес пользователя от целевого сервера, маршрутизируя его через сеть узлов. Этот механизм называется луковой маршрутизацией из-за нескольких уровней связи.

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

Например, сообщество Tor внедрило решение для обеспечения надежности связи под названием Conflux. Вместо того, чтобы делать один запрос, клиенты делают два запроса, используя два разных канала Tor, чтобы повысить вероятность быстрого завершения. Это, наряду с инновациями в загрузке кошелька для фильтров блоков, таких как Turbosync в кошельке Wasabi, приведет нас к будущему, в котором пользователю не придется выбирать между удобством использования и конфиденциальностью – он сможет наслаждаться и тем, и тем.

Это гостевой пост Густаво Флореса Эшаиса. Высказанные мнения являются его собственными и не обязательно отражают точку зрения BTC Inc. или Bitcoin Magazine.

Как правильно обращаться с токенами BRC-20 и Ordinals Как правильно обращаться с токенами BRC-20 и Ordinals Прагматичный взгляд на проблему Ordinals и токенов в Биткоине и на то, как решить проблему их потребительства блочного пространства. Робби Гринфилд 19 мая 2024
Почему Биткоин – это «заморозка», в которой отчаянно нуждаются ваши сбережения Почему Биткоин – это «заморозка», в которой отчаянно нуждаются ваши сбережения По мере развития технологического прогресса свободный рынок неумолимо движется к разбавлению средств. Биткоин – это глубокая «заморозка», в которой отчаянно нуждаются ваши сбережения. Unchained Capital 12 мая 2024
Настройка мультиподписи своими руками или совместное хранение с мультиподписью? Настройка мультиподписи своими руками или совместное хранение с мультиподписью? Решение перевести биткоин на самостоятельное хранение – это только первый шаг. Держатели должны решить, как они хотят защитить свои сбережения: с помощью единой подписи, самостоятельно созданной мультиподписи или совместного хранения. Unchained Capital 12 мая 2024