🐋

L1 Public Blockchain「Sui」の特徴

2022/10/16に公開

はじめに

こんにちは。この記事では2022/10現在devnetで稼働しているL1パブリックチェーン「sui」に使われている技術の概要について解説します。

Suiについて

SuiはMystenLabsチームが開発しているL1パブリックチェーンです。

「Sui is a boundless platform to build rich and dynamic on-chain assets from gaming to finance.」
(Suiは、ゲームから金融まで、リッチでダイナミックなオンチェーンアセットを構築するための無限のプラットフォームです。)

つまり、どんなリッチなアプリケーションも構築可能な最強のパフォーマンスを備えたL1パブリックチェーンということです。
https://sui.io/

既にサポート予定のDEX、NFTマーケットプレイス、インフラも揃い、エコシステムも整いつつあります。

現在20名以上のコントリビュータの元オープンソースで開発されています。
https://github.com/MystenLabs/sui

もともとは2021/06からFacebookのリサーチチームが研究開発をスタートしました。(initial commit)
https://github.com/facebookresearch/narwhal

Suiの根幹技術「Narwhal and Tusk」

2021/05にSuiの根幹となる技術を提案する論文が投稿されました。

Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus
https://arxiv.org/abs/2105.11827

ちなみにNarwhalは日本語で「イッカク」という一本角を持った鯨のことです。Tuskは角のことです。

これは新たなコンセンサスプロトコルを備えたパブリックチェーンの提案論文であり、Suiのベースとなっている「Narwhal」と「Tusk」についてそれぞれ学術的説明がされています。

  • Narwhal: DAG-Based Mempool
  • Tusk: Efficient BFT Consensus

提案の結論として、HotStuff(当時最強のパフォーマンスを出していたコンセンサスアルゴリズム)との比較ではTPSが10倍以上、レイテンシが1/10程度になっています。
(HotStuffが赤&オレンジ, Narwhal-HotStuffが青, Narwhal-Tuskが緑)

更にAWS上のNodeを用いたベンチマークでは160K TPS、レイテンシが5s未満になっています。(緑色)
これが、Suiのホームページのキャッチコピーを裏付ける特徴となっています。

では、なぜそのような数値を叩き出せるのでしょうか。その革命となったのが「DAG」と言われるデータ構造です。
Narwhal and TuskはNarwhalに使われている「DAG」がキーポイントであり、Tuskは単純にNarwhalに対して非同期下・対攻撃下でも問題なくコンセンサスを構築するためにHotStuffを改良したコンセンサスです。

DAGがコンセンサスに革命を起こした

DAG(Directed Acyclic Graph, 有向非巡回グラフ)とは、単なるデータ構造の一種です。
https://ja.wikipedia.org/wiki/有向非巡回グラフ

コンピュータサイエンスの世界では、構文木のようなツリーは全てDAGであり、また静的解析時に共通式やDeadCodeの削除に使われるなど、とてもプリミティブなデータ構造です。

例) 共通式の削除

Suiでは、Mempoolのデータ構造をDAGに変えました。このmempoolプロトコルのことを「Narwhal」と呼んでいます。

従来のMempool (単なるトランザクションのプール配列)

Narwhal Mempool (DAG)

このDAG-Based Mempoolは、全体にこのような効用をもたらします。

1. Mempoolとコンセンサスの分離の実現

Mempoolがあらかじめブロックの生成とその署名まで行い、コンセンサスはその選択と順序化を行う。この責務の分離を明確にし、コンセンサスをモノリシックアーキテクチャから開放しました。

2. コンセンサスのデータ処理量の削減

Certificateによって既にBlockの可用性が証明されているため、コンセンサス層ではブロックヘッダのみを見に行くだけで済み、取り扱うデータ量が大幅に小さくなります。これはzk-rollupに似たアイデアで、L2スケーリングをMempoolプロトコルに当てはめるととてもイメージしやすいです。
そう考えると、逆に今のMempoolのCertificate作成にzkpを適用するといった改善の余地もありそうです。

3. 安定した高スループットの保証

このデータ構造により、非同期期間中にコンセンサスによって安全にブロックを順序付けできることが数学的に証明されています。つまり「どんなコンセンサスを持ってきても分散性とスループットを保証できる」と言えます。

この3つのメリットがあれば、PBFTやHotStuffのような「スループットとスケーラビリティはあるが分散性がない」という特徴で主にコンソーシアムチェーンやサイドチェーンに使われてきたコンセンサスを安定してパブリックチェーンで採用することができ、パブリックチェーンのトリレンマを解決します。

実はこの「MempoolにDAGデータ構造を適用する」というアイデアは2021年頃から脚光を浴び始め、2022年のコンセンサスでは既に主流になりつつあります。

DAG Meets BFT - The Next Generation of BFT Consensus
https://decentralizedthoughts.github.io/2022-06-28-DAG-meets-BFT/

All you need is DAG
https://arxiv.org/abs/2102.08325

Narwhalアーキテクチャ

NarwhalのNodeにはPrimary NodeとWorker Nodeという2種類のNodeが存在します。
そしてアーキテクチャには、よくRDBで用いられているprimary-workerアーキテクチャが採用されています。1つのNode群の中には1台のPrimary Nodeと複数台のWorker Nodeがあります。

役割は以下のように分かれています

  • Worker Node: クライアントから受けたトランザクションを処理し、バッチを生成する
  • Primary Node: Workerからバッチを受け取ってDAGを生成する

つまり、DAGがあるのはPrimary Nodeのみです。コンセンサス層はそれぞれのPrimary Nodeを見に行くということです。
そしてクライアントからのトランザクションが増えるにつれてWorker Nodeの台数を増やすことでスケールアウトします。
これがNarwhalのアーキテクチャになっています。

最後に

今回はSuiのコンセンサスアルゴリズムを、特にNarwhalに焦点を当てて説明しました。
もっと知りたいという方はぜひ論文を呼んでください。または以下のリンクがNarwhal and Tuskへの理解をより手助けしてくれると思います。

Discussion