
ブロックチェーンの開発では、分散化、セキュリティ、パフォーマンスという不可能な三角形が最も議論されていますが、最初の 2 つを確保しながらブロックチェーンのパフォーマンスを向上させ、商用化を可能にするにはどうすればよいでしょうか? 9月5日、Odailyが主催し、36Kr Groupが戦略的に共催したPODカンファレンスで、Zilliqaとシンガポール国立大学の共同創設者兼テクニカルディレクターであるJia Yaoqi博士が会場でのスピーチで答えを述べた。 。
Jia Yaoqi氏は、ブロックサイズの増加、プロキシコンセンサスメカニズム、オフチェーンソリューションなど、パブリックチェーンのスループットとスケーラビリティを向上させる現在のソリューションは完璧なソリューションではないと述べた。まず第一に、コンピュータの記憶容量と計算能力の制限により、ブロック サイズを 100 倍に増やすことは不可能です。また、エージェント コンセンサス メカニズムによりトランザクション速度は向上しますが、コンセンサス グループが比較的小さいため、攻撃に対してより脆弱であり、集中化の色彩が強い一方、オフチェーン ソリューションとサイドチェーンは、ブロックチェーン自体の分散化、オープン性、透明性をある程度失います。
この点において、シャーディング技術は、ネットワーク全体を異なるグループに分割し、異なるトランザクションを実行することで、ネットワーク全体が異なるシャードで異なるトランザクションを処理することを可能にし、最終的には共同コンピューティングとトランザクションの共同決済を実現します。高いスループットを実現します。
新興テクノロジーであるシャーディング テクノロジーにも問題点と課題があります。シビル攻撃の場合 (悪意のある攻撃者は異なる悪意のあるノードを作成し、より悪意のあるトランザクションを促進するために異なるシャードに割り当てられる可能性があります)。 Jia Yaoqi は、プルーフ・オブ・ワークを使用してノードがそのアイデンティティを決定できるようにすると同時に、ネットワークが時々シャッフルしてノードを異なるシャードにランダムに割り当てることができると提案しました。各シャードの値が 600 以上である場合、スライス上のノードの 3 分の 1 が悪意のあるノードである確率は 100 万分の 1 未満です。さらに、異なるシャードの並列コンピューティングによって引き起こされる二重支出攻撃のリスクを考慮して、Jia Yaoqi 氏は、彼女のチームが決定論的な割り当てを通じて、異なるスマート コントラクトが確実に計算を実行できるようにする新しいスマート コントラクト シャーディング メカニズムを開発したと述べました。複数のシャードを同時に。
副題
以下は賈耀奇氏の講演の書き起こしである。
Mandy と Odaily のお誘いに感謝します。今日は、Zilliqa が過去 3 年間、特にブロックチェーン シャーディング テクノロジーのパイオニアとして、ブロックチェーンのいくつかの手法、特にパブリック チェーンの拡張に関する研究を行ってきたことを紹介したいと思います。研究チーム、この分野における最近の進歩。
ブロックチェーンとパブリック チェーンに対する誰もが、その分散化、不変性、オープン性と透明性などの既存の特性を通じて理解している可能性があります。同時に、ブロックチェーン、特にパブリックチェーンには、今や誰もが知っているスループットの低さなど、いくつかのボトルネックもあります。ここでは例と例えとして通勤電車を使用します。たとえば、既存のパブリック チェーンと同様に、1 秒あたり 10 ~ 20 件のトランザクションを実現できますが、これは通勤電車に似ており、各列車には 10 人しか乗車できず、他の人は列に並ばなければなりません。
各種クレジットカードなどの従来の決済システムと比較すると、8000tps、つまり各列車に8000人が乗車できるため、並ぶ人はほとんどいません。現在のパブリック チェーン システムのスループットの低さによって引き起こされる問題には、トラフィックの混雑があります。たとえば、今では何百人、何百万人もの人がそのような列車に乗りたいと思っていますが、各列車には10人しか乗車できません。私たちに何ができるでしょうか?まず運賃を値上げし、例えば当初の10元を1000元に引き上げ、最高値を付けた10人が一番新しい列車に乗れるようにする。
同時に、通勤電車にとっては、重大な混雑が発生することになります。たとえ各列車の定員が 10 人であっても、その後ろに何千人もの人が列を作っている場合、その処理能力は最終的にこのような大きな問題を引き起こすでしょう。多くのプロジェクトとチームがあり、誰もが高いスループットとスケーラビリティを備えたパブリック チェーン プラットフォームを実現する方法を模索していることがわかります。
既存の解決策のうち、1 つ目はブロック サイズを増やすことです。世の中には人気のあるブロックチェーンがあり、その中には 2MB のブロックを持つものもあります。ブロック サイズが単純に 2 倍、さらには 10 倍に増加した場合、対応するスループットはそれに応じて 2 ~ 10 倍増加します。ただ、このシステムは私たちが乗るバスに近いもので、2階建てにすることもできますし、その上に10階まで重ねることもできますが、バスではさまざまな高さの制限があるため、100階は作れません。
これはブロックチェーンに似ています。現在のネットワークには、各コンピューターのストレージ容量やコンピューティング能力の制限などの帯域幅の制限があり、ブロック サイズの増加につながりますが、これは 100 倍の解決策ではありません。
同時に、一部のチームや学者は代理コンセンサスメカニズムを提案しています。現在、既存のパブリック チェーンには、システム全体のコンセンサス プロトコルを実行し、トランザクションを処理し、新しいブロックを生成するために 10,000 または 20,000 のノードがあります。それでは、このような 20,000 人のノードを、たとえば、コンセンサスを形成するために投票する 1,000 人、あるいは 50 人、または 21 人に減らすことができるでしょうか?答えは「はい」です。このようなコンセンサスプロトコルを、コンセンサスに達してブロックを生成するためにトランザクションを処理する人員をわずか 50 人に減らすことができます。
コンピューターテクノロジーの観点から見ると、コンセンサスプロトコルを実行するノードの数が少ないほど、コンセンサスがより速く形成されます。比較的小規模なノード グループがある場合、ブロック生成速度とコンセンサス プロトコルの速度は 1 秒あたり数万件のトランザクションに達する可能性があります。しかし、ほとんどの場合、資本額に基づいて代理店組織を選択するため、一般大衆の利益を代表していない可能性のある少数のグループが選択されることになります。同時に、エージェント組織の標的は比較的小さいため、攻撃に対してより脆弱であり、一部のエージェントが攻撃されると、ブロックチェーン システム全体が影響を受けます。
もう 1 つの一般的な拡張ソリューションは、サイドチェーンおよびオフチェーン ソリューションです。現在、オフチェーン トランザクションで最もよく使用されるシナリオは小規模トランザクションです。例えば、コーヒーを買う場合、ユーザーはダイレクトチェーンにデポジットを預け、月に何十回もコーヒーショップでコーヒーを買うことができるため、チェーン上での取引が不要になり、チェーン自体への依存度が減ります。 。ただし、そのような解決策はパブリック チェーン自体の分散化と透明性も失います。
一方、今年初め、Vitalik 氏は自身の Twitter にシャーディングが来ると投稿しました。シャーディング技術の研究を行う最初のチームとして、私たちのチームは2015年にシャーディング研究を開始し、2016年にコンピューターセキュリティのトップカンファレンスであるCCSで関連論文を発表しました。これは、パブリックチェーンに関する学術論文にシャーディング技術を適用した最初の学術論文でもあります。スループットの向上。
ご覧のとおり、これは私たちのチームが行った予備実験です。 3,600 ノードのシステムは、1 秒あたり 2,000 件を超えるトランザクションを達成できます。シャーディング技術とは、簡単に言うとネットワーク全体を分割する技術で、例えばネットワーク全体が10,000ノードある場合、それを複数のグループに分割し、グループごとに異なるトランザクションを処理することができます。ネットワーク全体が異なるシャードで異なるトランザクションを処理し、最終的にトランザクションの並列処理の効果を実現して、高いスループットを実現します。
断片化テクノロジーは、優れたセキュリティ、妥協のない分散化、スマートコントラクトの効率的な実行をどのように確保するかなど、多くの課題や問題にも直面しています。
次に、これらの課題と問題をどのように解決するかを簡単に説明します。最初の課題は、異なるノードを異なるシャードに分割する方法です。これには多くの知識があり、悪意のある攻撃者は異なる悪意のあるノードを作成し、それらを同じシャードに配置することで、より悪意のあるトランザクションを促進する可能性があります。
このような問題をどのように解決すればよいでしょうか?まず最初に、先ほど触れたこのような攻撃は、学術的にはシビル攻撃と呼ばれています。つまり、攻撃者はそのような悪意のあるノードを多数作成してネットワークを占領することができます。このようなシビル攻撃を防ぐために、私たちのシステムでは各ノードがプルーフ・オブ・ワークを行う必要があります。各ノードは、有効な ID を宣言するために、定期的に (2 時間など) 作業証明を実行する必要があります。その後、システムはノードを異なるシャードにランダムに分散し、各シャードには 600 を超えるノードが含まれます。計算により、各シャード内のノードの 3 分の 1 が悪意のあるノードである確率は 100 万分の 1 であることが証明できます。
システムがセキュリティ シャーディングを処理したら、次の問題は、異なるトランザクションを異なるシャードに配置する方法です。たとえば、アリスは攻撃者で、異なるシャードに 2 つのトランザクションを作成できます。1 つのトランザクションは 5 元をボブに送金し、もう 1 つのトランザクションは 5 元を自分に送金します。 2 つのシャードは異なるトランザクションを処理しますが、アリスは 5 ドルを 2 回使います。これは古典的な二重支払い攻撃と呼ばれるものです。
先ほど述べた二重支払い攻撃については、送信者のアドレスに応じて異なる転送トランザクションをシャーディングすることで攻撃を防ぐことができます。ただし、現在パブリック チェーン上には多数のスマート コントラクト トランザクションが存在しており、これらのトランザクションはシャーディングにさらなる課題をもたらしています。先ほどの例では、アリスとボブは、どちらも映画チケットの販売にスマート コントラクトを使用しており、アリスは 1 つのシャードでこのスマート コントラクトから最後の映画チケットを購入し、ボブも別のシャードの映画チケットで最後の映画チケットを購入します。最終的に、全員が自分の残高で映画のチケットを購入しましたが、異なるシャード間では通信がないため、最後の映画のチケットはアリスのものですか、それともボブのものですか?これはデータの不整合によって引き起こされる非常に深刻な問題です。
通常の転送トランザクションの場合、送信者のみが送信者と受信者の状態を変更します。ただし、スマート コントラクトでは、異なる送信者によってスマート コントラクトの状態が変化する可能性があり、同時に、スマート コントラクトによって異なるユーザーの状態も変化する可能性があります。
スマート コントラクト シャードのステータスの不一致の問題を解決するには、2 フェーズ コミット プロトコルを使用して、異なるシャード内の関連するスマート コントラクトのステータスをロックします。アリスとボブは、異なるシャードで最後の映画チケットを購入します。アリスのトランザクションを最初に実行し、ボブのシャードのスマート コントラクトの状態をロックできます。ただし、ロック プロトコルにより、スマート コントラクトが複数のシャードで同時に実行されなくなります。このような並列コンピューティングの問題を解決するために、私たちのチームは別の方法を開発しました。それは、決定論的割り当てを通じて先ほど述べたスマートコントラクトの競合問題を解決することです。
まず、多数のスマート コントラクトを調査し、次にこれらのスマート コントラクトのトランザクションを分類します。
1. 通常の振込取引。
2. スマートコントラクトを呼び出すだけです。
3. これはより複雑で、ユーザーはスマート コントラクトを呼び出すことができ、スマート コントラクトは再度スマート コントラクトを呼び出します。
次に、これら 3 種類のトランザクションを異なるシャードに割り当てます。通常の転送トランザクションの場合、送信者のアドレスに基づいて、どのシャードに属して処理されるかを直接決定できます。 2 番目のカテゴリについては、送信者のアドレスとスマート コントラクトに基づいて、どのシャードに属するかを判断できます。 3 番目のカテゴリと 2 番目のカテゴリの特別なトランザクションを、処理のために特別なシャードに引き渡します。理論的な分析と検証の後、これら 3 種類のトランザクションを異なるシャードに配置して、アルゴリズムを通じて並列処理を行うことができ、同時に二重支払い攻撃や先ほど述べたデータの不整合の問題を防ぐことができます。
スマートコントラクトのシャーディングの問題を解決する一方で、スマートコントラクト自体にも多くの問題があることもわかりました。たとえば、過去 2 年間に確認されたスマート コントラクトは、さまざまな抜け穴のために凍結されました。その理由は、スマートコントラクト自体がより複雑で予測不可能性が高いためです。私たちの既存の研究に基づいて、私たちのチームは、より優れたセキュリティを提供し、正式な検証を容易にする独自のスマート コントラクト言語 Scilla を開発しました。現在、いくつかの比較的大手の広告会社やソフトウェア会社がスマートコントラクトの開発にScillaを使用するために協力しています。
今年末か来年初めに Zilliqa メインネットが稼働する頃には、シャーディング テクノロジによってパブリック チェーンのスループットが大幅に向上していることがわかるはずです。
これらは私からのシェアです、皆さんありがとうございました!