
Messariレポート:Aptosの技術的改善、エコシステム発展およびネットワーク活動を包括的に理解する
TechFlow厳選深潮セレクト

Messariレポート:Aptosの技術的改善、エコシステム発展およびネットワーク活動を包括的に理解する
Aptosはすでに満を持して発進の準備を整えている。
執筆:Peter Horton,Messari
翻訳:Aptos Global
TL;DR
1)Aptosは、スケーラビリティ、セキュリティ、信頼性、アップグレード性という核心原則に基づいて設計されたLayer 1ブロックチェーンである。MetaのDiemおよびNoviプロジェクトに由来し、2022年10月にリリースされた。
2)Aptosの技術スタックには、AptosBFTv4合意形成メカニズム、Quorum Storeメモリプールプロトコル、Block-STM並列実行エンジン、プログラミング言語Aptos Moveなど多くの新規要素が含まれている。
3)2023年7月以降、Aptosは平均して1日あたり475,000件以上の取引を処理し、1日あたり72,000以上のアクティブアドレスを持つようになった。ソーシャルメディアプラットフォームChingari、オラクルPyth、そしてGraffio上での1日限定パブリックアート創作イベントなどが、チェーン上の取引活動を牽引している。
4)Aptos LabsおよびAptos財団は、マイクロソフト、阿里雲、NPIXEL、楽天グループ、Coinbase Payなど多数の著名企業とパートナーシップを締結しており、多くの成長戦略はアジア太平洋地域に重点を置いている。
モジュラー型と統合型の議論は広く行われてきたが、結局のところ両者は似たような帰結に向かっている。モジュラー型チェーンは当初、検証可能性と非中央集権化を最適化することを目指していたのに対し、統合型チェーンは低遅延・高スループットを最適化している。
Aptosは統合型陣営における最大手プレイヤーの一つであり、開発チームAptos Labsは約4億ドルの資金調達を完了している。2022年10月のネットワークローンチ以降、急速なアップグレードが進められ、40件以上のAIP(Aptos Improvement Proposal)と8つの主要バージョンがリリースされている。Aptosのエコシステムは比較的新しいが、すでにチェーン上注文帳、perp DEX、ソーシャルメディアプラットフォームなどのプロジェクトが存在する。最近の本番環境に近いテスト環境では、Aptosは検証可能なピークで30,000 TPSを達成し、1日の取引量は20億件を超えた。技術的アップグレードを継続し、開発者やユーザーを惹きつけることができれば、Aptosはすでに起爆寸前といえる。
背景
AptosはMetaのDiemおよびNoviプロジェクトから生まれた。2019年、Meta(当時はFacebook)は、ブロックチェーンベースの決済ネットワークの導入を正式に発表した。このプロジェクトは、許可制のDiemブロックチェーン(当初はLibraと呼ばれた)とNoviウォレット(当初はCalibra)で構成されていた。独立したコンソーシアムDiem AssociationとFacebook子会社Novi Financialが開発を主導したが、規制当局の抵抗により、DiemもNoviも実際に展開されることなく終了した。2022年1月にDiemは閉鎖され、その資産はSilvergate Capitalに売却された。2022年9月、MetaはNoviのサービス終了を発表した。
Aptos Labsは2021年12月に設立され、2022年2月に正式に立ち上げられた。Aptos Labsは、Noviの戦略パートナー担当責任者のMo Shaikhと、元Noviの責任者が共同で設立した。Mo ShaikhはConsensysで戦略部門を率い、不動産の一部をブロックチェーン化するMeridioというプラットフォームを創設した経歴を持つ。もう一人の共同創業者Avery Chingは、スーパーコンピューティングのバックグラウンドを持つソフトウェアエンジニアである。残りの創業チームは博士号取得者、研究者、エンジニア、デザイナー、戦略家などで構成されており、多くが以前DiemまたはNoviで働いていた。
2022年3月、Aptos Labsは2億ドルの資金調達を発表し、パブリック開発ネットワークとオープンソースコードベースをリリースした。この資金調達には株式およびトークンオプションが含まれており、a16zが主導し、Multicoin Capital、ParaFi Capital、Coinbase Venturesなど多数の投資家が参加した。2022年7月、Aptos Labsは追加で1.5億ドルを調達したと発表し、評価額は20億ドルに達したと報じられている。このラウンドはFTX VenturesとJump Cryptoが共同主導した。FTX Venturesは初回資金調達にも参加しており、現在その投資はFTX破産手続き下にある。バイナンスインキュベーターと蜻蜓キャピタルによる戦略的投資により、累計調達額は約4億ドルに達している。
Aptos Labsは2022年8月にAptosホワイトペーパーを公開後、メインネットを2022年10月にローンチした。メインネット稼働以来、Aptosネットワークは複数回のアップグレードを完了しており、現在のバージョンはV1.8.0である。Aptos財団がAptosエコシステムの発展を主導している。
技術
Aptosの技術スタックは、スケーラビリティ、セキュリティ、信頼性、アップグレード性という核心原則を中心に設計されており、スタックの多くの側面において革新的なメカニズムを導入している。
合意形成
Aptosは、AptosBFTv4合意形成プロトコルを使用する委任ステーキング型証明(DPoS)の第1層ブロックチェーンである。
Aptos BFT
AptosBFT(当初はDiemBFTと呼ばれた)は、Diem時代に4回の反復を経て進化し、その後Aptosブロックチェーンに採用された。最初のAptosBFTはHotStuffに基づいており、HotStuff自体は従来の実用的BFT(pBFT)プロトコルを基盤としている。現在のAptosBFTv4の実装はJolteonに基づいており、pBFTスタイルの二次的なビュー変更によってHotStuffの遅延を50%改善している。
さらに、誤ったリーダーによる遅延を削減するために、AptosBFTはステーキング量だけでなく「評判」(ステーキングとパフォーマンスを統合したもの)に基づいてリーダーを選定している。バリデータのパフォーマンスは、リーダーとしての提案提出頻度、および非リーダーとしての投票頻度によって評価される。
2023年7月18日に完了したAptos V1.5アップグレードにより、Quorum Storeが実装され、Aptosのスループットがさらに向上した。Quorum Storeは、メモリプールプロトコルNarwhalの実装である。Quorum Storeは、データ伝播と合意形成を分離することで合意プロセスを改善している。この分離は、Aptos LabsとMysten Labsの研究者らが共著したNarwhalおよびTusk論文の重要な知見である。
Quorum Store導入前、トランザクション処理は以下の2段階から成っていた:
1)メモリプール段階:すべてのトランザクションが全バリデータにブロードキャストされる。
2)合意形成段階:リーダーが作成したブロック内のすべてのトランザクションを全バリデータにブロードキャストし、非リーダーは署名付きブロックメタデータを送信することで投票を行う。
これにより以下の2つのボトルネックが生じていた:
1)重複するトランザクション伝播:すべてのトランザクションが、メモリプール段階と合意形成段階の両方で全バリデータノードに2度伝播される。
2)作業負荷の不均衡:合意形成段階において、リーダーは非リーダーよりも多くの作業を行う。なぜなら、リーダーは署名付きブロックメタデータ(比較的小さなメッセージ)とともに生のトランザクションを送信しなければならないため、全体の帯域幅はリーダーの帯域幅に制限され、非リーダーの帯域幅が十分に活用されない。
Quorum Storeは、メモリプールと合意プロトコルの間に中間段階を追加する。現在の完全なフローは以下の通りである:
メモリプール段階:トランザクションはバリデータにブロードキャストせず、Quorum Storeに送信される。
Quorum Store段階:Quorum Storeプロトコルはメモリプールからトランザクションを受け取り、ガス料金に基づいてバッチ化と順序付けを行い、これらのバッチをバリデータにブロードキャストする。バッチ受領後、バリデータはバッチに署名し、他のバリデータに送信する。バッチが⅔以上のバリデータからの署名を得ると、Quorum Storeは可用性証明(Proof of Availability)を作成し、バッチの一意性と可用性を保証する。
合意形成段階:合意プロトコル自体は変わらないが、リーダーはメモリプールからの生のトランザクションではなく、Quorum Storeから認証済みのバッチを使用してブロックを作成する。
これにより、前述の2つのボトルネックが解決される:
重複するトランザクション伝播:生のトランザクションは1回だけ(メモリプールからQuorum Storeへ)伝播され、その後はバッチのみが伝播されるため、メッセージ内のデータ量が削減される。
作業負荷の不均衡:合意形成段階において、リーダーはバッチメタデータ(および対応するPoAv)を送信するだけでよく、以前よりも作業量が大幅に減少し、非リーダーとの負荷がより均等になる。また、すべてのバリデータノードは仲裁ストレージ段階で同等の作業を行う。
テストでは、Quorum Storeは合意単体テストでTPS上限を12倍、エンドツーエンドテストで3倍に引き上げた。しかし、AptosBFTのようにリーダーに依存するプロトコルではQuorum Storeの全メリットを享受できないため、Aptos LabsはDAGベースの合意プロトコルへのアップグレードを検討している。詳細はロードマップの項を参照のこと。
DPoS
バリデータはインフレによるステーキング報酬を受け取る。現在、すべてのトランザクション手数料は焼却されている。ステーキング報酬はバリデータの評判(ステーキング量とパフォーマンス)に応じて加重され、2時間ごとに報酬が分配され、自動的に複利運用される。ステーキングされたトークンは、グローバルに30日間ロックされる。
各バリデータはコミッション率を設定でき、残りの割合のトークンをその委任者に渡すことができる。委任ステーキングは2023年4月20日にメインネットで実装された。参加には少なくとも11個のAPTが必要で、これによりより多くのコミュニティメンバーがステーキングに参加できるようになった。一方、バリデータとして参加する最低ステーキング要件は100万APT(2023年12月26日時点で約1050万ドル)である。
バリデータのAPT最高ステーキング額は5000万枚(総供給量の約5%)と設定されているが、これはそれほど厳格な上限ではない。ただし、バリデータ運営者が十分な株式を集めれば、複数のバリデータノードを立ち上げるインセンティブが生じる。なお、ロックされたトークンはステーキング可能であり、30日間のロック解除期間後に流動性報酬を得ることができる。
現在、オフラインや悪意あるバリデータに対するペナルティメカニズムは存在しないが、将来的にはガバナンスを通じて追加される可能性がある。
実行
バリデータがブロック順序について合意に達すると、次にブロック内のトランザクションを実行し、結果をストレージに保存する必要がある。多くのブロックチェーンは逐次的トランザクションエンジンを持っており、トランザクションが1つずつ順に処理される。実行速度を向上させるため、Aptosは並列実行エンジンを使用している。さらに、AptosはSolanaやSuiなど他の並列処理ネットワークと異なり、事前にユーザーが依存関係を宣言する必要がない。
これを実現するために、AptosはBlock-STMを採用している。これはソフトウェアトランザクションメモリ(STM)と楽観的同時実行制御(OCC)の原理に基づいている。OCCを備えたSTMライブラリは一般的な枠組みに従うもので、トランザクションは依存関係がないと仮定して楽観的に実行され、実行後に検証され、依存関係が発生すれば中止され、最終的に再実行される。しかし、依存関係管理と連鎖的中止による性能低下のため、この手法は実際にはあまり使用されていない。
OCC STMシステムのこれらの制限を克服し、実用的なデプロイに適応するために、Block-STMは事前順序を利用して依存関係を推定し、中止回数を削減している。Bohm(2014)の研究論文の主要な知見の一つは、「事前順序」が災いではなく恩恵になり得ることを観察したことである。Block-STMはBohmよりもさらに事前順序を活用し、システム内の中止ごとに依存関係の推定を改善することで、さらなる中止の機会を減らしている。
Block-STMは、一般のSTMに対して以下のような改良も加えている:
1)VMセキュリティ:Move VM(後述のMove)は、エラーを捕捉しガス料金を課すことで、未コミット状態が他の進行中のトランザクションに悪影響を与えないことを保証する。
2)ブロック粒度:ガベージコレクションはブロック間で行われるため非常に簡単である。Block-STMは当初、同期コストを下げるためにブロックコミットメントのみを追跡していたが、Aptos Labsはその後アルゴリズムを改善し、パフォーマンスを犠牲にせずにブロック内のローリングコミットをサポートするようになった。
Block-STMの各ステップを理解する前に、まず既に言及した用語「依存関係」を定義しておくとよい。ブロックチェーンのトランザクションは、共有メモリを読み書きするスマートコントラクトコードで構成される。実行時に、各トランザクションはこれらの読み書き位置のリスト(読み取りセットと書き込みセットと呼ばれる)を持つ。例えば、MoのトランザクションがAveryのトランザクションが先に書き込んだ共有メモリ位置から読み取る場合、MoのトランザクションはAveryのトランザクションに依存していることになる。依存関係のあるトランザクションは順番に実行されなければならない。この例では、Averyが先に実行され、次にMoが実行される。
こうして、Block-STMのステップバイステップのプロセスを以下5つの主要段階に分けて理解できる:
1、トランザクションの事前順序付け
前の合意形成段階から、順序付けされたトランザクションを含むブロックが存在する。前述の通り、この事前順序はBlock-STMの重要な優位性であり、並列実行の結果は逐次実行と同じ読み取り/書き込みセットを生み出さなければならない。
2、楽観的実行
Block-STMは、依存関係がないと仮定してトランザクションを並列に楽観的に実行する。
3. 検証
次に、実行されたトランザクションが検証される。つまり、依存関係をチェックする。これは、トランザクションの読み取りセットを再読出し、最新の実行結果の読み取りセットと比較することで行われる。2つの読み取りセットが一致しない場合、トランザクションは中止される。
Block-STMの重要な部分は、実行と検証タスクを効率的に連続スケジューリングすること、特に以下の点にある:
事前順序に従って早いタスクを優先処理する。
早期に欠落した依存関係を検出するために、一括で検証を送信し、連鎖的中止を回避する。
検証は実行よりもはるかに安価であるため、連続的な検証(読み取りセットの再読出し)は主要なボトルネックとはならないことに注意。
4. 中止と再実行
トランザクションが中止されると、ESTIMATEラベルがそのトランザクションが書き込んだ位置に適用される。その後、後続のトランザクションがこの位置を読み取ると、ESTIMATEラベルが見えるようになる。ESTIMATEラベルを読み取ったトランザクションは、何らかの値がESTIMATEラベルを上書きするまで実行を一時停止する。これは、元の中止されたトランザクションが再実行に成功したときに起こる。再実行されるたびに、スケジューラは事前順序上でこれに依存する後続のトランザクションを再検証することを保証する。
この動的な依存関係管理はBlock-STMの鍵となる概念である。ESTIMATEラベルがなければ、2番目のトランザクションは実行され、その後中止される可能性がある(なぜなら中止されたトランザクションが書き込んだ位置から読み取っているため)。したがって、Block-STMは中止される可能性のあるトランザクションを実行する無駄な作業を大量に回避している。さらに、動的依存管理は事前依存システムにいくつかの改善をもたらす。第一に、ユーザーは依存関係を宣言する必要がなく、任意の複雑なトランザクションの原子性をサポートできる(複雑なトランザクションを分割する必要がない)。第二に、必要なときだけ依存関係を管理し、すべてのトランザクションの依存関係を常に記憶しない。第三に、ほとんどの依存関係はブロック先頭の状態ではなく、更新された状態に基づいている。
5. コミット
Block-STMがトランザクションの楽観的実行の出力が正しいと判断すると、ローリングコミット機構によってコミットされる。ローリングコミットは軽量な同期を利用して、各バッチのトランザクションを検証・コミットし、次に次のバッチを処理する。
テストでは、Block-STMは32スレッドを使用してAptosベンチマークで最大170,000 TPSを達成した。これは逐次実行と比べて17倍の高速化である。
6. ストレージ
ブロックがコミットされると、そのデータはストレージ層に永続化される。コミットはブロック単位で行われるが、個々のトランザクションは実行後にそれぞれMerkle木に別々に保存される。ブロックチェーン上で発生するすべての事象(トランザクション、状態変更など)は、「ルートハッシュ」と呼ばれる要約によって暗号学的に証明可能であり、これは現在のバリデータノードによって署名されて認証される。この方式は、過去のトランザクションを検証するためにブロックチェーン全体を追跡する必要がある他のブロックチェーンとは異なり、より細かい粒度の証明可能なデータアクセスを可能にする。
大量のデータを処理するために、Aptosは2種類のMerkle木を使用している:ディスク上にデータを保存するためのJellyfish Merkle木と、高速更新のためのインメモリ疎Merkle木。これらはデータを効率的に保存し、同時更新を可能にするように最適化されている。Aptos Labsはストレージの拡張に関するいくつかのさらなる方法を検討しており、特にロードマップの項で詳述するストレージシャーディングがある。
7.Move
MoveはRustに影響を受けたバイトコード言語で、DiemおよびNoviチームによって作成された。MoveはSolidityや他のWeb3プログラミング言語と比べて、柔軟性と安全性を強化している。
Moveは2種類のプログラムから構成される:トランザクションスクリプトとモジュール。トランザクションスクリプトはアトミックであり、1回しか使用できない。一方、モジュールはグローバル状態に公開され、無期限に保持される。
モジュールは他のプログラミング言語のスマートコントラクトに似ており、リソースとその関連プロシージャを定義する。リソースはオブジェクトのようなもので、プロシージャはそれに対して実行可能な操作(作成、変更、削除など)である。リソースは特にトークンなどの希少資産を表現するために使われ、これらの資産が誤って複製または消失するのを防ぐ組み込み保護機能を持つ。
モジュールはデータ抽象を強制する。つまり、型は宣言モジュール内では透明だが、外部では不透明である。言い換えると、オリジナルのモジュールのみが値の作成、破棄、更新ができる。モジュールデータへの外部アクセスは、そのモジュールが公開する公共プロシージャに限定される。これらの保証はMoveのバイトコード検証器によって実行時に強制され、すべてのモジュールとトランザクションスクリプトはMove VMで実行される前にこの検証ノードを通過しなければならない。このデータ抽象は、MoveではSolidity/EVMよりも明示的に行われる。EVMはカプセル化を持つが、実行はそれほど厳密ではない。
Moveは、SolidityおよびEVMに存在する攻撃経路、特にETH以外のネイティブ資産の不在やリエントランシー攻撃に起因するものを排除することを目的としている。
ネイティブ資産:EVM上では、ERC-20や他の資産はEtherと同じ組み込みの希少性やアクセス制御属性を持たない。Solidity開発者はこれらの保護を手動で実装しなければならず、資産の重複、再利用、紛失を招くバグを導入するリスクがある。対照的に、Move上ではすべてのリソース(ネイティブ資産だけでなく)がこれらの保護を持つネイティブ資産として扱われる。
リエントランシー攻撃:EVMとは異なり、Moveは安全でない動的ディスパッチを持たない。動的ディスパッチでは、仮想マシンはコントラクト実行前に外部コントラクト関数が何を行うかを知らない。この動的ディスパッチはリエントランシー攻撃を引き起こし、これがブロックチェーンハッキングの根源の一つとなっている(最近のCurve/Vyperの脆弱性なども含む)。リエントランシー攻撃では、コントラクトが外部コントラクトを呼び出し、外部コントラクトが元のコントラクトの実行完了および残高更新前に元のコントラクトをコールバックする。これにより資金が繰り返し引き出される可能性がある。
Moveの目的は、開発者がミスを犯しにくくすることである。
バイトコード検証器に加えて、開発者は正式検証ツールMove Proverを利用できる。もちろん、Moveでもスマートコントラクトにバグが存在する可能性を完全に排除できるわけではない。プログラマーは自身のモジュール内で適切なセキュリティ不変条件を確立する必要がある。また、バイトコード検証器やMove Proverは監査の必要性を代替できない。監査会社CertiKは、一部の開発者がMoveの組み込み保護機構を使わなかったり、Moveの設計理念に反するレガシー
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














