本稿について
本稿では、DFINITY White Paper:Consensus Systemのうち第8章「SCALABILITY」の日本語訳を掲載します。
原文はこちらになります。
スポンサードサーチ
8 スケーラビリティ
8.1 閾値リレー
スケーラビリティのため、第5~7章で示した公証プロトコルとランダムビーコンプロトコルは、母集団の全レプリカではなくサイズnの群により実行される。この群を本章では「コミティ(committees)」というが、これは母集団Uからn個を無作為抽出したものである。
群のサイズnはシステムパラメータで、第4章2の4で示した失敗確率の分析に従って選択される。群のサイズが十分に大きければ、失敗確率が許容範囲内に収まっていれば、システムで利用される全ての群は誠実である(仮定2)。
DFINITYがランダムに行うレプリカの抽出による群の形成、当該群の閾値オペレーションへのセットアップ、その時点のコミティの選択、その時点のコミティから次のコミティへのリレーのメカニズムを閾値リレー(threshold relay)という。
8.1.1 群の導出(Group Derivation)
nを群のサイズとする。群はランダムシードξから発生する。ここで、j番目に発生する群は次のように表すことができる。
システム開始時に数mとランダムシードξを選んで群を形成する。
群はそれぞれ第7章3で述べたDKGを実行し、群の公開鍵pkGjする。これはジェネシスブロックに保存される。
8.1.2 コミティの選択(Committee Selection)
配列(ξi)は最初の値ξ0を定めることでブートされる。続いて、ラウンドrにおいて、以下のように群をラウンドrのコミティとして選択する。
同一ラウンドにおける公証プロトコルとランダムビーコンプロトコルには同じコミティを利用することができる。
ランダムビーコンプロトコルにおいて、G(r)のメンバは連帯してアウトプットξrを生成する。ξrは次のコミティG(r+1)を選ぶために用いる。このようにアクティビティが群から群へと引き継がれていくので、この機構を「閾値リレー(threshold relay)」という。
8.2 オープンな参加
全レプリカの集団がプロトコルの開始時から判明していると仮定するのは実際的でない。特に、DFINITYのパブリックチェーンにおいてはそうである。本項では、新規レプリカが参加し参加済みのレプリカが退出するオープンな参加モデルをどのように採用するのかについて説明する。
8.2.1 エポック(Epochs)
複数のラウンドを長さlの重なり合わないいくつかのエポックに分ける。ここで、lはシステムパラメータ、固定である。各エポックの一番最初のラウンドで生成されるブロックは「レジストリブロック(registry block)」もしくは「キーフレーム(key frame)」といい、つい先ほど終了した前エポックの間に新規登録のあったレプリカと登録解除となったレプリカ全てのサマリを含んでいる。このサマリは前エポックのブロック全てからなる決定論的な結果であるので、キーフレームのブロック生成者は登録を検閲することができない点に注目してほしい。一番最初のエポックの一番最初のラウンドはDFINITYのジェネシスブロックで、これもまたキーフレームである。
8.2.2 レプリカの登録(Registration of Replicas)
レプリカは、ネットワークへの参加(つまり「登録(register)」)または退出(つまり「登録解除(de-register)」)をそれ用の特別なトランザクションを送信することによってリクエストできる。このトランザクションはユーザのトランザクションと同様、チェーンに含めてもらうために既存のレプリカに送信される。登録トランザクションにはその新規レプリカの公開鍵と存在が認められていることを示す「エンドースメント(endorsement)」が含まれる。基本的なシビルアタック耐性のある方法に基づいて、例えばエンドースメントはロックアップしたステークの保証金の証拠だったり、プルーフオブワーク問題の解であったり、信頼できる中央機関から発行される認定だったりする。
8.2.3 群の登録(Registration of Groups)
エポックeの最初のラウンドのランダムビーコンのアウトプットは、そのエポック中に新しくシステムに関与することが許された全群の組成を定義する。システムパラメータmmaxは、このエポック中に存在しうる異なる群の数を示すものである。
rをエポックeの最初のラウンドとする。j ≤ mmaxである各jについて、j番目の「候補群(candidate group)」をG = Group(ξr, j)で定義する。GのメンバはDKGを実行し、群の公開鍵pkGを生成する。DKGが成功した場合、メンバはタプルx = (e, j, pkG)を含むGの登録トランザクションを生成する。Gの圧倒的多数がxに署名すると、任意のメンバがブロックチェーンに取り込んでもらうためにxを送信することができる。xに対する署名の有効性は既にブロックチェーン上にある情報、すなわちアクティブなレプリカのプールUと群を定義したランダムビーコンのアウトプットξrに照らし合わせて公に検証可能である。登録トランザクションは、エポックe内にあるブロックに取り込まれている場合に限り有効である。
DKGが失敗するか、あるいはxがGの圧倒的多数の署名を得られなかったか、あるいはエポックeのうちにブロックチェーンに取り込まれなかった場合、Gは登録不可となる。攻撃者は登録を失敗に導くことができる。例えば、圧倒的多数が2/3と定義される場合、Gの1/3以上をコントロールする攻撃者はxに対する署名を拒否できる。しかし分散のために、これはいくつかの候補群に限って発生する。例えば、Uの1/3未満をコントロールする攻撃者は、全群の少なくとも半分で1/3未満のコントロールにとどまるだろう。
システムパラメータで定められた固定数のエポックが経過すると、群は自動的に登録解除される。
8.2.4 遅れてのアクティビティ(Delayed Activity)
新たなアイデンティティ(レプリカまたは群)の登録がエポックeでチェーンに刻まれると、その新たな登録エンティティはエポックe + 2でアクティブになる。従って、新規エンティティの登録とその新規エンティティの初めてのアクティビティには少なくともlラウンドの差が常に存在する。図8にイベントの遷移を示す。
この差は必須である。なぜなら、新規エンティティがランダムビーコンに何らかの影響力を有することができるようになる前に、確実に新規エンティティの登録がファイナライズされるようにするためである。lの最小値はファイナライズされたチェーンの成長特性に由来するが、これは後の命題9.24で示す。
DFINITYはlに必要な最小値よりもはるかに大きな値を用いる。その理由は、観測中のいわゆる「ライトクライアント」のロードを減らすために、キーフレームの生成速度を制限したいからである。
(DFINITYホワイトペーパー日本語訳11 ←← 前)|(次 →→ DFINITYホワイトペーパー日本語訳13)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。