В начале января 2021 года прошло обновление главного программного обеспечения первой
криптовалюты. Над Bitcoin Core 0.21.0 трудились более 100 разработчиков. В статье мы детально разберем, что принес
нам апгрейд.
Дескрипторные кошельки
В момент передачи токенов биткоин на адрес кошелька происходит их сохранение в неизрасходованном выходе транзакции (UTXO), а в момент будущих переводов они будут разблокированы. Это происходит при соблюдении в UTXO условий. Практически всегда требуется лишь соответствующая конкретному публичному ключу подпись. Но могут быть заданы и другие условия, соблюдение которых и будет контролироваться дескрипторными кошельками. Благодаря таким кошелькам можно на одном подтверждать прием UTXO обычной подписью, а на другом мультиподписью.
В основном изменение заметят разработчики, но и для обычного пользователя они будут видны. Например, при создании ноды Bitcoin Core кошелек больше не будет создаваться автоматически. Пользователю нужно будет сделать это самому, выбрав в момент создания тип необходимого кошелька. Потребуется время, но постепенно абсолютно все кошельки Bitcoin Core будут дескрипторными.
Фильтрация блоков
Клиенты, осуществляющие запросы через Bloom-фильтры на скачивание определенной части блокчейна, позволяют существенно облегчить работу и снизить требования к ресурсам. Но, как выяснилось, в момент отправки запроса нода получает все данные пользователя.
Чтобы предотвратить эту утечку данных в Bitcoin Core 0.21.0 было решено применить инновацию, которую назвали «компактная фильтрация блоков на стороне клиента». Оно выворачивает систему Bloom-фильтров. Сейчас клиенты с облегченной архитектурой отправляют фильтры полным нодам, а они на своей стороне реализую фильтры для блоков сети и посылают их обратно по мере необходимости.
Дополнительно устранена угроза приватности, заключавшаяся в повторении транзакции при условии, если она не попала в новый блок сети. Ранее это происходило раз в 15 минут, но сейчас повтор происходит лишь через 12-36 часов, а это мешает анализировать действия пользователей.
Поддержка Tor V3
Во время апгрейда протокола Tor были добавлена третья версия адресов (V3), которая длиннее предыдущей версии адресов. Необходимо отметить, что от адресов V2 планируют отказаться полностью в течении следующего года.
Отказ от использования адресов V2 мог создать неудобства владельцам монеты, которые планируют осуществлять транзакции по средствам приватной сети. Ноды Bitcoin Core знают друг о друге за счет обмена Tor-адресами. В рамках обновления стали поддерживаться адреса новой версии, что обеспечит их бесперебойную работу в приватных сетях в будущем.
Обновление Schnorr/Taproot
Со дня запуска в 2017 году Segregated Witness (SegWit) обновление Schnorr/Taproot стало первым в протоколе. Нужно отметить, что дата вступления инновации в силу пока не известна, она уже вписана в код Bitcoin Core 0.21.0. Скорее всего в течении пары месяцев в ближайших релизах в программах-клиентах появится логика, запускающая обновление.
Обновленный Bitcoin Core 0.21.0 содержит в себе и другие инновации, устраняющие разные
баги, ускоряющие быстродействие и тому подобное. Пусть они не столько заметны обычному пользователю, но несомненно
помогут монете развиваться дальше. Так, например, используемая ранее база данных Berkeley DB заменена на SQLite,
которая является более подходящей для работы криптосети.