Aptosビジョン
The Aptos Visionの翻訳記事です
By: Avery Ching : Aptos共同創業者
0. 導入
Aptos創世記で書いた通り、Aptosの使命は、何十億もの人々のために分散型資産への普遍的かつ公平なアクセスを実現することです。
Web3.0は、スマートコントラクトプラットフォームから開発者インフラやツール、ウォレット、分散型アプリケーションにまで及ぶ膨大な領域です。今後数年にわたり、エコシステムの参加者とともに構築・提携し、この分野全体を改善していくことを期待しています。Aptosの旅は、分散型コミュニティと協力して、安全で拡張可能かつアップグレード可能なスマートコントラクトプラットフォームを展開することから始まります。
現在、多くのスマートコントラクトプラットフォームが運用されていますが、それぞれ独自のメリットとデメリットを持っています。
私たちは、数十億人のニーズに応えるために、革新的で適応性のあるブロックチェーンが必要であると信じています。
大衆(特に非クリプトユーザ)にサービスを届けるためには、安全性とスケーラビリティの観点において、ユーザーエクスペリエンスを大幅に改善する必要があると考えています。過去3年間、私たちのチームは革新的なアイデアを研究・開発し、それらを安全に本番環境に展開してきました。
これから私たちの計画の概要と、頻繁かつ迅速なブロックチェーンアップグレードをどのように実現していくかを説明します。今後数ヶ月の間に、目標達成に向けた現在の取り組みと新しい取り組みの両方について、一連の深堀りとそれに付随する論文を共有する予定です。
1. 安全性とセキュリティ
何十億人ものインターネットユーザーが、すでに商品・サービスの購入や価値の交換や保存に慣れ親しんでいます。Web3.0の普及を加速させるためには、Web3.0の手付かずの領域を強化できるブロックチェーンレベルで進歩が必要と考えています。
1–1. Move: 安全で柔軟性のあるブロックチェーン言語
Moveはブロックチェーン上で安全にリソースを管理し、検証可能な実行を行うために設計されたプログラミング言語です。
Moveでの取引の実行は、決定論的であり密閉的でもあり計量的でもあります。
決定論的かつ密閉的とは、トランザクション実行の出力が完全に予測可能で、取引と現在のブロックチェーン元帳の状態に含まれる情報のみに基づいていることを意味します。
計量的とは、トランザクション実行レベルでのサービスに対する攻撃に対して防御的であることです。Move Proverは、表現力豊かな仕様言語によってMoveモジュールの特性を正式に検証することができ、継続的インテグレーション・テストの一部として実行するのに十分な速度を持っています。
Moveのリソースは、線形型にヒントを得て、リソースが保存され、コピーされたり誤って破壊されたりしないことを静的に保証するもので、潜在的な攻撃を完全に回避することができます。
私たちのブロックチェーンとMoveは、3年以上前に同時期に共同開発されました。
アカウント、取引手数料、標準ライブラリ、バリデータノードの管理、設定など、すべてMoveで実装されています。私たちはMoveの安全性を高く評価しており、Moveを中心とした幅広いエコシステムの構築を支援することに興奮しています。
1-2. 高信頼性BFTコンセンサスプロトコル
私たちのチームは、実用レベルで低遅延のBFTエンジンを開発しました。
過去3年間にわたり、このプロトコルの4回にわたる改良(最も高度なHotStuffの派生版)を実装してきました。
この間、多様な事業者が参加するプライベートメインネット環境において、ダウンタイムゼロでコンセンサスプロトコルをアップグレードしてきました。
BFTプロトコルの最初の実装では、タイムアウトを利用してバリデータを同期させるアクティブ・ペースメーカーを追加し、タイムアウトが増加するのを待つよりも迅速にバリデータを同期させることができました。
BFTプロトコルの最新の改良により、ブロックは最短で2回のネットワーク往復でコミットされ、1秒以下に完了することが一般的になりました。
私たちの新しいValidator用のレピュテーションシステムは、人間の介入なしに、チェーン上の状態を分析し、応答しないNodeを調整するために、自動的にリーダーローテーションを更新を行います。さらに、我々のプロトコルは有効性と安全性を明確に分離しています。ネットワークがアクセス不能になっても、安全でないコアが何らかの形で侵害されても、BFTによる保証が維持されている限り、チェーンはフォークしません。私たちのコンセンサスプロトコルの安全性は、監査と正式な検証の両方が行われているのです。
我々の研究では、2f+1以上のノードがブロックに投票する期間を利用して、現在のBFTプロトコルの耐性を高める簡単な拡張が可能であることを示しました。このような強いコミットメントにより、ネットワークが将来的にフォークしないことをさらに確信でき、標準的なBFTの特性を超えてブロックチェーンの信頼がさらに高まりました。
1-3. Aptos Coreの実装とテスト
多様な環境で多数のバリデータを運用することは、分散化とセキュリティの両立のために重要です。さらに、バリデータソフトウェアは攻撃を受けないように安全に設計されていなければなりません。これが、私たちがプロトコルやスマートコントラクトのロジックを実装する言語として、RustとMoveを選択した主な理由の一つです。
Aptosブロックチェーンの中核的なセキュリティ特性は、バリデータ、Moveモジュール、およびMove VMの実装に依存しています。私たちはコードをモジュール化し、重要なセキュリティ特性(コンセンサスプロトコルの安全性や実行の正確性など)を分離する最小限の信頼できるコンピューティングベース(TCB)を特定しました。モジュール化とTCBの使用により、高保証開発技術を活用することができます。また、セキュリティ上、重要なコンポーネントについては、コードレビュー、依存関係、テスト、実行環境のセキュリティなど、より厳しい要件を課すことができます。
Aptosは、開発メンバーの数十年にわたるインターネット規模でのソフトウェア開発・テスト・デプロイの経験と、分散環境で信頼性の高い運用を行うための新しいアイディアを組み合わせて作成されています。すべてのコードコミット前に、負荷テストやビザンチン攻撃などの一連の分散ネットワークテストを実行し、正しさとパフォーマンスの結果を評価しています。また、メインネットの展開に先立ち、複数のテストネットワークに段階的に展開し、各ステップで重要な負荷テストを行っていきます。
2022年第2四半期に予定されているインセンティブ付きのテストネットワークでは、ノードの運用に関するコミュニティの学習成果を高めることに重点を置いています。私たちはすでに世界中の主要なノード運用者とともに、さまざまな災害復旧シナリオの準備とテストを行ってきた重要な経験があり、最も信頼性の高い分散型ネットワークを構築できることを楽しみにしています。
1–4. より安全な鍵回復とローテーションのプロトコル
秘密鍵の盗難を防ぐために、Aptosはすべてのアカウントに対して秘密鍵をローテーションする機能をサポートしています。また、バリデータも同様に定期的にコンセンサスキーをローテーションすることができ、セキュリティが強化されています。鍵の紛失により何十億ドルもの価値が失われる問題を回避するため、ブロックチェーンアカウントモデルに直接統合可能な鍵回復に関する新しい技術の開発にも取り組んでいます。
1–5. マルチエージェントトランザクション
マルチエージェント取引は、Moveの署名タイプを利用して、1つの取引で複数のオンチェーンアカウントに対して複数の数のアクションを可能にするものです。
複数のスワップ、承認、および2つ以上のオンチェーン間の複数のアクションを1つのトランザクションで完了させることができます。このような複雑な相互作用を可能にすることで、セキュリティとパフォーマンスの両方が改善されます。マルチエージェントトランザクションとマルチシグネチャサポートを単一アカウントで組み合わせると、さらに幅広い構成可能なパターンとユースケースが可能になります。
2. スケーラビリティとパフォーマンス
高い取引手数料、低いスループットによってブロックチェーンのユースケースが制限されることは周知の事実であり、パフォーマンス最適化されたL1およびL2ブロックチェーンへの需要が高まっています。
スケーラビリティについてはあまり知られていませんが、オンチェーンストレージは非常に高価であり、数十億のアカウントと数兆のオンチェーンおよびオフチェーン資産にスケールするためには、パフォーマンス上の課題があります。
私たちの目標は、ユーザーエクスペリエンスの観点からパフォーマンスを総合的に重視することです。私たちは、ユーザーエクスペリエンスを簡素化し重要な観点にするために、L1ブロックチェーンがスケーラビリティの責任をもっと負うべきだと考えています。
2–1. ブロックチェーンの評価指標と測定に関する問題点
長年にわたるブロックチェーンのパフォーマンスを測定するための問題が存在します。まずは、最もシンプルな定義から見ていきましょう。
- スループット :
1秒間に処理されるトランザクションの数(tps) - ファイナリティ :
クライアントがトランザクションを作成・送信してから、他のNodeがトランザクションのコミットを確認するまでの時間
スループットとファイナリティは、多くの要因に影響されます。
まず第一に、トランザクションの複雑さです。
ボブのアカウントからアリスのアカウントにトークンを移動させる単純なピアツーピア取引は、1,000個のNFTを事前に生成する取引よりはるかにコストが低いです。バリデータとアカウントのサイズと分布も、性能に大きな影響を与えます。
- バリデータは何台あり、ハードウェア仕様はどうなっているか?
- アカウント数はどの程度か
(例:1万アカウント or 10億アカウント) - アカウントサイズの分布はどのようになっているか
(例:1KB or 10MB) - アクセスパターンの分布はどのようになっているか
(例:トランザクションの競合が0 or シーケンシャルな依存関係) - トランザクション間の順序保証(部分順序または全体順序)はどのようなもので、スマートコントラクトに適しているか
これらの要因によって、異なるネットワーク間のパフォーマンスを客観的に比較することが難しくなっています。性能測定の方法が異なると、比較はさらに困難になります。
例えば、DAGベースのコンセンサスプロトコルに関する私たちの研究では、Aptosが125,000 ~ 160,000 tps、あるいはそれ以上のスループットになることを実証しています。
All You Need Is DAG
Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus Bullshark: DAG BFT Protocols Made Practical
しかし、この研究でのスループット数値は、コンセンサス、ネットワーク、および部分的なストレージの考慮のみであるため、エンド・エンドのブロックチェーンのスループットを表しているわけではありません。
この数値には、トランザクションの実行時間、アカウントのアクセスパターン、プロダクションブロックチェーンにおける認証済みデータ構造(Merkleツリーなど)など、その他の重要な考慮事項は含まれていません。
ファイナリティの面では、ブロックタイムがファイナリティと誤解されることがよくありますが、実際にはブロックタイムはファイナリティのための入力要因です。
私たちは、ベンチマークに関する透明性と開放性、テスト手法の違いの説明、コンポーネントとエンド・エンドの結果の明確な表記を信条としています。
今後数ヶ月の間に、エンド・エンドの性能に関する詳細な調査結果とテスト手法を共有する予定です。
将来的にはベンチマークフレームワークを共有し、異なるブロックチェーン間の様々なユースケースのパフォーマンス特性を比較するつもりです。
2–2. 高スループットと高速ファイナリティへの道のり
高スループットと高速ファイナリティを実現するための重要な要素は、コンセンサスプロトコルとトランザクションの実行を完全に切り離すことです。
コンセンサスプロトコルはトランザクションの順序に基づいて処理を行います。別のプロトコルで、クリティカルパスの外側で、バリデータはトランザクションを実行し、最終的なトランザクションの順序と実行結果について合意します。
コンセンサスと実行レイヤーを統合したプロトコルはよりシンプルになりますが、その共依存性により、スループットとレイテンシーにおいてより重いコストを支払うことになります。
我々は長年にわたってテストされたHotStuffの最も低レイテンシーで最も先進的なプロトコルを開発しています。一般的なケースでは、プロトコルは2回のフルネットワークラウンドトリップで合意にコミットし、国家間のネットワーク往復自体に最大250ミリ秒かかる場合でも、1秒未満に処理されます。
攻撃を受けているときやネットワークが停止しているときは、オンチェーン・レピュテーション・システムが自動的にバリデータのダウンによるマイナスの影響を最小限に抑えます。私たちはすでにトランザクションを促進する次のコンセンサスプロトコルの研究開発に着手しており、2022年後半にはテストネットにおいてアップグレードを予定しています。
コンセンサスプロトコルを実行パイプラインから切り離した後、次のボトルネックはトランザクションの実行時間です。ソフトウェアトランザクショナルメモリから着想を得た新しい技術を用い、我々の実行専用ベンチマークでは32コアで1秒間に130k (130,000)トランザクション以上を達成しました。我々の実行フレームワークは、あらゆるワークロードに内在する並列性を自動的に利用するため、開発者はこの恩恵を無償で受けることができます。開発者が余計な情報を提供する必要はありません。おそらく最も重要なことは、高スループットのブロックチェーンは、ユーザーにとって取引手数料が低いことを意味するということです。
性能に関する最後のボトルネックであり最も無視されているのが、認証されたデータ構造と関連する状態の保存です。
ブロックチェーン台帳の状態(口座残高、スマートコントラクトなど)を認証する際、小規模であれば内部メモリのMerkleツリーを用いるのが効率的ですが、大規模なMerkleツリーの場合には永続的なストレージに書き込みます、そしてストレージへの書き込みがボトルネックになっていることが課題の一つとなっています。
私たちは、より高い分岐係数、アクセスパターンに最適化されたキャッシュ、慎重なバージョン管理などを検討し、データベースに適した認証データ構造を設計しています。また、現在、大容量アカウントへの対応として、非効率な単一Blobではなく、アカウントごとに個別のMoveリソースにアクセスできる機能を開発しており、将来的にはアクセスパターンに最適化されたチャンクに分割して、Moveリソース内でより細かいアクセスを実現する道も検討しています。階層型ストレージとステートレンタルは、あらゆるタイプの新しいユースケースをサポートするための重要な優先事項です。
2–3. 取引順序の制御を維持したまま口座取引を並列化
Ethereumで一般的なシーケンス番号アプローチは、トランザクションの順序に対する完全なユーザー制御、効率的なmempoolフィルタリング、および制限されたメモリ使用量を利用します。我々は、シーケンス番号アプローチを耐衝突シーケンス番号で補強し、シーケンス番号のウィンドウ上でアカウント並列化を可能にする一方で、必要に応じてユーザーがトランザクションの順序を制御できるようにする実験を行いました。今後は、さらに柔軟でコンポーザブルな並列処理を実現するための代替手段を検討していきます。
2–4. ノードの高速かつ柔軟な状態管理サポート
高スループットのブロックチェーンでは、ノード間の状態同期においてCPUに負荷がかかることがあります。一般的な環境においてはCPUより潤沢にあるネットワーク帯域をコストにすることで、CPU負担を減らす状態同期プロトコルをサポートしています。安価なフルノードをサポートするために、私たちはトランザクションとその実行結果を検証者の定足数で署名したものを同期できるプロトコルを用意しています。
これにより、ノードは高いネットワークスループットの代償として高いCPU処理をスキップし、実行結果から直接ブロックチェーン台帳状態を更新することができます。
最新のブロックチェーン台帳を得るためにブロックチェーンをダウンロードする必要がない代わりに、クライアントはトップレベルのトランザクションアキュムレータを使用して最新のコミットされたトランザクションを得ることもできます。また、必要に応じて過去の取引や元帳の履歴を安価に切り取ることも可能です。また、信頼されたウェイポイントにより、ノードが迅速に最新状態に追いつくための高速同期も可能です。
3. アップグレーダビリティ
進化するWeb3.0のニーズをサポートするためにブロックチェーンは迅速にニーズに適応していく必要があります。ブロックチェーンのユースケースや技術は常に飛躍的に成長し進化しています。
例えば、2021年においてNFTは400億ドル市場になりました。
2022年はDAOが普及する年になると多くの人が予測しています。
新しいコンセンサスプロトコルやスマートコントラクト言語が開発されて続けており、プライバシーを保護した取引が実用化されつつあります。
しかしながら、現在のブロックチェーンの多くはローンチ後にプロトコルを大幅に改善することが難しい状況にあります。
大幅なアップグレードを試みたブロックチェーンの中には、何時間ものダウンタイムや、偶発的なハードフォークの発生を経験したものもあります。
私たちは、これが新しいブロックチェーンが乱立される要因の1つであると考えています。ブロックチェーンが乱立すると、ユーザは異なる環境に精通して、自分の利用用途に最適なネットワークを見極める必要が出てくるため、ユーザーエクスペリエンスに関する問題を引き起こしてしまいます。
我々は、容易にアップグレードできるように設計・構築することが重要と考え、ダウンタイムなしに大きなアップグレードする実験を成功させてきました。
この目標を達成するために、バリデータの管理と構成はオンチェーンで管理されており、迅速に実行するのに役立っています。堅牢なテストと実践により、安全で信頼性の高いアップグレード環境が保証されています。
4. Aptosブロックチェーンの歴史
Aptosの技術は、コンセンサス、暗号、分散システム、形式検証、セキュリティなどの分野で専門知識と博士号を持つ30人以上の暗号プラットフォーム研究・技術チームによって研究、設計、開発されました。
コードは、3年以上にわたって292人のユニークな開発者とコミュニティ主導の多くの改善を通じて大幅に成長しました。
本番環境では、さまざまなユースケースを通じてテストを行い、1年以上にわたって多数の運営者によって、12以上もの災害シナリオを想定した運用が行われました。また、プライベート・メインネットにおいて、ダウンタイムなしの重要なアップグレードを複数回実施し成功させました。コードはオープンソースで、多くのブロックチェーンで使用できるインフラを構築するという長期的な目標に基づきコミュニティによって管理されています。コミュニティは、この技術がリリースされ、今後多くの新しいアプリケーションが作られるのを心待ちにして興奮しています。
5. タイムライン
より広いコミュニティが構築を開始できるよう、できるだけ早くメインネットを立ち上げることを約束します。
多くの人が、私たちの技術がリリースされるのを何年も待っています。
私たちはグローバルハッカソンも計画しており、皆さんの参加をお待ちしています。
2022 Q1 : デベロッパー向けテストネットの立ち上げ
戦略的パートナーやWeb3.0開発者コミュニティと協力し、Moveでの開発体験とMove言語に関するフィードバックを収集し、改善を行う
2022 Q2 : インセンティブ付きテストネットの立ち上げ
- 戦略的パートナーと開発者による大規模でメインネットに近いテスト
- ノードオペレータのコミュニティと協力し、分散型ネットワークを運用するための専門知識を身につける
- バグバウンティを開始して、開発者の体験やノードの運用を改善しインフラの問題に対処する
- ネットワークの安全確保に貢献するすべての参加者にインセンティブを提供する
2022 Q3 : メインネット立ち上げ
2022 Q4 ~ 2023 Q1 : 重要な機能を備えたメジャーリリースをデプロイ
最後に
Medium Aptosの日本語記事や開発者用のTips、チュートリアルを展開していく予定です。
一緒になってAptosの開発や記事を書いてみたい人はお声がけください !
Aptosは、Move言語で構築されている安全でスケーラブルなレイヤー1ブロックチェーンです。 各コンテンツをフォローしてご参加ください