Bitcoin Core — официальный кошелек
Эта статья расскажет об особенностях, возможностях и истории Bitcoin Core — эталонного кошелька для первой в мире криптовалюты.
Кошелек для Биткоина (англ. Bitcoin wallet, он же клиент сети, бумажник) — это программное обеспечение для работы с блокчейном Биткоина. Именно в кошельке проводятся все операции с BTC. Вы можете хранить биткоины, отправлять и получать их. Некоторые кошельки предлагают расширенные функции — например, встроенный обменник, мониторинг биржевых курсов, анализ портфеля и т.д.
Криптовалютные кошельки бывают нескольких видов – толстые и тонкие, мобильные и аппаратные. У них разные возможности и сферы применения. Выбор кошельков очень широк — на рынке присутствуют сотни программ и устройств для работы с биткоином и другими криптовалютами. Каждый пользователь может выбрать подходящий именно ему кошелек.
Что такое Bitcoin Core
Практически в каждом блокчейне есть «эталонный» кошелек, который создает главная команда разработчиков протокола. Для Биткоина такая программа называется Bitcoin Core. Это полный или, как иногда говорят «тяжелый», «толстый» кошелек, способный хранить всю историю блокчейна и не полагаться на сторонние сервисы. Он требователен к ресурсам, но обладает самыми широкими возможностями для работы с блокчейном Биткоина. Поддержки других криптовалют в нем нет и не планируется.
Bitcoin Core – это так называемый «официальный» клиент сети, наследующий идеи первого кошелька Сатоси Накамото. Он разрабатывается и продвигается основной командой разработчиков Биткоина (core developers). Именно они создают, принимают и утверждают предложения по улучшению (BIP — Bitcoin Improvement Proposal), а также ведут главный репозиторий Биткоина на GitHub.
Уходя от активной разработки, создатель Биткоина Сатоси Накамото делегировал право принятия решений по изменению кода основного кошелька одному из первых активистов Биткоина — Гэвину Андресену. Тот, в свою очередь, передал его в 2014 году Владимиру ван дер Лаану, главному разработчику Bitcoin-qt, как тогда назывался Bitcoin Core. С тех пор ван дер Лаан остается «хранителем ключей» от главного репозитория Биткоина, подписывает и публикует все новые версии основного клиента.
На узлах с Bitcoin Core держится вся глобальная сеть Биткоина, так как только в этом кошельке реализованы все возможности по хранению и проверке транзакций в соответствии с актуальными правилами протокола. Именно в Bitcoin Core появляются новые технологии, которые затем вводятся другими кошельками. Скачать последнюю версию и познакомиться со всеми возможностями кошелька вы можете на официальном сайте разработчиков.
У Bitcoin Core есть функции, которые интересны продвинутым пользователям и крупным проектам — например, точная настройка транзакционных комиссий, регулирование занимаемого кошельком места на диске, работа через API, создание и подпись нестандартных транзакций с внедренными скриптами и многое другое. Управлять Bitcoin Core можно не только из графического интерфейса, но и из командной строки и даже через сетевое подключение.
Мы надеемся, что этот обзор будет интересен не только новичкам, но и поможет опытным пользователям узнать о возможностях, которые доступны в последних версиях кошелька Bitcoin Core. Расширенные функции Bitcoin Core в сравнении с другими кошельками пригодятся как обычным пользователям, так и предприятиям. Кошельки бирж, майнинговых пулов и других сервисов — это обычно доработанные версии Bitcoin Core.
Когда нужен Bitcoin Core
Если вы еще не решили, какой кошелек вам подходит, сделайте обоснованный выбор. Bitcoin Core предпочтителен для тех, кто хочет быть уверенным в полном контроле над своими монетами и транзакциями. Только установка полного кошелька дает возможность стать полноценным членом сообщества Биткоина и взять на себя частичку груза поддержки глобальной децентрализованной сети.
Объем блокчейна продолжает расти, а вместе с ним и требования к оборудованию. Осенью 2022 года хранение всего блокчейна обходится примерно в 420 ГБ на жестком диске и забирает немного вычислительных ресурсов компьютера.
Но самое сложное — это первичная синхронизация, то есть загрузка и обработка всей истории блокчейна. Она требует намного больше ресурсов. На слабом процессоре и медленном диске она может продолжаться несколько суток. Разработчики много раз перерабатывали механизм синхронизации для ее ускорения, но никакая оптимизация кода не спасет от ежедневного добавления десятков тысяч новых транзакций. А за всю историю Биткоина их накопились уже десятки миллионов.
Сейчас Bitcoin Core — единственный публичный кошелек, который загружает на компьютер всю цепочку блоков (blockchain). Впрочем, несколько лет назад появилась возможность усечения хранимой части блокчейна, так как нынешние требования к дисковому пространству и скорости накопителя уже доступны не для всех.
При установке полного клиента ваш компьютер становится «несущей» частью сети, храня одну из многих тысяч копий блокчейна, синхронизованную с другими узлами. Также он помогает проверять и распространять транзакции других пользователей. А это означает, что вы тем самым предпринимаете базовые и необходимые меры по обеспечению защиты и безопасности ваших биткоинов. И не только ваших. Поэтому поддержку Bitcoin Core можно рассматривать не только как обеспечение своей финансовой безопасности, но и как волонтерство.
Дело в том, что безопасность вашего кошелька главным образом зависит от двух компонентов: гарантированно правильной версии блокчейна и безопасности хранения ключей доступа к кошельку. Локально хранят закрытые ключи почти все программы-клиенты, устанавливаемые на компьютеры или ноутбуки. А вот онлайн-кошельки и некоторые мобильные оставляют ключи на сервисе, который разработал программу. Вопросы защиты компьютера и сохранности файла wallet.dat, содержащего ваши закрытые ключи, подробно рассмотрены в статьях, посвященных безопасности.
Клиент Bitcoin Core работает под Windows, Linux, Mac OS, полностью переведен на русский язык и десятки других. Его можно установить на любой ПК, ноутбук или сервер с достаточными аппаратными ресурсами, или в облачном сервисе. Теоретически полный кошелек можно держать на мини-компьютере или мобильном устройстве, но немногие гаджеты способны выдержать такую нагрузку. Если у вас хороший современный компьютер и вы хотите быть уверены, что никто не подсунет вам «неправильный» блокчейн, то Bitcoin Core — отличный выбор.
Кто финансирует разработку Bitcoin Core
В первые годы существования Биткоина его протокол и кошелек разрабатывал единолично Сатоси Накамото, личность которого до сих пор остается неизвестной. Владимир ван дер Лаан опубликовал первую версию Bitcoin Core (тогда он назывался Bitcoin-qt) в 2011 году. Он написал программу по собственной инициативе, не рассчитывая на какое-либо вознаграждение.
Созданное им программное обеспечение на основе первых разработок Сатоси не имело аналогов. Это была единственная актуальная реализация протокола Биткоина, так как Сатоси перестал публиковать обновления в конце 2010 года. Кроме того, Bitcoin-qt стал первым кошельком с графическим интерфейсом и возможностью установки под Windows. Это один из главных факторов, обеспечивших широкое распространение Биткоина среди обычных пользователей, а не только ИТ-специалистов и ученых.
После публикации Bitcoin Core к разработке начали подключаться программисты со всего мира. Вскоре сформировался коллектив из нескольких десятков активных разработчиков, а предложения и исправления присылали сотни энтузиастов. Однако они не получали за это прямого дохода, участвуя в разработке Биткоина в свободное время.
В 2013-2015 годах финансирование разработки Биткоина пыталась взять на себя некоммерческая организация Bitcoin Foundation. Она собирала достаточно крупные суммы пожертвований от криптовалютных компаний и частных инвесторов. Членство в Bitcoin Foundation некоторое время было «знаком качества» для проектов. Однако через некоторое время эта организация погрязла во внутренних конфликтах и разборках вокруг распределения пожертвований, суммарно исчислявшихся в десятках миллионов долларов. К 2016 году Bitcoin Foundation потерял влияние в сообществе и вскоре окончательно развалился.
Два основных разработчика, ответственных за безопасность и стабильность Bitcoin Core — Владимир ван дер Лаан и Кори Филдс — перешли под опеку грантовой программы развития цировых технологий Массачусетского Технологического института (MIT). С тех пор они фактически работают «на зарплате» у американского университета.
С другой стороны, сильная команда программистов и криптографов сформировалась вокруг компании Blockstream, основанной Адамом Бэком, автором технологии Proof-of-Work. Компания получает финансирование от венчурных фондов и частных инвесторов, а также зарабатывает на майнинге. Это обеспечило финансовую стабильность разработки, но и принесло опасность для децентрализованной природы проекта.
Из-за сильного влияния Blockstream, особенно проявившегося во время конфликта из-за размера блока в 2016-2017 годах, недоброжелатели «переименовали» Bitcoin Core, называя его в сетевых перебранках не иначе как Blockstream Core. В результате этого противостояния откололся блокчейн Bitcoin Cash, а от работы над Биткоином отстранились Гэвин Андресен, Джефф Гарзик и еще несколько известных людей.
Со временем конфликт угас, но влияние Blockstream по-прежнему велико, хотя и вклад компании в развитие Биткоина не следует недооценивать. Фактически, внедрение SegWit, Taproot и частично Lightning Network — это заслуга команды Blockstream.
Основы безопасности децентрализованной сети
Главный разработчик Биткоина Владимир Ван дер Лаан видит основной внутренний конфликт в отношении безопасности в том, что кошелек, как узел распределенной сети, должен быть постоянно подключен к ней, обеспечивая стабильную обработку транзакций через Р2Р-подключения с другими узлами. С другой стороны, в целях безопасности, он должен как можно меньше времени находиться в онлайне. Частично этот конфликт решается аппаратными и программными средствами, но в конечном итоге безопасность зависит от владельца кошелька и его решений.
Еще в 2014 году ван дер Лаан сказал:
«В первые годы Bitcoin Core был невероятно важен, и разработчики должны были поддерживать инфраструктуру узлов и исправлять баги в любое время дня и ночи. Но для того, чтобы Биткоин мог стать глобальной распределенной сетью, разработчикам надо мыслить шире. В речи на Bitcoin Conference 2014 Гэвин [Адресен] отметил важность диверсификации. Он говорил об альтернативных реализациях полных узлов и даже сказал, что чем их больше — тем лучше. Хотя моя работа — поддерживать разработку Bitcoin Core, я согласен с ним».
Но его стремления так и не сбылись. До сих пор в сети Биткоина все остальные популярные клиенты работают на уровне «легких», то есть не хранят блокчейн, запрашивая данные по транзакциям у узлов с Bitcoin Core.
Официальным хранилищем кода Bitcoin Core уже более десяти лет остается репозиторий на Github. Несмотря на открытый исходный код и возможность участия в разработке независимо от места жительства, принятие решений о внесении изменений в репозиторий клиента доступно ограниченному количеству людей, а финальное решение принимает Владимир ван дер Лаан. При этом другие разработчики могут создавать пулл-реквесты и просить о включении своих изменений в основную ветвь проекта. А чтобы предложить свою идею, не обязательно быть программистом. Обсудить развитие Биткоина и внести свои предложения можно на популярных форумах и в соцсетях, или напрямую выйти на разработчиков.
Объединение усилий всего сообщества необходимо не только для ускорения нововведений, но в большей степени тогда, когда речь идет о тестировании наиболее важных, сложных и критически необходимых компонентов.
Аппаратное усиление безопасности
Долгое время для пользователей, которым безопасность важнее всего остального, единственной возможностью, кроме хранения кошелька на съемном устройстве в офлайне, был Armory — дополнение к Bitcoin Core. Этот кошелек при использовании функции Armory Offline Wallets хранил ключи на USB или бумажном носителе, не требуя онлайн-подключения, но при этом сохраняя все транзакции пользователя.
С появлением аппаратных кошельков Armory потерял актуальность из-за слишком сложной схемы работы. Последняя версия этой надстройки вышла в 2016 году. Теперь же держателям BTC проще использовать любой из совместимых аппаратных кошельков.
Для подключения аппаратного кошелька можно использовать дополнительный компонент HWI, реализованный в виде подключаемых библиотек на Python. Большинство популярных аппаратных кошельков уже поддерживаются Bitcoin Core. Они хранят закрытые ключи для подписи исходящих транзакций, и их можно подключать только непосредственно перед отправкой. Таким образом выполняется ключевое условие безопасности кошелька.
История развития Bitcoin Core по версиям
Как правило, большинство изменений кода в криптовалютных проектах имеют последовательный характер и не ведут к радикальным изменениям протокола. Они касаются, в основном, введения новых функций, улучшения интерфейса, уменьшения расхода памяти или решения проблем безопасности, преследуя основную цель — обеспечить эволюцию Биткоина и стабильность работы сети.
Однако, все предусмотреть невозможно. Иногда происходят «авральные» обновления, так называемые хардфорки, когда необходимо срочно устранить серьезную уязвимость или внедрить изменения, не совместимые с предыдущими версиями.
Последний крупный хардфорк в Биткоине произошел 1 августа 2017 года, когда в клиент был внедрен код с возможностью принудительной активации Segregated Witness, а несогласные ушли в блокчейн Bitcoin Cash. С тех пор разработчики предпочитают обходиться софтфорками — то есть «мягкими» обновлениями, не порождающими несовместимости и массового отключения клиентов старых версий.
А теперь немного истории для тех, кому интересна хронология развития самого «заслуженного» кошелька в криптовалютной индустрии.
Ранние версии
В сентябре 2011 года в версии 0.4.0 была наконец добавлена функция, без которой сегодня мы не можем представить работу криптовалютного кошелька — появилась возможность зашифровать файл хранилища, установив пароль. После этого злоумышленнику стало недостаточно получить файл wallet.dat, теперь его необходимо еще и расшифровать. Да, почти три года после запуска блокчейна было достаточно утащить этот файл по сети — и биткоины переходили к хакеру без всяких осложнений.
Версией 0.5.0 стал первый Bitcoin-qt — программа с графическим интерфейсом, совместимая с консольной программой (демоном) bitcoind. Это и был первый кошелек за авторством Владимира ван дер Лаана, на котором основан современный Bitcoin Core. Следующая, v.0.5.3, вышла уже с измененными, в соответствии с BIP30, правилами принятия решения о правильности блоков. Более подробно о ранних версиях Bitcoin Core читайте здесь.
Релиз версии 0.6.0, прошедший 30 марта 2012 года, предлагал более 20 языковых локализаций и исправлял некоторые проблемы безопасности.
Устранение уязвимости привело к тому, что Гевин Андресен, рекомендовавший пользоваться только вновь вышедшей версией, удалил с SourceForge все старые релизы до 0.3.24, а также некоторые промежуточные. Проблема заключалась в возникновении ошибок в обработке многопоточности, при которых программа переставала отвечать на запросы, а также из-за потенциальной уязвимости для атаки DoS (denial-of-service, отказ в обслуживании).
В версиях 0.6.3 – 0.7.2 были исправлены ошибки, оптимизированы процессы проверки транзакций, добавлена контрольная точка для повышения скорости загрузки исходной цепочки блоков.
В 2013 году вышли версии 0.8.0-0.8.6, в которых база данных блоков версий 0.7.2 и более старых уже не поддерживалась; были введены значительные изменения в коде работы с сетью, уменьшающие потребление памяти и задержки, добавлена команда «send coins» в контекстное меню, улучшен отчет о процессе синхронизации. Также были уменьшены комиссии и минимальный платеж. В мае 2013 года был проведен хардфорк — массовое обновление на версию 0.8, так как блокчейн стал несовместим с предыдущими версиями.
19 марта 2014 года на версии 0.9.0 произошел ребрендинг. Для устранения путаницы между разными реализациями кошельков для Биткоина, Bitcoin-Qt переименовали в Bitcoin Core. С этой версии начался процесс разделения монолитного ядра на несколько узкофункциональных утилит. Первой была отделена консольная версия клиента bitcoin-cli, которая дублирует функциональность RPC-клиента в bitcoind.
Кроме этого, впервые был разработан 64-битный клиент под Windows, за счет чего был усилен лимит памяти в CNode, а также уменьшена минимальная комиссия за проведение транзакции до 10 uBTC за килобайт.
Для укрепления криптографической защиты было сделано несколько исправлений, в том числе, в целях запрета транзакций без единого подтверждения, был добавлен ключ -nospendzeroconfchange.
В релизе версии 0.9.1. была исправлена проблема безопасности, связанная с Heartbleed, багом в исходном коде программы шифрования OpenSSL, а в версии 0.9.3 добавлены опции -maxorphantx, -maxorphanblocks и улучшена обработка транзакций.
Bitcoin Core 0.10.0
Этот релиз готовился долго и стал ключевым на долгое время не только из-за «круглой» нумерации. Разработчикам необходимо было протестировать большое количество изменений, которые были внесены в ключевые компоненты системы. Основные нововведения коснулись механизмов синхронизации и хранения блокчейна.
Первичная синхронизация блокчейна стала более быстрой благодаря первоочередному скачиванию полной цепочки заголовков блоков. На февраль 2015 года весь ее объем составлял всего 30 Мб. Только после загрузки и проверки заголовков, со всех доступных пиров в параллельном режиме запускается скачивание самих блоков.
Благодаря этому, скорость первичной синхронизации ограничена только ресурсами компьютера и сетевого соединения. Время первичной синхронизации сократилось в среднем до трех часов. Но тогда и весь блокчейн Биткоина «весил» всего несколько десятков гигабайт.
В этой версии обновились команды RPС, дающие информацию по блокчейну, добавлена команда «getchaintips», при помощи которой выводятся все известные альтернативные цепочки, в том числе те, которые состоят из одних заголовков.
Одно из самых важных изменений — появилась возможность выбора комиссии за транзакцию, что раньше можно было делать только в RAW транзакциях. Кроме того, комиссия стала рассчитываться динамически, предоставляя возможность оптимизировать время подтверждения. Пользователи смогли задать приоритеты, выбирая небольшую (вплоть до нулевой) комиссию, но при этом долгую для подтверждения транзакцию, или быструю отправку с высокой комиссией. Также, при помощи RPC-команды «estimatefee nblocks» стало возможно рассчитать необходимый размер комиссии на килобайт передаваемых данных.
По умолчанию, кошелек создает транзакции, которые быстро подтверждаются, и если параметр «sendfreetransactions» включен, комиссия по умолчанию не добавляется. Для контроля компромисса между сборами и временем подтверждения добавлена настройка ‘txconfirmtarget’
Статистика начисления комиссии и приоритетов сохраняется в директории Data в файле `fee_estimates.dat` перед выключением программы, читается при запуске.
Кроме этого:
-
Добавлен новый анонимный интерфейс HTTP API клиента под названием REST, ускорена работа демона оптимизацией серверной части.
-
Повышена безопасность подписи транзакций, теперь вместо пакета OpenSSL, который недавно подвел своих поклонников критической уязвимостью, используется библиотека Libsecp256k, оптимизированная для используемой Bitcoin curve.
-
Добавлен новый режим «Только просмотр», который предоставляет возможность подключить просмотр любого (даже чужого) кошелька для отслеживания всех его транзакций. Нужно знать все адреса, которые использует этот кошелек. В режиме просмотра действуют большинство команд RPC, но с существенными ограничениями. Естественно, создавать и отправлять транзакции в этом режиме нельзя.
-
Для улучшения взаимодействия клиента Bitcoin с другими программами по API, добавлена библиотека согласования (Consensus library).
-
Разработан механизм, позволяющий майнерам (пулам) оперативно управлять транзакциями, включаемыми в следующий блок, что помогает в том числе быстрее передавать транзакции по сети.
-
Продолжена работа по разделению монолитного ядра на несколько самостоятельных узкоспециализированных утилит. Кроме bitcoin-tx теперь добавлены bitcoin-key и bitcoin-script.
Bitcoin Core 0.11–0.13
Версия 0.11 от июля 2015 года была по большей части направлена на противодействие спам-атакам микротранзакциями, происходившим в то время из-за начавшегося конфликта вокруг размера блока. В кошельке стало возможным настроить фильтрацию транзакций по минимальной комиссии и полностью отключить обработку бесплатных транзакций.
Кроме того, впервые стало возможно отказаться от хранения всего блокчейна, достаточно минимума в 550 МБ, но узел переставал быть ретранслятором транзакций. Была выделена в отдельный файл база неистраченных выходов (UTXO). Также был обновлен механизм первичной синхронизации и улучшена работа с памятью.
В Bitcoin core 0.12 был улучшен процесс «обрезки» блокчейна — теперь пользователи могли выбирать, сколько места они готовы выделить для поддержки сети — от 2ГБ до почти полного текущего размера блокчейна. «Урезанный» узел становился полноправным участником сети.
Одно из ключевых изменений версии 0.12 — возможность замены еще не подтвержденной транзакции на новую с более высокой комисией, чтобы она быстрее подтвердилась. Технология получила название opt-in replace-by-fee (RBF).
Версия 0.13.0 принесла доработку технологии RBF — появился новый метод Child Pays for Parent» (CPFP, «Ребёнок платит за родителя»). Также разработчики оптимизировали сетевой трафик в процессе ретрансляции блоков с помощью функции Compact Blocks (компактные блоки, BIP-152).
Но, пожалуй, самое важное нововведение этой версии — возможность формирования ключей на основе иерархически детерминированной (HD) генерации, то есть seed-фразы. Ранее эта технология применялась только в легких (SPV) кошельках. Использование нового механизма устранило «единую точку отказа» — полную привязку хранения ключей к файлу wallet.dat. Теперь стало достаточно хранить только seed и импортировать его в любой другой кошелек. Одновременно повысилась и зависимость безопасности кошелька от человеческого фактора — ведь шифровать seed и грамотно прятать его будет гораздо меньшее количество пользователей, чем тех, кто установит по умолчанию пароль на кошелек. Кроме того, фразу из 12 слов очень просто украсть в офлайне — достаточно сфотографировать ее на смартфон.
Bitcoin Core 0.13.1 и SegWit
Одно из важнейших обновлений в истории Биткоина, Segregated Witness (SegWit) впервые появилось в коде клиента в версии Bitcoin Core 0.13.1, вышедшей в октябре 2016 года. Оно было реализовано как софтфорк, то есть не требовало обязательного обновления всех кошельков сети. Одновременно для активации технологии появилась поддержка голосования майнеров с помощью подписей в coinbase-транзакциях, генерирующих новые монеты. Других важных изменений в этой версии не было, но именно она запустила на уровне блокчейна противостояние, длившееся почти год.
Bitcoin Core 0.14.0 появился в марте 2017 года и не принес существенных улучшений — были обновлены механизм загрузки блоков и расчет комиссий. Силы разработчиков в основном уходили на политику, так как 2017 год стал периодом «битвы заSegWit», и клавиатуры использовались для многоэтажной аргументации на форумах, а не для написания кода. Вышедший через месяц клиент Bitcoin Core 0.14.1 содержал полную поддержку SegWit — теперь майнеры могли обрабатывать транзакции как с поддержкой этой технологии, так и без нее.
Bitcoin Core 0.15.0 — первый релиз, вышедший после хардфорка 1 августа 2017 года. В нем пришел ряд оптимизаций работы протокола, но, несмотря на увеличение номера версии, важных изменений не было, так же как и в версии 0.15.1, появившейся в ноябре 2017 — уже после отмены SegWit2x, ознаменовавшей окончание более чем двухлетнего конфликта в сообществе.
Пожалуй, самым громким, но уже «косметическим» изменением стала отмена максимального размера блока в 1МБ — в блоках с Segregated Witness он рассчитывается исходя из «веса» транзакций и отделенного от них массива подписей. Фактический лимит размера блока при этом увеличился в 2-4 раза, в зависимости от параметров содержащихся в нем транзакций. Что интересно, даже в этом релизе не было реализовано создание segwit-транзакций через графический интерфейс. Новая технология все еще оставалась привилегией продвинутых пользователей.
Bitcoin Core 0.16–0.20 — застой и работа над ошибками
После бурного 2017-го, следующие три года стали периодом полного спокойствия, чтобы не сказать застоя. Это время разработчики посвятили устранению ошибок и оптимизации протокола.
Полная поддержка SegWit в ключевом клиенте Биткоина, включая графический интерфейс и создание адресов формата bech32, появилась только в феврале 2018 года в версии 0.16.
Кроме того, по умолчанию начали формироваться транзакции с возможностью замены до подтверждения (RBF). Стандартом стали и HD-кошельки на основе сид-фразы. Классический метод случайного создания индивидуальных ключей стал опцией, которую нужно включать вручную.
Вышедшая почти через полгода после базовой версия 0.16.3 содержала только исправление ранее обнаруженной уязвимости, позволявшей майнерам двойную трату транзакции, хотя и с риском потерять награду за блок.
Выход Bitcoin Core 0.17 в октябре тоже не стал революционным. В нем улучшено формирование транзакций с нескольких входов, особенно содержащих мелкие суммы. Также появилась возможность создавать в одном клиенте несколько независимых кошельков через графический интерфейс. Ранее это можно было сделать только из командной строки. Добавились в GUI и настройки «усечения» блокчейна (pruning), ранее доступные через редактирование файла конфигурации.
Стал возможен перевод «классического» кошелька в формат HD без ручного экспорта-импорта ключей, а также добавление в кошелек адресов без возможности исходящих транзакций (watch only).
В феврале 2019 года в Bitcoin Core 0.18.0 появилась описанная выше библиотека HWI для подключения аппаратных кошельков.
Вышедший через рекордные девять месяцев Bitcoin Core 0.19 принес только оптимизации уже действующих функций. Единственное заметное для рядовых пользователей изменение — это введение адресов bech32 по умолчанию для новых транзакций. Разумеется, полная поддержка старых форматов адресов сохранилась.
2020-й год также не был богат на события, не помог даже «домашний арест» программистов из-за коронавируса. Вышедший в июне релиз 0.20.0, хотя и ознаменовал новую круглую цифру, не произвел никаких волнений. Главное, что в нем появилось — это функция Asmap, направленная на противодействие масштабным DoS атакам на блокчейн. Теоретически Asmap позволяет изолировать даже крупного участника сети — биржу или майнинговый пул. Но на практике она еще ни разу не применялась.
Августовский релиз 0.20.1 добавил механизм борьбы с одиночными недобросовестными узлами сети, ограничивающий их возможности установкой «черной метки». Однако и снимается метка крайне просто — она исчезает после перезапуска узла и переподключения к сети.
Bitcoin Core 0.21 — пробуждение
Совершенно случайно выход кошелька Bitcoin Core 0.21 почти совпал с началом 2021 года. И, наконец, разработчики вышли из состояния летаргии и начали добавлять в кошелек новые возможности.
В частности, в этом релизе появились так называемые «дескрипторные кошельки. Они позволяют уйти от традиционного механизма иерархического формирования открытых и закрытых ключей из seed-фразы, дополняя их «дескрипторами» — мини-скриптами на встроенном языке Биткоина, совместимыми с любыми видами скриптов и адресов. Таким образом, устраняется проблема совместимости разных версий механизмов создания адресов из закрытых ключей, а также закладывается универсальная архитектура создания транзакций на основе скриптов. Полная реализация возможностей этой технологии прогнозируется только в 2023-м году, но по умолчанию дескрипторные кошельки уже используются в Bitcoin Core с весны 2022-го. Более подробно о возможностях использования дескрипторов можно почитать здесь.
Кроме того, в код кошелька для тестирования были внедрены подписи Шнорра и технология Taproot, но их активация произошла в следующей версии. Расчет комиссий был переведен на минимальную единицу — сатоши, тогда как раньше они рассчитывались в BTC с кучей нулей после запятой. Из других изменений можно отметить переход на поддержку новой версии протокола Tor и повышение безопасности работы с подключаемыми «легкими» клиентами.
Bitcoin Core [0. ]22.0 — ноль бесследно исчезает
Эта версия, вышедшая в сентябре 2021 года, стала еще одним ребрендингом, прошедшим незаметно для большей части сообщества. Из номера версии «неожиданно» исчез начальный ноль, символизирующий тестовый статус проекта. Вернее, ноль переместился в конец, как положено «взрослым» проектам, находящимся в полноценной эксплуатации.
Из существенных технических нововведений версии наиболее значимой стала полная поддержка технологии Taproot и подписей Шнорра. В перспективе они позволят не только повысить конфиденциальность транзакций, но и уменьшить как объем передаваемых данных, так и хранимой базы данных блокчейна. Впрочем, применение этих функций еще не было активировано, а только заложен механизм для их активации в будущем.
Кроме того, в Bitcoin Core 22.0 был включен протокол конфиденциальности I2P и новый механизм создания адресов bech32m, а также в очередной раз переработан расчет комиссий.
Bitcoin Core 23.0 — дескрипторы наступают
И, наконец, последняя актуальная версия на осень 2022 года — Bitcoin Core 23.0, вышедшая в апреле этого года. В ней пользователи получили возможность выбирать в графическом интерфейсе адреса bech32m на основе Taproot, хотя и не по умолчанию, так как их пока поддерживают не все кошельки и сервисы.
Но самое главное — дескрипторные кошельки, основанные на выполнении скриптов вместо классической генерации закрытого ключа псевдослучайным образом или из seed-фразы, стали основным механизмом создания адресов в Bitcoin Core. Впрочем, возможности этой технологии еще не раскрыты до конца.
Еще одна интересная возможность — ручная «заморозка» входящих транзакций, чтобы кошелек не тратил входы из них автоматически. Это может быть полезно, например, для отделения «чистых» монет, которые гарантированно пройдут все процедуры AML.
И, разумеется, в этой версии, как и в большинстве предыдущих, снова был переработан механизм расчета комиссий.
На этом история развития Bitcoin Core на момент публикации статьи пока заканчивается. Но разработчики ее непременно продолжат.