Gift history
Please access after login.


Wait a moment...

【NEM技術勉強会】15.1 概要の説明【Symbol白書】

1036
0
2020-10-12 08:52:13
0.00 mXYM
(0)

15.1 概要の説明

ブロックのファイナライゼーションは複雑なプロセスで、2種類のメッセージ:投票準備(prevote)と決定準備(precommit)を使用する。投票ラウンドの開始時、それぞれの投票人(ノード)は、自分が持つローカルチェーンに保存されたブロックの情報しか持っていない。他の投票者の情報を持つことは無いものとする。その結果、個々の投票者は、自分が所有するブロックのどれが特別過半数(2/3以上)の支持を得てファイナライズされるかを、前もって知ることができない。

 

ファイナライゼーションの一般的な手続きを図解するために、3人の等価な投票人が参加しているネットワークを仮定する。あるハッシュ(ブロック)に対する特別過半数は、3人のうち少なくとも2人の賛同を得なければならない。Fは、これまでで最新のファイナライズされたブロックである。

 

 

ここからは、3人の投票人をそれぞれ赤、緑、青で表現する。

 

ファイナライゼーションは欲深なプロセスで、個々の投票ラウンドでひとつでも多くのブロックをファイナライズしようとする。最初の投票準備(prevote)ステージでは、個々の投票人は最新のファイナライズされたブロック(F)を起点として、ローカルチェーンに対応するハッシュチェーンを作って公開する。上の例では、それぞれの投票準備ハッシュチェーンは以下のようになる:

  1. 赤:H(F), H(A), H(D)
  2. 緑:H(F), H(A), H(B), H(C)
  3. 青:H(F), H(A), H(B), H(E)

この時、赤がネットワークの接続不具合によって、緑の投票準備情報しか得られず、青の投票準備情報が分からなかったとする。緑と青については、赤を含めたすべての投票準備情報が得られたとする。この時点で、それぞれの投票人は以下のような投票準備ハッシュチェーンを得ることになる。

  1. 赤:
    (a) H(F), H(A), H(D)
    (b) H(F), H(A), H(B), H(C)
  2. 緑:
    (a) H(F), H(A), H(D)
    (b) H(F), H(A), H(B), H(C)
    (c) H(F), H(A), H(B), H(E)
  3. 青:
    (a) H(F), H(A), H(D)
    (b) H(F), H(A), H(B), H(C)
    (c) H(F), H(A), H(B), H(E)

それぞれの投票人は、すべての投票準備ハッシュチェーン情報を検査し、現在の投票ラウンドでファイナライズする候補ブロックを選定する。赤は、Aの特別過半数(2票)のみを選定するが、緑と青はBの特別過半数(2票)まで選定できる。次の、決定準備ステージで、それぞれの投票人は選定したベストブロックのハッシュを公表する:

  1. 赤:H(A)
  2. 緑:H(A), H(B)
  3. 青:H(A), H(B)

今回は、緑がネットワーク接続障害によって、赤の情報は得らたが、青の情報が得られなかったとする。赤と青は今回は全部の情報が得られたとする。その場合、個々の投票人は以下のような決定準備情報を持つ:

  1. 赤:H(A), H(A), H(A), H(B), H(B)
  2. 緑:H(A), H(A), H(B)
  3. 青:H(A), H(A), H(A), H(B), H(B)

投票人はそれぞれ、すべての決定準備ハッシュを検査して、ファイナライズする最終候補を決める。ここで重要なのは、ひとつのブロックに対する決定準備は、それに至るすべてのブロックへの決定準備情報を含んでいるということである(緑と青の決定準備ブロックはBであるが、その一つ前のAも決定準備ブロックとして取り扱われる。それを分かりやすくするために上のリストに赤字で補足した)。緑は、Aについては特別過半数を得ている(Bについては1票しか得ていないので、棄却する)。赤と青はBの特別過半数も得ている。その結果、最終決定ステージ(commit stage)では、それぞれの投票人は以下のようなブロックをファイナライズする:

  1. 赤:H(A), H(B)
  2. 緑:H(A)
  3. 青:H(A), H(B)

この後の節では、ファイナライゼーションのより詳細なアルゴリズムを解説する。


ファイナライズの概要説明ですが、結構奥が深いです。赤のノードは、自分の持つブロックチェーンはDに分岐していますが、投票ではBをファイナライズします。この時点で、自分が持つブロックチェーンをAまで巻き戻すことになるでしょう。ファイナライゼーションは、ブロックチェーンの承認とは独立に動く監視システムですから、あるノードの最新承認ブロックが、ファイナライゼーションプロセスによって追認されるまでは、巻き戻される可能性があるものとして取り扱うと良さそうです。

 

目指せ北海道

Writer
趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。 ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視、取引するボットも作って活用してます。子供の頃から技術書を読むのが好きなので、NEMの技術文書を訳したりもしています。 本業は再生医療研究者です。歯の神経の中にいる「歯髄(しずい)細胞」を活用して新しい医療を開拓するために、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMを使おうと思ってmijin v.2を導入したんですが、コロナで実用化が全然進みません。管理システムの名称は「ShizuiNet」。

Login required to post comment
Loading...
https://symbol-sakura-16.next-web-technology.com:3001,https://symbol.harvest-monitor.com:3001,https://hideyoshi-node.net:3001,https://harvest-01.symbol.farm:3001,https://criptian-xym-node.net:3001,https://35665.xym.stir-hosyu.com:3001,https://yuna.keshet.finance:3001,https://keshet01-symbol-paradise.com:3001,https://keshet03-symbol-paradise.com:3001,https://keshet04-symbol-paradise.com:3001,https://cryptocat-xym-node.com:3001,https://misaki-xym.com:3001,https://ik1-305-12844.vs.sakura.ne.jp:3001,https://17107.xym.stir-hosyu.com:3001,https://23639.xym.stir-hosyu.com:3001,https://sym-main-01.opening-line.jp:3001,https://sym-main-02.opening-line.jp:3001,https://sym-main-03.opening-line.jp:3001,https://sym-main-04.opening-line.jp:3001,https://sym-main-05.opening-line.jp:3001,https://sym-main-06.opening-line.jp:3001,https://sym-main-07.opening-line.jp:3001,https://sym-main-08.opening-line.jp:3001,https://sym-main-09.opening-line.jp:3001,https://sym-main-10.opening-line.jp:3001,https://symbol-node-01.kokichi.tokyo:3001,https://50038.xym.stir-hosyu.com:3001,https://27423.xym.stir-hosyu.com:3001,https://angel.vistiel-arch.jp:3001,https://xym.stakeme.tokyo:3001,https://00-symbol-node.yagiyoshi.com:3001,
6BED913FA20223F8,051FAEC15105C808,73019335A785A3AE,5289A9B0DBB7EB25,6B245EAF1302E444,2C4A4893229DD0A9,