Глоссарий / Узлы и ПО
Signet
- Что такое Signet?
- Signet представляет собой тестовую сеть, блоки которой действительны только при наличии подписи назначенного подписанта, что поддерживает ровный график блоков по десять минут вместо хаотичного.
Определено в BIP-325.
Signet отказывается от майнинга без разрешения ради предсказуемости. Bitcoin Core добавил ее в версии 0.21.0, выпущенной в январе 2021 года, и с тех пор публичная Signet по умолчанию выдает блоки примерно с десятиминутным ритмом. Если вы хотите опробовать кошелек, канал Lightning или страницу оплаты у продавца в условиях, похожих на mainnet, вам нужна именно эта сеть.
Как это работает
Signet добавляет к обычным проверкам действительности биткоина ровно одно требование: блок должен нести действительную подпись.
BIP325, написанный Karl-Johan Alm и Anthony Towns, определяет задание Signet (signet challenge), то есть обычный скрипт биткоина, которому должно удовлетворять решение блока. Решение прикрепляется к segwit-обязательству блока внутри транзакции coinbase, поэтому формат блока не меняется и существующее программное обеспечение может разобрать блок Signet без изменений. Доказательство работы по-прежнему выполняется, но при низкой сложности, потому что момент, когда блок считается, определяет подпись, а не хешрейт.
Поскольку задание представляет собой обычный скрипт, им может быть что угодно, от одного публичного ключа до пороговой мультиподписи. Публичной Signet по умолчанию, к которой вы подключаетесь, передав опцию signet без дальнейшей настройки, управляют эти два автора на основе мультиподписи 1-из-2, и она слушает порт 38333. Адреса используют префиксы testnet, поэтому кошелек, который уже понимает строки tb1, обычно работает с Signet без каких-либо изменений.
Любой может запустить частную Signet. Передача собственного скрипта задания создает отдельную сеть, магические байты сообщений которой выводятся из этого скрипта, а значит, две собственные Signet не могут случайно связаться друг с другом. Именно эта особенность отличает Signet от любого другого варианта: вы получаете настоящую сеть с множеством участников, несколькими машинами и реальными задержками распространения, не спрашивая ни у кого разрешения и не покупая майнинговое оборудование.
Где это видно
Signet является местом, где новые функции консенсуса публично проверяются до того, как их увидит mainnet.
Taproot работал в Signet по умолчанию задолго до активации в mainnet на блоке 709 632 в ноябре 2021 года, и во многом поэтому кошельки смогли выпустить поддержку Taproot к моменту активации, а не через месяцы. Та же схема повторяется с каждым предложением, доходящим до реализации: код сначала работает там, где люди могут дешево его сломать.
Собственные Signet нашли и свои применения. Mutinynet является публичной Signet, которая выдает блок каждые 30 секунд и создана для того, чтобы разработчики Lightning не проводили рабочий день в ожидании подтверждений. Другие существуют для отработки конкретных сценариев, поскольку тот, у кого есть ключ подписи, может также по желанию устроить намеренную реорганизацию и посмотреть, как на нее реагируют кошельки.
Для того, кто покупает биткоин, Signet невидима и при этом важна. Краны раздают монеты бесплатно, поэтому ничто в этой сети не имеет ценности, но выпуск Sparrow, Core или узла Lightning, который вы устанавливаете, почти наверняка сначала прошел через нее.
Signet vs regtest
Signet является общей сетью, в которой есть незнакомые вам участники; regtest является цепочкой, существующей только внутри вашего собственного компьютера. В regtest вы сами майните блоки одной командой и можете создать сто подтверждений за секунду. В Signet вы ждете подписантов, как и все остальные, ваши транзакции распространяются через пиров, которых вы не контролируете, а оценка комиссии ведет себя так же, как в mainnet. Regtest отвечает на вопрос, работает ли ваш код; Signet отвечает на вопрос, выдерживает ли он контакт с сетью.