Продолжается обсуждение TCP hole punching, призванного сделать домашние ноды за роутерами доступными извне. Также рассматривается черновик BIP о стандартизации политик расходования, применяемых косайнерами при эмуляции covenants.
Разбор выпуска #429 начинается с Bitcoin Core #36665, #36667 и #36669 и обновлённой политики безопасности; к ведущим Optech присоединились Greg Sanders, Antoine Poinsot, Elias Rohrer, Oleksandr Kurbatov и Nishant Bansal. Дальше идут многосторонние silent payments, раскрытие DoS-уязвимости в Core Lightning и Eclair 0.14.6. Расшифровки пока нет.
Анонс канала, где на обоих концах указан один и тот же узел, мог ронять Core Lightning версий с 25.02 по 26.04 при каждом перезапуске, а атакующему это стоило лишь ончейн-комиссий; исправление вошло в 26.04.1. Ещё в выпуске #429 — протокол Oleksandr Kurbatov для многосторонних входов silent payments и ускоренные корректирующие релизы Bitcoin Core при легко обнаруживаемых багах.
Притворившись, что не поддерживает пинги BIP 31, вредоносный пир мог избежать отключения через 20 минут и намеренно медленно читать данные: очередь отправки узла росла до 2 МБ в час на каждого входящего пира и до 5 МБ на исходящего. CVE-2026-117349 средней опасности закрывает #36667 в Bitcoin Core 32.1, 31.2, 30.4 и 29.5; узлы с -blocksonly были уязвимы гораздо меньше.
Мониторинг исключений сокетов в Bitcoin Core 29.5 теперь работает одинаково в poll() и select() (#36665), а для пиров с приостановленной отправкой введён обязательный таймаут (#36667). Позиции во flatfile перешли на 64-битные целые (#36669), для адресов от сидов узлы предполагают поддержку v2transport, один DNS-сид удалён.
Майнер мог раздуть undo-файл Bitcoin Core сверх 4 ГиБ: 32-битные позиции переполнялись, данные портились, и при подходящей реорганизации узел останавливался. На Windows и 32-битных системах сбой наступал уже на 2 ГиБ и без реорганизации. Опасность CVE-2026-117346 низкая: понадобились бы блоки всей сети примерно за месяц. Версии 32.1, 31.2, 30.4 и 29.5 исправляют 64-битные системы, а 32-битные узлы и хранение блоков на FAT32 остаются под угрозой.
Подключённый пир мог обрушить узел на Windows, macOS и BSD, отправляя срочные данные TCP: они проходили мимо приостановленного чтения в бэкенде select(), и память расходовалась без ограничений (CVE-2026-117350). Узлы на Linux используют poll() и не затронуты. Баг средней опасности нашло LLM-сканирование в рамках Project Loupe, исправления вошли в Bitcoin Core 32.1, 31.2, 30.4 и 29.5.
Вслед за BIP 323 в Bitcoin Core 30.4 биты 5–28 из BIP 9 перестали считаться сигналами софтфорков, поэтому блоки с ними не вызывают предупреждений о неизвестном развёртывании (#34779). В сетевой части появился обязательный таймаут для пиров с приостановленной отправкой (#36667), а позиции во flatfile теперь хранятся в 64-битных целых (#36669).
Приватная отправка в Bitcoin Core 31.2 получила потолок: в очереди транзакций, которые ещё не вернулись из сети, может быть не больше 10 000 записей. Когда она заполнена, новые отправки отклоняются, и освобождать её приходится вызовом abortprivatebroadcast (#35406). Биты версии 5–28 по BIP 323 больше не считаются сигналами софтфорков.
Bitcoin Core 32.1 устраняет риск утечки IP-адреса отправителя при приватной отправке: после неудачного соединения v2 повторная попытка по v1 могла идти напрямую, минуя Tor. Значение -maxconnections по умолчанию выросло со 125 до 200, а исходящая ретрансляция транзакций ограничивается теперь общей очередью, а не отдельно для каждого пира.