IOHKブログ:Cardano分散化への安全な切替え

コミュニティにより注入されたエントロピーを特徴とする、「ランダム性の公開アサーション」で幕を開けるイベント

2021年3月29日 Alexander Russell教授 読了時間6分

Cardano's secure switch to decentralization

プルーフオブステークブロックチェーンの安全性は、ネイティブトークンとその動力となるコンセンサスメカニズムとの相互依存関係により提供されます。結局のところ、ステークに応じてブロックを発行するノードを選出するためには、世界的なステークの分布状況を継続的に把握しなければならず、継続性の維持そのものが公正な選出メカニズムを必要とします。実際、数学的再帰を示唆する古典的象徴であるOuroboros(ウロボロス)という名は、そもそもこの関係に注意を向けるために採用されました。

Ouroborosプロトコルは、進化する一連のリーダーシップナンスを介してブロック生成者を決定します。各ナンスは120時間の「エポック」の間ショーを運営し、この間どのステークプールがブロック生成の一回限りのリーダーに選ばれるかを決定することに貢献します。各エポックで現れるブロックには、台帳に新しいトランザクションをコミットするとともに、次のエポックのリーダーシップナンスを生成する責任があり、さらなる再帰へと繋がります。総じて、リーダーシップナンスとステークの分布は、システムが要求する基本的な台帳プロパティを提供するために、協調して進化します。

Cardanoブロックチェーンは、3月31日に分散型ブロック生成へと完全に移行します。その直後に、実行中のリーダーシップナンスは、外部の多岐にわたる予測不可能なソースからのエントロピーを反映する「トランジションナンス」を追加することで強化されます。特に、日本時間4月8日木曜0:44:51(エポック258のスロット151200)より前にブロックチェーンに送信されたすべてのトランザクションは、ブロックチェーンの今後に特別な役割を果たします。その累積ハッシュ値は、この時点以降に生成されるチェーンの最初のブロックから「前ブロックのハッシュ」に反映され、トランジションナンスを決定するため、ランダム性を生成するプロトコルの永続的サイクルに直接貢献します。

IO Globalの研究者やエンジニアは特定の、外部の、予想不可能なエントロピーソースを若干提供します。さらに、Cardanoの分散型ナンスを反映するために、ステークプールオペレーターや開発者を含む幅広いコミュニティに、私たちがCardanoのランダム性公開アサーションと呼ぶイベントへの(オンチェーンでの)参加を呼び掛けています。このコミュニティ演習では、システムで一生に一度のランダムな256ビットのトランジションナンスを確立します。これにより、プロトコルの分散型運用への公式な移行が布告されます。

ここからやや技術的になります。関心のない方は飛ばして最後に進んでください。

背景

Ouroborosプロトコルは「エポック」と呼ばれる5日間(120時間)の期間に編成されています。前述の通り、ここではステーク分布の更新とリーダーシップナンスの更新という2つの重要なアクティビティを管理しています。プロトコルの正当性の証明は、幸先の良い安定状態を達成することを示しています。すなわち、エポックが予想不可能なリーダーシップナンスで開始されると、次のエポックに、新たな予想不可能なリーダーシップナンスを配信します。この公開アサーションイベントは、再帰をブートするために、この予測不可能性のプロパティを確保するよう設計されています。ここで、プルーフオブワークプロトコルにも似たようなランダム性が求められがちであることに注意してください。有名な例として、Nakamotoは、ビットコインのジェネシスブロックにおそらく予測不可能な文字列「The Times 03/Jan/2009 Chancellor on brink of second bailout for banks(2009年1月3日英タイムズ紙:財務大臣、二度目の銀行救済措置の瀬戸際に)」を組み込みました。

エントロピーメカニズムとタイムライン

CardanoのOuroborosプロトコルの実装は、次のリーダーシップナンスにブロックチェーンで特定されたビットストリングを追加することができる「エントロピー追加メカニズム」を提供しています。これはまさにトランジションナンスで意図した目的です。当然、このメカニズムはビットストリングの公開宣言および明確で暗号的に安全な承認を必要とします。具体的には、ジェネシスデリゲートからデジタル署名された投票のコレクションのみがプロセスを完了できます。さらに、このプロセスには特定の期間があります。投票はエポックで48時間マーク前に表示される必要があります。

日本時間4月6日火曜06:44:51に開始されるエポック258で、エントロピー追加メカニズムを起動します。特に、日本時間4月8日木曜0:44:51(エポック258のスロット151200)以降に生成される最初のブロックに表示される前ブロックのハッシュは、トランジションナンスを決定します。これはエポック開始からおよそ42時間後に発生するため、ジェネシスデリゲートが投票を行うために残された時間は6時間です。Ouroborosブロックチェーンのハッシュチェーン構造を思い出すと、このハッシュ値はこの時点までのブロックチェーン全体に依存します。

プロトコルの正当性の証明を詳細に調べると、トランジションナンスの本質的な特性のより厳密な図が描けます。Cardanoブロックチェーントランザクションを介して設定に導入されるランダムな値に依存しますが、これは4月10日のエポックのステーク分布が確定した時点で正確に予想することはできません。ここでは、ステーク分布がしっかりと確定される12時間マークと、ハッシュ値が解除される42時間マークの間に、ブロックチェーンに表示されるトランザクションに特に重点が置かれています。

IO Globalが導入するエントロピーソース

Cardanoコミュニティが多種多様なランダムソースを導入(下記参照)する一方、IO Globalの研究者およびエンジニアはトランザクションに複数の公開エントロピーソースにより決定されたメタデータを挿入します。4月6日のニューヨーク証券取引所の終値、そしてアメリカ地質調査所、アテネ大学、日本気象学会のリアルタイムの地震データのハッシュです。これらのソースからの地震データはエポックの最初の36時間をカバーします。データ収集に利用するスクリプトや正確なソースなどの詳細は、公開GitHubリポジトリに表示されます。

私たちはCardanoコミュニティの技術的なメンバーにも、独自のランダム性を加えることにより参加してほしいと思っています。私たちの考えは以下となります。

  • いくつかの面白味のあるランダム性のソースを選択します。地元の宝くじ、いつも使っているツールで生成した新しいRSA公開鍵、または正二十面体サイコロを振って得られた数などです。
  • テキスト文書にこうしたソースから得られた結果を張り付け、SHA256など好きなハッシュ関数を使用してファイルをハッシュ化します。メタデータ付きトランザクションを使用してブロックチェーンにこのハッシュを送信します(この動画をご覧ください)。
  • 有効性を高めるために、ランダム性のソースは日本時間4月6日火曜18:44:51(エポック258のスロット43200)より後に決定し、同4月8日木曜0:44:51(エポック258のスロット151200)までにブロックチェーントランザクションに組み込んでください。

技術面に明るくなくても参加は可能です。面白い新コミュニティツール、Cardano Wallを試してみてください。これを使うと、Cardanoブロックチェーンが簡単に作成できます。参加を選択した場合は、ソーシャルメディアでソース(未ハッシュのもの)とトランザクションに表示されるハッシュ値の両方を投稿して、コミュニティサービスに自分の行動を知らせてください。

ご協力ありがとうございます。ジェネシスデリゲートの投票がオンチェーンに表示されるのを見る「ブロックパーティ」を気持ちの上で開催できるスロット151200を楽しみにしています。