Somniaの概要
Somnia(ソムニア)は、Ethereum仮想マシン (EVM) と互換性を持ちながら、桁違いの速度とスケーラビリティを実現したレイヤー1のブロックチェーンです。
Somniaは他のEVMの高速化チェーンとはまったく異なるアプローチをしています。二層化された独自のコンセンサスアルゴリズムと最適化されたデータベース技術により、1秒間に最大100万件以上のトランザクションを処理し、ファイナリティ時間は1秒未満、取引あたりの手数料も数セント以下という、EVM互換チェーンとしては最速クラスの性能を備えています。また、高速性を確保しつつも適度な分散性を両立しています。同プロジェクトは、初期段階では世界中に分散された100台程度のバリデーターから運用を開始する予定で、同程度のスペックを謳うEVM互換チェーンと比べて高い分散性を確保する予定です。
2025年5月現在、Somniaは公開テストネット段階です。
Somniaの特徴
高スループットを確保するマルチストリーム・コンセンサス
Somniaは独自のマルチストリーム・コンセンサス方式を採用し、ブロック生成とコンセンサスを二層に分離しています。各バリデーターはそれぞれ独立したデータチェーンを持ち、自身のチェーン上で他のノードに依存せずブロックを生成します。各データチェーンで生成された最新ブロックは、別のコンセンサスチェーン上で収集され、改良型のPBFTコンセスアルゴリズムによりトランザクションが確定されます。この仕組みにより各ノードが並行してデータを処理できるため、ネットワーク全体のスループットが飛躍的に向上します。
逐次実行の高速化とEVMコンパイル
多くのブロックチェーンがトランザクションの並列実行で性能向上を図るのに対し、Somniaは逐次実行の高速化というアプローチを取っています。並列化はトランザクション同士が独立している場合に有効ですが、負荷が集中する局面では多くの取引が同一スマートコントラクトのステートを更新するために効果が薄れます。そこでSomniaでは、単一のCPUコアでできる限り高速に命令を処理することで全体のスループットを高める設計を採用しています。
VM(仮想マシン)のバイトコードを実行する方法は、大きく分けて2つあります。インタープリタ型とネイティブ型です。前者はVM自体をソフトウェアでシミュレートするのに対し、後者はバイトコードをネイティブ命令に変換し、CPUが命令を直接実行します。EthereumやほとんどのEVMブロックチェーンは、前者を採用しています。それに対して、Somniaは後者に相当する実行方式を採用しています。
具体的には、Somniaは独自開発のEVMバイトコードコンパイラによってスマートコントラクトをネイティブのx86命令に変換して実行します。これによりC++で記述したプログラムに迫る実行速度を達成し、ERC-20トークン転送であれば数百ナノ秒で完了する(単一コアで数百万TPSに相当)とのベンチマークが報告されています。
ただし、コンパイル処理のコストが大きいため、ネイティブ型の高速実行は頻繁に呼ばれるコントラクトに対してのみ適用し、それ以外は従来通りのインタープリタ型で処理されます。また、SomniaではバリデーターのCPUが個々のトランザクションをハードウェアレベルで並列化できるようにすることでさらなる高速化を実現します。
独自データベース「IceDB」と決定論的な性能
SomniaにはカスタムデータベースのIceDBが搭載されており、ネットワークのパフォーマンスとガス料金モデルに革新をもたらしています。IceDBの主な特徴は次の3点です:
- 決定論的なパフォーマンス:IceDBは従来のLevelDB/RocksDBのようなI/O変動を排除し、各操作の遅延を常に一定に保つよう設計されています。各読み書きに対して詳細なパフォーマンスレポートを返し、それがすべてのノードで決定論的に再現可能なため、実際のリソース消費量に応じてガス料金を精密に調整できます。これにより、頻繁にアクセスするデータの読み取りではガス消費量が少なくなり、ブロックにより多くのデータを格納できるようになります。
- 高速な読み書きキャッシュ:IceDBは読み込みと書き込みの両方に最適化されたキャッシュを備えており、平均的なデータアクセスを15~100ナノ秒という低レイテンシーで処理します。これは、スマートコントラクトのステートの読み込みや更新がデータベースによって足を引っ張られることを防ぎ、高TPSを支えることにつながります。
- スナップショット機能の内蔵:IceDBは内部構造の工夫により、各ブロック時点のネットワークのステートを瞬時にスナップショットとして保存できます。従来のブロックチェーンで必要だった高コストなマークルツリーの更新を行わずに済むため、ハッシュや証明の計算が大幅に効率化されます。
高度なトランザクション圧縮技術
高いTPSを実現するSomniaでは、ノード間で転送するデータ量も膨大になります。例えばERC-20トークンを100万TPSで送信すると毎秒約190MB(1.5Gbps)のデータが発生する計算になり、そのままではネットワークが耐えられません。Somniaはこれを解決するため、独自の圧縮技術によって取引データ量を大幅に削減しています。
頻出要素を利用した効率化:トランザクションデータには特定のアドレスやコントラクトが頻繁に出現するベキ分布があるため、頻出要素を利用して符号化を効率化します。
ストリーミング圧縮:また、各バリデータが自身のチェーンでデータを連続生成するSomniaの構造上、ノード間で履歴を共有したストリーミング圧縮が可能となっており、ブロック単位より高い圧縮率でデータを送受信できます。
ハッシュと署名の効率化:BLS署名を利用することで、任意の数のBLS署名を1つの署名に集約します。これにより、任意の数のトランザクション署名を一定サイズにすることができ、署名がボトルネックとなって通信量や速度を阻害しません。
帯域幅の対称性確保:すべてのピアがそれぞれ独自のデータシャードを公開するため、各ピアのアップロード速度を、ブロックチェーンのスループット (bytes/s) を留めることができます。これは、典型的ななブロックチェーンで必要とされるアップロード速度(ピア数 * ブロックチェーンのスループット (bytes/s))と比べると効率的です。
セキュリティと分散化の設計
Somniaは十分に分散化されたネットワークによるセキュリティ確保を目指しています。これは無制限にノード数を増やすのではなく、検閲耐性や単一障害点の排除といったブロックチェーンの利点を享受できる最小限の台数を確保しつつ、過度な分散による性能低下を避ける方針です。そのため、Somniaのノード要件はSolanaやAptosのバリデータに匹敵する性能を想定しながらも、初期は約100台のバリデータを世界各地に配置してネットワークを運用します。また、将来的にはノード数を増やす見込みです。
Somniaのトークン
Somniaのトークンに関する情報は、2025年5月21日時点で公開されていません。
Somniaに関する情報