新たな分散型台帳技術「Hashgraph」とは?その公開実装「Hedera Hashgraph」も解説

目次
  1. はじめに
  2. Hashgraphとは?
  3. Hedera Hashgraphとは?
  4. まとめ:Hashgraphは分散型台帳を構築するための選択肢のひとつ

はじめに

ビットコインに端を発したブロックチェーンはパブリックな分散台帳という新たなパラダイムを確立しました。しかし、課題も残っています。例えば、スケーラビリティ問題は、ライトニングネットワークやシャーディングなどのアプローチもあるものの、依然としてクリアになっていません。

(特にパブリックな)ブロックチェーンの課題を解決するためのアプローチがいくつか提案されており、本記事で紹介する「Hashgraph」(ハッシュグラフ)もそのひとつです。今回はHashgraphの概要とその公開実装である「Hedera Hashgraph」(ヘデラ・ハッシュグラフ)について解説していきます。

Hashgraphとは?

Hashgraphは処理速度が速く、公平性と安全性を意識したコンセンサスプロトコルです。アメリカのソフトウェア企業「Swirlds」の共同創業者でありCTOを務めるLeemon Baird氏によって考案されました。

Hashgraph自体はSwirldsが技術特許を取得しており、オープンソースで開発されている「Bitcoin」や「Enterprise Ethereum」、「Hyperledger」とは異なります。Hashgraph自体は公開されていませんが、ライブラリやデモアプリを試用できるSDKが提供中です。さらに、Hashgraphの公開実装として「Hedera Hashgraph」が開発されており、こちらはソースコードが公開されています。

参考:Download SDK

また、分散型台帳技術ベースのアプリケーションを開発する信用組合業界のイニシアチブ「CULedger」は、Swirldsと提携してHashgraphベースのアプリを開発しています。

参考:Swirlds and CULedger Collaborate to Deliver High Performance, Secure, Distributed Applications to Credit Unions

Hashgraphの特徴と使用言語

Hashgraphには高速・公平性・安全性という3つの特徴があり、これらは主に「ゴシッププロトコル」と「仮想投票」という2つのアルゴリズムによって実現しています。また、Hashgraphはビザンチン障害耐性(Byzantine Fault Tolerance)を備えたプロトコルです。

なお、HashgraphはLISPとJavaで記述されていますが、Hashgraph SDKにはScalaのようなJVM言語が使われる傾向にあります。

Hashgraphのゴシッププロトコル(Gossip about gossip)

Hashgraphにおいて、ネットワーク上のトランザクションはゴシッププロトコルを介して拡散されます。ゴシップとは日本語で「噂」の意味であり、Hashgraphにおいてはノード間の通信によって広がっていく情報のことです。各ノードがランダムにネットワーク上の他ノードを繰り返し選択し、彼らが知っているすべて伝達することで情報(ゴシップ)は広がっていきます。

また、Hashgraphでは、トランザクションがイベントというコンテナに格納されており、イベントには以下の情報が含まれています。

  • タイムスタンプ
  • トランザクション(赤)
  • 親イベントのハッシュ値(青)
  • イベント作成者の持つ直前のイベントのハッシュ値(濃い青)
  • イベント作成者のデジタル署名

なお、括弧内の色は下図に対応しています。

各イベントが直前のイベントのハッシュ値を取り込んでいるため、上図の赤いイベントはグレーのイベント情報も間接的に含んでいます。したがって、過去に遡ってイベントの正当性が検証可能になるのです。さらに、過去のイベントを改ざんすることが時間の経過と共に極めて困難になっていきます。

また、ブロックチェーンの場合は同時にブロックが生成されると分岐が発生しますが、Hashgraphにおいてはすべての正当なイベントが最終的に順序付けられて処理されるため分岐が発生しません。イベント(トランザクション)の処理順序は次に説明する仮想投票によって決定され、その結果ネットワーク全体がひとつの合意に到達できます。

仮想投票(Virtual voting)

既に述べたようにイベント内には直前のイベント2つのハッシュが格納されており、過去に遡ってイベントを追跡することが可能です。

したがって、他のノードが知っている情報(どのイベントを承認したか、など)を把握できるため、他のノードが過去にどのイベントを妥当なものと判断したのか(どのイベントを承認=投票したのか)が推測できます。これが仮想投票です。

仮想投票は一定数イベントが生成されるごとに実施され、イベントを充分な数のノードが承認(投票)した時のタイムスタンプなどを踏まえて、イベントの処理順序が決定されます。仮想投票が機能しているため、各ノードが互いに投票結果を通信しなくても、どのイベントが合意されたかが判断できるのです。

Hedera Hashgraphとは?

Hedera Hashgraphは、Hashgraphの公開実装です。Hedera Hashgraphのホワイトペーパーでは、以下の点で既存のブロックチェーン(分散型台帳技術)と異なると説明されています。

  • 性能:1秒あたり数十万トランザクションを処理できる(パフォーマンステストでは最大50万tpsを記録)
  • セキュリティ:ネットワーク内に悪意あるノードが1/3を超えなければ、分散ノードが正しく合意形成できる。アルゴリズムについては、数学的にセキュリティ上の脆弱性が無いことを証明済
  • ガバナンス:Hedera Hashgraphを安定的に運営するため、世界各地・各業界の専門知識を持つ企業から成る委員会が組織されている
  • 安定性:ガバナンス組織による安定したプラットフォーム運営が可能
  • 法令遵守:KYC(Know Your Customer)やAML(Anti Money Laundering)チェックのための適切なID管理や、GDPRといった規制への対応可能

参考:Hedera Hashgraph Whitepaper

Hedera Hashgraphのアーキテクチャー

Hedera Hashgraphは、Solidityで記述されたスマートコントラクトをサポートしているため、分散型アプリ(DApps)の開発が可能です。Hedera Hashgraphのアーキテクチャーは、以下の3層で構成されています。

  • Internet Layer:インターネット上のコンピューター間の通信を処理するレイヤー。TLS(Transport Layer Security)を使用したTCP/IPを展開
  • Hedera Hashgraph Layer:Hedera Hashgraphのノードで構成されるネットワーク。ノードはHashgraphのコンセンサスアルゴリズムとゴシッププロトコルを使用したコンセンサスメソッドに参加する
  • Service Layer:暗号通貨やスマートコントラクト、ファイルサービスなどの機能を提供するサブグループで構成されたレイヤー

開発元は「Hedera Hashgraph LLC」

Hedera Hashgraphの開発を主導している企業は「Hedera Hashgraph LLC」です。Crunchbaseのデータによれば、これまでに1億1800万ドルの資金調達を行っています(2019年12月現在。1億ドルがICOによる調達)。

参考:Hedera Hashgraph(Crunchbase)

Hedera Hashgraphのプラットフォーム自体は、39の企業・団体が加盟するガバナンス組織「ヘデラ運営審議会」(The Hedera Governing Council)によって運営されており、同組織がソフトウェアの変更管理や安定性を担保しています(加盟企業は期間限定とされている)。

2019年12月時点では、「IBM」や「Deutsche Telekom」(ドイツテレコム)、「Swirlds」など、日本からは「野村ホールディングス」が加盟しています。

まとめ:Hashgraphは分散型台帳を構築するための選択肢のひとつ

分散型台帳を実現する技術はブロックチェーンだけではなく、Hashgraphのようなオルタナティブが登場しています。Hashgraphは従来のブロックチェーンや分散型台帳技術よりも高速とされており、Hashgraphベースの公開実装であるHedera Hashgraph上のDAppsも開発が進んでいます。

ただし、現時点では中央集権的なガバナンスモデルが採用されている上にオープンソースではないため、今後どのように技術やプロダクト、コミュニティが発展していくかは要注目だと言えるでしょう。

なお、ブロックチェーンとHashgraphについては、別の記事で比較しているので、興味のある方はこちらも是非ご覧ください。

コメントしてBTCを貰おう