用語集 / ノードとソフトウェア
Signet
- Signetとは?
- Signetは、指定された署名者が署名したブロックだけを有効とするテストネットワークであり、これにより10分間隔のブロック生成が不安定にならず一定に保たれます。
BIP-325で規定されています。
Signetは、誰でも参加できるマイニングを犠牲にして予測可能性を得ています。Bitcoin Coreがバージョン0.21.0でこれを追加し、2021年1月にリリースされて以来、公開デフォルトのsignetはおよそ10分間隔でブロックを生成し続けています。ウォレット、ライトニングネットワークのチャネル、販売店の決済画面などをメインネットに似た条件で試したい場合は、このネットワークが適しています。
仕組み
Signetは、ビットコインの通常の有効性チェックにただ1つの要件を加えます。ブロックは有効な署名を伴わなければなりません。
Karl-Johan AlmとAnthony Townsが執筆したBIP325は、signetチャレンジを定義しています。これは、ブロックの解答が満たさなければならないビットコインスクリプトにすぎません。解答はコインベース取引内のブロックのSegWitコミットメントに添付されるため、ブロック形式は一切変わらず、既存のソフトウェアは変更なしにsignetのブロックを解析できます。プルーフ・オブ・ワークは依然として行われますが、難易度は低く設定されます。ブロックがいつ有効になるかを決めるのはハッシュレートではなく署名だからです。
チャレンジは通常のスクリプトであるため、単一の公開鍵からしきい値マルチシグまで、どのような形でもかまいません。公開デフォルトのsignet、すなわち追加の設定なしにsignetオプションを渡すだけで参加できるsignetは、この2名の著者が1-of-2マルチシグで運営しており、ポート38333で待ち受けています。アドレスはtestnetのプレフィックスを再利用するため、tb1で始まる文字列をすでに理解しているウォレットは、通常、まったく変更なしにsignetを扱えます。
誰でもプライベートなsignetを立ち上げることができます。カスタムのチャレンジスクリプトを渡すと、そのスクリプトからメッセージマジックが導出される別個のネットワークが作成されるため、2つのカスタムsignetが誤って互いに通信することはありません。これがsignetを他のあらゆる選択肢から区別する特徴です。誰の許可も求めず、マイニング機器も購入せずに、複数のマシンと実際の伝播遅延を備えた、本物の複数参加者のネットワークが得られます。
利用される場面
Signetは、新しいコンセンサス機能がメインネットに届く前に公開の場で試される場所です。
Taprootは、2021年11月のブロック709,632でメインネットに有効化されるはるか前からデフォルトのsignetで稼働していました。ウォレットがTaproot対応を数か月後ではなく有効化時に提供できた理由の大きな部分はここにあります。実装に至るあらゆる提案で同じパターンが繰り返されます。コードはまず、人々が低コストで壊せる場所で動くのです。
カスタムsignetには独自の用途も生まれています。Mutinynetは30秒ごとにブロックを生成する公開signetであり、ライトニングの開発者が勤務時間を承認待ちに費やさないように作られました。ほかにも特定のシナリオを練習するために存在するものがあります。署名鍵を持つ者は誰でも、必要に応じて意図的な再編成を起こし、ウォレットがそれにどう反応するかを観察できるからです。
ビットコインを購入する人にとって、signetは目に見えず、それでいて関係があります。フォーセットがコインを無償で配るため、このネットワーク上のものに価値はありませんが、Sparrow、Core、あるいはインストールするライトニングノードのリリースは、ほぼ確実にまずここを通されています。
Signet vs regtest
Signetは見知らぬ人が参加する共有ネットワークであり、regtestは自分のコンピューターの中だけに存在するチェーンです。regtestでは自分でコマンド1つでブロックをマイニングし、1秒で100回の承認を出現させることができます。signetでは誰もと同じように署名者を待ち、取引は自分が管理しないピアを通じて伝播し、手数料の見積もりはメインネットと同じように振る舞います。regtestは自分のコードが動くかどうかに答え、signetはそれがネットワークとの接触に耐えるかどうかに答えます。