Изменения в консенсусе и P2P ради SegWit затрагивают 1486 строк кода и ещё 3338 строк тестов. Испытания прошли путь от версии Pieter Wuille в сайдчейне Elements в 2015 году через segnet до обычной тестовой сети биткоина в мае 2016-го. Подписи Шнорра и MAST названы будущими обновлениями, которые SegWit упростит.
У майнеров есть время до блока 419328: софтфорк CSV закрепился на блоке 417312, после того как 1946 блоков из 2016 (96,53%) просигнализировали за BIP68, BIP112 и BIP113. Все майнинговые и резервные узлы должны работать на Bitcoin Core или Knots 0.12.1, а те, кто жёстко прописал версию блока, обязаны снять бит 0.
BIP9 позволяет майнерам сигнализировать о готовности сразу к 29 параллельным софтфоркам с помощью битов в заголовке блока. Предложение закрепляется, когда сигнал дают 95% блоков в окне из 2016 блоков, и активируется через один пересчёт сложности, а иначе проваливается по таймауту. В отличие от IsSuperMajority, механизм не делает орфаном блок без сигнала, если он соблюдает новые правила.
Пиры с ретрансляцией компактных блоков (BIP152) обмениваются наброском каждого нового блока: около 9 КБ на средний блок в 1 МБ плюс издержки на транзакции, которых нет у получателя. В живых экспериментах в высокоскоростном режиме с предзаполнением до 6 транзакций намного более 90% блоков распространялись без дополнительного запроса.
Сигнализация за софтфорк CSV стартует в полночь 1 мая 2016 года вместе с Bitcoin Core 0.12.1, первым развёртыванием через биты версии BIP9. В него входят BIP68, BIP112 и BIP113; OP_CHECKSEQUENCEVERIFY позволяет заморозить монеты на заданный срок после подтверждения, и от этого будет зависеть Lightning Network. Система оповещений p2p теперь по умолчанию выключена.
Marco Falke стал мейнтейнером Testing & QA в Bitcoin Core, объявил Wladimir van der Laan. Теперь он отвечает за слияние пул-реквестов в тестовый фреймворк: естественный шаг после года работы над юнит-тестами, покрытием и ревью чужого кода.
Об уязвимостях и новых релизах Bitcoin Core теперь сообщает отдельный список рассылки: подписка добровольная, и в нём только объявления. Пользователи просили способ получать лишь критические уведомления, а писем проект ожидает совсем мало.
Решение судоку 16×16 продали за 0,10 BTC в первом успешном Zero-Knowledge Contingent Payment в сети биткоина: его показали вживую на Financial Cryptography 2016 на Барбадосе. Продавцом был Sean Bowe из команды Zcash, который сделал почти всю инженерную работу. По протоколу данные переходят из рук в руки только при оплате, и третья сторона для арбитража не нужна.
OpenSSL больше не участвует в проверке подписей в Bitcoin Core 0.12.0: его заменила libsecp256k1, сократив время переиндексации и проверки новых блоков более чем вдвое. Мемпул по умолчанию ограничен 300 МБ, и это закрывает атакующим способ ронять узлы с малым объёмом ОЗУ. Появились также opt-in Replace-by-Fee (BIP 125) и -maxuploadtarget для ограничения исходящего трафика.
Сайт, где впервые появилась статья о биткоине, не связан с проектом Bitcoin Core: у него есть собственный официальный сайт. Разработка ведётся в IRC, на GitHub и в списке рассылки bitcoin-dev. За другие форумы проект ответственности не несёт и просит участников сообщества не устраивать организованных набегов и DoS-атак.
Сторонняя изменяемость (malleability) уходит в прошлое для транзакций, все входы которых тратят SegWit-выходы: подписи переносятся в witness, который больше не влияет на txid. Выигрывают и авторы кошельков, и Lightning Network. Хеширование подписей становится линейным, каждый байт хешируется максимум дважды; при старой схеме проверка одного блока занимала 25 секунд.
Разработчики теперь могут опробовать Segregated Witness в отдельной сети: достаточно собрать ветку segwit и добавить -segnet к bitcoind и bitcoin-cli. Ledger, Trezor, Electrum и Bitgo пообещали поддержку SegWit, а mSIGNA и Green Address предлагают ранние превью.
Видео показывает активность коммитов в репозитории Bitcoin Core за 2015 год, когда вышли 2 мажорные версии и 5 поддерживающих релизов, а также активировались два софтфорка: BIP66 и BIP65, добавивший CHECKLOCKTIMEVERIFY. Рецензентов, тестировщиков и переводчиков данные коммитов не отражают, напоминает проект.
Правила консенсуса не решает команда Bitcoin Core, заявляют её контрибьюторы: их решают пользователи, выбирая, какой софт запускать, и потому автообновления в программе нет. Авторы предпочитают софтфорки, оставляя хардфорки для редких случаев почти всеобщего согласия, а путь к очень большим масштабам видят в дополнительных слоях поверх протокола.
Блоки при новом лимите стоимости SegWit могут достигать чуть менее 4 МБ, но по расчётам Anthony Towns блок из P2PKH-транзакций с одной подписью получится около 1,6 МБ, а из мультиподписей 2 из 2 около 2,0 МБ. По предварительному графику FAQ SegWit развернётся в 0.13.1 в октябре 2016 года, а в 2017-м последуют weak blocks, IBLT или Lightning.
Дорожную карту по пропускной способности подписали 57 человек, в том числе Pieter Wuille, Gregory Maxwell и Wladimir J. van der Laan: они считают её лучшим продолжением своей работы над масштабируемостью в Bitcoin Core. Список открыт для новых подписей.
Дорожная карта Gregory Maxwell, отправленная в список рассылки bitcoin-dev по итогам Scaling Bitcoin в Гонконге, опирается на libsecp256k1, versionbits из BIP9 и Segregated Witness от Pieter Wuille. Он сообщает, что ConnectTip в 0.12 работает в 7 раз быстрее, а SegWit описывает как софтфорк, который выносит подписи за пределы нынешнего лимита размера блока и в худшем случае равен увеличению до 4 МБ.
Технические контрибьюторы, среди которых Wladimir J. van der Laan и Pieter Wuille, подписали письмо с просьбой к сообществу не выносить поспешных суждений о предложениях по масштабированию. Вместо этого они указывают на процесс консенсуса и два открытых воркшопа Scaling Bitcoin: в Монреале 12–13 сентября и в Гонконге 6–7 декабря.