くじら研究所丨ハッシュグラフ技術解析
鲸准研究院
2018-07-08 07:36
本文约7301字,阅读全文需要约29分钟
ハッシュグラフは、まったく新しい分散型台帳コンセンサス メカニズムのテクノロジとデータ構造であり、基盤となるブロック層に似ています。


著者:




————————————————————

著者:

ノードキャピタルリサーチセンター リン・ジェイン ラン・ハンウェイ

鯨研究所 タン・イン・ワン・ファン・チェン・ホンイー

最初のレベルのタイトル

.01. 概要

1.1 ブロックチェーンの概念

伝統的な意味でのブロックチェーンは、一連のブロックを線形にリンクするチェーンであり、これらのブロックは一定期間内に発生したトランザクションを記録します。マイナーはこの期間内の取引の会計権をさまざまな仕組みで奪い合い、取引するには運が良ければ、または十分な手数料を支払ってマイナーに選ばれる必要があります。たとえば、ビットコイン ネットワークでは、10 分に 1 つのブロックのみが生成され、1 秒あたり平均 7 トランザクションが発生します。イーサリアムではブロックの生成時間が大幅に短縮されましたが、ブロックの確認には依然として 10 秒以上かかります。トランザクションの確認には 10 秒以上、場合によっては 10 分以上待つ必要があるため、効率が非常に低く、ブロックチェーン 1.0 および 2.0 プロジェクトが大規模な商用利用に至るにはまだ長い道のりがあります。

1.2 DAGの概念

有向グラフが任意の頂点から開始し、いくつかのエッジを通ってその点に戻ることができない場合、そのグラフは有向非巡回グラフ (略称 DAG) です。有向非巡回グラフは「ブロック」の概念を打ち破り、その中の各トランザクションはブロックにパッケージ化されるのを待つステップをスキップし、単一トランザクションの単位でチェーンに直接組み込まれます。

しかし、DAG ネットワークにはネットワーク幅の制御という問題があり、すべての新しいトランザクションがネットワーク内の古いトランザクション ノードにリンクされると、この古いノードから DAG ネットワークが急激に広くなり、効率が低下します。 。したがって、新しいトランザクションがチェーンの新旧ノードに均等に接続され、ネットワークが一定の幅内で制御されることが理想的な状態であり、IOTAを含むDAGネットワ​​ークはこのようにして幅の問題を解決します。

既存の DAG プロジェクトの問題:

IOTA:

1. MITの報告書は、IOTAは独自に開発したハッシュアルゴリズムcurlを使用しているが、curlアルゴリズムのハッシュ値は非常に衝突しやすいため、デジタル署名が偽造される可能性があると指摘しました。

2. コンセンサスはネットワーク全体のトランザクションによって決定されるため、理論的には、誰かがトランザクション量の 1/3 を生成できれば、無効なトランザクションを有効なトランザクションに変えることができます。一方で、IOTAは取引手数料が無料であるため、マイナーにとってはインセンティブが無く、サービス妨害攻撃やスパム攻撃の可能性に直面しており、資産手数料を請求しないコミュニティと同様に、犯罪者を排除することは困難です。自治によって。

3. IOTA は、ネットワーク全体のトランザクション (二重支出など) をチェックするために、クローズドソースの集中コンポーネントであるコーディネーターを導入していますが、コーディネーターを効果的に削除し、良性のインセンティブ メカニズムを備えた分散型の「コーディネーター グループ」を確立する方法はまだ示されていません。 IOTA ソリューション。

Byteball:

メイン チェーン アルゴリズムと証人の解放頻度との関係により、トランザクション確認の時刻は不確実です。Byteball はリレーショナル データベースに基づいてデータを保存するため、SQL 言語がアルゴリズム ロジックと密接に結合しすぎているため、Byteball の現在の動作が制限されます。拡張能力とスピード。

NANO:

適切なテストやピアレビューがなければ、コンセンサスアルゴリズムには重大な欠陥が生じる危険があります。たとえば、ネットワークの競合を解決するのに十分なクォーラム投票がない場合はどうなりますか? NANO ネットワークの一部が長期間にわたって分離された場合、分離されたネットワークが再び結合すると何が起こるでしょうか?避けられない投票プロセス中にネットワークに再参加すると麻痺してしまうのでしょうか?これらの問題はまだテストおよび検証されていません。

1.3 ハッシュグラフの概念

ハッシュグラフは、DAG ネットワークに基づくデータ構造およびコンセンサス アルゴリズムですが、ハッシュグラフには幅を制御する独自の方法があり、各ポイントは 2 つの親ノードを持つことができます。ハッシュグラフ ネットワークでは、許可されたノードだけがイベント (イベント) を開始する権利を持ちます。イベントはトランザクション データのコンテナです。新しいイベントを開始するすべての作業は、これらのノードによって完了する必要があります。 -チェーン構造により、競合する必要がなく、ブロックを同期的に生成することで大規模かつ低コストの合意形成が可能となり、作業効率が大幅に向上し、帯域幅を制御しながら真の「ブロックレス」を実現します。 250,000 TPS 以上を達成できると言われており、低トランザクション手数料、分散型、非マイニングのインターネット基盤の信頼ネットワークです。
Hashgraph のデータ構造図は次のとおりです. アリス、ボブ、キャロル、デイブ、エドはそれぞれイベントを開始する権限を持つ 5 つのノードであり、各円はゴシップを受信したときにノードによって作成されるイベントです。一番下に行くほど、早く開始されたイベントが多くなり、一番上に近づくほど新しいイベントになります。

Hashgraph は、パブリック チェーン環境における非同期 BFT コンセンサスの先駆者であり、従来の BFT の主な問題は、メッセージの複雑さが高すぎるため、システムのネットワーク帯域幅が大量に消費され、動的ネットワークにうまく対応できないことです。ここで、Hashgraph は従来のゴシップ プロトコルを導入し、独自の革新性と仮想投票メカニズムを追加しているため、コンセンサスが必要な場合に突然大規模なメッセージングの嵐が発生することはありません。

ブロックチェーンとハッシュグラフの比較:

最初のレベルのタイトル



.02.ハッシュグラフ技術

Hashgrapgh のコンセンサスメカニズムは、Gossip about Gossip と Virtual Voting の 2 つの部分から構成されており、以下ではこの 2 つのワークフローとコンセンサスメカニズム全体のワークフローを説明し、Hashgraph の利点と問題点について説明します。

2.1 Gossip about Gossip

Hashgrapgh の中心的なコミュニケーション プロトコルは、オフィスの噂話からインスピレーションを得た「Gossip about Gossip」です。ここで言う噂話とは、自分は知っているが相手は知らない情報を指します。一定期間以内に誰もが知ることになります。ゴシップ情報。

ハッシュグラフでは、各ノードは署名された新しいトランザクションと隣接ノードから受信したトランザクション情報を伝播します。ノードが新しいトランザクション情報を含むデータを受信すると、ノードは新しいイベントになることがわかっているトランザクションを結合し、場合によっては追加します (イベントは、ブロックの概念と同様、2 つのハッシュ ポインター構造を含むデータであり、0 または複数のトランザクション情報)、このイベントには 2 つのハッシュが含まれており、1 つはノードの最後の最新イベントを指し、もう 1 つはノードが別のノードから受信した最新のイベントを指します。その後、イベント全体にタイムスタンプが付けられ、署名されます。このサイクルは、すべてのノードが同じ情報を取得するまで継続します。

以下の図に示すように、ボブはアリスのゴシップをランダムに見つけたとき、彼が現在知っていることをすべてアリスに話します。次に、アリスはここで新しいイベントを作成します (赤い点)。新しいトランザクションの追加に加えて、この新しいイベントは、親イベントを指す 2 つのハッシュ値も追加します。1 つは最新のイベントを指す (濃い青)。 one ボブが自分自身とチャットしたときの最新のイベント (空色) を指します。

本質的に、ゴシップ アルゴリズムは冗長性を備えたフォールト トレラントなアルゴリズムであり、さらに結果整合性アルゴリズム、またはコンセンサス アルゴリズムを提供する手段でもあります。特定の時点ですべてのノードの状態が一貫していることは保証できませんが、最終的には特定の時点で、すべてのノードが特定の時点より前のすべての履歴について一致していることは保証できます。

ハッシュグラフのノード間のゴシップの内容には、ノード間のゴシップの履歴記録も含まれるため、各ノードはゴシップを通じてハッシュ グラフを維持できるため、ノードがコンセンサス投票を計算するときに、仮想投票を開始できます。他のノードが特定のハッシュ グラフでどのように投票するか。これにより、実際の投票を実行するためにネットワーク上で大量の双方向同期通信を行う必要がなくなります。ハッシュグラフの発明者の言葉を借りると、「ハッシュグラフは投票アルゴリズムのすべての利点を備えていますが、最大の欠点は回避されています。」

ゴシッププロトコルの迅速な収束特性により、各新しい情報はより高速に各ノードに到達できるため、各ノードは他のノードとのすべてのノードの通信履歴を維持します。

2.2 Virtual Voting

上記では、Hashgraph がノード間でどのように通信するかを示しました。ゴシップ アルゴリズムの実行後、すべてのノードはフル ノードとなり、完全なネットワーク履歴を保存します。特定の提案に関する合意が必要な場合、大規模なメッセージ通信は必要ありません。各ノードは独立して実行できます。仮想投票メカニズム (Virtual Voting) を実行すると、すべてのノードが確実に同じコンセンサス結果に達します。以下に、記事「ハッシュグラフ - おそらく現時点で最良のコンセンサスプロトコル」から引用した、仮想投票メカニズムの詳細な用語定義と仮想投票プロセスのデモンストレーション例を示します。

用語の定義:

イベント

上記のゴシップ アルゴリズムでは、ビットコインのブロックと同様に、イベントは 2 つのハッシュ ポインターを含むデータ構造であり、0 または複数のトランザクション情報を含めることができ、ノードは同時にイベントを作成します。時間に応じてタイムスタンプが付けられ、イベント全体がデジタル署名されます。

絶対多数

2/3 を超えるノード数については、多くの DPoS アルゴリズムでもこの概念が採用されています。

見える

イベント B がハッシュ ポインターに沿ってイベント A を見つけることができれば、イベント B はイベント A を見つけることができます。

強く見える(強く見える)

イベント B が絶対多数のノードにわたるイベント A のすべてのパスを見つけることができる場合、イベント B はイベント A から強く認識されます。ホワイトペーパーでは、数学的証明により、2 つの強く見えるノードが仮想投票で一貫した結果を取得できることを保証できると述べられています。

目撃者

各ラウンドで各ノードによって作成される最初のイベントは、ラウンドの祖先イベントである証人イベントであり、ノードは特定のラウンドでは証人イベントを持たない場合があります。

有名な証人

ラウンド R の証人がラウンド R+1 の証人の絶対多数に見える場合、それはよく知られた証人です。具体的な計算方法は次の文章で詳しく説明します。

作成されたラウンド

イベントの作成ラウンドは R または R+1 です。R はイベントの親ノードの最大ラウンドです。 R ラウンドの目撃者の絶対多数がイベントを強く認識できる場合に限り、イベントの作成ラウンドは R+1 になります。

受信したラウンド

共通イベントが R ラウンド (作成ラウンド) ですべての既知の証人に表示される場合、イベントの受け入れラウンドは R ラウンドです。共通イベントが R ラウンドのすべての既知の証人に表示されない場合は、 、その受け入れラウンドの時間は R ラウンドより後でなければなりません。

仮想投票プロセスの例:

下の図は作成ラウンドを分割しています。図の DAG グラフは下から上に向かって成長しています。作成ラウンドの分割方法については後で詳しく説明します。各ノードが新しいイベントに同期されると、すぐに計算を開始できます。創作ラウンド二流。

次のように、証人の定義に従って証人イベントの各ラウンドにマークを付けます。

各証人について、それが既知の証人であるかどうかを判断する必要があります。イベント B2 が既知の証人であるかどうかを判断する例を考えてみましょう。既知の証人の定義によると、イベントが既知の証人であるかどうかを判断する必要があります。 A3、B3、C3、D3 は B2 を見ることができます。実際、これは選挙プロセスであり、各立会人が B2 に投票して、B2 が有名かどうかを決定します。

A3 イベントは B2 に表示され、表示されるパスは次の黄色の線になります。B2 は A3 の祖先イベント、A3 は B2 の子イベントまたは派生イベント、A3 は B2 に表示されるため、A3 は YES に投票します。 。

他の 3 人の証人についても同様に、投票後、証人全員が賛成票を投じたため、B2 イベントでは有名な証人が選ばれると予想されますが、選挙プロセスはまだ終わっておらず、まだ投票の段階があることに注意する必要があります。投票は次の証人ラウンドまでに完了する必要があるため、B4 と D4 が数えられます。この写真には A4 と C4 はありませんが、それらは必ず表示され、時間の経過とともに集計に参加します。

投票集計段階では、R+2 ラウンド立会人は、自身の強く見える R+1 立会人から投票結果を収集します。特定の投票結果によってカウントされた票数が絶対過半数を超えると、その結果は有効であるとみなされます。つまり、コンセンサスが得られます。数学理論によると、R+2 人の証人のいずれかが投票結果について決定を下した場合、その結果がネットワーク全体の結論となります。このラウンドの証人が決定を下せない場合、次のラウンドの証人が投票の決定をカウントします。明確な結論が出るまで。具体的な例を見てみましょう。B4 から A3 への可視パスが 3 つあり、それらは 3 つのノードにまたがっています。したがって、B4 は A3 イベントに対して強く可視です。つまり、B4 によって A3 から収集された投票結果は YES です。

同様に、B4 は B3、C3、D3 のイベントを強く見ることができます。

要約すると、B4 事件では 4 つの賛成票が集まり、明らかに結論を導き出すことができます。B2 は有名な目撃者です。図では、これらの有名な証人を緑色でマークします。次に、C2 イベントの人気度を判断します。次の C2 の立会人投票の結果は 1YES、3NO であるため、B4 は投票を数えた後、明らかに有名な立会人ではないと判断します。C2 を次のようにマークします。青、そして白書には、他のすべての証人が同じ決定を下したことを数学的に検証する保証があります。

次のラウンドで決定できない場合 (2:2 の投票結果など)、数学の定理によると、10 ラウンドごとにランダムなラウンド (コイン ラウンド) を追加する限り、次のラウンドに進みます。 、選挙プロセスは最終的に確実になり、終了します(確率 1 に収束します。平たく言えば、収束するのはほぼ確実です。これは確率論の概念です)。ランダムラウンドでは、絶対多数の結果を収集した証人は決定を下さずに投票するだけですが、他の証人はデジタル署名の中央値に基づいてランダムに投票します。私たちは著名な証人の選出を続け、次のような結果を得ました。

ラウンドですべての既知の証人が特定されると、ラウンド内の他の一般的なイベントに対する承認ラウンドとコンセンサス タイムスタンプを決定できます。黒のイベントは第 2 ラウンドですべての既知の目撃者に見えるため、その受け入れラウンドは 2 であることがわかります。

ここで、その後のコンセンサス順序の決定のために黒のイベントのコンセンサス タイムスタンプを決定し始めます。ノード A の最も古いイベント X (A2 の祖先であり黒のイベントの息子でもある) を探し、同様に Y を探します。ノードBのZとノードDのZ。次に、XYZ イベントのタイムスタンプを順番に並べ替え、中央値を黒いノードのコンセンサス タイムスタンプとして取得します。次に、他のノードの受け入れラウンドの決定に進みます。

受け入れラウンドが 2 であるイベントを 10 個特定したので、ネットワーク全体で認識される順序、つまりコンセンサス順序で並べ替え、次の優先順位に従って並べ替えます。

ラウンドを受け入れる

コンセンサスタイムスタンプ

イベント署名と乱数の XOR 結果によって並べ替えます。乱数は、このラウンドのすべての既知の証人のデジタル署名の XOR 演算を通じて取得されます。

2.3 合意メカニズムの概要

ハッシュグラフはゴシップ プロトコルと仮想投票メカニズムで構成されるコンセンサス メカニズムであり、一般的に次の手順に要約できます。

1. 各ノードは他のノードをランダムに見つけ、ゴシップ プロトコルを通じて自分が知っている情報を相手に渡そうとします。

2. 各ノードは、ゴシップ プロトコルを通じて他のノードからも情報を受信して​​います。情報を受信するとき、ノードは次のような一連の計算を実行する必要があります。

a. 受信したゴシップ情報を受け入れて処理する

b. 新しいイベントを作成し、自分の最後のイベントとゴシップ ソース ノードの最後のイベントを同時に指定します。

c. すべての既知のイベントの作成ラウンドを計算し、そのイベントがこのラウンドの目撃イベントであるかどうかを判断します。

d. すべての既知の証人イベントに投票して、それらが既知の証人であるかどうかを計算します。

e. 著名な証人によるすべてのイベントの受諾ラウンドの決定

f. イベントの承認ラウンドとコンセンサス タイムスタンプを通じて、仮想投票を実施してコンセンサス順序を決定します。

コンセンサス アルゴリズム全体では、単一のノードがネットワーク データ全体を保存する必要があります。

2.4 ハッシュグラフの利点

公平性: トランザクションの実際の順序を維持する

一貫したタイムスタンプにより、すべてのイベントとイベント内のすべてのトランザクションには順序があります。

マイナーのような役割はありません。

安全性: 非同期ビザンチン フォールト トレランス

速い

速い

公式サイトのテストデータによると、なんと250,000TPSに達するそうです。

2.5 ハッシュグラフの現状の問題点

現在はプライベートチェーンであり、スループットの基準値は疑わしい

現時点では、Hashgraph はプライベート チェーンであり、その「実行速度の速さ」を比較できるのは、Hyperledger (700 トランザクション/秒) や Red Belly (400,000 トランザクション/秒) などの他のプライベート チェーンとのみです。現在のハッシュグラフでは、悪意のあるノード攻撃を防ぐメカニズムをセットアップする必要がないため、イーサリアムやイーサリアムなどのパブリックチェーンにアクセスできます。さらに、ゴシップ アルゴリズムが大規模なパブリック チェーン環境に適用できるかどうかについては、まだ検討する価値があります。

悪意のある攻撃に耐えられるか

シビル攻撃、つまり攻撃者は、多数の偽の ID を作成することでピアツーピア ネットワークの評判システムを破壊し、それらを使用して不釣り合いに大きな影響力を獲得します。現時点では、Hashgraph はプライベート チェーンであり、すべてのノードの身元がわかっているため、この種のアクセス制御により、現段階の Hashgraph は Sybil 攻撃の危険性を考慮する必要がありません。しかし、Hashgraph が将来パブリック チェーンに向けて発展するつもりであれば、Sybil 攻撃に対抗できるかどうかは Hashgraph が考えなければならない問題となるでしょう。

投票の検証には時間がかかる場合があります

Hashgraph のアルゴリズムはイベントの作成が簡単ですが、各ラウンド後の投票検証プロセスに非常に時間がかかる場合があります。 2/3 を超える絶対多数に達していない場合は、誰が有効な取引を記録したかを決定するために何度も投票が行われる可能性があります。

外部条件が異なる場合の公平性の問題: 取引の順序をどのように決定するか?

公平性については、Hashgraph ホワイトペーパーで次のように説明されています。

A と B という 2 つのノードがあり、A が B よりも先にトランザクション リクエストを送信したとします。コンセンサス メカニズムの判断に基づいて、A のトランザクションのタイムスタンプが B のトランザクションよりも早ければ、システムは公平であると言えます。 A と B が同時にトランザクションを持ち、その 2 つのトランザクションがほぼ同時にネットワークにアップロードされ伝播される場合、この時点でフォークが発生する可能性がありますが、システムは公平であるとも言えます。ほとんどのコンセンサスメカニズムは、どちらの場合でも公平性を実現できます。

ただし、この説明は、ノード A と B が同じ外部ネットワーク状況に直面しているという前提に基づいています。しかし、次のような状況を考えてみましょう。

A の帯域幅が 5M/s、B の帯域幅が 10M/s の場合、A は B よりも早くネットワークに自身のトランザクション情報をアップロードしますが、帯域幅の制限により、A のメッセージの伝播速度は遅くなります。このようにして、ほとんどの人が最終的に投票するときに最初に B のメッセージを受け取る可能性があります。学校では、B の方が A よりも友達が多く、影響力も大きいため、ゴシップについて話し合うとき、B は広めたいゴシップ情報をより多くの人に早く伝えることができるのと同じです。たとえ A が最初にゴシップを広めた人であっても、影響力には限界があるため、ほとんどの人は最初に B の口からその噂を聞くことになります。

ノードの外部条件が異なる場合、投票が実際の取引順序も反映できるかどうかは現時点では明確ではなく、公平性には依然として疑問が残る。

コードはオープンソースではありません

最初のレベルのタイトル

.03. 概要

最初のレベルのタイトル

.04. 参考文献と引用文献

  • Hedera Hashgraph ホワイトペーパー;

  • 20180326 コンセンサスソートとハッシュグラフの簡単なコメント 著者 Xie Junyi コードファーマー学習ブロックチェーン。

  • 20180403 神レベルのプロジェクトHashgraphは本当にブロックチェーンのターミネーターになれるのか?著者ケイシー・マオヤン・ファイナンシャル・フォーカス。

  • 20180413 ハッシュグラフ —— おそらく現時点で最も優れたコンセンサス プロトコル 著者 Eric Sun BlockGeeks;

  • 20180417 ハッシュグラフ —— ブロックチェーンを超える可能性のある優れたコンセンサスプロトコル XC が Bijie で主導権を握る。

  • 20180424 DAG テクノロジーの現状とトレンドを理解するための記事|チェーン キャッチャー著者 Li Qiang チェーン キャッチャー。

  • 20180507 10分で理解するハッシュグラフ 著者 InterValue インターバリュー。

  • この記事についてさらに議論したい場合は、バックグラウンドでメッセージを残してください

    【重版のお知らせ】

    【重版のお知らせ】

    1. このレポートは、専門的なデータ調査分析組織である Jingzhun (ID: rong36kr) のオリジナル作品であり、「著作権法」によって保護されており、法律に従って編集および注釈の権利を有しています。

    3. 商業転載、二次編集転載は禁止します。

    3. 商業転載、二次編集転載は禁止します。



鲸准研究院
作者文库