第3课

モナドの技術アーキテクチャ

このモジュールは、Monadのアーキテクチャの詳細な技術的分析を提供し、プロトコルが高スループットと低レイテンシを実現する方法について説明します。トピックには、並列実行エンジン、非同期実行モデル、MonadBFTコンセンサス、および複雑でスケーラブルなオンチェーンアプリケーションをサポートするために設計された独自のMonadDBストレージレイヤーが含まれています。

楽観的並列実行

Monadブロックチェーンの最も特徴的な革新の1つは、楽観的並行実行モデルです。このアプローチは、取引がプロトコルレベルで処理される方法を再考し、従来のブロックチェーンの主要な制約である逐次実行に対処しています。Ethereumなどのプラットフォームでは、取引が1つずつ実行されます。これにより状態の一貫性が確保されますが、スループットと全体のパフォーマンスが著しく制限されます。

Monadの仮想マシンは、ブロック内のほとんどのトランザクションが独立しており、ブロックチェーンの状態の同じ部分とは連携していないという前提に基づいて、並列処理を導入しています。この前提に基づいて、トランザクションはグループ化され、複数の処理スレッドを介して同時に実行されるようスケジュールされます。これにより、特に高いネットワーク負荷下で、モダンなマルチコアプロセッサをシーケンシャルモデルよりも効果的に活用することで、実行スループットが大幅に向上します。

ただし、並行性は、同じ口座や契約を変更しようとする2つのトランザクションなど、データの競合の潜在的なリスクを導入します。モナドは、競合の検出と解決システムを組み込むことでこれに対処しています。トランザクションが並行して実行された後、システムは矛盾をチェックします。競合が検出されると、影響を受けるトランザクションのみが安全に再実行または再配置されます。これにより、ブロックチェーンが正確性と決定論的状態遷移を維持し、同時処理の効率を享受できます。

このモデルは、ほとんどの操作が競合せずに同時に処理されると仮定され、システムが介入するのは極めてまれなケースのみである、現代のデータベースシステムにおける楽観的並行制御に似ています。その結果、トランザクションのボリュームが高く、さまざまなワークロードを持つアプリケーションに適した、スケーラブルで適応性のある実行レイヤーが実現されます。

楽観的な並行実行は、DeFi、ゲーム、NFTマーケットプレイスなどのユースケースに特に有利であり、多くのユーザーが同時に相互作用しますが、ほとんどが同じデータを使用しません。Monadはこれらの操作を並行して処理し、オフチェーンのスケーリングレイヤーなしで分散型アプリケーションの応答性を向上させ、混雑を軽減します。

もう1つの重要な利点は、開発者のシンプルさです。MonadのEVM互換環境により、Solidityで書かれたスマートコントラクトは通常通り実行され、開発者が並行性を手動で管理する必要がありません。プロトコルは裏で実行ロジックを処理し、開発者のエクスペリエンスを保ちながらネットワークのパフォーマンスを向上させます。

非同期実行

Monadは並列実行モデルを補完するために、非同期実行を実装しており、トランザクションの実行を合意プロセスから分離するアーキテクチャ上の特徴です。従来のブロックチェーンでは、合意と実行が密接に関連しており、バリデータはブロックを合意し最終化する前にすべてのトランザクションを実行する必要があります。この結合により遅延が発生し、新しいブロックがどれだけ速く生産されるかが制限されます。

Monadは、これらの関数を最初にトランザクションの順序を確定させることで分離し、その後に実行します。この設計により、コンセンサスレイヤーが独立して連続して動作し、実行はバックグラウンドで並行して実行されます。これにより、バリデータの効率が向上し、ブロック時間が短縮されます。なぜなら、バリデータはすべてのトランザクションの結果を計算するのにかかる時間に制約されなくなるからです。

システムは、全ノードが同意した順序で正確に同じトランザクションを実行することにより、決定論性とセキュリティを維持します。実行自体が異なるタイミングで行われても、全ノードが正確に同じトランザクションを実行することで、ネットワーク全体での一貫性を保証し、ブロックチェーンの状態の分岐を防止します。

非同期実行は、モナドの楽観的並列処理を補完します。合意が進行し、新しいブロックが迅速に確定される一方で、実行は複数のスレッドを介して同時に行われ、必要に応じてのみ競合を解決します。この並列非同期の組み合わせにより、システムの並行性とリソース利用が最大化され、正確性が損なわれることなく行われます。

ユーザーと開発者の観点から、このアーキテクチャは、より高速なトランザクションの含まれ方、より応答性のあるアプリケーション、および改善されたスケーラビリティをもたらします。検証者も、ボトルネックの削減によって、より効率的で分散化されたネットワークを実現できます。

MonadBFT コンセンサスメカニズム

Monadでのコンセンサスは、HotStuffビザンチンフォルトトレラント(BFT)プロトコルのカスタマイズされた適応であるMonadBFTを通じて達成されます。このコンセンサスメカニズムは、Monadの低遅延の確定性と高スループットをサポートすると同時に、分散型の検証者にアクセス可能な状態を維持するように最適化されています。

HotStuffは元々、ブロックを確定するために必要な通信ラウンドの数を減らすために開発されました。MonadBFTはこれをさらに発展させ、ブロックを1つのコンセンサスラウンドで確定させることができるようにしました。これにより、即座のトランザクション確定が可能となり、アプリケーションの予測可能性が向上し、チェーンの再編成のリスクが低減されます。

MonadBFTはリーダーベースのモデルを使用しています。各ラウンドで1人の検証者がブロックを提案し、他の検証者がそれを検証して投票します。総検証者賭け金の3分の2以上がブロックを確認した場合、それが最終確定されます。この合理化されたプロセスにより、オーバーヘッドが最小限に抑えられ、特に通常の運用条件下でブロックの生成が加速されます。

リーダーの交代とタイムアウト戦略を含むMonadBFTは、生存性を確保するためにします。リーダーがブロックを提案できない場合、次の検証者が自動的に引き継ぎます。この弾力性により、一部の検証者がオフラインまたは応答しない場合でも、チェーンは進行を続けます。

セキュリティの観点から、MonadBFTは典型的なBFTのしきい値に従い、最大1/3の検証者が悪意を持って行動しても安全性が損なわれることなく許容します。ブロックが確定されると、それは暗号的に封印され、過半数の検証者がコントロールする不正な行為者が共謀しない限り、逆転することはできません。

プロトコルはMonadの非同期実行モデルと密接に統合されています。ブロックは実行前に確定されるため、システムは遅延なしに進行を続けることができ、実行レイヤーはトランザクションを独立して処理します。このアーキテクチャにより、検証者の作業量が削減され、システムは中央集権的なシーケンスサービスや信頼できる中間者に依存せずに高いパフォーマンスを維持することができます。

MonadDB

効率的な実行と合意は、高性能な状態管理システムに依存しています。Monadでは、この役割はMonadDBによって果たされます。これは、ブロックチェーンのカスタム状態ストレージレイヤーです。MonadDBは、アカウント残高、契約ストレージ、およびその他の永続的な状態変数を含むすべてのオンチェーンデータの保存を担当しています。それは速く、並行して動作し、Monadの並列実行エンジンと完全に互換性があります。

MonadDBは、バージョン管理された永続的なキー値ストアを使用しており、一度に複数の状態のスナップショットを維持できるため、仮想実行をサポートする上で不可欠です。複数のトランザクションが並行して処理され、競合に応じてロールバックまたは調整される可能性がある仮想実行をサポートする上で不可欠です。状態の異なるバージョンを格納することで、MonadDBは実行エンジンがデータの競合を効率的に分離および解決できるようにします。

MonadDBのコアとして、MonadDBはMerkle Patricia Trieデータ構造を採用しています。これは、ブロックチェーンの状態を迅速に検証することができる暗号化されたセキュリティツリーです。このトライ構造は、状態の変更が新しいルートハッシュを引き起こすことを保証し、すべてのノードによって検証が可能です。これにより、信頼性のある同期、軽量クライアント、および証明に基づく状態検証がサポートされ、セキュアかつスケーラブルなブロックチェーン設計の基盤となります。

予想される取引量を処理するために、MonadDBは低レイテンシの読み込みと書き込みのために設計されています。 キャッシュ、並行安全なアクセス制御、高速ディスクストレージを組み込んでおり、状態エントリの迅速な取得と変更を確実にします。 これらの最適化により、データアクセスの遅延による遅延を受けずに、実行レイヤーが高いスループットで動作することが可能になります。

開発者の視点から見ると、MonadDB は完全に抽象化されています。スマートコントラクト開発者は、なじみのある Solidity 構造を介してブロックチェーンとやり取りし、基礎となる状態のメカニクスを管理する必要はありません。MonadDB は、状態が正確に更新および格納されることを確実にし、高負荷や複雑な契約の実行中でも正確に動作します。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第3课

モナドの技術アーキテクチャ

このモジュールは、Monadのアーキテクチャの詳細な技術的分析を提供し、プロトコルが高スループットと低レイテンシを実現する方法について説明します。トピックには、並列実行エンジン、非同期実行モデル、MonadBFTコンセンサス、および複雑でスケーラブルなオンチェーンアプリケーションをサポートするために設計された独自のMonadDBストレージレイヤーが含まれています。

楽観的並列実行

Monadブロックチェーンの最も特徴的な革新の1つは、楽観的並行実行モデルです。このアプローチは、取引がプロトコルレベルで処理される方法を再考し、従来のブロックチェーンの主要な制約である逐次実行に対処しています。Ethereumなどのプラットフォームでは、取引が1つずつ実行されます。これにより状態の一貫性が確保されますが、スループットと全体のパフォーマンスが著しく制限されます。

Monadの仮想マシンは、ブロック内のほとんどのトランザクションが独立しており、ブロックチェーンの状態の同じ部分とは連携していないという前提に基づいて、並列処理を導入しています。この前提に基づいて、トランザクションはグループ化され、複数の処理スレッドを介して同時に実行されるようスケジュールされます。これにより、特に高いネットワーク負荷下で、モダンなマルチコアプロセッサをシーケンシャルモデルよりも効果的に活用することで、実行スループットが大幅に向上します。

ただし、並行性は、同じ口座や契約を変更しようとする2つのトランザクションなど、データの競合の潜在的なリスクを導入します。モナドは、競合の検出と解決システムを組み込むことでこれに対処しています。トランザクションが並行して実行された後、システムは矛盾をチェックします。競合が検出されると、影響を受けるトランザクションのみが安全に再実行または再配置されます。これにより、ブロックチェーンが正確性と決定論的状態遷移を維持し、同時処理の効率を享受できます。

このモデルは、ほとんどの操作が競合せずに同時に処理されると仮定され、システムが介入するのは極めてまれなケースのみである、現代のデータベースシステムにおける楽観的並行制御に似ています。その結果、トランザクションのボリュームが高く、さまざまなワークロードを持つアプリケーションに適した、スケーラブルで適応性のある実行レイヤーが実現されます。

楽観的な並行実行は、DeFi、ゲーム、NFTマーケットプレイスなどのユースケースに特に有利であり、多くのユーザーが同時に相互作用しますが、ほとんどが同じデータを使用しません。Monadはこれらの操作を並行して処理し、オフチェーンのスケーリングレイヤーなしで分散型アプリケーションの応答性を向上させ、混雑を軽減します。

もう1つの重要な利点は、開発者のシンプルさです。MonadのEVM互換環境により、Solidityで書かれたスマートコントラクトは通常通り実行され、開発者が並行性を手動で管理する必要がありません。プロトコルは裏で実行ロジックを処理し、開発者のエクスペリエンスを保ちながらネットワークのパフォーマンスを向上させます。

非同期実行

Monadは並列実行モデルを補完するために、非同期実行を実装しており、トランザクションの実行を合意プロセスから分離するアーキテクチャ上の特徴です。従来のブロックチェーンでは、合意と実行が密接に関連しており、バリデータはブロックを合意し最終化する前にすべてのトランザクションを実行する必要があります。この結合により遅延が発生し、新しいブロックがどれだけ速く生産されるかが制限されます。

Monadは、これらの関数を最初にトランザクションの順序を確定させることで分離し、その後に実行します。この設計により、コンセンサスレイヤーが独立して連続して動作し、実行はバックグラウンドで並行して実行されます。これにより、バリデータの効率が向上し、ブロック時間が短縮されます。なぜなら、バリデータはすべてのトランザクションの結果を計算するのにかかる時間に制約されなくなるからです。

システムは、全ノードが同意した順序で正確に同じトランザクションを実行することにより、決定論性とセキュリティを維持します。実行自体が異なるタイミングで行われても、全ノードが正確に同じトランザクションを実行することで、ネットワーク全体での一貫性を保証し、ブロックチェーンの状態の分岐を防止します。

非同期実行は、モナドの楽観的並列処理を補完します。合意が進行し、新しいブロックが迅速に確定される一方で、実行は複数のスレッドを介して同時に行われ、必要に応じてのみ競合を解決します。この並列非同期の組み合わせにより、システムの並行性とリソース利用が最大化され、正確性が損なわれることなく行われます。

ユーザーと開発者の観点から、このアーキテクチャは、より高速なトランザクションの含まれ方、より応答性のあるアプリケーション、および改善されたスケーラビリティをもたらします。検証者も、ボトルネックの削減によって、より効率的で分散化されたネットワークを実現できます。

MonadBFT コンセンサスメカニズム

Monadでのコンセンサスは、HotStuffビザンチンフォルトトレラント(BFT)プロトコルのカスタマイズされた適応であるMonadBFTを通じて達成されます。このコンセンサスメカニズムは、Monadの低遅延の確定性と高スループットをサポートすると同時に、分散型の検証者にアクセス可能な状態を維持するように最適化されています。

HotStuffは元々、ブロックを確定するために必要な通信ラウンドの数を減らすために開発されました。MonadBFTはこれをさらに発展させ、ブロックを1つのコンセンサスラウンドで確定させることができるようにしました。これにより、即座のトランザクション確定が可能となり、アプリケーションの予測可能性が向上し、チェーンの再編成のリスクが低減されます。

MonadBFTはリーダーベースのモデルを使用しています。各ラウンドで1人の検証者がブロックを提案し、他の検証者がそれを検証して投票します。総検証者賭け金の3分の2以上がブロックを確認した場合、それが最終確定されます。この合理化されたプロセスにより、オーバーヘッドが最小限に抑えられ、特に通常の運用条件下でブロックの生成が加速されます。

リーダーの交代とタイムアウト戦略を含むMonadBFTは、生存性を確保するためにします。リーダーがブロックを提案できない場合、次の検証者が自動的に引き継ぎます。この弾力性により、一部の検証者がオフラインまたは応答しない場合でも、チェーンは進行を続けます。

セキュリティの観点から、MonadBFTは典型的なBFTのしきい値に従い、最大1/3の検証者が悪意を持って行動しても安全性が損なわれることなく許容します。ブロックが確定されると、それは暗号的に封印され、過半数の検証者がコントロールする不正な行為者が共謀しない限り、逆転することはできません。

プロトコルはMonadの非同期実行モデルと密接に統合されています。ブロックは実行前に確定されるため、システムは遅延なしに進行を続けることができ、実行レイヤーはトランザクションを独立して処理します。このアーキテクチャにより、検証者の作業量が削減され、システムは中央集権的なシーケンスサービスや信頼できる中間者に依存せずに高いパフォーマンスを維持することができます。

MonadDB

効率的な実行と合意は、高性能な状態管理システムに依存しています。Monadでは、この役割はMonadDBによって果たされます。これは、ブロックチェーンのカスタム状態ストレージレイヤーです。MonadDBは、アカウント残高、契約ストレージ、およびその他の永続的な状態変数を含むすべてのオンチェーンデータの保存を担当しています。それは速く、並行して動作し、Monadの並列実行エンジンと完全に互換性があります。

MonadDBは、バージョン管理された永続的なキー値ストアを使用しており、一度に複数の状態のスナップショットを維持できるため、仮想実行をサポートする上で不可欠です。複数のトランザクションが並行して処理され、競合に応じてロールバックまたは調整される可能性がある仮想実行をサポートする上で不可欠です。状態の異なるバージョンを格納することで、MonadDBは実行エンジンがデータの競合を効率的に分離および解決できるようにします。

MonadDBのコアとして、MonadDBはMerkle Patricia Trieデータ構造を採用しています。これは、ブロックチェーンの状態を迅速に検証することができる暗号化されたセキュリティツリーです。このトライ構造は、状態の変更が新しいルートハッシュを引き起こすことを保証し、すべてのノードによって検証が可能です。これにより、信頼性のある同期、軽量クライアント、および証明に基づく状態検証がサポートされ、セキュアかつスケーラブルなブロックチェーン設計の基盤となります。

予想される取引量を処理するために、MonadDBは低レイテンシの読み込みと書き込みのために設計されています。 キャッシュ、並行安全なアクセス制御、高速ディスクストレージを組み込んでおり、状態エントリの迅速な取得と変更を確実にします。 これらの最適化により、データアクセスの遅延による遅延を受けずに、実行レイヤーが高いスループットで動作することが可能になります。

開発者の視点から見ると、MonadDB は完全に抽象化されています。スマートコントラクト開発者は、なじみのある Solidity 構造を介してブロックチェーンとやり取りし、基礎となる状態のメカニクスを管理する必要はありません。MonadDB は、状態が正確に更新および格納されることを確実にし、高負荷や複雑な契約の実行中でも正確に動作します。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。