Equivocationとは何か?
Equivocationは、ブロックチェーンプロトコルの参加者が同じラウンドや同一の高さに対して矛盾するメッセージに署名して送信する行為です。例えば同時に二つの異なる提案を支持する場合が該当します。例えるならデジタルの二重発言で、同じ夜に二つのグループチャットに別々の集合場所を伝え、誰も照合しないことを期待するようなものです。
「Equivocationは単なるランダムなネットワークの不具合だ」 そうではありません。実際に同じスロットや高さで矛盾する署名を作るには署名者が必要で、通常は バリデーター の一人が関与します。
Equivocationの仕組み
ここではわかりやすい簡単な手順を示します。
- ステップ1: バリデーターがラウンドで提案または投票する予定になる。
- ステップ2: 1つのメッセージの代わりに、同じ高さで二つの異なる提案または投票に署名し、それぞれ別の ブロック を参照する。
- ステップ3: ピアがこれらのメッセージを広め、誰かが同じ鍵と同じラウンドに紐づく両方の署名を目にする。
- ステップ4: その人が重複署名を示す証拠を作成する。
- ステップ5: ネットワークは証拠を記録し、罰則を執行することがあり、報酬や評価が取り消されることが多い。
以上が全工程です。
なぜEquivocationが重要か
合意形成は共同作業なので、二重発言は共同作業を台無しにします。
- 利点: Equivocationを早期に検出することでチェーンの最終確定と資産を混乱したロールバックから守ることができる。
- 視点: 現代のプルーフ・オブ・ステークシステムでは、コンセンサスの仕組みレベルでそれを検出し罰するルールが組み込まれている。
- 関連: ステーキングの文書、バリデーター設定ガイド、ネットワークの障害後のインシデント報告などで言及されることがある。
ノードを運用する場合は、アクティブな署名者を一つだけにし、二重署名保護を有効にしてください。Equivocationは スラッシング を引き起こす可能性があるため、鍵を分け、セントリー構成を行い、慎重なフェイルオーバーを用意する価値があります。
Equivocationの主な特徴
特徴は次の通り:
- 重複: 同じバリデーター鍵が一つのラウンドまたは高さに対して二つの矛盾するメッセージに署名する。
- 検出可能: 証拠は署名とメタデータを比較することで証明できる。
- 罰則対象: プロトコル規則は報酬の削減、ステークの削除、参加停止を行うことが多い。
バリエーション
プロトコルごとに様々な形が現れる:
- 提案: 同一の高さで二つの提案に署名する。
- 投票: 同一ラウンドで別々の親ブロックに対して二つの票を投じる。
- ガジェット: CasperやGrandpaのような最終化ガジェットで矛盾する投票が発生する場合。
- バックアップ: 古い鍵のバックアップから重複ノードを動かしてしまい、誤って二重署名が発生する。
多くのEquivocation事象は予防可能です。同じ鍵で二つのインスタンスを動かすと、意図的でなくても簡単にフラグが立つ原因になります。
例
あるバリデーターが高さ12,345に対して異なる二つの提案に署名し、それぞれを別のピアに送る。後で署名を比較するとEquivocationが明らかになる。
豆知識
この語は論理学や修辞学に由来し、ひとつの用語を二つの意味で使い責任を回避することを指します。暗号業界ではその意味合いを受けて暗号学的な問題として使われるようになりました。
まとめ
一言で言えば:Equivocationは二重署名で、ネットワークがそれを嫌うのは当然です。
