はじめに
今回は、「信頼されたセットアップ」に対するEthereumの具体的な解決策について、見ていきたいと思います。
ブロックチェーンにおける「信頼されたセットアップ」は、特定の暗号化アルゴリズム(通常はゼロ知識証明システム)を安全に機能させるための初期設定プロセスを指します。
この初期設定プロセスは、一部の暗号システムが正常に動作するために必要な「公開パラメータ」または「構造パラメータ」を生成します。
「信頼されたセットアップ」の問題は、そのプロセス中に「毒」を生成する可能性があるところにあります。
具体的には、このセットアッププロセスで作成された秘密鍵(または「トラップドア」)が保管されずに完全に破棄されることが重要です。
なぜなら、その秘密鍵が悪用されると、システム全体のセキュリティが危険にさらされ、不正なトランザクションが有効と見なされる可能性があるからです。
そのために、用いられるのが、今回のセレモニーです。
KZGセレモニーとは
こちらの説明はEthereumの公式ドキュメントを翻訳・編集したものです。
KZGセレモニーとは、Ethereumコミュニティの多くの人々が一緒に秘密のランダムな数字の文字列を生成し、それを用いてデータを検証するための方法です。
この数字の文字列は誰も知らない、そして再生産することができない、ということが非常に重要です。
これを保証するために、セレモニーに参加する各人は前の参加者から文字列を受け取ります。
翻訳者注
実際に試したところ、参加者としては前の参加者から文字列を受け取っているという感覚はありませんでした。
その後、新しいランダムな値(例えば、ブラウザにマウスの動きを測定させることによって)を作り出し、それを前の値と混ぜ合わせます。
翻訳者注
下のように、マウスを動かした量に応じて、緑色の部分が溜まっていく仕組みでした。
それから、その値を次の参加者に送り、自身のローカルマシンからはそれを消去します。
このセレモニーにおいて一人でも誠実にこれを行えば、最終的な値は攻撃者には知られることはありません。
EIP-4844 KZGセレモニーは公開されており、数万人の人々が自分自身のエントロピーを加えるために参加しました。
翻訳者注
この記事作成時点では、11万以上の貢献者が存在していました。
このセレモニーが損なわれるためには、参加者全員が積極的に不誠実である必要があります。
参加者から見れば、自分が誠実であったことを知っていれば、他の誰も信用する必要はありません。
なぜなら、彼ら自身がセレモニーを安全にしたことを知っているからです。
(彼らは個々に1-out-of-Nの誠実な参加者の要求を満たしています)。
実際にやってみよう!
では、以下のEthereumのセレモニーのページからやってみましょう。
https://ceremony.ethereum.org/
①「Begin」ボタンから始めます。
②次にエントリーです。
ここでは秘密の情報を入れます。
※この情報は最終的に破棄します。
③マウスを任意に動かし、その軌跡をキャプチャします。
緑色が最後まで回ると完了です。
ここで何をしているかというと、ブラウザがバックグラウンドでランダムな値を作成しているようです。
④続いて、署名を行います。
⑤以下のページに飛ばされるので、内容を確認の上サインインを行います。
⑥以下のように、サインインを行います。
⑦シーケンサーに受け入れるまで待機します。
⑧完了!
私の場合、1時間程度待ったところ、以下のように成功しました。
「View your contribution」をクリックすると、詳細を確認することもできます。
以上です。