本稿について
本稿では、DFINITY White Paper:Consensus Systemのうち第5章「PROBABILISTIC SLOT PROTOCOL AND NOTARIZATION」のうち、5.1「Block Rank and Chain Weight」の日本語訳を掲載します。
本章は数学的な表記が多く、やや表記に慣れていないと読み解くのが難しくなっています。しかし、単に文中に注を入れていくと冗長になるため、節が終わるごとに数学的表記を噛み砕いて平易な文章(緑字)に直した注記をまとめて入れるようにします。
原文はこちらになります。
スポンサードサーチ
5 確率的スロットプロトコルと公証
第3章で説明したように、プロトコルのラウンドはすべからく(1)ランダムビーコンアウトプットの生成(2)ブロック提案の生成(3)ブロック公証の生成というステップを踏んで進む。1つ以上のブロックが公証される可能性があるので、これらのステップは単独ではコンセンサスを形成しない。ここで確率的スロットプロトコル(probabilistic slot protocol, PSP)の出番である。
PSPは「ブロックウェイト(ブロックの重み, ウェイト, block weight)」に基づいて、レプリカがブロックを提案する際にどのチェーンに対して行えばよいのか判断できるようにする。時間が経つにつれて、これはチェーンのプレフィックスに確率的なコンセンサスを生じさせる。ここでは「ウェイト」がチェーンに加算されるにつれてファイナリティの確度が増すのである。これは「仕事」がチェーンに加わるにつれてファイナリティの確度が増すプルーフオブワーク型のチェーンに類似している。しかし、DFINITYはここでは満足しないし、この確率的なファイナリティの決定方法に頼ることもしない。PSPはブロック生成者を案内するためだけに利用する。ファイナリティのためにDFINITYが用いるのは、「公証(notarization)」プロトコルを利用するより高速な手法である。
本章では、ランダムビーコン(第7章で紹介する)は故障なく動作し、ラウンドrの開始時に全レプリカに対して新しくバイアスのかかっていない乱数ξrを提供するものとする。プロトコルがブロックチェーンの拡張とランダムビーコンチェーンの拡張を交互に行う方法と、ランダムビーコン・ブロック生成者・公証者がロックステップに進む方法を図5に示す。
しかし、本章の解説のため、非中央集権の系とランダムビーコンの正確な内部動作については無関係とする。すなわち、一連の乱数ξrについてはあれこれと推測せず所与のものであるとして考える。
脅威モデルに関連し、仮定2で規定されているように、全ての群に関して(4.2)を想定する。だが、公証プロトコルの説明および理解には以下(5.1)を満たすレプリカの母集団からなる1つの群Uだけを考えれば十分である。
解説を単純化するため、この見方を採用する。そして、本章で説明するプロトコルがあらゆる誠実なコミティ単体や一連の誠実なコミティに委任できるということも明らかになるだろう。
(筆者注)
- 脅威モデルに関連し、仮定2で規定されているように、全ての群に関して(4.2)を想定する...については、ホワイトペーパー日本語訳5を参照されたい。
- 簡単に言ってしまえば、母集団から抽出した全ての群はビザンチンなレプリカが半数より少ないので誠実な群であると仮定する、という旨のものである。
- 以下(5.1)を満たす
⇒ 母集団Uは、ビザンチンなレプリカが半数より少ない母集団であるという条件を満たす
5.1 ブロックランクとチェーンウェイト
乱数ξrに基づき、プロトコルはi ∈ Uであるような全てのiに「ランク(rank)」を割り当てる。ブロック生成者のランクは以下に従ってブロックの「ウェイト」を定義する。
定義5.1(レプリカのランキング)
ラウンドrに関する「ランクの置換(ranking permutation)」はπr := PermU(ξr)として定義される。ラウンドrにおけるi ∈ Uであるようなiの「ランク」はπr(i)として定義される。
定義5.2(ブロックのランキング)
ブロックBの「ランク」はrk B := πr(own B)で定義される。ここでr = rd Bである。rk B < rk B'であればブロックBはブロックB'より高い優先度を有することを意味する。
攻撃者が特定できていない場合、同一ラウンドで同等のランクを持つ複数のブロックが発生する。
プロトコルは単調減少関数wを定義しているものとする。特にDFINITYにおいて、単調減少関数wは2−xとして扱う。
定義5.3(ブロックのウェイト)
ブロックBの「ウェイト」はwt B := w(rk B)として定義する。
定義5.4(チェーンのウェイト)
チェーンC = (B0, B1, ... , Br)の「ウェイト」はwt C := ∑rh=0 wt Bhとして定義される。wt C > wt C'であれば、チェーンCは別のチェーンC'より「重みがある(heavier)」という。
(筆者注)
- 記号π(パイ)が出てきているが、円周率ではないので注意。
- πr := PermU(ξr)として定義される
- ⇒ πrとは、乱数ξrを使って母集団Uを置き換えたあとの配列である
- i ∈ Uであるようなiの「ランク」はπr(i)として定義される
- ⇒ 母集団Uに属するレプリカiの「ランク」はπr(i)で表す
- rk B := πr(own B)
- ⇒ rk Bとは、ブロックBの生成者のランクで、ブロックBのランクを表す
- rk B < rk B'であればブロックBはブロックB'より高い優先度を有する
- ランクはB'の方が大きいのになぜブロックBの方が優先度が高いのか、と疑問に思うかもしれないが、ランクは要するに順位のことなのでランク1, 2, 3, ...と考えたとき、当然ランク1は2よりも優先度が高くなる。つまりランクの数値が小さいほど優先度は高くなる。
- 単調減少関数wは2−xとして扱う
- w = 2−x = 1/2x。例えばx=0, 1, 2, 3, ...とするとw(0)=1, w(1)=1/2, w(2)=1/4, w(3)=1/8と単調に減少し、限りなく0に近づいていく(が0にはならない)。
- wt B := w(rk B)
- ⇒ wt Bとは、ブロックBのランクを2−xのxに入れて出てきた値で、ブロックBのウェイトを表す
- wt C := ∑rh=0wt Bhとして定義する
- ⇒ wt Cとは、チェーンCにある全ブロックのウェイトの総和で、チェーンCのウェイトを表す
- PermU(ξr)やown Bという記法の意味についてはホワイトペーパー日本語訳5を参照されたい。
(DFINITYホワイトペーパー日本語訳5 ←← 前)|(次 →→ DFINITYホワイトペーパー日本語訳7)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。