本稿について
本稿では、DFINITY White Paper:Consensus Systemのうち第5章「PROBABILISTIC SLOT PROTOCOL AND NOTARIZATION」のうち、5.4「Properties of notarization」の日本語訳を掲載します。
原文はこちらになります。
スポンサードサーチ
5 確率的スロットプロトコルと公証(続き)
5.4 公証の特性
5.4.1 ライブネス(Liveness)
上記の説明から、攻撃者のいる場面であってもアルゴリズム1がデッドロックしえないというのは明らかであろう。その時点のラウンドについての公証が観測されるまで全レプリカが最高の優先度を持つブロック提案に署名し続けることは、その時点のラウンドで少なくとも一つのブロックが公証されるには十分である。最終的にそのようになるのは、(5.1)で示した状態が持続していてランキングは一連のブロック提案の整列集合を成すからである。その時点のラウンドについての最初の公証が観測されたあとに署名をやめるのは安全である。それは、観測された公証は再度ブロードキャストされて最終的に全ての誠実なレプリカに届くからである。このようにして全ての誠実なレプリカは次のラウンドへ進む。
上述の論議はブロック提案と公証に関する伝送の前提に基づいている。後述の第9章ではこのことについて関連するリレーポリシー等も含めて詳細に分析を行い、ライブネスに関する公式的な証明を与える。
(筆者注)
- 上記の説明...についてはDFINITYホワイトペーパー日本語訳7を、(5.1)についてはDFINITYホワイトペーパー日本語訳6を参照されたい。
5.4.2 誠実に署名されたブロック(Honestly signed blocks)
定義5.6
あるブロックが誠実なレプリカから少なくとも1署名を受けているとき、そのブロックは「誠実に署名されている(honestly signed)」という。
そのラウンドでBlockTimeが過ぎたあとのどこかの時点において、ブロックBが最高の優先度を有する提案であることが誠実なレプリカiに分かる場合に限り、iはブロックBに対して署名を発行する点に留意してほしい。誠実に署名されたブロックというコンセプトは理論上のものであり、公証プロトコルのセキュリティ特性について検討を行うために用いる。与えられた署名が誠実なレプリカによって発行されたものであるのか、それともビザンチンなレプリカによって発行されたものであるかを判別することは不可能である。従って、署名済みのブロックが誠実に署名されたブロックであるか否かも観測できない。
5.4.3 タイムリーな公開(Timely publication)
定義5.7
少なくとも1つの誠実なレプリカがラウンド ≤ rにいる(別の誠実なレプリカはラウンド ≤ r + dにいる可能性がある)あいだにラウンドrのアーティファクトがブロードキャストされると、そのアーティファクトは「タイムリーに(dラウンド以内に)公開される(timely published)」。
ルールとして、誠実なレプリカは署名するブロックは全て再度ブロードキャストする。
署名されたブロックが与えられたとき、その署名が誠実なものであるか否かを判別できないので、ブロックがタイムリーに公開されたかどうかも判別できない。次に説明するが、これが公証済みのブロックとの違いである。
(筆者注)
- アーティファクトについては第9章で説明されることになるが、ブロックに署名や公証、乱数などがついたものである。ブロックより少し大きな概念と考えるとよい。
5.4.4 公証の保留(Notarization withholding)
(5.1)によれば、任意の大多数のレプリカの部分集合には少なくとも1つの誠実なレプリカがいる。従って、次のようなブロックがある。
攻撃者は誠実に署名されたブロックのもとでは署名を控えることができ、それによって誠実に署名されたブロックが一般には公証されないように思われるという状況を引き起こしうるという点を強調しておく。その一方で、攻撃者は自身の署名を使って時間内の任意のタイミングで公証を生成したり明らかにしたりすることができる。
5.4.5 強制公開(Enforcing publication)
(5.2)と(5.3)によれば、次のことが言える。
しかし(5.4)に関わらず、公証を保留することはできる。公証の保留が無害であることを示すために、次の理論上のコンセプトを導入する。
定義5.8
nt B = zであるような公証済みのブロックBがあるのならば、公証zは参照される。
ブロックを公開することは、暗黙的に直前のブロックの公証をすることである。すなわちブロックBの公開は、nt Bを公開することである。それは、直前のブロックの公証nt BはブロックBに含まれているからである。従って、(5.4)は次のことを示唆する。
言うまでもなく生存しているチェーンにおいては全ての公証は参照される。ゆえに、ブロック提案の公開と公証の公開はどちらも強制される。攻撃者は秘密裏にチェーンを作ることはできない。なぜならば、チェーンは次の条件を満たすときしか生存しえないからである。
- そのチェーンの全てのブロックはタイムリーに公開されたものである。
- そのチェーンの全ての公証は1ラウンド以内でタイムリーに公開されたものである。
5.4.6 コンセンサス(Consensus)
上で述べた通り、チェーンは全ての公証が1ラウンド以内でタイムリーに公開されたものである場合にのみ生存しうる。これは、ラウンドrの公証を見たレプリカは、そのレプリカ自身を所定の時間制限しうるということである。所定の時間が経過したあとに受け取るラウンドrについての公証は全て、必然的に生存しているチェーンとは無関係である。この事実は第6章で示すファイナライズアルゴリズムにおいて非常に重要なものである。一例として図7を確認してほしい。
この事実がコンセンサスポイントを形成しうるような方法は複数ある。注目してほしいのは、コンセンサスには1ラウンドにおいて1つのブロックが公証されている必要もなければ、1つの公証が参照しうるものである必要もないということである。コンセンサスポイントには、所定の時間内に受領される全ての公証が1(以上)ラウンド後ろの同じブロックを(間接的に)参照していれば十分である。
(筆者注)
- 図7は第6章の内容を含む。正当性の仮定(6.1)の説明は図中の「」で簡単に述べた通り、FINALIZE(h)はファイナライズを行う関数であるが、詳細はDFINITYホワイトペーパー日本語訳9を参照されたい。
5.4.7 通常のオペレーション(Normal operation)
定義5.9
そのラウンドについて1ブロックだけが公証される場合、そのラウンドは「通常のオペレーション(normal operation)」を行うという。
アルゴリズム1は、BlockTimeという待ち時間を強制することと最高の優先度を持つブロック提案を優先して取り扱うことで何とか通常のオペレーションを達成しようとする。
最高の優先度を持つブロックの生成者が誠実でありBlockTimeが十分に大きければ、そのブロック提案はBlockTimeが切れる前に全ての誠実なレプリカに届くであろう。これは、このラウンドにおいてはただ一つのブロックだけが公証されうるということを意味する。従って、BlockTimeが正しく選択されているのであれば、アルゴリズム1は最高の優先度を持つブロック生成者が誠実である全てのラウンドで通常のオペレーションを達成する。
BlockTimeが「十分に大きい」とは何を指すのかについては、リレーポリシーのようなブロードキャストネットワークの内部動作も考慮に入れて第9章で詳細に分析する。ネットワークのトラバーサルタイムがΔで制限される場合に、BlockTime ≥ 3Δであるならばアルゴリズム1が正しいことを示す(系9.16、命題9.24、命題9.27)。
注目すべきは、通常のオペレーションであるような全てのラウンドは、そのラウンドで公証される唯一のブロックに対してコンセンサスを形成することである。しかしながら、通常のオペレーションというのは理論上のコンセプトであって公証を保留する可能性があるがゆえに観測されえない。幸いにも、5.4.6で確認したように通常のオペレーションはコンセンサスに必要ではない。
(筆者注)
- 系9.16、命題9.24、命題9.27は第9章で扱う内容である。
(DFINITYホワイトペーパー日本語訳7 ←← 前)|(次 →→ DFINITYホワイトペーパー日本語訳9)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。