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


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

友だち追加

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

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


関連記事

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

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

PAGE TOP