æternityのコンセンサスについて

æternityの概要

https://files.coinmarketcap.com/static/widget/currency.js

æternityは2017年5月にEthereum上でICOを行い発行されたERC20トークンです。
日本円で約27億円の資金調達に成功しメインネットローンチを計画しています。

プロジェクトFOUNDERは、Yanislav Malahovという人物で、まだイーサリアムプロジェクトに名前がついていない頃から関わりを持ち、Vitalik Buterinと共に開発をしていたようです。

ゆえにイーサリアムの”God Father”と呼ばれています。æternityの総発行枚数は273,685,830枚(*1)で、執筆時の現在は233,020,472枚と約85.2%が発行済みとなっています。

同プロジェクトは、イーサリアムと比較してもコンセンサス、ステートチャネル、分散化オラクル、ガバンスに大きな特徴を持っており、今回はコンセンサスの部分に注力してお伝えしていきたいと思います。

*1 総発行枚数:CoinMarketCap上の総発行枚数を記載していますが、実際の発行上限枚数は確認中。

イーサリアムとæternityの比較
http://fusanpro.com

コンセンサスアルゴリズム

公式ページに説明書きがあるので引用します。

コンセンサスはProof-of-Work(POW)アルゴリズムとProof-of-Stake(PoS)アルゴリズムの新し混合型アルゴリズムを介して達成されます。“Cuckoo Cycle” PoWは、より優れたランダムアクセスメモリ(DRAM)チップの開発を促進するため、より電力効率がよく、間接的に有用です。最も優れているのは、スマートフォンでも新しいトークンを効率的にマイニングし、比類の無い分散化を達成できる点です。Proof-of-Stakeはオンチェーンの予測市場を介して実装されます。ガバナンスの説明を参照してください。 

ハイブリッド型コンセンサスアルゴリズム

æternityでは、PoWとPoSのハイブリッド型コンセンサスアルゴリズムを採用しています。

ハイブリッド型のコンセンサスアルゴリズムというと、イーサリアムのCasper FFGが有名です。
イーサリアムのCasperは、ブロック生成のコンセンサスにPoWを用いており、ブロック高が100を迎えるたびにチェックポイントが存在しバリデータの投票によってそのチェーンの有効性が決定します。

バリデータとはPoSによる取引承認者でPoWでいうマイナーのような存在です。

æternityも同様のハイブリッド型でブロック生成のコンセンサスにPoWを用い、投票によるガバナンスにPoSを用いています。

æternityのPoWでは、マイニングハードウェアの効率化と分散化のためにCuckoo Cycleハッシュアルゴリズムを採用し、スケーラビリティー向上のためにBitcoin-NGコンセンサスアルゴリズムが採用されています。

Cuckoo Cycle

Cuckoo Cycleハッシュアルゴリズムは、マイニングハードウェアの効率化と分散化を目的としたアルゴリズムだということをお伝えしました。

このアルゴリズムは、ハードウェアアーキテクチャ全体のパフォーマンスの差を最小限に抑えることができ、通常のASICやGPUといったマイニングハードウェアを使用しても費用対効果がでないということを説明しています。

その代わり、多くの人が持っているスマートフォンのようなコモディティハードウェア内のメインメモリー(DRAM)に対応したASICをオープンソース化することで費用対効果の高いものとするような設計になっています。

マイニングによる利益はメモリーのレイテンシに基づきます。

ASICは特定の用途向けに複数の回路を1つにまとめた集積回路の総称で、1990年代後半よりDRAM内蔵も可能となっています。

レイテンシとはデータ転送における指標のひとつで、転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間のことをいい、DRAMの性能指標をとして用いられている用語をCASレイテンシと言います。

Cuckoo Cycleハッシュアルゴリズムには以下のようなメリットがあります。

  • 電力効率が高い
    ビットコインやライトコインのマイニングで使用されているSHA256やCryptoNightと比較して半分以下の省電力で済むため電力効率を大幅に上げルことができます。
  • ネットワークの分散化
    スマートフォンのようなコモディティハードウェアによるマイニングが実現することで、ネットワークの分散化を測ることができます。(詳細は後述します。)
  • 量子耐性
    量子コンピューターを利用する様々なアルゴリズムが提案されていますが、その中で、量子コンピューターで素因数分解を行うShorアルゴリズムと、探索のためのGroverのアルゴリズムが有名です。
    Cuckoo CycleはGroverアルゴリズムに対する影響を受けません。
  • ASIC耐性
    上述したように、Cuckoo CycleはASICによる耐性がありマイナーの中央集権化を防ぎます。

    ASICの計算量は大きすぎるため、DRAM内で処理することができずボトルネックをメリットに変えた例といえます。
    ASIC耐性があるわけではなく、対応するASICをオープンソース化することで、設計と生産とR&D(研究開発費用)の参入障壁を下げ、長期的なディセントラライズド(分散化)を目的としています。マルフォーイさんふーさんにご指摘頂きました。)

もちろんデメリットも存在します。

  • ブロックヘッダーサイズ問題
    この名前は筆者が独自に名付けています。
    ブロックヘッダーに含めるデータサイズが通常の約3倍となっており、1MBのブロックサイズを圧迫します。
  • it is very slow, taking the better part of a minute on a high end CPU (or GPU, which offer roughly the same speed) to look for a cycle among a billion roads.
    第2のデメリットにこのような記載があったのですが、私には解釈ができませんでした。

Bitcoin-NG

Bitcoin-NGコンセンサスアルゴリズムは、スケーラビリティの代替案を提起したコーネル大学の博士研究員Ittay Eyal氏およびAdem Efe Gencer氏、Emin Gun Sirer氏、Robbert Ban Renesse氏により考案され、スケーラビリティー向上を目的としたアルゴリズムだということをお伝えしました。

ビットコインなどで採用されているナカモトコンセンサスでは、ブロックの生成のために莫大な計算を費やしてナンスの発見を競い、ナンスを見つけたマイナーがリーダーとなり、ブロック生成とブロック報酬を受け取る権利を得ます。

このブロック生成が約10分になるようにディフィカルティーが調整されるのですが、前のブロックの生成が完了するまで新たなブロック生成はできず、オンチェーン状ではスケーラビリティに限界があります。

Bitcoin-NGでは、事前にマイナーが選出され「Key Block」を採掘します。

これはトランザクションを含むMicroBlock(MB)ですぐに満たされ、それ以上の作業証明は必要ありません。
マイナーは次のマイナーが選出されるまでの間、mempoolからMBの採掘権を得ます。

以下に詳細な手順を記載します。

  1. マイナーはKey Block(KB-1)を採掘
    マイナーはCoinbaseトランザクションと公開鍵を含むKey Blockを採掘します。
    次のKey Blockが採掘される(3分毎)までの間、トランザクションのシリアライズを担当します。
  2. Micro Block(MB(1))を採掘
    Key Blockを作成したマイナーは、トランサクションを含む前ブロックのヘッダーハッシュと公開鍵を含む一定のサイズ以下のブロックを10秒毎に採掘します。
  3. マイナーはキーブロック(KB-2)を採掘
    新たなマイナーが選出される。
    新たなに選出されたマイナーは、以前に採掘されたMBに対してProof of Fraud(PoF)を送信することができ、悪意あるフォークや二重払いに対して指定された作業証明が含まれているかどうかを判断します。
    詐欺の報告を受けた以前のマイナーはマイニングによるブロック報酬を受け取ることができません。
    ちなみに詐欺の報告が可能なのは、選出された新たなマイナーのみになります。
    過去のリーダーに悪意がないことを証明することで、1つ前のマイナーと新たなマイナーにブロック報酬が4:6で分配されます。

今回はあくまでコンセンサスの部分のみに焦点をあてているため、Bitcoin-NGのブロック報酬やインセティブ設計に関する詳細は割愛させて頂きます。

詳細を確認したい方はこちらをご覧ください。
Bitcoin-NG for Aeternity
Introduction to æternity’s Bitcoin-NG Implementation

スケーラビリティー

æternityは、上述したBitcoin-NGコンセンサスアルゴリズムによって、毎分6000件で毎秒100件の取引を処理することが可能で、高スケーラビリティを実現しています。

ビットコインは毎秒約3件、イーサリアムは毎秒5件取引を処理しておりことを考えるとその凄さが分かります。

ただし、スケーラビリティが高いというのはあくまでビットコインやイーサリアムと比較した場合の話で、EOSやXRPなどのスケーラビリティに特化したチェーンと比較するとスケーラビリティが高いとは言えません。

EOSやXRPの方が毎秒数千件と比較にならないほど処理性能が高いが、それは分散化を切り捨てているからに他ならなず、æternityはCuckoo Cycleハッシュアルゴリズムで分散化を維持しつつ高スケーラビリティを実現しているのです。

むしろæternityでは、EOSやXRPのような高い処理能力は必要ない設計になっており、オンチェーン上で処理するのは必要な結果のみであり、スマートコントラクトなどの多くの処理はステートチャネルを用いてオフチェーンで処理します。

このように分散性を高めることで課題となるスケーラビリティを、アプローチの転換によって迂回した良い例と言えるでしょう。

もちろんオフチェーン処理にも課題はありますが、今回は割愛させていただきます。

分散性

æternityは、上述したCuckoo Cycleハッシュアルゴリズムによって高い分散性を実現しようとしています。

ビットコインやイーサリアムではASICやGPUといった高価なハードウェアを使用することでコンセンサスを形成し高い分散性を維持しています。
しかし、分散性の維持には高価なハードウェアと豊富な電力が必要で現在はマイナーの集権化(*2)も懸念されています。

さらに性能の良いハードウェアの開発には、それなりのコストやR&Dが必要になります。

また、ブロック生成の監視をしているノードにも性能にばらつきがあり、分散化を図るためにノードが増えすぎると返って性能の高いノードによる集権化がはじまってしまう等の課題もあります。

*2 マイナーの集権化:大手マイニングプール4社(BTC.com、Unknown、AntPool、ViaBTC)が結束するだけで51%攻撃が実現してしまう。https://www.blockchain.com/ja/pools

æternityが採用しているCuckoo Cycleハッシュアルゴリズムは、上述したようにスマートフォン内に含まれるDRAMに対応するASICをオープンソース化して企業の生産コストと参入障壁を下げ、多くの人が持っているスマートフォン内のメインメモリー(DRAM)を用いたPoWマイニングで分散化を図っています。

これは非常に面白いアプローチで、ネットワークへの参入障壁を低減し民主化を可能にすることで小さなネットワークがいくつも立ち上がります。
かつレイテンシーとメモリー容量の制限という一般的なデメリットをあえて考慮することで、ネットワーク参加者のスペックを平均化することができます。

このようにæternityは、ユニークなアプローチで分散性に力を入れていることが分かります。

セキュリティー

æternityのマイナーは、小さな幅広い分散化されたネットワークの中からあらかじめ選出されることで、悪意のあるマイナーが結託してネットワークを攻撃する可能性は低いと考えられます。

仮に悪意あるマイナーが意図的にフォークする場合、Key Block又はMBでフォークが可能です。
前提として、チェーンが分岐してもビットコインと同様に最も長いチェーンに収束します。

通常ブロック生成間隔が短くなるとフォークの速度が早まるのですが、MBはどれだけ分岐しても重みはなくチェーンのreorg(再編成)は発生しません。

また、これを防止するためにProof of FraudtPoFという方法を用いていますが、いくつかの疑問が生じます。

例えば、新たなマイナーがPoFの送信で悪意のあるブロックを見つけた場合、前ブロックのマイナーはブロック報酬を得ることができませんが、これを負のインセティブとして捉えるにはあまりにも軽罰です。
ビットコインやイーサリアムの場合、ネットワークへの攻撃の負のインセティブとして多大な電力を消費します。

さらに、ネットワークへの攻撃が低消費電力のスマートフォンで可能となれば、それだけリスクも高まるでしょう。

この辺りも含めてカバーされている方がみえましたら、ご教授よろしくお願い致します。

現段階のセキュリティ性能の評価はできませんが、æternityの分散化を最大化するためのアプローチが、新たなセキュリティ的欠陥があるのではないかと感じてしまう状態です。

もし、そのような欠陥がなく中本コンセンサスのようなセキュリティ的強さがあるのであれば、æternityは非常に面白いプロジェクトだと素直に言えます。

次回æternityについての記事は、トークン設計とインセティブ設計について執筆致します。

Reference

https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js

https://platform.twitter.com/widgets.js

CoinPicks Lab内では以上のテーマでもう一歩踏み込んで解説しております。
もっと知識を深めたい方はLabでお待ちしています。
CoinPicks Labとは? | CoinPicks|仮想通貨の価値を伝える


ZILLIQA – コミュニケーションコスト –

前回の記事で、ZILLIQAが採用しているコンセンサスプロトコル「PBFT」についての概要とメリットについて説明した後に、最後にはPBFTの課題について言及しました。

 

PBFTのコミュニケーションコスト


PBFTは、シャード内のノードが50以下の条件下で一番効率的になります。
ZILLIQAはノードが600あり、PBFTの仕組みが参加している全ノードの合意が必要なため、ノード間のコミュニケーションの負荷が大きくなります。
各ノードが合意をするプロセスの中で、nメッセージを送信するので、全ネットワークの通信はn²となりメッセージの認証コストが大きくなります。

*以下よりn=600とします。

メッセージの認証プロセスとコストを知る

仮にノードAがノードBからメッセージを受信するとき、ノードBがメッセージを送信したことと送信の際に改竄がなかったことを確かめなければいけません。

その方法としてノードAとノードBで共通の秘密鍵を作ります。
下記の図を参照して頂くとわかりやすいです。

送信者は共通の秘密鍵とメッセージを使ってタグを発行します。
その後メッセージとタグを受信者に送ります。
受信者は送られてきたタグの同一性を確かめます。

このように、秘密鍵とメッセージをインプットしてタグをアウトプットする方法を、MAC(Message authentication code)と言います。

しかし、MACにも問題があります。
シャード内にnノードがあるとしたら、ノード間同士で秘密鍵とタグが必要になるため、全部n(n-1)/2のメッセージが必要になります。

仮に4ノード存在する場合、下記のように6メッセージ必要になります。

 

コミュニケーションコストの改善策


デジタル署名の採用

ノード間のメッセージ送受信の際に公開鍵によるデジタル署名を使用します。

デジタル署名は、当時高コストだったため使用されていなかったが、現在は大幅にコストダウンしているため、MACによる署名からデジタル署名の採用率が高まっています。

デジタル署名の利点として、発行するメッセージとタグの数を減らすことができます。
下記の図を参照して頂くとわかりやすいです。

仮にデジタル署名を使用して4ノード存在する場合、599メッセージ必要になります。
MACによる署名の場合、179,700メッセージ必要になります。

このようにデジタル署名は、PBFTのコミュニケーションコストを大幅に改善することが可能です。

マルチサイニングの採用

nノード間のn個の署名を一定のサイズで1個にまとめます。

そのプロセスを簡単に説明します。

n署名者:公開鍵と秘密鍵を所有する署名者。
認証者:最後の署名を認証する者。
アグリゲーター:各署名者からの署名を収集する者。

マルチサイニングは2段階あり、まずはnノードが公開鍵をアグリゲーターに送信します。
公開鍵は収集されて一つの公開鍵が発行された後、収集された公開鍵は認証者に転送されます。

公開鍵の収集プロセス
    1. コミット・フェーズ
      nノードはランダムなパータンを生成してアグリゲーターに送信(コミット)する。
    2. チャレンジ・フェーズ
      アグリゲーターはコミットを収集して、収集されたコミットと公開鍵とメッセージを使用してチャレンジを生成します。
      チャレンジの目的は、nノードが公開鍵の秘密鍵を知っているかの認証のためです。
    3. レスポンス・フェーズ
      nノードはチャレンジに対して、秘密鍵を使用するレスポンスを送ります。
      レスポンスはアグリゲーターによって収集されます。
      このレスポンスこそが、n署名者が秘密鍵を所有している証拠となります。

最終的にまとめられた署名はチャレンジとレスポンスのセットであり、初期に認証者に収集された公開鍵と検証します。

まとめられた署名のサイズは一定であり、署名者の数には依存しません。

検証者がまとめられた署名をチェックする際に、検証者は各署名者が適切にプロトコルに則ったかはチェックせず、全ての署名者が全体としてプロトコルに則り、且つ秘密鍵の知識を証明したかのみをチェックします。

故に、検証者の決定は「all-or-nothing形式」となります。

 

デザインストーリー3 – ZILLIQA

 

CoinPicks


– 仮想通貨の質問悩みについて筆者がズバリお答えします –

友だち追加

リアルタイムで仮想通貨の情報収集しています –

 Twitter

–  CoinPicksは「学ぶ」「動く」「繫がる」場所です –

CoinPicks – オンラインサロン –


ZILLIQA – コンセンサスプロトコル –

前回の記事でシャーディングについての概要説明と問題点と解決策について説明しました。

 

コンセンサスプロトコルの採用


ビットコインやイーサリアムが採用しているコンセンサス・プロトコルは、「ナカモトコンセンサス」(Nakamoto Consensus)という仕組みを採用しています。

ナカモトコンセンサスを採用しているビットコインやイーサリアムに限って言えば、「スケーラビリティ」を犠牲にすることで「分散性」と「セキュリティ」を取っています。

対してZILLIQAは、”PBFT”と呼ばれるコンセンサス・プロトコルを採用しています。
ZILLIQAに限って言えば、「分散性」を犠牲にすることで「スケーラビリティ」とセキュリティ」を取っています。

ナカモトコンセンサスとは?

コンセンサス・メカニズム(合意の仕組み)と一連のルールを指します。
主に以下の4つに分解することができます。

  • Proof of Work (PoW)
  • Block Selection(ブロック選択)
  • Scarcity(希少性)
  • Incentive Structure(インセンティブ構造)

ナカモトコンセンサスによるブロック承認者の選出は、PoWによって決められます。
PoWによる選出には、多大な計算量を必要としており時間を要します。

 

PBFTによるコンセンサスの流れ


PBFTは”Practical Byzantine Fault Tolerance”の略称です。
前提として、シャード内のノードのうち3分の1が悪意を持っていることを前提にしています。

シャード内には、リーダーであるプライマリーノード(Primary Node)と、それ以外のバックアップノード(Backup Node)が存在します。

PBFTのプロセス

Pre-prepare phase

リーダーであるプライマリーノードが「prepareメッセージ」の発信によって、グループ内のノードが承認しなければいけないレコードを送信します。

Prepare phase

「prepareメッセージ」を受信したバックアップノードは、リーダーによってアナウンスされたレコードの正確さと正当性を検証します。
その後、「prepareメッセージ」を他のノードに一斉送信します。

Commit phase

「prepareメッセージ」を受信した各ノードは、Commit Messageをグループに一斉送信します。
各ノード群は、他のノードから送信されるCommit Messageが一定量集まることで、リーダーによってアナウンスされたレコードに合意していることを確認します。

 

PBFTを採用する3つのメリット


PBFTを採用することによる3つのメリットについて解説します。
このメリットは、ナカモトコンセンサスと比較したメリットとなります。

Transaction finality

PBFTはFinality(ファイナリティ)に対して優位性があります。
ナカモトコンセンサスを採用しているビットコインの場合、ブロック生成後に”完了状態”となるまでに、最低でも6承認待たなければいけません。
1承認約10分とした場合、6承認得るのに約1時間を要します。
これでは、日常的な決済に活用できるとは言えません。

対してPBFTは、上述した”PBFTのプロセス”によって、生成されたブロックが”完了状態”となる為、ブロックが分岐することなく瞬時に決済が完了します。

Low energy footprint

PBFTはメッセージによるグループ合意を得ているため、エネルギー消費を抑えることができます。
対してPoWは、多大な計算量を必要とするためその分エネルギー消費が必要になります。
しかしZILLIQAでは、ノードの善悪を審査する時のみ(シビルアタック)Powを採用しています。
ノードの正体が一旦判明したら、PBFTを起動することで複数のブロックを連続でコンセンサスを求めます。

Powによる審査は100ブロック毎に採用しています。対して、ナカモトコンセンサスは1ブロックごとにPowによるコンセンサスが必要となります。

Low reward variance

PBFTは参加している全ノードに対してインセンティブを与えることが可能です。
ナカモトコンセンサスの場合、多大な計算によって難解な問題を一番早く解決できたマイナーのみにインセティブがあります。

参加者全員にインセティブを与えることができる設計は、非常に興味深く別途記事にて詳細をお伝えしたいと思います。

 

PBFTの課題


PBFTは、グループ(ノード群)が50以下の条件下で一番効率的になります。
しかし、ZILLIQAは悪意のあるノードにシャードをコントロールされてしまう可能性を考慮して、シャードのサイズの最小限を600ノードに設定しています。

「効率性」と「セキュリティ」でトレードオフの関係であることがわかります。

ノード群が多くなることで、グループ内の「コミュニケーションコスト」によって、PBFTの効率が悪くなります。

 

デザインストーリー2 – ZILLIQA –

 

CoinPicks


– 仮想通貨の質問悩みについて筆者がズバリお答えします –

友だち追加

リアルタイムで仮想通貨の情報収集しています –

 Twitter

–  CoinPicksは「学ぶ」「動く」「繫がる」場所です –

CoinPicks – オンラインサロン –


ZILLIQA – ネットワークシャーディング –

ZiLLIQAとは


ZILLIQAとは、パーミッションレスな分散型ネットワークを安全に拡張できるように設計されたブロックチェーンプラットフォームです。
また、イーサリアムへの実装が進められているSharding(シャーディング)というソリューションをブロックチェーン上に実装しています。

「パーミッション」とはアクセス権を意味しており、単純にビットコインやイーサリアムのような、中央管理者が存在しないブロックチェーンを指します。
対義語として「パーミッションレス」が存在しており、リップルのような中央管理者が存在するブロックチェーンを指します。

 

Sharding(シャーディング)とは


シャーディングとは、取引処理を分割して複数のグループで検証を同時進行する事でスケーラビリティ問題を解決する為のソリューションです。
良く誤解があるのですが、シャーディングはイーサリアム独自の技術というわけではなく、あくまでもデータを分散して処理するための解決策ということになります。

シャーディングに関する詳細は、本稿では割愛させて頂きます。
詳細を知りたい方は、Osukeさんの記事がおすすめです。

シャーディングには、ネットワークシャーディング(Network Sharding)、トランザクションシャーディング(Transaction Sharding)、コンピュテーショナルシャーディング(Computational Sharding)など、様々な種類が存在します。

ZILLIQAが採用しているのは、ネットワークシャーディングです。

 

ネットワークシャーディングとは


ネットワークシャーディングの論理は、仮に1,000ノードのネットワークがある場合、100ノードずつ10のシャードに割り振ります。
シャードは並列にトランザクションを処理できるため、1つのシャードが秒間10トランザクションを処理可能とする場合、10シャードは合計でその10倍、つまり秒間1,000件の取引を処理できることになります。

従来ではブロードキャストされたトランザクションは、1つのノードが処理します。
しかし、シャーディングによってノードを分割することで、処理を分割することでノードの負担を減らすことができます。

元々データベース管理システムの分野で使われていた技術ですが、「シャーディング」は2015年にZILLIQAのチームメンバーによって初めて、ブロックチェーンでの活用を主張されました。

上記の説明のように、シャーディングを論理で語るのは容易ですが、実際にシャーディングを実現するためには以下の問題を解決しなければなりません。

  • シビル攻撃問題
  • シャード分割問題
  • シャードのサイズ

 

シャーディングを実現するための3つの問題


シビル攻撃問題

問題
ZILLIQAはパブリックブロックチェーンのため、インターネット上なら誰でもアクセスが可能です。
結果的に悪意のあるユーザーは、1人で複数のノードを作成することができ、多数のコンセンサス(合意)を演出(シビル攻撃)することを可能にします。

解決策
ZILLIQAはプルーフ・オブ・ワーク(POW)を採用しています。
ユーザーがネットワークに参加するためには、POWの作業を義務付けます。
POWの作業をすることで、ユーザーはネットワークに参加するためのエントリーが可能になります。
その後、ネットワークの既存ノードがエントリーを確認します。
悪意のないことが認められると、ネットワークへの参加が認められます。

シャードの分割問題

問題
仮に1,000ノードのネットワークがあるとします。
それを10シャードに分割する際に、どのノードをどのシャードに割り振るかについて慎重になる必要があります。
仮に悪意のあるノードが1箇所に集まると、ネットワーク全体の安全性が損なわれる可能性があります。

解決策
ZILLIQAではまず、DS Committee (Directory Service Committee)という専用ノード群を選出します。
DS Committeeの選出はPOWを通して行われ、Committeeは一定の間隔で、既存ユーザーの除去と新規ユーザーの選出を1人ずつ行います。

ユーザーの除去方法は、先入れ先出しの順番で行われ、常にネットワーク内のユーザー数は一定となります。新規ユーザーの選出方法は、POWによる計算で最初に勝ち抜いたユーザーが選出されます。

コミッティーは、メンバーが選定されたら、シャーディングのプロセスを起動する。ここで、ネットワークに参加しているすべてのノードがもう一回プルーフ・オブ・ワーク作業をしなければならない。
つまり、悪意のあるユーザーは選出されるまでPOWを繰り返す必要があり、コストデメリットによって攻撃を未然に防ぐことが可能になります。

シャードのサイズ

問題
シャード内のノードの数が少ないほどに、悪意のあるノードにシャードをコントロールされてしまう可能性があります。

解決策
シャード内のノードの数をいくつにするのかついて慎重になる必要があります。
仮に100ノードが入っているシャードがあるとします。
そのなかの3分の1が悪意のノードである確率はおおよそ0.04としています。
この確率はシャードのサイズが増えるほどに小さくなります。

仮に600ノードが入っている場合は、悪意のノードが全体の3分の1以上を占める確率は1/100万まで下がります。
そのため、ZILLIQAはシャードのサイズの最小限を600ノードに設定することで、悪意のあるノードが入ってしまう可能性を最小限にとどめます。

 

デザインストーリー – ZILLIQA

 

CoinPicks


– 仮想通貨の質問悩みについて筆者がズバリお答えします –

友だち追加

リアルタイムで仮想通貨の情報収集しています –

 Twitter

–  CoinPicksは「学ぶ」「動く」「繫がる」場所です –

CoinPicks – オンラインサロン –