Что такое «пыль» и почему блокчейну биткоина нужен уборщик
Текущий алгоритм биткоина работает таким образом, что практически неизбежно в ходе каждой транзакции данные «дробятся» на составляющие, которые в какой-то момент (особенно при небольших суммах транзакций) измельчаются до состояния «пыли», образуя такие части биткоина, которые уже невыгодно тратить, поскольку транзакционный сбор превышает их стоимость. С одной стороны, это невыгодно для самих пользователей, с другой — для всего блокчейна: подобное загромождение пространства может привести к снижению производительности всей системы.
И если раньше «пыль» не представляла проблемы для трейдеров, все изменилось, когда в игру вошли сборы, вернее, когда они выросли настолько, что осуществлять «повседневные» небольшие транзакции стало невыгодно. Так, в декабре сбор в сети Bitcoin на своем пике составил $54.9. К концу февраля, на момент релиза ПО Bitcoin Core 0.16.0 с удобным функционалом для создания SegWit-адресов, комиссии уже опустились до $2.8, а к сегодняшнему дню достигли показателей конца апреля 2017 года — около $0.84.
Разработчик децентрализованных приложений Грег Слепак уверен, что сейчас настало лучшее время для того, чтобы избавиться от пыли. «Такой шанс может не повториться», — сказал он в разговоре с CoinDesk, имея в виду рекордно упавшие сборы и пониженный интерес к биткоину. При этом следующий взлет может случиться, когда Lightning Network — оффчейн-решение для обработки микроплатежей в биткоинах — заработает в полную силу. «Я думаю, все, что приводит к росту популярности блокчейна, может привести и к повышению сборов, которые станут больше, чем сама пыль», — отметил Слепак.
Слепак описывает метод, с помощью которого пользователи могут избавиться от пыли: они должны объединить все «неизрасходованные выходы транзакций» (UTXO) в одну исходящую транзакцию. При этом необходимо понимать, что биткоины хранятся в кошельке не отдельными монетами, а именно в виде «неизрасходованных выходов» — остатков предшествующих отправленных или полученных транзакций. Таким образом, 1 биткоин может представлять сумму 0.1 BTC, 0.5 BTC, 0.2 BTC и других, более мелких составных частей — и так вплоть до «пыли». Процесс объединения этих частей в одну транзакцию можно представить в виде обмена горсти пенни, пятицентовых и десятицентовых монет на одну долларовую купюру. Однако функционал, необходимый для обнаружения пыли и избавления от нее, представлен не в каждом кошельке.
Слепак рекомендует воспользоваться Electrum — кошельком с упрощенной проверкой платежа (SPV), который требует меньше данных для подтверждения транзакции и хорошо адаптирован для мобильных устройств. Пользователь Electrum может выбрать определенное количество адресов, содержащих пыль, и нажать «отправить из» — таким образом самостоятельно выбрав, какие части монет объединить в единый выход транзакции. Подобную операцию позволяет осуществить и кошелек Blockchain. Однако некоторые кошельки не предполагают такой уровень контроля, особенно если это холодное хранилище по типу кошелька Coinbase, который проводит операцию автономно, самостоятельно решая, от каких неизрасходованных выходов ему избавиться.
И хотя Слепак считает, что настало время «развеять пыль», чтобы не потерять средства, он отмечает, что делать это следует только в том случае, если «последствия со стороны приватности» не нанесут ущерб пользователю. Дело в том, что в силу публичного характера блокчейна биткоина при подобной «уборке» пользователь рискует раскрыть свою историю транзакций. Для сохранения финансовой приватности крайне важно не использовать повторно один и тот же адрес, в противном случае другой пользователь может с большой долей вероятности предположить, что данный адрес принадлежит именно вам: каждый раз, когда приватный ключ уже использованного адреса «подписывает» новую транзакцию, любой получатель может проследить историю этого адреса и получить вашу информацию. Однако такая угроза существенна только в том случае, если вы накопили пыль на нескольких своих аккаунтах, и в особенности если один из этих аккаунтов подвергся KYC-процедуре на бирже и пользователь подтвердил свою личность. Таким образом, если один из адресов закреплен за определенным человеком, то все другие адреса, хранящие пыль, при объединении в одну транзакцию также разоблачат личность пользователя. «Это все равно что сказать: “Да, так и есть, эти адреса тоже принадлежат мне”», — отметил Слепак. Но если вся «пыль» уже привязана к одному аккаунту, то никакой новой угрозы приватности при формировании единой транзакции не возникнет.
Менее радикальных взглядов в вопросе избавления от «пыли» придерживается разработчик баз данных Blockchain Антуан Ле Кальвез. В опубликованном в марте на Medium материале он отмечает, что количество пыли уже уменьшилось, причем это было спровоцировано именно «неудобными» высокими сборами декабря. Большие компании, работающие с биткоином, искали более выгодные стратегии и в том числе прибегали к избавлению от пыли. «Coinbase почистили свой кошелек. А они были довольно крупным "загрязнителем"», — сказал Ле Кальвез, отмечая, что с момента той экстренной «уборки» создается меньше пыли. Ле Кальвез считает, что пользователи могут объединять транзакции описанным способом для потенциальной экономии средств в будущем, но только по своему желанию. По его мнению, крупные биткоин-компании в любом случае будут оказывать большее влияние на общий уровень пыли и «чистота атмосферы» зависит от них. Однако Ле Кальвез согласен, что при сегодняшнем уровне комиссий в сети Bitcoin убрать пыль просто, но ситуация изменится, когда количество транзакций снова взлетит: «Настоящее испытание будет в период следующего подъема», — сказал он.
Также существенно снизить образование пыли может следующая версия ПО Bitcoin, релиз которой намечен на 2019 год. Одно из главных изменений коснется текущего алгоритма селекции монет, который, по мнению разработчиков, неэффективно объединяет части монет в транзакцию и практически всегда создает «выходы для сдачи», даже когда этого можно избежать. Новый алгоритм «ветвей и границ» (англ. Branch and bound), разработанный Эндрю Чау и Марком Эрхардтом, группирует данные более экономично как в плане масштабируемости, так и в плане сборов: он прорабатывает все входы, пытаясь найти среди них ровно такое количество биткоинов, какое пользователь желает потратить. «Никто не хочет, чтобы тразакции измельчались до пыли», — говорит Эрхардт.