почему Bitcoin Кошелькам нужны фильтры блокировки

By Bitcoin Журнал - 6 месяца назад - Время чтения: 6 минуты

почему Bitcoin Кошелькам нужны фильтры блокировки

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

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

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

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

Запуск и использование Bitcoin node — лучшее, что вы можете сделать, поскольку вы являетесь частью сети и вам не нужны посредники для получения и передачи данных транзакций. Однако очевидно, что запуск полного узла подходит не всем; существование и потребность в легких клиентах (простая проверка платежей) была даже предусмотрена Сатоши в Bitcoin официальный документ.

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

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

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

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

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

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

xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz

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

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

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

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

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

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

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

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

Вы можете узнать больше о проблемах конфиденциальности с BIP37. здесь. Теперь давайте рассмотрим оставшееся сетевое решение для легких клиентов.

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

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

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

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

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

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

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

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

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

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

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

Исходный источник: Bitcoin Журнал