Zilliqa position paperメモ
A. Executive Summary
ブロックチェーンPFはコンセンサスコンピューターのコンセプトをもたらした
今あるもっとも重要な問題の1つとしてスケーラビリティがある
EthereumやBitcoinは3〜7 TX/sぐらいしかないがVISAやMasterCardは数千 TX/s
Zilliqaはセキュアでスケールしているオープンな新しいブロックチェーンPF
Zilliqaのスケーラブルな特性はシャーディングから実現している
ネットワークをいくつかの小さなネットワークに分けて、並列でTXを処理する
結果として、マイニングネットワークが拡大するにつれて、トランザクションレートは増加する
ZilliqaはVisaとかMasterを目指しており、10000 nodesあればそこまでたどり着くと考えられている
Zilliqaはアイデンティの確立してシャーディングを実行するためにPoWを利用している
コンセンサスの達成のためにPoWを使ってはいない
↑の利点
1. PoWは200〜300ブロック毎に実行される。結果として、コストが低い
2. マイナーは1回のPoWでいくつかのブロックに対するコンセンサスを達するので、安定して報酬が支払われる
さらに、トランザクション手数料もかなり低い
今日の有名なブロックチェーンは1secで数個のトランザクションしか実行しないため、少ないトランザクション手数料では遅れて実行される
Zilliqaは形式的検証言語とともにスマートコントラクトプラットフォームをサポートしている
↑はシャーディングがしやすい
例としては、Zilliqaはユーザーが分散広告ネットワーク、DEX、シェア経済等を作ることを許している
B. Why Zilliqa?
BitcoinやEthereumではスケーラビリティの問題が指摘され、解決策もいくつか提案されているが、本当にそれが解決できるのか(もしくは実施されるのか)疑問に持っている
Zilliqaはスケーラブルでセキュアなプロトコルで新しいブロックチェーンである
ブロックチェーンベースのデジタル広告システムの例
スケーラブルなブロックチェーンが必要となる理由を説明するために、分散広告システムの例について
分散広告システムの3つのエンティティ(ステークホルダー)は以下
マーケッター(広告を出す人)
パブリッシャー(広告を媒体に乗せる人)
ターゲットオーディエンス(広告を見る人)
マーケッターはパブリッシャーにお金を払って、ターゲットオーディエンスがその広告を見る
ただ、リアルでは広告エージェント、広告取引所、広告ネットワークもエンティティとしてある
これらのエンティティは広告のスペースやを売りにだしたり、買うことができる広告市場を形成する
ただし、今日の広告システムは問題を抱えている
仲介人のいくつかの層の存在でマージンによるコストが上がる
さらに、最近のマーケッターでは、重大な詐欺攻撃を取るものもいる(Ad fraud) こういったことは、マーケッターのジャッジに不足があったりして起きてしまうかもしれない
公平なマーケットプレイスや仲介人の排除、インプレッションの可視化などをブロックチェーンベースのシステムを使えば実現できる
ただし、今あるブロックチェーンではかなり制限があり、Zilliqaはそういった問題も解決できる
1. High Volume
2. Parallel Bidding
3. Correctness
4. Fairness
かつ、パブリックな分散ネットワークの要件を満たすために、Zilliqaは構成されたセキュアなネットワークシャーディングスキーマを利用する
↑は自動でシャーディングされ、ノードのサブグループに対して入札リクエストがされる
↑は最終的な結果が決まるまで、誰にもデポジット(入札)を操作できないようにsる
各シャードによって計算する内容は異なることを実行することもできる
計算結果の正しさは「コンセンサス」と「コントラクト」の2つのレベルで保証される
コンセンサスでは、全ての正直なノードが同意することによって、オークションの結果をファイナライズする
Zilliqaはほとんどの正直なノードでコンセンサスをとってもすばやく合意に達するようなプロトコルになっている。
↑分散性とスケーラビリティの両立
効率的な集団署名スキーマはセキュアで、対攻撃性が強い技術である(developped by Zilliqa)
また、合意が収束する時間を莫大に減らすためにも使われている
コントラクトでは、Zilliqaは新しい言語Scillaが挙げられる
↑は簡単に正しいコントラクトを記述することができるようになる
↑はまた、公平性のようなプロパティを証明するためにも便利である。
C. Key Features of Zilliqa
1.ネットワークシャーディング
Zilliqaは動的にネットワークを異なるサブグループへ分ける。ー>シャード
各シャードは独立に処理をし、シャードが扱っていたトランザクションでのコンセンサスへ達する
最終的にはこれらのトランザクションはマージされ、1つの新しいブロックとしてブロックチェーンへコミットされる
この大きなチャレンジはリアルなネットワークなシャーディングをどのようにセキュアに実現するかという点
セキュリティへの影響に対処するため、セキュリティが強くスケーラビリティがあるプロトコルを開発した
このプロトコルは非中央集権で民主的な方法で、ディレクトリサービス委員会(DSコミッティー)を選出し、更新するために、PoWパズルを利用することである
DSコミッティーはシャーディングプロセスを合わせる任務として追っているのと同様に、それぞれのシャードによって提案されたトランザクションのブロックがただし以下検証する
Zilliqaでは、PoWはコンセンサスの達成には使われない
シビルアタックを防ぎ、シャーディングを実行するためだけに使われている
つまり、PoWはシビルアタックを防ぐ他のものに置き換えることもできる
PoWを使った理由はPoSがまだ実験段階のため
2. セキュアで効率的なコンセンサス
セキュアで効率的なコンセンサスの実現のために、BFTを採用(ただ最適化てる)
ファイナリティを得られるコンセンサス(確率的ではない)
ただ、各ノードのコミュニケーションコストが半端ない
私達は具体的に最近提案されたスケーラブルな署名スキーマCoSiを用いる
↑CoSiは潜在的にBFTプロトコルをもっとスケーラブルにする
ここでのチャレンジはCoSiがパブリックなブロックチェーンよりも明らかに安全ではない環境だけで動作することを提案している点である
なので、機能を強化して、CoSiスキーマを開発した
特に、追加のステップとメッセージラウンドをCoSiに追加した
↑悪い検証者と証明者を防ぐために、署名の検証者と署名者の両方側に追加した
この追加したステップとチェックはできるだけ早く攻撃者の振る舞いであることを認識することを実現できる
winor.icon > 各ノードのコミュニケーションコスト(大きなネットワークでないとスケールできない)問題はCoSi署名で解決できるのか?
3. トランザクションシャーディング
Zilliqaはアカウントベースのデザインである。
アカウントベースは送信するアカウントに応じてトランザクションが分けられることを許可する
↑はダブルスペンドや同じノードによってトランザクションが阻止される攻撃を防ぐことができる
よりよくスケーラブルにするため、Zilliqaは2つのトランザクションシャーディング設計をした。
1. Zilliqaはコストが高く複雑なクロスシャード通信を必要とせず、アトミックなトランザクションコミットを提供する
2. Zilliqaはコンセンサスプロセスと一緒に非同期で処理されるトランザクションを許可する
Zilliqaはreject-and-retryメカニズムを採用している
↑は大多数のノードが最新の状態になったとき、非同期でトランザクションを処理できるようなメカニズム
4. 計算量シャーディングとシャーディングフレンドリーなスマートコントラクト言語
スマートコントラクトはアプリケーションがブロックチェーンのストレージとコンセンサスによって提供される分散台帳の先頭で構築されることを許可する
しかし、今日のパブリックなブロックチェーンでは、計算を集約するはタスクあまり適さな
すべてのフルノードで再実行して検証するため
なので、冗長なプログラミングモデルはひどくこすとがかかる
Zilliqaのメインゴールスケーラビリティを達成するために、多くのアプリケーションでスケールできるscillaを開発
セキュリティの検証や正しさのプロパティを超えて、Zillliqaはスマートコントラクトの言語はシャーディングのブロックチェーンアーキテクチャで効率的に動作する
コンピューショナルシャーディングを実現することができる
それぞれのサブタスクを計算するためのコンセンサスグループのサイズを特定する
それぞれのコンセンサスグループは計算+結果をだし、その結果を比べることによって、どうだったかを確認できる
ガスを手数料として使える
使い方としてはセキュリティと計算量の2種類
計算量を取る場合は多くのコンセンサスグループに計算させずに、少量のコンセンサスグループにアプリケーションの計算等をしてもらう
セキュリティが必要の場合は大量のコンセンサスグループに計算をしてもらう
↑の分ガスが必要
Solidityみたいな感じで書きやすいよ!
5. 収益可能なマイニング
PoWをブロックのコンセンサスを達するために使わないのは2つのメリットがある
1. アイデンティを確立すれば、ノードは連続した複数のブロックのコンセンサスに同意することができる
BitcoinやEthereumのPoWとは対照的
結果として、エネルギー効率が良い
2. マイナーが複数のブロックのコンセンサスに達することができるので、報酬を安定して得ることができうr
既存のトランザクション手数料の高騰はトランザクションの処理速度が遅いことが起因する
しかし、圧倒的に多いトランザクション処理速度ならば、そこまでトランザクション手数料の問題は大きくならなくなる