L1を分析するためのフレームワーク
twtterでたくさんの反応をいただきました。ありがとうございます。
こんにちは、シンガポールで放浪生活を送りコロナにかかり、約2週間の安静により活力を取り戻したvitaです。前回の記事でブロックチェーンの基礎をまとめたところ、ありがたいことにたくさんの反応を頂きました。※ 未読の方はまずはそちらから読んでいただければ幸いです。
また本記事に関しても前回に引き続き10,000文字を超える長編となっていますので、時間をかけてゆっくりと読んでいただけると幸いです。
さて話は変わりますが、今朝ツイッターを眺めていたらL1チェーンであるAptosが大荒れしていました。主な詳細は以下ツイート通り。
日本語解説も貼っておきます。
要はTPSやトークン供給に問題があったようです。詳しい解説は省かせていただきます。
Aptosの問題点がツイッター上では盛んに議論されていましたが、今回はAptosに関する記事を書きたいわけではなく、個人的に問題だと思うのは、恐らくこのAptosの大荒れを見たとしても、L1チェーンの「どこの指標をどうやって分析すればいいかわからない」という方が多いことだと思います。
というわけで
L1の性能を分析することができる
見るべき指標やデータがわかる
といった目標を、本記事を読んだ読者が達成できるよう「 A Framework for Analyzing L1s」という素晴らしい記事を参考に解説を入れていきます。
なお、前回同様に専門用語は英文の解説リンクを中心に張っています。わからない単語は日本語訳しながら読み進めて頂ければ幸いです。
1. 分析すべき指標を明確にする
レイヤー1と独立したブロックチェーンエコシステムのパフォーマンスを評価・比較する際の指標は曖昧なことが多く、以下の疑問が議論を促進しています。
エコシステムとはどんな感じか?
このネットワークはどのように拡張するか?
このチェーンはコンポーザビリティに対応してるか?
確かにこれらの質問は的を得ていますが、特定のL1が競合チェーンよりも優れたパフォーマンスを発揮できるかどうかの核心には迫りきれていないようです。そこでL1の性能を分析する時に、より具体的かつ簡単に分析ができるフレームワークを解説していきます。
まずは基本的な定義から見ていきましょう。
技術的指標
技術的特性
エコシステムの成長指標
エコシステムの指標
技術的指標
ノード処理要件:ノードを運用するために必要な最低限のCPU、コンピューティングリソース。
Transactions per Second(TPS):1秒間にオンチェーンで処理・検証されるトランザクション数。
Time to Finality:トランザクションが送信されてから、オンチェーンで確認されるまでの時間。
ノード数:コンセンサス、実行、またはその両方に参加しているノードの数。
ブロックサイズ:1つのブロックに格納できるデータの最大量。
技術的特性
安全性:システムが正直で正確であることを保証すること。
liveness:システムがデータを提供し続け、いかなる中央集権的な機関によっても停止されないことを保証すること。
スケーラビリティ: ネットワーク内のノード数の増加と同様に、トランザクションの負荷の増加をサポートするそのプラットフォームの能力。(解説記事)
ノード要件:ユーザーがノードを実行し、ガバナンスの意思決定に参加するための参入障壁。
ナカモト係数:分散化を測定する指標の一つ。ネットワーク上の少なくとも1つのサブシステムを侵害するために必要なバリデータ/エンティティの数。要は51%攻撃を成功させるために必要なリソースのこと。(解説記事)
アップグレード性:ネットワークやコミュニティがプロトコルの変更を提案・評価し実施する能力。
安全性とlivenessがわかりずらいとのお声を頂いたので、そういった方は「Consensus for State Machine Replication」という記事を読まれることをおすすめします。
エコシステムの成長指標
Total Value Locked (TVL) :オンチェーンアセットの総額。
日次トランザクション量:1日あたりに処理されたトランザクション数。
エコシステムの特性
コンポーザビリティ:アプリケーションがネットワーク上の他のアプリケーションと相互作用し、構築し、統合する能力(解説記事)
ユーザーエクスペリエンス(UX):平均的なユーザーがオンチェーンアプリケーションを理解し、利用することができる容易さ。
コミュニティへの参加:プロジェクトの利害関係者がアプリケーション自体、他のユーザー、開発者とどの程度交流しているかの度合い。
以上が基本的な定義となります。
これらの特性をどのように組み合わせてネットワークを分析・評価すればいいのかを解説していきます。
まず、チェーンの成長と質といった基本的な技術的指標は、安全性、活発性、分散化のような特性を評価する要因として使います。
またこれらの特性はネットワークを起動するために「どのようなインフラ的要素が必要であるか」を判断するために役立ちます。こういったインフラは、その上に構築されるアプリケーションの成功の鍵を握っているので考えてみる必要性は高いのです。
エコシステムの成長を追跡する方法に関してはいくつかありますが、どれも速度、効率、アクティビティに何らかの形で関連しています。これにはSNSを通じたコミュニティ・エンゲージメントに関する指標やプロトコル収益、Total Value Locked(TVL)のような財務指標も含まれます。これらの指標を見ることで、エコシステムの成功と将来の成長の可能性についてより良い理解を得ることができるということです。
2.レイヤー1のパフォーマンススタック
先程定義した指標をパフォーマンススタックとしてまとめると以下の通り。L1を分析したいときは以下を参考に分析・比較すると便利です。
エコシステムの特性:コミュニティ・エンゲージメント・UX/UI・統合のしやすさ・DAppとの接続性。
エコシステムの成長指標 :TVL・デイリートランザクション量・ソーシャルメディア成長(Discord / Telegram / Twitter)・デベロッパー数・プロトコル収益。
インフラの要件:データ可用性(DA)・クロスチェーン相互運用性・検索性・索引性・開発者向けツーリング。
突発的な技術特性: 耐故障性・安全性・活性化・スケーラビリティ・分散性・アップグレード可能性。
ベースとなる技術的な指標 :ノード処理要件・ノード量・1秒あたりのトランザクション数(TPS)・チェーン成長・チェーン品質・ブロックサイズ・データ転送の待ち時間(レイテンシー)・システムの休止時間(ダウンタイム)・伝搬時間・ナカモト係数。
3.レイヤー1を評価する際に必要な5つの質問
前述した分析すべき指標やパフォーマンススタックがわからなくても、以下を自問自答することである程度L1の姿が見えてくるといった具合です。
安全なのか?
分散型なのか?
開発者はいるのか?
使い方はあるのか?
採算は取れている のか?
質問1:安全なのか?
レイヤー1を評価する際には、常にセキュリティを最優先で考える必要があります。
ブロックチェーンの根幹は、価値の決済層です。決済レイヤーが安全でなければその価値は薄く、ネットワーク上で取引する際に悪意のある人物から改ざんされる可能性はゼロに近くあるべきです。
セキュリティの測定方法はコンセンサスメカニズムによって異なりますが、最終的な目標はシンプルで、ブロックチェーンネットワークには厳密な決済保証が必要です。
決済保証とは、ネットワークが取引を取り消さないことを取引者が保証することを指します。
これは、より広いL1の状況を見る上で重要なトピックなので、詳細については「It's the settlement assurances, stupid 」を読まれることをおすすめします。
ネットワークの乗っ取りにはどれくらいの費用がかかるのか?
有効で誠実なブロックを提出するバリデーターに支払われる金額を特定することで、これを測定することができます。
ネットワークの料金収入総額はいくらですか?
すべての取引を確定させるためにバリデーターに支払われる金額です。
バリデータに高い手数料収入を支払うネットワークは、より安全で高い決済保証を提供することができます。なぜならマイナーとバリデーターには正当なブロックを提出し、検証し、維持する強いインセンティ ブがあるからです。
しかしこれが、21人のバリデーターのみにしか収益を与えられないとしたらどうなるかを考えてみましょう。これが2つ目の質問へとつながります。
質問2:分散型なのか?
web3の核となる考え方は、分散です。これはセキュリティと相性が良いだけでなく、ブロックチェーンという現象全体の倫理観にも通じるものです。
L1は十分に分散化されている必要があります。 単一のユーザーやエンティティがネットワークを制御するべきではありません。誰もがマイニングやステーキングを通して検証できたり、台帳の維持(ノードの運営)に参加する能力を持つべきです。
つまり、一部の人たちだけに閉ざされたものであってはならないのです。
これを定量的に測定する方法として、ネットワークのノード数またはバリデータ数が考えられます。
主なProof of Stakeのプロトコルを見てみましょう。
誰もがノードを実行できなければそれは許可制であり、分散的ではありません。これがいわゆる初期に定義したノード要件に繋がります。
質問3:開発者はいるのか?
L1にとってセキュリティと分散性は基本的な属性です。
ブロックチェーンネットワークは 、 安全でパブリックな決済レイヤーというコアビジョンを実現するために、これらの特性を必要としています。
セキュリティと分散性にチェックが入れば、その上に人が建てても安全で信頼できることになり、ネットワークが遮断されたりロールバックされなど、ハッキングされないことの担保にもなります。
さて、それではそのネットワークは”誰が”構築しているのでしょうか?少し考えてみましょう。
開発者がいなければ、アプリケーションは存在しない
アプリケーションがなければ、ユーザーは存在しない
ユーザーがいない=価値がない
結果、L1の成功には強固な開発者エコシステムが不可欠となります。
幸い、Electric Capitalは毎年さまざまなネットワークにおける開発者のエコシステムを調査し、素晴らしいアウトプットを上げてくれているので、2021年のレポートから月別のアクティブな開発者のスナップショットをご紹介します。
現在、Ethereumは開発者のエコシステムを支配しています。
上図を見ればわかりますが、新しい代替スマートコントラクトプラットフォームでさえ、開発者の活動においてビットコインを大幅に上回っています。これはスマートコントラクトが開発者に提供する「できることの幅」を考えると理にかなっています。
とはいえ、イーサリアム以外のコントラクトエコシステムに興味ある人のために、そちらのデータも貼っておきます。これ以上の言及は省略させていただきます。
質問4:ブロックスペースの需要はあるのか?
さて、これにて評価フレームワークの主要な項目にチェックが入りました。
ネットワークが安全で、分散的で、開発者がその上にアプリケーションを作っているなら、そのアプリケーションを実際に使っている人がいるかどうかを調べ始めるべきです。さらに、そのアプリケーションにお金を払ってくれるユーザーがいるかどうかを確かめることも重要です。
ブロックチェーンは、ブロックを販売するビジネスです。インターネット上で止められない、分散型の価値伝達のためのサービスを提供しています。
したがって、ブロックスペースの需要はレイヤー1の価値があるかどうかを理解する最も基本的な方法であると考えられます。
これはネットワーク上で価値を移転する需要があるかどうかを示す明確な指標で、ネットワークの利用率からバリデータ、マイナーに支払われる料金に至るまで、様々な方法で測定することができます。
それぞれに長所と短所がありますが、総合的に見るとネットワークに対する本当の需要があるかどうかを把握することができるんですね。
しかし、結局のところブロックを買いたい人がいなければ、価値あるブロックチェーンエコシステムとはいい切れません。このことは、次の問である「採算は取れているのか?」に繋がります。
質問5:採算は取れているのか?
ブロックの容量に需要があれば、あとは対応する要素だけです。
ブロックチェーンは儲かるのか?
前述してきたような指標でもブロックチェーンが収益性の高いビジネスを行っているかどうかを分析することはできます。ブロックチェーンの取引収入よりもセキュリティのためにコストを支払っているかどうかを把握すればよく、これの面白いところは実際に利益を上げているブロックチェーンはないということです。
今日のブロックチェーンは全体として、収益を上げるよりもセキュリティコストに費やしています。
ブロックチェーンは儲からないのでは…といった疑念が多くありますが、Banklessでは「ブロックチェーンはビジネスではない-利益率がない」という主張を真っ向から否定していて、個人的に面白かったです。私もこの意見には完全同意です。
ブロックチェーンの目的は、ブロックスペースの価値を高め、それを通じて収益を上げることです。では、何がブロックスペースへの価値を高めるのかというと、それがセキュリティです。つまり、ブロックチェーンではセキュリティが主要なコストとなり、ブロックチェーンのコアビジネスモデルを導き出すことができます。
純利益= 取引手数料(単位:ドル) - 発行手数料(単位:ドル)
つまり、ブロックチェーンは取引手数料から収益を得る一方、そのコストは発行によるセキュリティのために支払うものです。
話を戻します。質問5である「採算は取れているのか?」に戻ると、結論、現在は利益を上げているブロックチェーンはありません。
その理由は前述した通り、主要なブロックチェーンネットワークはどれも取引手数料で稼ぐ以上に発行手数料を支払っているからですね。
このあたりを深堀りするとタイトルから脱線してしまうので、気になる方は以下の素晴らしい記事を御覧ください。
4.ブロックチェーンのトリレンマ
さて、話は変わりますが、ブロックチェーンのトリレンマという概念をご存知でしょうか。vitalik氏のブログを参照して解説すると、ブロックチェーンが持とうとする性質には3つの種類があり単純な技術にこだわるとその3つのうち2つしか得られないというものです。その3つの性質とは、
スケーラビリティ:チェーンは1つの通常のノード(消費者のノートパソコンと考える)が検証できる以上の取引を処理することができる。
分散性::チェーンは少数の大規模な中央集権的存在に信頼依存することなく実行できる。一般的には消費者用のノートパソコンだけでは参加できないようなノードの集合に対する信頼(あるいは正直な多数派の仮定)があってはならないという意味に解釈される。
セキュリティ:チェーンは参加ノードの大きな割合が攻撃しようとすることに抵抗できる。
たとえば、Ethereumは3つの性質のうちセキュリティと分散性を得ているため、スケーラビリティが課題とされています。他の例だと、たとえばSolanaはスケーラビリティと分散性を得ているためセキュリティに問題があるとされています。
では、スケーラビリティ、分散性、セキュリティといった特性はどのように分析すればいいのでしょうか。それぞれ見ていきましょう。
スケーラビリティを見るには
水平方向のスケーラビリティ:ネットワークの処理能力(例:TPS)は、参加ノード数に応じて増加するとされています。理想的なL1では、そのTPSがノード数(n)に対して直線的(linear)にスケールすることです。
システム全体の負荷の低さ:コンセンサス、セキュリティ、そしてこのリストにある他の特性を達成するために追加される計算コストは、各トランザクションの処理コストに対して最小であるべきです。
finalityまでの時間の短さ:トランザクションを送信してから状態の更新が確定するまでの時間が最短であることも大切です。
分散性を見るには
コンポーザビリティ:L1上で動作するすべてのアプリケーションは相互運用が可能であるべきです。たとえばユーザーは2つのアプリケーションの機能を組み合わせたトランザクションを送信できるようにする必要があります。
Finality:状態はある時点から不変になる必要があります。ファイナリティとは、暗号通貨の取引が完了した後、変更、取り消し、キャンセルができないことを保証するものです。
セキュリティを見るには
安全性:悪意のある当事者、またはその集合は、高い確率で無効な取引をネットワークに承認させることは難しい。ブロックチェーンはゲーム理論的なインセンティブによって悪意のある行動を抑制するか、そのような攻撃が行われることを計算上不可能にすることで、一連の強力な保証を規定する必要があります。ビットコインがすごくいい例です。
検閲への抵抗(中立性):誰もが平等にアクセスできるようにすべきです。プロトコルに参加するコンピュータは、いかなる参加者に対してもアクセスを拒否することができないようにし、合意形成または検証に参加するための参入障壁は小さくある必要があります。
耐障害性:攻撃者がプロトコルの動作を中断させるハードルは高い必要があり、たとえばシステムの状態は強力な攻撃者がそれを消去できないように複製される必要があります。
liveness:システムがデータを提供し続け、いかなる中央集権的な機関によっても停止されないことを保証すること。コンセンサスプロトコルが達成しようとするセキュリティ条件は、基本的にチェーンの活性度に基づいています。バリデータはアクセスできないメッセージを検証することはできなくて、ある種のコンセンサスアーキテクチャ(PoWなど)においては、チェーンの質や成長性などの指標は活性性の指標として有用です。
5.考慮すべきトレードオフ
これまで述べてきたL1の特性は、評価するための分類方法こそ提供してくれますが、異なるネットワークの相対的メリットの評価方法を提供してくれるわけではありません。以下では、用語間の関係を解説し、主要なトレードオフを紹介します。
安全性 vs. スケーラビリティ:コンセンサスや状態遷移の検証プロセスに参加するノードやコンピュータが多いほど、ネットワークの安全性は向上します。たとえば、PoWモデルでは、最長のチェーンがネットワークの標準チェーンまたは「真の状態」になります。しかしこれらのノードのうち大きなサブセット(部分集合)が、状態遷移の計算には使わず計算資源を使い果たすと、スループットが制限され、ネットワークが遅くなります。
Finality vs. TPS vs. 安全性:ブロックがより速く確定されるほど、バリデーターが合意する時間が短くなります。ブロックの時間を速くすればTPSを高くできますが、効果的に合意形成するための十分な時間がなければ、データ更新などで障害が起こったときに、その前の状態にまで戻ることが多くなり、システムの安全性が損なわれる可能性があります。
ノード要件 vs. スケーラビリティ:ブロックチェーンが分散的であるためには、誰もが簡単にネットワークに参加できる必要があります。システムをパーミッションレスにするためには、ノードを動かすための最小要件(参入障壁)は比較的低いものであるべきです。しかしノード要件が低くなると、ネットワークで利用可能な計算能力の総量が減少。その結果、より多くのノードがネットワークに参加することになりますが、ノード数の増加は「能力の低いマシンによる与えられた経路を通過するデータ転送の最大速度の損失」を補う必要があり、適切なバランスを取ることが重要な課題として残ります。
データ可用性 vs. インデックス性:チェーン上のデータ量が増加すると、そのデータを効率的に解析したり、フィルタリングしたりすることが難しくなります。DAppsはユーザーの大量または高速なリクエストに対応するために、チェーン上のデータをリアルタイムで訪ねる能力を必要とします。
水平方向のスケーラビリティ vs. アトミシティ:シャーディングでは、チェーンの状態の異なる部分を複数のサブネット(部分集合)にまたがって維持する必要があります。これによってトランザクションを並行して処理できるようになりますが、ユーザーが取り残されるリスクが高まります。シャード間でアトミシティを保つには様々なアプローチがありますが、いずれもコンピュータが何かやったときに発生する付加的な処理を追加する必要があります。
6.アプリケーションレベルの効果
4.考慮すべきトレードオフで述べたL1のパラメータは、特定のチェーン上で構築できるか実用的なアプリケーションの種類に大きく影響することがあります。
そこで次のような例を考えてみましょう。
与えられた経路を通過するデータ転送の最大速度の制約により、高スループットのアプリケーションのサポートが制限されることがある。逆に、TPSの上限を上げることで、より高頻度の取引やリアルタイムの更新が可能になる。
決済に要する時間が長いと、高速決済が必要な決済などのアプリケーションではあまり意味がないかもしれない。
高いガスコストは、アプリケーション開発を阻害する可能性がある。
これまではL1のパフォーマンスを分析するためのフレームワークを紹介しましたが、以下ではL1のエコシステムとその上に構築されたプロジェクト群からL1を評価するプロセスをより良くアプローチする方法について、より詳細な分析を解説します。
まず、これらのプロジェクトを大きく4つのバケットに分類します。
デベロッパーツール:フロントエンド&バックエンドのAPI・メッセージング・テスティング・Out-of-the-Box
TVLドライバー:レンディング&ボローイング・取引所・ステーキング・AMMs
インターオペラビリティ(相互運用性):ブリッジ・ルーティング・クロスチェーンコールズ
データ可用性(DA):オラクル・エクスプローラー・ストレージ・インデクサー
チェーンがこれらを搭載し統合する能力は、短期的な成長と長期的な持続可能性にとって非常に重要となります。
個人的に成長するエコシステムの構築には、大きく5つのステップがあると考えています。
アセットブリッジや汎用ブリッジによるクロスチェーン通信を可能にする。
DEXを統合することにより、プラットフォームに流動性をもたらす。これにより、コア開発者コミュニティはより優れたツールや抽象化機能を構築するインセンティブを与えられ、それによって洗練されていない開発者がより消費者に近い製品を構築できるようになります。
このDAppの成長を通じて、ユーザー/企業への導入を促進する。
オラクルや専用のDAレイヤーを通じて、高品質なデータをチェーン上にもたらすことに重点を置く。
このデータをインデックス化し、エクスプローラーなどでわかりやすく表示する。
結論
いかがだったでしょうか。今回も前回に引き続き10,000文字を超える長文になってしましました。ここまで読んでいただきありがとうございます。
2009年にビットコインが誕生して以来、クリプトは紛れもなく急成長を遂げてきました。2015年、EthereumはEVMによりチューリング完全なアーキテクチャを導入し、ブロックチェーンが単なる静的台帳としてではなく、表現力のあるプログラムを実行できるグローバルステートマシンとして機能するようになりました。
これにより、DApp開発が一般的になり、一般ユーザーをブロックチェーンエコシステムに取り込むことができるようになりました。
しかし、このような普及に伴い、スケーラビリティに関する新たな課題も浮上し、構築者は容量の制約を緩和するための新しいアプローチを見つけることを余儀なくされています。これは、Solanaやその他のL1/L2のような、計算をオフチェーンに移行することでスループットを向上させようとするチェーンの開発に表れていますね。
現在、新しいL1がより優れたコンセンサスメカニズムと、トークンによって独自に実現されるプロトコルベースのインセンティブシステムを活用したスケーラビリティに関する新しいアーキテクチャを探求していますが、その価値を効果的に評価することは依然として難しい課題となっています。
この記事では、測定可能なコア技術指標がエコシステムの成長にどのようにつながり、最終的に特定のネットワークの市場価値を決定するのに役立つかを示すことで、L1をより全体的に評価するための体系的なアプローチを提供できたと思います。
このような感じでブロックチェーンについて気ままに書き綴っているので、よかったら定期的に読みに来てくれると嬉しいです。私自身も無知なので、アウトプットしながら学んでいければと思っています。
ツイッターではブロックチェーンの学習ソースを共有しています。フォローしなくていいですが、ソース共有をしているので一応宣伝です。次の記事でお会いしましょう
引用
https://jumpcrypto.com/a-framework-for-analyzing-l1s/
https://vitalik.ca/general/2021/04/07/sharding.html
https://academy.binance.com/en/glossary/finality
https://www.coinbase.com/blog/the-emergence-of-cryptoeconomic-primitives
Improving performance & scalability of blockchain networks
https://www.bitdegree.org/crypto/learn/crypto-terms/what-is-liveness
https://en.wikipedia.org/wiki/Bandwidth_(computing)