Любой кошелек для Биткоина (Bitcoin Wallet, он же клиент сети, он же «биткоин-бумажник») — это программное обеспечение для работы с блокчейном Биткоина. В кошельке проводятся все операции с BTC. Здесь можно хранить биткоины, отправлять и получать. Некоторые кошельки предлагают расширенные функции — например, встроенный обменник, мониторинг биржевых курсов, анализ портфеля и прочие.
Криптовалютные кошельки отличаются друг от друга возможностями и сферой применения. Выбор кошельков очень широк, на рынке присутствуют сотни программ и устройств для работы с биткоином и другими криптовалютами. Однако Bitcoin Core — это особенная программа.
Что такое Bitcoin Core
Практически в каждом блокчейне есть «эталонный кошелек», который создает главная команда разработчиков протокола. Для Биткоина такая программа называется Bitcoin Core. Это полный или, как иногда говорят «тяжелый», «толстый» кошелек, способный хранить всю историю блокчейна и не полагаться на сторонние сервисы. Он требователен к ресурсам компьютера, но обладает самыми широкими возможностями для работы с блокчейном Биткоина. Поддержки других криптовалют в нем нет и не планируется.
Bitcoin Core — это «официальный клиент сети», наследующий наработки первого кошелька Сатоши (Сатоси) Накамото. Он разрабатывается и продвигается основной командой разработчиков Биткоина (core developers). Именно они создают, принимают и утверждают предложения по улучшению (BIP, Bitcoin Improvement Proposal), а также ведут главный репозиторий Биткоина на GitHub.
Уходя от активной разработки, создатель Биткоина делегировал право решений по изменению кода основного кошелька одному из первых активистов технологии, Гэвину Андресену (Gavin Andresen). Андресен затем, в 2014 году, передал его Владимиру ван дер Лаану (Wladimir J. van der Laan), главному разработчику Bitcoin-qt, как тогда назывался Bitcoin Core. С тех пор ван дер Лаан остается «хранителем ключей» главного репозитория Биткоина, подписывает и публикует новые версии основного клиента.
Bitcoin Core является системообразующим клиентом для всей сети Биткоина. Как правило, именно в Bitcoin Core появляются новые технологии, которые затем вводятся другими кошельками. Скачать последнюю версию и познакомиться со всеми возможностями вы можете на официальном сайте разработчиков.
У Bitcoin Core есть функции, которые интересны продвинутым пользователям и крупным проектам — например, точная настройка транзакционных комиссий, регулирование занимаемого кошельком места на диске, работа через API, создание и подпись нестандартных транзакций с внедренными скриптами плюс многое другое. Управлять Bitcoin Core можно не только из графического интерфейса, но и, например, из командной строки.
Кошельки бирж, майнинговых пулов и других сервисов — это, обычно, просто доработанные версии Bitcoin Core.
Когда нужен Bitcoin Core
Bitcoin Core предпочтителен для тех, кто хочет быть уверен в максимально широком контроле над своими монетами и транзакциями. Только установка полного кошелька дает возможность стать полноценным членом сообщества Биткоина и взять на себя частичку груза поддержки глобальной децентрализованной сети.
Объем блокчейна продолжает расти, а вместе с ним и требования к оборудованию. На начало 2026 года хранение всего блокчейна обходится примерно в 800 ГБ на жестком диске, забирая заметную часть вычислительных ресурсов компьютера.
Но самое сложное — это первичная синхронизация, то есть загрузка и обработка всей истории блокчейна. Она требует намного больше ресурсов. На слабом процессоре и медленном диске она может продолжаться больше недели. Разработчики много раз перерабатывали механизм синхронизации для ускорения, но никакая оптимизация кода не спасет от ежедневного добавления сотен тысяч новых транзакций. Процесс синхронизации выглядит следующим образом:

Сейчас Bitcoin Core — кошелек, который загружает на компьютер всю цепочку блоков (блокчейн). Впрочем, он предоставляет возможность усечения хранимой части блокчейна, так как нынешние требования к дисковому пространству и скорости накопителя доступны далеко не для всех.
При установке полного клиента ваш компьютер становится «несущей частью сети», храня одну из многих тысяч копий блокчейна, синхронизованную с другими узлами. Клиент помогает проверять и распространять транзакции других пользователей. А это означает, что вы тем самым предпринимаете базовые и необходимые меры по обеспечению защиты и безопасности ваших биткоинов и сети в целом. Поэтому поддержку Bitcoin Core можно рассматривать не только как обеспечение своей финансовой безопасности, но и как волонтерство.
Безопасность и стабильная работа вашего кошелька главным образом зависят от двух компонентов: актуальной версии клиента и безопасности хранения ключей доступа к кошельку. Локально хранят закрытые ключи многие программы-клиенты, устанавливаемые на компьютеры или ноутбуки. А вот отдельные онлайн-кошельки и некоторые мобильные оставляют ключи на сервисе, который разработал программу.
Клиент 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 — Владимир ван дер Лаан и Кори Филдс (Cory Fields) — перешли под опеку грантовой программы развития цифровых технологий Массачусетского Технологического института (MIT).
С другой стороны, сильная команда программистов и криптографов сформировалась вокруг компании Blockstream, основанной Адамом Бэком (Adam Back), автором концепции механизма консенсуса Proof-of-Work. Компания получает финансирование венчурных фондов и частных инвесторов, а также зарабатывает на майнинге. Это обеспечило финансовую стабильность разработки, но и принесло опасность для децентрализованной природы проекта.
Из-за сильного влияния Blockstream, особенно проявившегося во время конфликта из-за размера блока в 2016-2017 годах, недоброжелатели переименовывали Bitcoin Core в Blockstream Core. В результате этого противостояния откололся блокчейн Bitcoin Cash, а от работы над Биткоином отстранились Гэвин Андресен, Джефф Гарзик (Jeff Garzik) и еще несколько известных личностей.
Со временем конфликт угас, но влияние Blockstream по-прежнему велико, хотя вклад компании в развитие Биткоина не следует недооценивать. Фактически, внедрение SegWit, Taproot и частично Lightning Network — это заслуга команды Blockstream.
Основы безопасности децентрализованной сети
Разработчик Биткоина Владимир Ван дер Лаан видит основной внутренний конфликт безопасности в том, что кошелек, как узел (нода) распределенной сети, должен быть постоянно к ней подключен, обеспечивая стабильную обработку транзакций через p2p-подключения с другими узлами. С другой стороны, в целях безопасности он должен как можно меньше времени находиться онлайн. Частично этот конфликт решается аппаратными и программными средствами, но в конечном итоге безопасность зависит от владельца кошелька и его решений.
В 2014 году ван дер Лаан писал:
«В первые годы Bitcoin Core был невероятно важен, разработчики должны были поддерживать инфраструктуру узлов и исправлять баги в любое время дня и ночи. Но для того, чтобы Биткоин мог стать глобальной распределенной сетью, разработчикам надо мыслить шире. В речи на Bitcoin Conference 2014 Гэвин [Адресен] отметил важность диверсификации. Он говорил об альтернативных реализациях полных узлов и даже сказал, что чем их больше тем лучше. Хотя моя работа — поддерживать разработку Bitcoin Core, я согласен с ним».
Стремления разработчика в полной мере не оправдались. Сегодня в сети Биткоин множество популярных клиентов работает на уровне «легких», то есть не хранят блокчейн целиком.
Официальным хранилищем кода Bitcoin Core уже много лет остается репозиторий на Github. Несмотря на открытый исходный код и возможность участия в разработке независимо от места жительства, активную техническую поддержку клиента и внесение изменений в репозиторий осуществляет ограниченное количество людей.
Другие разработчики могут создавать пулл-реквесты и просить о включении изменений в основную ветвь проекта. Чтобы предложить свою идею, не обязательно быть программистом. Обсудить развитие Биткоина и внести свои предложения можно на популярных форумах и в соцсетях, либо напрямую выйти на разработчиков.
Объединение усилий всего сообщества необходимо не только для ускорения нововведений, но в большей степени тогда, когда речь идет о тестировании наиболее важных, сложных и критически необходимых компонентов.
Аппаратное усиление безопасности
Долгое время для пользователей, которым безопасность важнее остального, единственной возможностью, кроме хранения кошелька на съемном устройстве в офлайне, был Armory — дополнение к Bitcoin Core. Этот кошелек при использовании функции Armory Offline Wallets хранил ключи на USB или бумажном носителе, не требуя онлайн-подключения, но при этом сохраняя все транзакции пользователя.
С появлением аппаратных кошельков Armory потерял актуальность из-за слишком сложной схемы работы. Последняя версия этой надстройки вышла в 2016 году. Теперь держателям BTC проще использовать любой из совместимых аппаратных кошельков.
Большинство популярных аппаратных кошельков уже поддерживаются Bitcoin Core. Они хранят закрытые ключи для подписи исходящих транзакций и их можно подключать только непосредственно перед отправкой. Таким образом выполняется ключевое условие безопасности кошелька.
История развития Bitcoin Core на ранних этапах
В сентябре 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 года возникла проблема совместимости версий, которая, впрочем, в скором времени разрешилась усилиями разработчиков.
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 внесла изменения в механизм учета комиссий майнерами, сделав распространенным систему Child Pays for Parent (CPFP, «Ребенок платит за родителя»). Также разработчики оптимизировали сетевой трафик в процессе ретрансляции блоков с помощью функции Compact Blocks (компактные блоки, BIP-152).
Но, пожалуй, самое важное нововведение этой версии — возможность формирования ключей на основе иерархически детерминированной (HD) генерации.
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 он рассчитывается исходя из «веса транзакций» и отделенного от них массива подписей. Фактический лимит размера блока при этом увеличился в два-четыре раза, в зависимости от параметров содержащихся там транзакций. Что интересно, даже в этом релизе не было реализовано создание 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 года. Разработчики вышли из состояния летаргии и начали добавлять в кошелек новые возможности. В этом релизе появились так называемые «дескрипторные кошельки». Возможности ПО дополнились «дескрипторами» — мини-скриптами на встроенном языке Биткоина, совместимыми с любыми видами скриптов и адресов. Таким образом, устранилась проблема совместимости разных версий механизмов создания адресов.
Кроме того, в код кошелька для тестирования были внедрены подписи Шнорра и технология Taproot, хотя их активация произошла в следующей версии. Расчет комиссий был переведен на минимальную единицу — сатоши. До сих пор они рассчитывались в BTC с кучей нулей после запятой. Из других изменений можно отметить переход на поддержку новых версий отдельных протоколов и повышение безопасности работы с подключаемыми легкими клиентами.
Bitcoin Core [0. ]22.0 — ноль бесследно исчезает
Эта версия, вышедшая в сентябре 2021 года, стала еще одним ребрендингом, прошедшим незаметно для большей части сообщества. Из номера версии неожиданно исчез начальный ноль, символизирующий тестовый статус проекта. Вернее, ноль переместился в конец, как положено «взрослым проектам», находящимся в полноценной эксплуатации.
Из существенных технических нововведений версии наиболее значимой стала полная поддержка технологии Taproot и подписей Шнорра.
Кроме того, в Bitcoin Core 22.0 был включен протокол конфиденциальности I2P и новый механизм создания адресов bech32m, а также в очередной раз переработан расчет комиссий.
Bitcoin Core 23.0 — дескрипторы наступают
Версия 2022 года Bitcoin Core 23.0 дала пользователям возможность выбирать в графическом интерфейсе адреса bech32m на основе Taproot — хотя и не по умолчанию, так как их пока поддерживают не все кошельки и сервисы. Но самое главное — дескрипторные кошельки, основанные на выполнении скриптов, стали основным механизмом создания адресов в Bitcoin Core.
Еще одна интересная возможность: ручная заморозка входящих транзакций, чтобы кошелек не тратил входы из них автоматически. Это может быть полезно, например, для отделения «чистых монет», которые гарантированно пройдут все процедуры AML.
И, разумеется, в этой версии, как и в большинстве предыдущих, снова был переработан механизм расчета комиссий.
Bitcoin Core 24.0.1–25.2 — проблемное начало
Версия 24.0 оказалась неудачной: из-за обнаруженных в последний момент проблем релиз так и не был официально опубликован. Фактическим выпуском стала версия 24.0.1, которая задала тон всей ветке.
Ключевым нововведением стала опциональная политика full-RBF (full Replace-By-Fee). Для этого был добавлен параметр mempoolfullrbf, по умолчанию отключенный и сохраняющий прежнюю модель поведения. При этом параметр opt-in RBF стал включен по умолчанию. Параллельно был переработан механизм первичной синхронизации заголовков блоков: добавлена стадия предварительной проверки (presync).Это сделало запуск новых узлов более защищенным, хотя и потенциально более медленным.
В этой же версии реализована ограниченная поддержка Miniscript — специального языка для наглядного и безопасного описания правил, по которым биткоины могут быть потрачены. В 24.0.1 поддержка была ограничена watch-only-кошельками, позволяя импортировать и анализировать дескрипторы на базе Miniscript без возможности создания или подписания таких скриптов. Несмотря на ограниченный функционал, обновление заложило основу для более простой и понятной работы со сложными условиями расходования средств в будущем.
Также в Bitcoin Core 24.0.1 появился экспериментальный RPC-метод migratewallet, который позволяет переносить классические кошельки в дескрипторный формат.
В Bitcoin Core 25.0 добавлена поддержка non-witness транзакций размером 65 байт и более, расширив возможности работы с небольшими транзакциями и повысив защиту от уязвимости CVE-2017-12842. Также появились новые RPC-команды scanblocks для быстрого рескана кошельков. Помимо этого была расширена поддержка Miniscript.
Параметр -blocksonly снизил значение памяти для мемпула по умолчанию до 5 Мб (вместо 300 Мб ранее). В остальном проводилась работа над ошибками —исправлялись некоторые баги прошлых релизов, включая проблемы, связанные со стабильностью работы на macOS.
Bitcoin Core 26.0–27.2 — работа над стабильностью
Ветку 26.0-26.2 можно охарактеризовать как период закрепления дескрипторных кошельков и работой над v2 transport protocol (BIP324). Этот протокол шифрует соединения между нодами, снижая риск атак, связанных с подменой или вмешательством в транзакции. По умолчанию он отключен, но при включении через параметр -v2transport протокол будет согласовываться для каждого соединения с другими нодами, которые его поддерживают. При этом протокол v1 остается полностью совместимым и продолжает использоваться.
Также была добавлена функция loadtxoutset, позволяющая ускорять синхронизацию за счет UTXO-снимка.
С версией 27.0 протокол v2 стал включен по умолчанию, помимо этого введена функция CoinGrinder, направленная на снижение веса транзакции за счет оптимального набора входов из UTXO. Для тестовых сетей появилась политика TRUC (v3-транзакции), развитие которой произойдет в последующих релизах. Продолжилась работа по исправлению багов и обеспечению стабильности функционирования клиента.
Bitcoin Core 28.0–29.2 — череда оптимизаций
Ветка нововведений 28.0–28.3 стала логическим продолжением релизов 26–27 версий: некоторые функции, которые раньше считались экспериментальными, перешли в рабочее состояние «по умолчанию».
Главным изменением стало включение TRUC-транзакций (v3 policy) в стандартную практику, став важным шагом к более предсказуемой работе комиссионных механизмов.
Получила развитие технология AssumeUTXO с вышеупомянутой функцией loadtxoutset: на высоте блоков 840 000 были добавлены недостающие mainnet-параметры. Иначе говоря, ускоренная синхронизация узла по UTXO-снимку стала официально поддерживаемым сценарием.
В целом продолжалось развитие направления дескрипторных кошельков, устранение багов и уязвимостей прошлых релизов: нововведенные функции и параметры требовали проведения работы над ошибками.
В новой ветке обновлений 29.0-29.2 основной акцент сместился на сеть, мемпул и стабильность ноды. В очередной раз проведена работа с протоколами: убрали поддержку старого UPnP и улучшили работу с отдельными решениями, направленными на безопасность. Также в обновлении появился концепт ephemeral dust (новый способ оптимизировать работу с «криптопылью»).
Bitcoin Core 30.0–30.2 — устранение уязвимости и OP_Return
Версии программы с 30.0 по 30.2 ознаменовались окончательным утверждением дескрипторных кошельков. Помимо этого, наблюдался накал страстей вокруг OP_Return. После ожесточенных споров (по итогам которых далеко не все в сообществе остались довольны), разработчики решили увеличить лимит OP_RETURN (шаблон скрипта, позволяющий записывать данные в блокчейн) до 100 000 байт, а также позволить использовать несколько таких выходов в транзакции. Подобная мера открывает возможности для нефинансовых использований блокчейна (не по его прямому назначению), что вызвало понятное недовольство у отдельных биткоин-максималистов.
В истории с кошельками стоит отметить, что версии 30.0 и 30.1 содержали уязвимость при переходе со старых форматов на новый. Ошибка при миграции могла привести к удалению некоторых файлов пользователя. Впрочем, релиз 30.2 позволил исправить этот баг.
Традиционно, как и в прошлых релизах, проведена работа над оптимизацией и устранением противоречий с прошлыми версиями.
История развития Bitcoin Core продолжается. Этот материал будет дополняться по мере выхода новых версий этого официального кошелька, а точнее, главного официального ПО Биткоина.

