Zilliqa公式FAQ日本語訳

Zilliqa公式FAQを日本語に訳しました。全部で78項目あります。

誤訳、用語の指摘等歓迎します。


ZILLIQAについて話しましょう

1. ZILLIQAとは何ですか?

ZILLIQAは、1秒間に何千回ものトランザクションに拡張できるように設計された、ハイスループットのパブリックブロックチェーンプラットフォームです。

2. ZILLIQAという名前の由来は何ですか?

ZILLIQAはシリカを捩りました。シリコンがコンピューティング業界に力を与えるように、ZILLIQAは次世代のハイスループットアプリケーションとして期待されています。

3. ZILLIQAはどのように発音しますか?

[ジリカ]と発音します。

4. ZILLIQAのスケーラビリティについて秀でた点はどこですか?

より多くのマイニングノードがネットワークに加わるにつれ、ZILLIQAは毎秒より多くのトランザクションを処理します。

これは当然のように聞こえるかもしれませんが、実際には技術的に達成するのは難しく、現状、既存のブロックチェーンでは実現していません。

5.線形スケーラビリティについて説明してください

ZILLIQAの場合の線形スケーラビリティは、より多くのマイニングノードが参加すればするほど、ネットワークが処理できるトランザクションが増え、それがほぼ線形の速度で向上することを意味します。

ほとんどのブロックチェーンは、ネットワークが拡大するとスループットが向上しません。むしろ、収益率はネットワークが大きくなるにつれて減少します。

たとえば、新しいマイナーがEthereumネットワークに加わると、確認の前にトランザクションを他のノードにブロードキャストする必要があります。これは、より多くのマイナーがネットワークに加わるにつれて、ブロックに関する各データがブロックチェーンの一部になる前に、大量に送信されなければならないことを意味します。

これにより、多くの人に情報を配布するのが少人数に比べて遅くなるように、ネットワークが遅くなります。これはトランザクションスループットを加速する多くの解決策が、ノードの数(管理型のチェーンなど)の制限に依存する理由です。 ZILLIQAのように線形スケーリングが可能なソリューションはありません。

6. ZILLIQAはPoWベースですか?

はい、であり、いいえ。

ZILLIQAは、PoWを活用してマイニングIDを確立するだけです。 PoWはシビルアタックを防ぎ、ネットワークシャーディングの実行にも使用されます。他のPoWベースのブロックチェーンとは異なり、ZILLIQAはPoWをコンセンサスに使用しません。 PoWは、すべてのブロックのすべてのマイナーではなく、より大きなスパンでのみ実行されます。したがって、ZILLIQAのエネルギー効率は(その仕事量と比較し)はるかに小さくなります。

7. ZILLIQAではどのコンセンサスプロトコルが使用されていますか?

ZILLIQAはコンセンサスに最適化された実用的なプラクティカル・ビザンチン・フォールト・トレランス(pBFT)プロトコルを使用しています。

8. ZILLIQAはコンセンサスにBFTを使用するのは初めてですか?

いいえ、NEO、Tendermint、HyperledgerはすべてBFTのバリエーションを使用します。

9. PoWベースのpBFTコンセンサスを使用する利点は何ですか?

コンセンサスプロトコルとしてpBFTを使用することにはいくつかの利点があります。

1、PoWよりも計算作業が集中的でなく、したがってエネルギー消費が少ない。

2、効率のために小さなコンセンサスグループを活用することができる。

3、トランザクションにファイナリティを与える。言い換えれば、通常6回の確認が必要なPoWベースのコンセンサスとは異なり、pBFTはコンセンサスプロトコルによって一時的なフォークが発生しないことが保証されるため、確認は要りません。

(※訳者注 pBFTプロトコルの合意はノードの2/3が同意しなければ進展しないため、正直なノードも悪意のあるノードも、とにかく66%以上を占拠しなければブロックを作ることはできません。この点で、改竄耐性だけで言えば66%の強度を持っていると言えます(開発者に確認済み)。現在確認している限り、他のシャーディングを導入するプロトコルでは25%から50%の改竄耐性しかありません)

10. ZILLIQAのpBFTはどのように取引をファイナライズしますか?

コンセンサスプロトコルのファイナリティの定義は、プロトコルの終わりにすべての正直なノードが、提案されたブロックで合意することです。このプロパティはBitcoinでは実現されません。理由は次のとおりです。

あるノードがPoWを行い、ブロックを提案すると同時に、別のノードはまた、別のブロック上でPoWを行い、それを提案することができます。

ネットワーク内のあるノード群は最初のブロックだけを見るのに対し、別のノード群は2番目に早かったブロックを見る可能性もあります。したがって、彼らは次のブロックに同意しないかもしれません。 ファイナリティはここでは保証されません(bitcoinでは一時的なフォークが発生する)。

pBFT(ZILLIQAで使用されているコンセンサスプロトコル)では、プロトコルの最後のステップでネットワーク内のノードがブロック全体を見て同意したことを示す必要があります。悪意のあるノードは署名しないかもしれません。

すべての正直なノードがブロックに署名した場合にのみ、ブロックはブロックチェーンにコミットされます。

つまり、署名されたブロックが新しいブロックでなければならないと署名することによって、すべてのノードが同意するので、ファイナリティが保証されるということです。

11. ZILLIQAはなぜPoSを使用しないのですか?

PoSは、長きに渡る実際の運用で生き残っているPoWに比べてまだ比較的新しいです。私たちは、PoSはまだ非常に初期のアイデアであると確信しています。証明可能なPoSプロトコル(Ouroboros)が提案されたのもつい最近のことです。

提案されたプロトコルは、実際の環境には当てはまらないかもしれない、いくつかの前提を用いています。

逆に、PoWは非常によく理解されているメカニズムです。

つまり、ZILLIQAでのPoWの使用は、PoWがスケーラビリティのボトルネックにならないようにBitcoinで使用される方法とは大きく異なります。 ZILLIQAは、PoWを使用しても、毎秒数千のトランザクションのスループットに達することが可能であることを示しています。

12.今後、PoWからPoSに移行する予定はありますか?

PoWをシビル耐性のためのステークベースのメカニズムに置き換えることは可能でしょう。しかし、私たちは依然として根底にあるコンセンサスプロトコルとしてpBFTを使用し続けます。

また、PoSはあらゆる問題に対する理想的な解決策でもありません。

実現のためには、PoSのようなコンセンサスプロトコルがうまくいく場合の脅威モデルを考慮する必要があります。

PoSは定義上、「暗号経済的前提」または「合理的行動」と呼ばれることが多い一連の仮定の下で機能します。

これは、参加者がシステムにステーク(証拠金)を持っているため、悪意のある行動をしたくない、またそうした場合おそらく検閲され罰せられることになるというものです。

一方、(p)BFTコンセンサスプロトコルは、ノードがビザンチンである、より敵対的な仮定の下で働きます。

これは、ノードがステークを失うことを気にせず、システムを破壊する動機があることを意味します。 敵対モデルが異なるため、2つのコンセンサス提案を直接比較することはできず、どちらか一方に置き換えることはできません。

ZILLIQAのシャーディング

13.シャーディングとは何ですか?それはZILLIQAをどのようにスケーラブルにしますか?

シャーディングは、長い間分散データベースの領域で知られていましたが、オープンで無許可なブロックチェーン(誰でも参加できる)で実証されていない概念です。この考え方は、トランザクションを処理する大規模なネットワークを自動的に並列の小コミッティーまたは「シャード」に分割することです。各シャードは、それ自身のマイクロブロックを他のシャードと並行して処理し、結果として生じるマイクロブロックは最終的なものにマージされます。この自動ネットワーク並列化は、ZILLIQAを介してオープンブロックチェーンに実用化されました!

14. シャーディングはMapReduceに似ていますか?

はい、シャーディングとMapReduceは似ていますが、MapReduceではマッパーは通信する必要はありません。非状態シャーディングでは、エポックの終わりにいくつかのメッセージを送る場合があります。

15.シャードのサイズは?

シャードサイズ(訳注※一つのシャード所属するノードの数)は固定ではなく、動的に選択されます。しかし、下限と上限が存在します。下限は600です。このサイズでは、シャードメンバーの1/3が悪意を持っている可能性が非常に低いため、このシャードサイズを選択しました。また、ブロードキャストがボトルネックにならないように上限を設定します。実験的なテストとストレステストが必要なため、上限はまだ試験中です。正確な数字は追ってお知らせします。

16.シャードカウントは動的に調整されますか?

エポックの終了後にさらに多くのノードがネットワークに参加すると、シャードカウントが増加します。ノードが離れると、シャードカウントが減少します。ただし、セキュリティ上の理由から、シャード内のノード数は600以上にする必要があります。

17.シャードが完全にビザンチンになるのを防ぐものは何ですか?

PoWを使用するシャードの作成は、ノード群をランダムに一様にサンプリングすることと同等です。したがって、おおまかに言えば、シャードを引き継ぐためには、ネットワークの1/3を制御する必要があります。シャードサイズが600ノードの場合、悪意のあるノードが1/3である確率は100万分の1です。(※訳注 全体の1/4が悪意のノードだと仮定した場合の、ランダムサンプリングによる確率。https://twitter.com/Ohtac/status/1011770926784921600)

18.どのシャードノードに入るのかを調整することは可能ですか?

いいえ、ノードはランダムにシャードに割り当てられます。

19.ノードは同じシャードにいるかどうかを知っていますか?

はい、ノードはそのシャードの他のメンバーを知るでしょう。

20.シャード間通信はありますか?

ZILLIQAは状態シャーディングを行わないため、シャード間通信は最小限に抑えられます。シャードは、トランザクションデータを転送するためにのみ、他のシャードと非同期に通信します。

21.シャードは他のシャードを信頼する必要がありますか?

いいえ、シャードは別のシャードを信頼する必要はありません。

ノードも、ネットワーク内の他のノードを信頼する必要はありません。

22. PoWはどうやってシビル耐性のみに使用されていますか?

新しいノードはすべて、まずZILLIQAネットワークに参加するためのPoWを行います。ネットワークはPoW送信を検証し、送信に応じて、特定の分割に割り当てられます。これはアイデンティティの確立段階と見ることができます。ノードがシャードに入ると、シャード内の他のノードとのコンセンサスを複数回実行します。このコンセンサスは、(Bitcoinのような)PoWベースではなく、効率的なBFTコンセンサスプロトコルに依存しています。これは、1つのPoWで複数回のコンセンサスを行うことができることを意味します。

23. PoWは悪意のあるマイナーがネットワークに参加してシャードを導くのを防ぎますか?

いいえ、プロトコルは、悪意のあるマイナーがPoWを行うのを防ぐことはできません。 PoWを使用する目的は、あまりにも多くの悪意のあるマイナーがいないことを保証するためです。

24. DSノードとシャードノードは同等の議決権を持っていますか?

DSノードは、DSコミッティーで実行されるコンセンサスプロトコルに投票します。シャード内のノードは、それが割り当てられているシャードのコンセンサスプロトコルに投票します。シャードまたはDSコミッティーの各ノードは、等しい投票権を持ちます。

25. 2500tx/sのスループットに基づいて予想されるブロック時間はどのくらいですか?

我々は現在、多くの要因に依存し、経験的に最適化される予定のブロックレイテンシを調整中です。テストネットでは、ブロック時間は2分以内です。

26. DSエポックの長さはどのくらいですか?

DSコミッティーの規模はnであり、最終ブロックの処理はt分かかるとします。つまり、DSエポックはn×t分となります。

これは、DS内のすべてのノードが最終的にリーダーになり、最終ブロックを提案することを前提としています。

現在の構成では、n = 600、t = 2minsです。これは、DSエポックが600×2 = 1,200分(20時間)であることを意味します。

この場合20時間は長すぎるので、ノードがオフラインになることがあります。私たちが探している解決策は2つあり、

1)できるだけtを減らす

2)ラウンドロビンを実行し、DSエポック中にn個の最終ブロックを提案する代わりに、n個未満の最終ブロックの処理を定数60とする。

これは、DSのすべてのノードがリーダーになるわけではないことを意味します。リーダーは無作為に選ばれなければなりません。

27. ZILLIQAはリアルタイムトランザクションに使用できますか?

ZILLIQAでは、コンセンサスは2つのレイヤーで発生します。まず、マイクロブロック上でコンセンサスに達するシャード層。

第2に、DS層では、最終ブロックでコンセンサスに達します。スマートコントラクトを呼び出すトランザクションを除く支払いなどの取引の場合、マイクロブロックを見るだけで十分です。つまり、最終ブロックをスキップすることができるということです。

もちろん、DSコミッティーがマイクロブロックを拒否する可能性はありますが、その可能性はあまり高くありません。このような取引の確認は数秒で行うことができます。

ZILLIQAのスマートコントラクト

28.スマートコントラクトのための新しい言語を開発しているのはなぜですか?

私たちは、コントラクトに関する安全性を証明できる文法の言語を開発しています。これにより、既存のコントラクトが直面しているDAOやParityなどの問題のほとんどが回避されます。コントラクトについて正式な証拠がなければ、そのような状況は避けられません。

29.言語はどのように見えますか?

Ethereumとは異なり、ZILLIQAのスマートコントラクト言語(Scilla)はチューリング完全ではありません。

計算モデルは、I / Oオートマトンの通信に基づいています(LynchとTuttle’881のI / Oオートマトン理論、CPSスタイルの戻り値)。フロントエンド言語はSolidityに近いかもしれません。

その理論的根拠は次のとおりです。

すべてのアプリケーションがチューリング完全言語を必要とするわけではないこと。さらに、チューリング完全の言語は複雑であり、バグが発生しやすくなること。チューリング完全でない言語は、その単純さのために正式なメソッドベースの検証に従うようになります。より具体的に言えば、資金がロックされないなど、非チューリング完全なプログラムについて興味深い安全性と生存性を証明することが可能になります。

30.公開時の検証は義務的かオプションか?

http://www.markrtuttle.com/data/papers/lt89-cwi.pdf

理想的なシナリオでは、正式な検証を義務化したいと考えています。これにより、プラットフォーム上で実行されているdAppは安全に使用できます。さらに、プラットフォーム上で機密性の高いdAppを実行する場合、証明書を追加することで、dAppユーザーはシステムを使用することができます。しかし、すべての開発者が正式なプルーフアシスタントに精通しているとは限りません。したがって、それを強制することは、プラットフォームの採用を妨げる可能性があります。他の潜在的な問題は、我々が正式な検証を義務づければ、マイナーはコンセンサスプロトコルの実行時に証明書をチェックしなければならない可能性があるということです。

31. 非チューリング完全言語を使用したZILLIQAに適したdAppはどのようなものですか?

高いスループットを必要とし、無限ループを持たないdAppは、ZILLIQAに適しています。

32. チューリング完全であることが必要なアプリケーションにはどのようなものがありますか?

ガス料金のない仮想的なブロックチェーンプラットフォームを想像してください。言い換えれば、dAppを実行するのが無料のものです。次に、決して終了しないループを実行する必要のあるdAppを考えてみましょう。簡単な例は、ユーザーが入力しないことをユーザーが待つdAppです。そのようなアプリケーションは、非チューリング完全言語で構築することはできません。また、別のdAppとノンストップで会話するdAppを想像することもできます。例えば、スマートグリッドとノンストップで通信するスマートメーターなど。

つまり、ZILLIQAのdAppに大きな制限はありませんが、コントラクトでは無限ループや無限回帰を書くことができない可能性があります。また、どの外部呼び出しも遷移関数の最後の命令でなければなりません。

33. ZILLIQAのスマートコントラクトでサイドチェーン(プラズマなど)を実装することは可能ですか?

はい、サイドチェーンを実装することは可能ですが、API、通信などの点でサイドチェーンをZILLIQAにどのように取り付けることができるかの詳細を把握する必要があります。

34. ZILLIQAは、FacebookなどのdAppに対応するために、1秒間に何百万件ものリクエストを処理する予定ですか?

ソーシャルネットワーク(例えば、偽造されたポストを防止する)に対するセキュリティ要件は、暗号通貨よりも厳しくありません。直接的にお金を盗むよりも、メッセージを攻撃し偽造しようとするインセンティブが少ないからです。したがって、より安全性の低いオフチェーンソリューション(サイドチェーン、Raidenなど)をZILLIQAに追加して、弱い脅威モデルを使用するアプリケーションのスループットをさらに向上させることができます。

マイニングについて

35.ZILLIQAとBitcoinとのマイニングにおける違いは何ですか?

Bitcoinとは異なり、ZILLIQAのマイニングプロセスはPoWに直接基づいていません。すべてのZILLIQAノードは、最初にDSエポックと呼ばれるものの開始時にPoWを実行します。有効なPoWソリューションがネットワークに提出されると、各ノードはpBFTコンセンサスプロトコルに参加する必要があります。コンセンサスプロトコルを単純な投票と見なします。大多数のノードが投票した場合、そのブロックは有効であるとみなされ、ブロックチェーンにコミットできます。ノードがPoWを完了すると、ある数のブロックに投票することができます。ブロックチェーンにコミットするすべてのブロックは、いくつかの報酬を得るでしょう。 Bitcoinとの違いは、Bitcoinではノードが新しいブロックごとにPoWを実行することです。 ZILLIQAでは、ノードが60ブロックごとにPoWを実行します。これは、ZILLIQAのPoWに関連するエネルギーフットプリントが低いことも意味します。ZILLIQAマイニングの利点の詳細は、次のブログ記事で詳しく説明しています。

36. ZILLIQAのマイニングはCPUまたはGPU指向ですか?

難易度が上がる前では、CPUが有用です。 しかし、長期的にはCPUはGPUマイニングほど効率的ではありません。

37. ZILLIQAと他のコインを同時にマイニングすることは可能ですか?

ZILLIQAのノードはすべての最終ブロックをマイニングするためにGPUを使用しないため、使用されていないときにGPUを使用して他のチェーンを並列にマイニングすることは完全に可能です。しかし、2つの鎖の採掘が時間的に分離されたままであることを確実にするために、他の連鎖の平均ブロック時間を考慮する必要があります。

38.特殊なマイニング設備は、起動時にのみ使用できますか?

はい。起動時、すなわちDSエポックの開始時にのみ、専用のマイニング機器を使用することが可能です。残りのプロトコルは計算集約的ではないためです。

39. 2つのDSエポックの間で、ノードはシャードに接続している必要がありますか?

はい、ノードが後でコンセンサスプロトコルに参加しなければならないため、ZILLIQAでのマイニングはPoWで終了しません。

40.エポックはネットワーク全体で同期化されていますか?

はい、それはネットワーク全体で弱く同期しています。各エポックの開始時に、誰もがPoWを開始し、ソリューションを提出してネットワークに参加します。これを行う時間枠は限られています。その時間が過ぎると、誰も(次のDSエポックまで)ネットワークに参加することができず、シャーディングが始まります。

41.シャードのDSノードとノードの難易度はどのくらいですか?

シャードとDSコミッティーのためのPoWの難易度を管理するには、2つの方法があります。

1つの解決策は、難易度を同じに保ち、601の提出(シャードの場合は600ノード、DSエポックごとのDSコミッティーの場合は1ノード)を待つことです。その後、PoW提出物をソートすることができ、最小のものを提出するノードはDSコミッティーに割り当てられ、残りの600ノードはシャードに割り当てられます。もう1つの可能性(ホワイトペーパーに記載されている)は、最初にDSコミッティーのためのPoWを実行し、次に2回目のシャードを実行することです。この場合、難易度は大きく異なる必要があります。私たちは後者の方法だけでなく、前者の方法を探っています。後者の利点は、プロトコルが2つのPoWの周波数を決定できることです。私たちは依然として私的なテストネット段階にあるので、まだ決定されている具体的な難易度のパラメータはありません。

42. PoWの難易度を決定する要因は何ですか?

難易度は、ネットワークハッシュレートを見積もることによって決定されます。これをEthashの本質的なパラメータと仮定しています。

DSレベルのPoWの場合、難易度の推定はBitcoinなどの従来のPoWベースのブロックチェーンとまったく同じになります。シャードレベルについては、事前に決められた標準的な難易度から始め、各シャードメンバーがパズルを解決するために要した平均時間を測定します。その後、平均を取ります。同様の測定がいくつかのエポックで行われ、次に別の平均値が取られます。これにより、ネットワークは有効なハッシュレートを推定し、それによって難易度を調整することができます。

43. Bitcoin Cashのような非常時の調整がありますか?

ZILLIQAは、より多くのマイナーがネットワークに加わるほど、スループットが向上することを保証します。しかし、100万ノードという非常に大規模なネットワークをサポートすることはできません。その場合、私たちは緊急難易度調整のようなものに頼るかもしれません。

44.余分なハッシュパワーがあれば、複数のシャードに参加することは可能でしょうか?

技術的には、1つのノードに複数のシャードに参加するのに十分なハッシュパワーがあれば可能ですが、ただし各アイデンティティはネットワークアドレスとポートにバインドされています。複数のシャードに参加するには、「別の」ノードに別のポートを使用する必要があります。

45.ノードは、マイニング報酬を受け取るために自分の順番を待つ必要がありますか?

はい、ノードは、自分のターンがラウンドロビン設定で報酬を得るのを待たなければなりません。このモデルの優れた特徴は、ノードがシャードに入ると、報酬を受け取ることが保証されることです。その結果、報酬の分散は低くなります。さらに、ノードはシャードに参加する前にPoWを1回だけ実行するため、ラウンドロビンサイクル中にPoWを実行しません。 PoW後にノードが行う計算はあまり集中的ではありません。

46. DSブロックおよびトランザクションブロックプロセッサの報酬は何ですか?

報酬はトランザクションブロックチェーンに対してのみ与えられ、DSブロックチェーンには与えられません。

47.報酬の発行曲線はどうなっていますか?

計画では、最初の数年で大きく発行します。我々のプロトコルの強みはマイナーの数であるため、最初の数年間はマイナーにとって可能な限り魅力的なものにしたいと考えています。すぐに正確な発行曲線を発表する予定です。

48. ZILLIQAでノードを実行する際のエネルギー使用量はどのくらいですか?

ZILLIQAのマイニングは、既存のPoWベースのブロックチェーンよりもエネルギー効率が良いと期待されています。ノードあたりのエネルギー消費量をx、単位を毎秒としましょう。

nを、m (Tx/s)並列に処理することができるネットワーク内のノードの数とします。これは、1つのノードに対して1つのトランザクションを処理するのに必要なエネルギーがx/m単位であることを意味します。

1Txを処理するネットワーク全体の総エネルギー消費量はn×x / m単位になります。ここで、線形スケーリングとは、nが2n倍になると、mは2mに倍増することを意味します。これは、ネットワーク全体の1Txを処理するためのエネルギー消費がn×x / m単位に変わらないことを意味します。これは、EthereumやBitcoinの場合には、nが2n倍になってもmは変わらないので、1txを処理するためのネットワークによる総エネルギー消費は倍になり、一定に保たれません。大量のエネルギーを消費するとしても、ZILLIQAでマイニングノードを実行するコストは、Ethereumでマイニングノードを実行するコストの約1/10になると見積もっています。

49. ZILLIQAは検証者のジレンマに苦しんでいますか?

リーダーがブロックを提案し、それを受け入れたり拒否したりするナカモト・コンセンサスに基づくプロトコルでは、マイナーはトランザクション検証を無視して次のブロックのマイニングを開始するインセンティブを持っています。マイナーが次のブロックでコンセンサスに達するような(p)BFTのようなコンセンサスでは、トランザクション検証をスキップするインセンティブはそれほどありません。

攻撃について話しましょう

50. ZILLIQAのセキュリティ/パフォーマンスは十分に分析されていますか?

全体的なアーキテクチャーについては、公開前にピアレビューのラウンドを経たElastico論文に、高度なセキュリティ分析が示されています。高い確率で、各シャードの全メンバーの1/3以下がビザンチンであることが証明されています。

pBFTの各合意の安全性については、カストロとリスコフが元学術論文で分析しました。 pBFTプロトコルは、コンセンサスグループの一部のビザンチンノードを持つ弱い非同期モデルで安全性と生存性を保証することが示されました。

パフォーマンスに関しては、ZILLIQAのコアレイヤー(コンセンサスレイヤーを含む)を実装し、AWS EC2インスタンス上で動作するノードを持つ内部テストネット上でテストしました。 3,600個のノード(6個のシャード)で、最高毎秒2,488トランザクションのスループットが観測されました。

51. ZILLIQAのホワイトペーパーはピアレビューされましたか?

ZILLIQAは、いくつかの査読済みの学術論文からアイデアを借りています。シャーディングの中心的なアイデアは、ZILLIQAチームのメンバーの一部が共著したCCS’16の論文に由来しています。リーダーの選挙とブロックの提案を切り離すために2つのブロックチェーンを使用するという考えは、NSDI’16で公開されたBitcoinNGに由来します。シャード環境におけるコンセンサスのためのpBFTの使用は、CCS’16論文とUsenix Security’16で出版されたByzCoinの論文に由来しています。また、EC-Schnorrマルチシグネチャを使用してpBFTのシグネチャサイズを縮小しています。これは、S&P’16(Oakland)に掲載されたCoSiの論文に由来しています。これらの会議はすべて、CCS、NSDI、Usenix Security、およびS&Pがトップランクのセキュリティと分散型システム会議です。

52. ZILLIQAへの51%攻撃は可能ですか?

ほとんどのPoWベースのブロックチェーンプラットフォームでは51%の攻撃が可能です。ブロックチェーンが機能するには、まず脅威モデルを想定しなければなりません。例えば、ほとんどのPoWベースのブロックチェーンでは、単一のエンティティがハッシュパワーの51%を制御することはないと想定しています。この脅威モデルでは、ブロックチェーンプロトコルが安全であることを示すことができます。多くのブロックチェーンが過去に51%の仮定に違反することに非常に近づいているため、ZILLIQAはより強い(※訳注 33%を占拠されない限り、Bitcoin等と比べて一時的なフォークは発生しないため無駄な争いを避けられるという意味で言っていると思われます←(× 18.07.05訂正 そうではなく、66%をコントロールされない限り改竄が不可能であるという意味での可能性が高いです。)仮定を持つことに決めました。ZILLIQAでは、ハッシュパワーの1/3以下が敵の支配下にあるという前提があります。

また、51%の定義による攻撃は、シャードレベルよりDSレベルでより意味をなしません。これは、DSレベルでは、各シャードからの1つのノードだけがDSコミッティーに入り、複数のノードがシャードに入るからです。

53.シャードを攻撃することはできますか?

シャードを攻撃するには2つの方法があります。

1)リーダーを攻撃する

2)リーダー以外のノードを攻撃する

リーダーを攻撃すると、シャードは新しいブロックの提案を一時的に停止します。しかし、これはプロトコルが永遠に失速することを意味するものではありません。その理由は、ブロックを提出し続ける他のシャードが存在するからです。さらに、このプロトコルは影響を受けるリーダーを置き換えます。今、非リーダーノードを攻撃する場合、ビクティムノードと残りのビザンチンノードの数が1/3未満であれば、プロトコルは問題なく機能します。

54.量子コンピューティングによる攻撃は可能ですか?

量子コンピューティングの攻撃は、ZILLIQAが使用する署名方式では実現可能です。量子耐性シグネチャを使用していない理由は、通常、シグネチャサイズが従来のシグネチャサイズよりもはるかに大きいことです。これを踏まえて、暗号研究者が量子耐性の短い署名を思い付くなら、我々は量子耐性署名へ移行します。もう一つのポイントは、EC-Schnorrのようにシグネチャスキームに集約プロパティが必要であり、既存の量子シグネチャにこのプロパティがあるかどうかは不明です。

55.ネットワークを小さなシャードに分割すると、シビル攻撃の影響を受けやすくなりますか?

ZILLIQAは、ハッシュ力の1/3以下が敵の支配下にあると仮定しています。この仮定の下で、ネットワーク内のノードの超大部分は正直なものになるでしょう。この仮定は、BFTベースのプロトコルが動作するためにも必要です。つまり、ZILLIQAは、1/3の仮定が成立する限り、安全です。

ZILLIQAがシャーディングを実装しても、この1/3の前提は変わりません。攻撃はシャードの数とは関係なく、むしろ各シャードのサイズに依存します。シャードなしでネットワーク全体でBFTプロトコルを実行するシナリオを考えてみましょう。ネットワーク全体として悪意のあるノードがあまり多くない場合は、BFTが機能します。さて、ZILLIQAでは、並列処理を行いたいので、ネットワークを一定数のシャードに分割する必要があります。 1/3の仮定を持つ初期ネットワークから始める場合、作成される各シャードについて1/3の仮定が当てはまることを保証しなければなりません。これは、各シャードが最終的にBFTを実行するためです。

これを保証するために、プロトコルはPoWサブミットを介してランダムサンプリングを行う、すなわち、特定のシャードに入るノードは、ネットワーク全体の初期プールからランダムに選択されます。シャードサイズが重要であることに注意してください。さもなければ2つの節点を持つシャードを作成したくないので、1/3の仮定は強い確率では成立しません。 Elasticoの論文には完全な確率論的分析があります。これらの理由から、ZILLIQAにはシャードごとに最低600ノードが必要です。

56.運よく、1つのシャードで過半数を得ることは可能ですか?

ZILLIQAの脅威モデルは、プロトコルの開始時に、初期ネットワーク(シャーディング前)の1/3のノードが悪意のあると仮定して、古典的なビザンチンフォールトトレランスモデルに従います。この仮定の下で、私たちはPoWを実行するようノードに要請します。 PoWはノードの初期プールから無作為抽出を行う方法を提供し、シャードを作成することを可能にします。シャードのサイズが十分に大きい場合(600以上)、確率的分析によって、シャードのノードが悪意のあるものである確率が1/3以下であることが示されます。

57.ビザンチンの当事者が負う最大の損害額はいくらですか?

定義どおりのビザンチンパーティーであれば、プロトコルを無効にすることができますが、pBFTプロトコルは、その分数が限定されていれば、コンセンサス中に安全性と生存性が犠牲にならないようにします。さらに、リーダービューの変化が検出され、誤動作しているリーダーを新しいリーダーに置き換えて、長時間のストールを防止します。指導者である合理的な攻撃者は、報酬を失うため、プロトコルの実行を混乱させるインセンティブを持っていません。

58.(ビザンチン)ノードは、PoW1とPoW2の間でどのようにPoW電力を分割するのですか?

PoW1とPoW2は、難易度が同じで、かつシャード内またはDSコミッティーにいることに関連する報酬が同じである場合、正直なノードの決定には影響しません。

難しさが違う場合、DSコミッティーに入ることはさらに難しいので、正直なノードはシャードに参加しようとします。しかし、DSノードはわずかに高い報酬を得ることができるため、ビザンチンノードはランダム抽出のために入るのが難しい特定のシャード(PoW2経由)よりも、DSコミッティー(PoW1経由)をターゲットにする可能性があります。

(訳注:つまり、難易度を変えると正直なノードの行動に偏りが出て弱まってしまうため、難易度は同じにした方がセキュリティが高いということでしょうか?)

59. PoW1は一時的なフォークを導入できますか?

PoW1が提出されると、DSコミッティーはpBFTを実行して次のDSブロックとPoW1の勝者に合意し、ブロックにファイナリティを与えます。

60. ZILLIQAはすべてのノードにアクティブであることを要求しますか?

いいえ、ZILLIQAでは、すべてのノードを使用する必要はありません。使用できないノードまたは応答しないノードは、ビザンチンノードとしてカウントされます。したがって、600個のノードのシャードサイズの場合、約200個のノードが利用できないか、悪意のある行動を取る可能性があります(1/3はビザンチンと仮定)。正直なノード、すなわち残りの400ノードが利用可能である限り、シャードは依然としてトランザクションを処理することができます。 ZILLIQAでは、シャードに十分な数のオンラインノードがない場合、シャードは有効な集合シグネチャを持つ有効なマイクロブロックを提案できません。しかし、これにより、プロトコル全体の実行が停止されることはありません。

他のシャードは依然としてトランザクションを受け入れるためのマイクロブロックを提案できます。特定の条件、例えば、シャードがDSコミッティーへの複数コンセンサスラウンドのマイクロブロックを提案しない場合、DSコミッティーはネットワークを再分割することを決定することができます。現在、我々はまだブロックタイミングのための適切なパラメータと、各エポックのコンセンサスラウンドの数を調べようとしています。ZILLIQAでは、DSコミッティーがプロトコルを推進します。極端な場合、無視できるほどの確率ですが、DSコミッティーのノードの1/3以上がオフラインである場合、プロトコルはいくつかのエポックで進展しないことがあります。

この問題を解決するために、私たちが探求している可能性のある方法の1つは、ナカモト・コンセンサスに頼るということです。ネットワークが十分な数のDSノードを選択すると、DSコミッティーは通常のプロトコルを実行する(このあたりは訳者が気になったので公式slackにて質問中です)ようにネットワークに通知します。これにより、重大な停止状況から復旧する方法が提供されます。この部分はホワイトペーパーには記載されていません。

(※訳者注) Zilliqaチームの回答としては、「攻撃に対するインセンティブをいくらか軽減するという意味では有意義。しかし、51%以上を占拠されてしまうとコミッティーを操作する権利まで奪われてしまうため一概には言えない(pBFTを選択する限り66%を悪意のノードに操作されない限り改竄は不可能≒これは正しいノードにとっても同じ条件。)」という事でした。あくまでもビザンチン耐性を最優先させるために、1/3を占拠されて停止した場合、DSコミッティーを組み直すという選択を今の所しているようです。

61. ISPがノードをスロットルする場合、マイクロブロックから最終ブロックを再構築する際にどれくらいの影響がありますか?

ISPがいくつかのノードを抑制すると仮定します。現在、犠牲者ノードと残りの悪意のあるノードの数が1/3未満であれば、DSコミッティーは最終ブロックを構築することができます。

62. ZILLIQAは重度の攻撃の場合に自律できますか?

ZILLIQAは1/3以下のビザンチンノードを前提として動作します。何らかの理由で前提が成り立たない場合は、安全が保証されません。エンティティがハッシュ・パワーの51%を制御できないと仮定したBitcoinのように、これをPoW形式のコンセンサスと比較してください。さて、この仮定に違反する本当に強力な採掘プールを考えてみましょう。システムがどのように自己修復できるかはわかりません。つまり、セキュリティ保護されたシステムは、特定の脅威モデルの下でのみ安全です。

制限はありますか?

63. ZILLIQAの最大処理能力はどのくらいですか?

理論的には、ZILLIQAのスループットはノードの数とともに増加します。しかし、実際には、ネットワークサイズが実際には100万ノードに拡大すると、ブロードキャストが問題になります。したがって、実際にはスループットが直線的に増加するまでのスイートスポットが存在します。私たちはまだスイートスポットを知るための実験を続けています。

また、各ノードの利用可能な帯域幅についていくつかの仮定を行い、プロトコルの通信の複雑さと、交換される各メッセージのサイズを考慮し、大まかな上限を計算することも可能です。(※訳注 現在のTestnet2.0のストレステストの段階で、約10,000Tx/s の処理能力が確認されたというスクリーンショット(非公式)が出ています。)

64.シャードの失敗率(セキュリティ)とトランザクションのスケーリングの間にトレードオフがありますか?

スループットとセキュリティの間にはトレードオフがあります。 ZILLIQAネットワーク全体のスループットは、シャードの数と各シャードのサイズの両方に依存します。大雑把に言えば、シャードの数が多いほど、並列化によりネットワークが処理できるトランザクションが多くなり、シャードが大きければ大きいほど安全です。

シャードサイズについては、各シャードに少なくとも600ノードが必要です。シャードを作成するために合計1,000ノードがあるとしましょう。 ZILLIQAネットワークは、それぞれ600ノードと400ノードの2つのシャードを作成するのではなく、1,000ノードの単一のシャードのみを作成します。これにより、セキュリティが侵害されないことが保証されます。しかし、シャードサイズも大きすぎないようにすることが望ましく、10,000ノードという非常に大きい場合、シャード内のブロードキャストがボトルネックになります。

結果的に、1/3の仮定を保持するのに十分な大きさのシャードを選択しましたが、帯域幅の問題になるほどの大きさではありません。

65.ユーザーのトランザクション速度は、特定のシャードの処理能力に制限されていますか?

最初にプロトコルのステップを進めてみましょう。ユーザーがトランザクションを作成すると、そのトランザクションは特定のシャードに送信されます(送信者のアカウントアドレスによって異なります)。シャードは、トランザクションが有効かどうかをチェックします。同様の多数の有効なトランザクションがグループ化されて「マイクロブロック」が形成され、コンセンサスが達成されます。マイクロブロックは、DSコミッティーに送られ、いくつかのシャードから送られたマイクロブロックを集約し、「最終ブロック」と呼ばれるものを作成します。 DSコミッティーは最終ブロックについてコンセンサスを実行し、最終的にブロックチェーンにコミットします。したがって、パフォーマンスは、トランザクションとDSコミッティーを処理する予定の特定のシャードに依存しますが、他のシャードには依存しません。

66.上記の制限は深刻ですか?

ブロックチェーンが大量のトランザクションを受け取る理由は2つあります。第1に、単一のユーザが短い時間間隔で多数のトランザクション(例えば、100)を送信する可能性があります。第2に、複数のユーザー(たとえば100人のユーザー)が同時にトランザクションを送信することができ、それぞれが1つのトランザクションを送信します。私たちは後者が前者よりも一般的であると想定しています。従って、シャードの数が十分に多い場合、後者の場合は個々のシャードによって個別にうまく処理することができます。 ZILLIQAは、単一のユーザーが発行するシナリオを100 tx / sと表現できます。しかし、ネットワークは3,600ノードで2,500tx / sを処理できますが、単一の送信者から2,500tx / sを処理することはできません。したがって、たとえ高度なものであっても、いくつかの制限があります。追加のテストは、これらの限界をより明確にし、追加のエンジニアリングがそれらの改善に集中できるようにするのに役立ちます。

67. ZILトークンは1つのDSエポック内で複数のハンドを変更できますか?

1つのDSエポック内に複数の最終ブロックがあり、トランザクションを確認できます。これで、アリスが10個のZILをボブに送信し、ボブが5個のZILをキャロルに送信するというシナリオを考えてみましょう。

最初のトランザクションの前にボブのバランスが0だった場合、2番目のトランザクションは同じ最終ブロックで受け入れられません。そのようなトランザクションは、次の最終ブロックのために、そのメモリプール内のノードによってバッファされます。しかし、ボブの初期残高が5のZILであれば、両方のトランザクションを同じ最終ブロックで処理することができます。したがって、複数の相関トランザクションは、1つの最終ブロック内またはいくつかの最終ブロック内で処理できますが、すべて1つのDSエポック内にある必要があります。最初にこのバージョンのデザインを完成させ、将来のバージョンでこのような相関トランザクションネットの最適化を検討します。

68. ZILLIQAプロトコルを停止して、トランザクションをフリーズして通貨の送受信を管理できますか?

我々はトランザクションの停止/フリーズについて議論しましたが、プロトコルレベルで分散型に実装することは困難でした。代わりにウォレットレベルで実装することを検討しました。

69.ZILLIQAはなぜ状態シャーディングに取り組んでいないのですか?

状態シャーディングに関する議論が数回行われており、十分な安全性(例えば、攻撃に対して柔軟性)および効率的な(例えば、過度のクロスシャード通信なしの)状態シャーディングスキームは依然として存在しないという結論が得られました。だからこそ私たちは、現在の状態シャーディングを将来の仕事に据えています。

70. ZILLIQAは、高いスループットから生じるストレージ要件にどのように対処していますか?

スマートコントラクトをしばらく無視すると、最終的には必ずしもすべての履歴を保存する必要はありません。最新の状態を保存するだけで済みます。すべての履歴を保存する必要があるユースケースは、ブロックエクスプローラ用です。スマートコントラクトでは、スマートコントラクトを後で実行するために保存する必要があるため、ストレージは問題になります。私たちは現在、BluzelleやGenaroなどの分散ストレージネットワークプラットフォームと連携して、ネットワークをストレージに活用する方法を見ています。 1つの可能性は、ブロックがZILLIQAネットワークによって生成されると、ブロックがBluzelleまたはGenaroネットワークに格納されることです。トランザクションがコントラクトを実行する必要がある場合、ブロックはマイナーによってフェッチされ、計算が実行されます。コントラクトが非常に頻繁に呼び出されると、ZILLIQAノードもブロックをキャッシュすることがあります。

71. ZILLIQAアーキテクチャはチューリング完全言語を実行できないのですか?

いいえ、ZILLIQAアーキテクチャはチューリング完全言語の実行を妨げません。(訳注:独自にZilliqa用の別な言語を開発してチューリング完全なプログラムを実行することも可能という事)

72.既存のコントラクトを編集したり、更新を公開する方法はありますか?

スマートコントラクトの変更を実装することは容易ではありません。その理由は、基になるブロックチェーンが不変であるように設計されているからです。スマートコントラクトの開発者がブロックチェーン上にある間にコントラクトを変更できるようにすると、悪意のある契約者が契約の条件を変更して不利なシナリオに入る危険があります。

73.ガスのコストがZILLIQAのニューラルネットの訓練を非実用的にすることはありますか?

シャーディングアーキテクチャは、高いスループット/ボリュームを必要とするアプリケーションを実行するのに理想的です。断片化されたアーキテクチャとデータフローは、トレーニングモデルなどの興味深いアプリケーションに使用できます。

このような計算がガス料金に影響を与えることは明らかです。ブロックチェーンがここで提供できる利点は、計算結果の正確さ(99.999%の高精度など)を強く保証することです。基本的な取引については、低い手数料を目指しています。スループットが高い場合、マイナーは集計に十分なインセンティブを得るでしょう。

ガバナンス

74. ZILLIQAはフォークを許可していますか?

BitcoinやBitcoin Cashのような永続的なフォークを意味するのであれば、ZILLIQAはソースコードが公開されるのを防ぐことはできません。誰もがそれをフォークできるはずです。

二重支払いのように一時的なフォークを意味する場合、ZILLIQAはそれを許可しません。これは、ファイナリティのあるコンセンサスプロトコルに基づいているためです。したがって、ブロックがブロックチェーンにコミットされると、同じ親を共有する別のブロックを持つことはできません。

75.ZILLIQAはどのようにガバナンスを処理しますか?

Tezosのようなガバナンスプロトコルに沿ったフォークガバナンスを意味するならば、ZILLIQAは現在、そのようなフレームワークを備えていません。

ガバナンス・モデルのいずれかには、オン・チェーンとオフ・チェーン・ガバナンスのトレードオフがあります。 ZILLIQAチームが決定を下した場合、それは非常に集中化しますが、意思決定プロセスは高速です。しかし、決定がコミュニティとそのさまざまなプレイヤーによって行われた場合、決定は非常に民主的ですが、遅くなります。まず、ZILLIQA Researchが確実に運転席に座ります。 ZILLIQA Researchとそのガバナンスモデルの詳細については、すぐに発表します。

競合他社

76. ZILLIQAの競合相手は誰ですか?

まず、ブロックチェーンのようなオープンソースのフレームワークで競合することはあまり意味がありません。プロジェクトはオープンソースなので、他のプロジェクトで誰でも自由にアイデアを再利用することができます。今日のブロックチェーンの最大の問題はスケーラビリティです。この問題にはいくつかの解決策があります。それぞれのプロジェクトが独自のソリューションを提供し、1つのプロジェクトから学習し、別のプロジェクトを構築する健全な環境を作り出せるのは素晴らしいことです。

各プロジェクトには通常、独自の長所と短所があります。どんなブロックチェーンとでも競合しようとすると、プロジェクトはどこにも行きません。これにより、私たちはいわゆる競合他社にスマートなアイデアを採用することができなくなります。私たちの哲学は、アイデアの強みを特定し、それに従って、他のプロジェクトから学ぶことができるようにする必要があるということです。

77. ZILLIQAのスループットとスケーラビリティは、「競合他社」と比較してどうですか?

ZILLIQAよりもはるかに高いスループットを要求する他のプラットフォームがあります。しかし、われわれが知る限りでは、ZILLIQAはセキュリティと分散化を犠牲にすることなく真のスケーラビリティを実現する唯一のプロトコルです。

78.シャーディングは他のブロックチェーンで利用できますか?

私たちの知る限りでは、シャーディングは現在他のブロックチェーンでは利用できません。しかし、他のプロジェクトが積極的に検討している複数チャネルの計画や議論のいくつかを認識しています。最も重要な例の1つは、Ethereumです。