Спеціально зібрані нестандартні транзакції могли завантажувати вузол Bitcoin Core на кілька секунд кожна, і відправника при цьому не відключали, тож нападник мав спосіб затримувати поширення блоків. CVE-2025-46598 низького рівня виявив Antoine Poinsot, а у v30.0 проблему пом’якшили, скоротивши час перевірки в найгіршому випадку.
Блоки понад 1 ГБ могли переповнити перевірку розміру на 32-бітних вузлах Bitcoin Core й обвалити їх під час запису на диск, але лише у вигляді compact block і лише якщо жертва працює з -maxmempool понад 3 ГБ, маючи в мемпулі 1 ГБ транзакцій. Вразливість низького рівня CVE-2025-46597 знайшов Pieter Wuille; у 29.1 і 30.0 її закрило обмеження -maxmempool на 32-бітних системах.
Типові мінімальні ставки комісії знижено в Bitcoin Core 28.3: -blockmintxfee до 1 сатоші за квБ, -minrelaytxfee та -incrementalrelayfee до 100 сатоші за квБ. Ставки гаманця не змінилися, а дешевші транзакції можуть не поширюватися, поки нові значення не приживуться в мережі. Дозволи whitelist також більше не діють на вхідні onion-з’єднання (#33395).
FillBlock отримав два P2P-виправлення в Bitcoin Core 29.2: перевірку мутації witness (#32646) і перевірку на порожній заголовок перед викликом (#33296). Перевірки TRUC більше не застосовуються під час реорганізації (#33504), а getblock і getblockheader перестали повертати target вершини ланцюга (#33446).
Обмеження OP_RETURN у Bitcoin Core 30.0 фактично зникають: -datacarriersize типово дорівнює 100 000, а одна транзакція може мати кілька виходів із даними, хоча -datacarriersize=83 повертає старий ліміт. Типові ставки ретрансляції впали до 0,1 сатоші за вБ, кількість legacy-операцій із підписами обмежена 2500 на стандартну транзакцію, а нова команда bitcoin обгортає наявні виконувані файли.
Безумовне логування на диск у Bitcoin Core 29.1 обмежене 1 МіБ на годину для кожного місця в коді (#32604), а стандартні транзакції можуть містити не більш як 2500 legacy-операцій із підписами, що потенційно виконуються. Типові ставки ретрансляції знижено до 100 сатоші за квБ, а 32-бітні збірки обмежують -maxmempool до 500 МБ і -dbcache до 1 ГіБ.
Трохи більше половини змін у Bitcoin Core 28.2 стосуються збирання. Guix тепер нотаризує бандл застосунку для macOS і підписує всі бінарні файли для macOS та Windows (#31407), а depends отримав виправлення компіляції libevent на NetBSD (#31500) і freetype під cmake (#32693).
Тридцять один контриб’ютор Bitcoin Core підписав листа: програмне забезпечення вузлів не повинно відмовлятися ретранслювати транзакції зі стійким економічним попитом, які надійно потрапляють у блоки, адже користувачі й майнери здатні обійти такі фільтри. Автори наголошують, що не схвалюють нефінансове використання даних і що обирати ПЗ та політики можуть лише самі користувачі.
Роки безперервного addr-спаму могли переповнити 32-бітний ідентифікатор у менеджері адрес Bitcoin Core й обвалити вузол: це залишок атаки, яку вперше притлумило обмеження частоти у v22.0. Версія 29.0 переходить на 64-бітний ідентифікатор і закриває CVE-2024-52919 низького рівня. Виявив помилку Eugene Siegel, зміну вніс Martin Zumsande.
Підтримка UPnP зникла з Bitcoin Core 29.0; -natpmp тепер працює на вбудованій реалізації PCP і NAT-PMP замість libnatpmp. Ephemeral dust з’являється як нова політика, виправлення подвійного резервування ваги блока додає -blockreservedweight, а вузли просять відсутніх батьків орфанної транзакції в усіх пірів, що її оголосили. Версії 26.x і старші досягають кінця підтримки.
Якщо задано -port, Bitcoin Core 28.1 вираховує типовий onion-порт як цей порт плюс один, а не фіксує його на 8334 у mainnet, тож кілька локальних вузлів знову можуть працювати поруч без конфлікту під час запуску. Записи HiddenServicePort, додані вручну в torrc, можливо, доведеться змінити. У DecodeExtKey також очищаються секретні дані (#31166).
Пір, який оголошує блок і потім зависає, міг змусити вузол Bitcoin Core чекати до 10 хвилин, перш ніж звернутися деінде, а нападники могли повторювати цей трюк. CVE-2024-52922 середньої серйозності, про яку повідомив і яку виправив Greg Sanders, пом’якшено у v25.1 і v26.0: вони здатні одразу запитувати блок щонайбільше в 3 пірів compact block із високою пропускною здатністю.
Версія 27.2 Bitcoin Core усуває стан гонитви у виявленні самопідключень (#30394) і виправляє виклики FillPSBT, які помилково повертали complete=true (#30357). Потік завантаження блоків і планувальник тепер вимикаються в іншому порядку (#30435), а код збирається з miniupnpc 2.2.8 та GCC 15.
У Bitcoin Core до v25.0 мутовані блоки від одного піра могли стирати стан завантаження інших пірів, які оголосили той самий блок, і вузол забував compact block, який ще відновлював. Проблему помітив Suhas Daftuar, а #27608 обмежує кожного піра лише його власним станом. CVE-2024-52921 має середній рівень серйозності.
Вузли на Bitcoin Core до v25.0 можна було віддалено обвалити повторним повідомленням blocktxn для одного блока: спрацьовував assert, за яким FillBlock виконується лише раз. Колізія short-id не була потрібна, адже до того самого шляху приводило включення транзакцій, яких немає в merkle root блока. Цю помилку високого рівня, CVE-2024-35202, знайшов і виправив Niklas Gögge.
Сплеск мережевої активності на початку травня 2023 року, підсилений вузлами-шпигунами, сповільнив поширення блоків і транзакцій: сортування завеликих наборів inv-to-send забирало майже весь час потоку P2P. Проблему середнього рівня виправив у Bitcoin Core v25.0 #27610: транзакції, що зникли з мемпулу, викидаються раніше, а набори спорожняються тим швидше, чим більше вони ростуть.
Testnet4 (BIP94) з’являється в Bitcoin Core 28.0 разом з обмеженою пакетною ретрансляцією для пар 1-parent-1-child, стандартними транзакціями TRUC за BIP 431 і новим типом виходів Pay To Anchor. Параметр -mempoolfullrbf тепер типово дорівнює 1, а libbitcoinconsensus вилучено після оголошення застарілим у 27.0.
Ланцюжки заголовків із низькою складністю могли віддалено обвалювати вузли Bitcoin Core до v24.0.1, причому один спеціально зібраний ланцюжок годився проти будь-якого вузла мережі. Виправлення в #25717 змушує вузол перевіряти, чи має ланцюжок достатньо роботи, перш ніж його зберігати; заразом зникла потреба покладатися на чекпойнти проти відомих атак. Рівень серйозності: високий.
Спам повідомленнями addr міг обвалити вузол Bitcoin Core: 2^32 вставок в addrman переповнювали 32-бітний лічильник ID і запускали assert. Eugene Siegel повідомив про цю помилку високого рівня 2021 року, а v22.0 містить виправлення від Pieter Wuille.
Видаючи себе за UPnP-пристрій у локальній мережі, нападник міг засипати вузол Bitcoin Core роздутими відповідями M-SEARCH, доки тому не забракне пам’яті. Під загрозою були лише вузли, запущені з -miniupnp, оскільки типово ця бібліотека вимкнена. Помилку низького рівня виправлено у v22.0.