Solana SVMとは?

上級8/14/2024, 2:18:56 PM
Solanaのブロックチェーンの画期的な機能であるSolana Virtual Machineについて学びましょう。これはスケーラブルで効率的な分散型アプリケーションの展開において、比類のない並列処理能力を提供します。

ブロックチェーンはもともと取引処理のための分散ネットワークとして利用されていました。しかし、仮想マシンによってブロックチェーン上でスマートコントラクトの開発が可能になり、それによってブロックチェーンは幅広いアプリケーションやユースケースの基本的なコンポーネントになっています。代表的な例として、Solana Virtual Machine (SVM) や Ethereum Virtual Machine (EVM) が挙げられます。

Solanaの仮想マシン(SVM)は、Solanaブロックチェーンの基盤となるソフトウェアインフラストラクチャであり、スマートコントラクトの実装を容易にし、より高いトランザクションスループットを実現することを可能にしています。Ethereum Virtual Machine(EVM)が順次処理パラダイムで動作し、Solidityを採用しているのに対し、SVMはRustプログラミング言語と並列トランザクション処理を採用しています。

Solana仮想マシン(SVM)とは何ですか?

Solana仮想マシン(SVM)は、Solanaネットワーク上のトランザクション、スマートコントラクト、およびプログラムを処理する実行環境です。Solana仮想マシンは、1秒あたり数千のトランザクション(TPS)を処理することでネットワークのスケーラビリティを向上させます。開発者は、SVMが高需要のシナリオに最適化され、Rustプログラミング言語を使用してトランザクションを最も効率的に実行するように構築されていると主張しています。

Ethereumは、業界標準となったブロックチェーン仮想マシンであるEVMを開発した最初のプロジェクトでした。EVMのアーキテクチャは、BNB Smart Chain、Avalanche、Tronを含む多数のブロックチェーンに影響を与え、EVMに互換性のあるシステムや派生したシステムを実装しています。

Solana仮想マシンは、確立されたEVMに対する強力な競合相手として台頭しています。SVMは、スマートコントラクトの展開、取引の処理、およびこれらの契約からのその他の要求を処理する仮想化された処理エンジンとして機能します。

これらのトランザクションは、Solana VMによって計算され、各反復後にブロックチェーンの全体的な状態を更新する状態変更リクエストです。結論から言うと、Solanaブロックチェーンの実行環境はSVMです。これは、Solanaブロックチェーンのコンセンサスレイヤーと連携して動作することにより、Web3アプリケーションの開発と運用のための動的なネットワークを提供します。

SVMは、DeFi、GameFi、その他の分散型アプリケーションなど、さまざまなスマートコントラクトアプリケーションをサポートできます。Solana VMは、EVMに似たモジュラーマシンであり、データ可用性レイヤーやコンセンサスレイヤーなどの他のコンポーネントと共に展開され、元の形式を最小限またはまったく変更せずに分散型ネットワークを構築できます。


ソース:スクワッドプロトコル

仮想マシン(VM)とは何ですか?

仮想マシン(VM)は、ブロックチェーンのコンテキストで、しばしばランタイム環境として頻繁に参照されるプログラムを実行するソフトウェアコンポーネントです。これは、暗号ネットワークのためのスマートコントラクトを実装するために使用されます。仮想マシンは、同じVMを利用する他のチャンネル上の開発者の展開プロセスを効率化することもできます。

トランザクションが提出されると、ネットワークの仮想マシンがそれを処理し、ブロックチェーンの状態を管理します。ブロックチェーンの状態は、トランザクションの実行によって影響を受けるため、ネットワーク全体の現在の状態です。仮想マシンは、ネットワークの状態を変更するための正確な規則を確立します。

VMは、バリデータのハードウェアがトランザクション処理中に実行できる形式にスマートコントラクトコードを変換します。Solana Virtual Machine(SVM)は、Rust、C、およびC++をBPFバイトコードにコンパイルし、Solana上でスマートコントラクトを記述するための主要な言語です。このプロセスにより、ネットワークノード(バリデータ)は効率的にトランザクションを実行できます。

過去、ユーザーは仮想マシン(VM)を、主要なコンピューターのオペレーティングシステムから完全に隔離された実験環境として利用してきました。ブロックチェーン仮想マシンは、従来の仮想マシンとは対照的に、分散型アプリケーションの実行レイヤーとして機能し、独立したサンドボックスである従来の仮想マシンとは異なります。ブロックチェーン仮想マシン(VM)は分散型であり、ネットワーク上のノードが自分のデバイスでブロックチェーンの仮想マシンのインスタンスを実行し、状態の変化を計算し、他の検証者によって提案された状態の変化を監視してコンセンサスを達成します。これにより、取引の記録がネットワーク上で正しく記録されることが保証されます。

Solana Virtual Machine(SVM)はどのように動作しますか?

ブロックチェーンのノード(バリデータ)は、ソラナ仮想マシンの独立した自律インスタンスとして機能します。各バリデータは、それぞれのハードウェア上で孤立したSVMローカル環境でトランザクションを処理します。それでも、バリデータがスマートコントラクトを実行する前に、SVMはまずそのスマートコントラクトをバリデータのハードウェアが処理できる形式に変換する必要があります。

スマートコントラクトが効果的に展開されると、ブロックチェーンの状態が変更されます。この変更はSlanaのランタイムに報告され、変更はSVMに転送され、すべてのバリデータノードが状態の変更をもとにブロックチェーンを更新できるようになります。

SeaLevel Parallel Transaction Processingの利用は、Solana仮想マシンの重要なコンポーネントであり、これはEthereum仮想マシンとは大きく異なります。SVMがなぜEVMよりもトランザクションをより迅速に処理できるのかには数多くの理由がありますが、その主要な要因は2つのブロックチェーンのランタイムの差異です。要約すると、EVMはその「シングルスレッド」ランタイムのために一度に1つの契約しか処理できません。一方、SVMは「マルチスレッド」ランタイムを採用し、多数の契約を同時に処理できます。

SVMの作業メカニズムは、一連の異なるプロセスを介して妨害される可能性があります。それらには、以下が含まれます。

  • バリデータノード:Solanaは世界中に多数のバリデータノードを配置しています。 SVMの各バージョンは独立して実行されるため、異なる任務の完了が可能です。
  • 準備されたスマートコントラクト:SVMの最初のステップは、ノードが理解できる言語にスマートコントラクトを翻訳することです。これにより、スマートコントラクトが正確に実行されることが保証されます。
  • スマートコントラクトの実行:スマートコントラクトは適切にフォーマットされると実行されます。スマートコントラクトは、特定のノードで実行されているSVMバージョンのブロックチェーンデータを更新します。
  • コンセンサスの達成:この改訂されたブロックチェーンは、他のすべてのネットワークノードに配布され、コンセンサスに達します。

SeaLevel 並列トランザクション処理

SeaLevelは、ソラナVMの重要なコンポーネントであり、仮想マシンがトランザクションを同時に実行できるようにします。並列トランザクション処理モデルは、ネットワーク全体の検証者が同時にトランザクションを処理することで、逐次実行モデルとは異なります。これにより、ネットワークはより高いスループットと改善されたスケーラビリティを実現します。これにより、Solana実行環境内での「水平」スケーリングが可能となり、複数のスマートコントラクトを同時に実装してもそれぞれのパフォーマンスに影響を与えることなく実行できます。Solanaスマートコントラクトは、実行中に読み取られるまたは書き込まれるデータ(状態)を指定することで、これを実現しています。

これにより、競合を起こさずにトランザクションを並行して実行し、同じ情報に簡単にアクセスすることが可能になります。Sealevelは、Ethereum Virtual Machine(EVM)が個々に処理するのではなく、SVMが一度に数万のトランザクションを処理することを可能にします。

Sealevelは楽観的並行制御を採用しており、ほとんどのトランザクションが競合しないと仮定して並行して実行する方法です。実行中に競合が検出された場合、Sealevelは競合するトランザクションを順次再試行します。ロールバックが実装されています。

SeaLevelは、Solanaネットワーク内のさまざまなノードで同時に多数のトランザクションを実行できるようにすることで、スマートコントラクトの実行を最適化します。これは、アクセスまたは変更するデータに基づいて干渉のリスクがない並列処理が可能なトランザクションを識別して分離することで実現されます。SeaLevelは、競合する可能性があるトランザクションを賢くシーケンス化して正確かつ整然とした実行を保証します。

SeaLevelの利点

並列処理アプローチの主な利点は、スケーラビリティです。Solanaネットワークは、他のブロックチェーンで使用される従来の直列処理システムで通常観察される障害なしに、効率的にスケーリングすることができます。SeaLevelは、並列処理の増加に伴う取引量の増加に対応する能力を持っています。これにより、処理期間が短縮され、リアルタイムのパフォーマンスを要求するアプリケーションにとって不可欠な高速な取引速度が実現されます。

並列実行モデルと順次実行モデルの対照

並列実行は、トランザクションの同時実行と独立した分類を可能にする高度なソリューションです。従来の直列実行方式とは異なり、並列実行は複数のトランザクションを同時に処理できるため、ネットワークの拡張性とパフォーマンスを向上させます。

基本的なアプローチは主な差別化ポイントです。全ネットワークは各トランザクションを順次実行で検証する必要があります。これにより、マイナーやバリデータにとってのエネルギー消費量が大幅に増加し、取引にかかる労力も増加します。対照的に、並列実行は取引速度を向上させます。ネットワークの能力を最適化することで関連コストを削減し、同時にEthereum Virtual Machine(EVM)環境との互換性を確保します。

Solana Virtual Machine (SVM)とEthereum Virtual Machine (EVM)の違い

SVMとEVM:クライアントの区別

EthereumとSolanaは、さまざまなバリデータクライアントがトランザクションを検証するために使用されるユニークなブロックチェーンです。特定のクライアントに問題が発生した場合、複数のバリデータクライアントがネットワークの混乱を防ぐのに役立ちます。実行レイヤー(EL)とコンセンサスレイヤー(CL)クライアントは、バリデータクライアントの2つのカテゴリーです。

実行クライアントは以下の責任を負います:

  • ネットワークに発信された新しい取引を受け取る
  • EVM上でそれらを実行する
  • すべてのEthereumデータの現在の状態とデータベースを維持する


出典:AMINA Bank

一方、コンセンサスクライアントはPoSコンセンサスアルゴリズムを実装し、実行クライアントからの検証済みデータを利用してネットワーク上で合意に達します。

Ethereumの検証ノードは通常、実行クライアントとコンセンサスクライアントの両方で動作します。これらの2つのカテゴリのクライアントは異なる機能を果たしています。一方、Solanaはこれらの機能を単一のクライアントに統合しています。Solana LabsはSolana上で最初の検証者クライアントを開発した最初の組織でした。


ソース:AMINA銀行

その後、Solanaネットワーク上で追加のフルバリデータクライアントやライトバリデータクライアントを作成するために、数多くの独立した取り組みが行われてきました。

Jito Labs

2022年8月、Jito Labsはメインネットで2つ目のバリデータクライアントを公開しました。Jitoは、独自に開発したSolana Labsコードのこのフォークの保守、変更、デプロイを担当しています。それにもかかわらず、このクライアントは、既存のクライアントのフォークであるため、Solana Labsクライアントに欠陥があります。

Firedancer

2022年8月、Jump CryptoはSolana上で新しいバリデータクライアントの開発をする意向を公表しました。このバリデータクライアントは完全にC++で作成され、大幅なパフォーマンス向上を実証しています。Firedancerはテスト環境で1秒あたり最大100万トランザクションを処理しました。これに比べて、元のSolana Labsクライアントは類似のテスト環境で1秒あたり約55,000トランザクションを処理しています。

シグ

2023年7月、シンジカは、Zigプログラミング言語で書かれたSolanaネットワークのバリデータクライアントであるSigの作成を公開しました。シンジカのバリデータチームは、最初に2023年9月にSigのためにゴシッププロトコルを実装しました。

TinyDancer

TinyDancer、Solanaの軽量クライアントは、これらの4つのバリデータクライアントに加えて、現在積極的に開発中です。 TinyDancerおよび他の軽量クライアントはブロックを構築したりコンセンサスに参加したりしません。代わりに、フルノードの運用を必要とせずに、ブロックチェーンの状態の検証を容易にします。

SVM vs. EVM: ノードの数

より多くの検証者を持つブロックチェーンは一般的により強靭です。ブロックチェーン上で契約を実行する際に、ユーザーは自分の送信が記録される保証を持たなければなりません。理想的には、ブロックチェーンへの各追加は、そのチェーン上のすべての検証者に記録されます。そのため、より多くの検証者が重要です。多様な検証者の配列により、データセンターの停止などの災害的な事象に対する保護が確保されます。

EVM ノードの数

イーサリアムは、コンセンサスへの参加とデータストレージの範囲に基づいてノードを3つのカテゴリに分類しています。

フルノード:フルノードは、ブロックチェーン内の各ブロックのデータを取得し、ブロックごとに検証します。さまざまな種類のフルノードがあり、その中にはジェネシスブロックから始まり、ブロックチェーン全体のすべてのエントリを検証するものもあります。他のフルノードは、最新の信頼されたブロックから検証を開始し、通常は最新の128ブロックのローカルコピーを保持し、定期的に古いデータを削除してディスク容量を節約します。必要に応じて古いデータを再生成することができます。

アーカイブノード:アーカイブノードは、ジェネシスブロック以降のすべてのブロックを検証および維持し、データの削除が行われないことを確保します。信頼性の高いマイニングやブロックエクスプローラ、ウォレットプロバイダ、チェーン分析などのサービスを必要とせずにテストセットをクエリするためには欠かせません。

ライトノード:完全なブロックチェーンとは異なり、ライトノードはブロックヘッダーのみを取得します。フルノードは、ライトノードの要件に応じて追加情報を提供するよう要求されます。データが受信されると、ライトノードはブロックヘッダーの状態ルートに対して独立して検証できます。ライトノードは高帯域幅や高度なハードウェアを必要とせず、モバイル電話や組み込みデバイスからEthereumネットワークへの参加を可能にします。ライトノードはマイナーやバリデータになることはできませんが、フルノードと同じセキュリティと機能を提供することができます。

SVMノード数

ソラナのノードは、コンセンサスへの関与に応じて2つのカテゴリに分類されます:

  • コンセンサスノード:コンセンサスノードは、新しいブロックを生成して提案し、他のノードによって提案された新しいブロックの有効性に投票するため、ネットワークにとって不可欠です。これらは、ネットワークの運用に不可欠です。
  • RPCノード(リモート手続き呼び出しノード):RPCノードは、Solanaブロックチェーン上に構築されたdAppsにとって不可欠であり、ブロックチェーンデータのゲートウェイとして機能します。それらは新しいブロックとネットワークの変更を独立して検証します。これは、コンセンサスノードと同様に、投票には参加しません。

最初から、SolanaはRPCノードとコンセンサスノードを区別しています。しかし、RPCノードはポーリングを実施しません。EthereumのRPCノードは通常、完全ノードまたはアーカイブノードから構築されています。Solanaのノードの絶対数は、他のプルーフオブステークブロックチェーンと比較して比較的高いです。財団は、ノードの量だけでなく、ノードの品質を促進するためにプログラムを近々変更する意向です。

2023年3月、コンセンサスノードの総数が約2200から1700に減少しました。この減少は、100%手数料を請求するノードから大量のステークが再分配されたことによるものです。ステークホルダーはこの問題を認識し、より活発なバリデータに委任を再割り当てしました。この減少の結果として、コンセンサスノードは徐々に増加し、2023年9月13日現在、1961のコンセンサスノードと2874のバリデータノードがあります。

SVMとEVMの違いの概要

結論として、SVMノードとEVMノードの比較は以下の通りです:

トランザクション管理モデル:SVMは並列処理モデルを利用しており、これにより複数のトランザクションを同時に実行することが可能となり、スループットが向上し、レイテンシが低減します。一方、EVMはトランザクションを順次処理するため、利用が高い時にネットワークの混雑が発生する可能性があります。

プログラミング言語:SVMは効率性で知られるRustをサポートしています。この言語は、高いパフォーマンスとセキュリティが必要なアプリケーションに特に適しています。一方、EVMはスマートコントラクトを開発するために設計されたSolidityというプログラミング言語を使用しています。

スマートコントラクトの実装:各バリデータはSVM上でスマートコントラクトを独立して実行し、より効率的なネットワークの運用を可能にします。一方、EVMでは、すべてのノードがスマートコントラクトの実行結果について合意する必要があり、処理時間が遅れる可能性があります。

結論

SVMは、スマートコントラクトとトランザクション処理の効率的な実装を優先するSolanaブロックチェーン上の実行環境です。Rustプログラミング言語と並列トランザクション処理を使用して、スケーラビリティとトランザクションスループットを向上させます。SVMは、並列実行モデル固有の欠点やRust言語の急激な学習曲線などの障害に直面しています。それにもかかわらず、SVMは新しいAI技術との統合により、将来の利用と採用が増加すると予想されます。

著者: Abhishek Rajbhar
翻訳者: Cedar
レビュアー: KOWEI、Matheus、Ashley
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。

Solana SVMとは?

上級8/14/2024, 2:18:56 PM
Solanaのブロックチェーンの画期的な機能であるSolana Virtual Machineについて学びましょう。これはスケーラブルで効率的な分散型アプリケーションの展開において、比類のない並列処理能力を提供します。

ブロックチェーンはもともと取引処理のための分散ネットワークとして利用されていました。しかし、仮想マシンによってブロックチェーン上でスマートコントラクトの開発が可能になり、それによってブロックチェーンは幅広いアプリケーションやユースケースの基本的なコンポーネントになっています。代表的な例として、Solana Virtual Machine (SVM) や Ethereum Virtual Machine (EVM) が挙げられます。

Solanaの仮想マシン(SVM)は、Solanaブロックチェーンの基盤となるソフトウェアインフラストラクチャであり、スマートコントラクトの実装を容易にし、より高いトランザクションスループットを実現することを可能にしています。Ethereum Virtual Machine(EVM)が順次処理パラダイムで動作し、Solidityを採用しているのに対し、SVMはRustプログラミング言語と並列トランザクション処理を採用しています。

Solana仮想マシン(SVM)とは何ですか?

Solana仮想マシン(SVM)は、Solanaネットワーク上のトランザクション、スマートコントラクト、およびプログラムを処理する実行環境です。Solana仮想マシンは、1秒あたり数千のトランザクション(TPS)を処理することでネットワークのスケーラビリティを向上させます。開発者は、SVMが高需要のシナリオに最適化され、Rustプログラミング言語を使用してトランザクションを最も効率的に実行するように構築されていると主張しています。

Ethereumは、業界標準となったブロックチェーン仮想マシンであるEVMを開発した最初のプロジェクトでした。EVMのアーキテクチャは、BNB Smart Chain、Avalanche、Tronを含む多数のブロックチェーンに影響を与え、EVMに互換性のあるシステムや派生したシステムを実装しています。

Solana仮想マシンは、確立されたEVMに対する強力な競合相手として台頭しています。SVMは、スマートコントラクトの展開、取引の処理、およびこれらの契約からのその他の要求を処理する仮想化された処理エンジンとして機能します。

これらのトランザクションは、Solana VMによって計算され、各反復後にブロックチェーンの全体的な状態を更新する状態変更リクエストです。結論から言うと、Solanaブロックチェーンの実行環境はSVMです。これは、Solanaブロックチェーンのコンセンサスレイヤーと連携して動作することにより、Web3アプリケーションの開発と運用のための動的なネットワークを提供します。

SVMは、DeFi、GameFi、その他の分散型アプリケーションなど、さまざまなスマートコントラクトアプリケーションをサポートできます。Solana VMは、EVMに似たモジュラーマシンであり、データ可用性レイヤーやコンセンサスレイヤーなどの他のコンポーネントと共に展開され、元の形式を最小限またはまったく変更せずに分散型ネットワークを構築できます。


ソース:スクワッドプロトコル

仮想マシン(VM)とは何ですか?

仮想マシン(VM)は、ブロックチェーンのコンテキストで、しばしばランタイム環境として頻繁に参照されるプログラムを実行するソフトウェアコンポーネントです。これは、暗号ネットワークのためのスマートコントラクトを実装するために使用されます。仮想マシンは、同じVMを利用する他のチャンネル上の開発者の展開プロセスを効率化することもできます。

トランザクションが提出されると、ネットワークの仮想マシンがそれを処理し、ブロックチェーンの状態を管理します。ブロックチェーンの状態は、トランザクションの実行によって影響を受けるため、ネットワーク全体の現在の状態です。仮想マシンは、ネットワークの状態を変更するための正確な規則を確立します。

VMは、バリデータのハードウェアがトランザクション処理中に実行できる形式にスマートコントラクトコードを変換します。Solana Virtual Machine(SVM)は、Rust、C、およびC++をBPFバイトコードにコンパイルし、Solana上でスマートコントラクトを記述するための主要な言語です。このプロセスにより、ネットワークノード(バリデータ)は効率的にトランザクションを実行できます。

過去、ユーザーは仮想マシン(VM)を、主要なコンピューターのオペレーティングシステムから完全に隔離された実験環境として利用してきました。ブロックチェーン仮想マシンは、従来の仮想マシンとは対照的に、分散型アプリケーションの実行レイヤーとして機能し、独立したサンドボックスである従来の仮想マシンとは異なります。ブロックチェーン仮想マシン(VM)は分散型であり、ネットワーク上のノードが自分のデバイスでブロックチェーンの仮想マシンのインスタンスを実行し、状態の変化を計算し、他の検証者によって提案された状態の変化を監視してコンセンサスを達成します。これにより、取引の記録がネットワーク上で正しく記録されることが保証されます。

Solana Virtual Machine(SVM)はどのように動作しますか?

ブロックチェーンのノード(バリデータ)は、ソラナ仮想マシンの独立した自律インスタンスとして機能します。各バリデータは、それぞれのハードウェア上で孤立したSVMローカル環境でトランザクションを処理します。それでも、バリデータがスマートコントラクトを実行する前に、SVMはまずそのスマートコントラクトをバリデータのハードウェアが処理できる形式に変換する必要があります。

スマートコントラクトが効果的に展開されると、ブロックチェーンの状態が変更されます。この変更はSlanaのランタイムに報告され、変更はSVMに転送され、すべてのバリデータノードが状態の変更をもとにブロックチェーンを更新できるようになります。

SeaLevel Parallel Transaction Processingの利用は、Solana仮想マシンの重要なコンポーネントであり、これはEthereum仮想マシンとは大きく異なります。SVMがなぜEVMよりもトランザクションをより迅速に処理できるのかには数多くの理由がありますが、その主要な要因は2つのブロックチェーンのランタイムの差異です。要約すると、EVMはその「シングルスレッド」ランタイムのために一度に1つの契約しか処理できません。一方、SVMは「マルチスレッド」ランタイムを採用し、多数の契約を同時に処理できます。

SVMの作業メカニズムは、一連の異なるプロセスを介して妨害される可能性があります。それらには、以下が含まれます。

  • バリデータノード:Solanaは世界中に多数のバリデータノードを配置しています。 SVMの各バージョンは独立して実行されるため、異なる任務の完了が可能です。
  • 準備されたスマートコントラクト:SVMの最初のステップは、ノードが理解できる言語にスマートコントラクトを翻訳することです。これにより、スマートコントラクトが正確に実行されることが保証されます。
  • スマートコントラクトの実行:スマートコントラクトは適切にフォーマットされると実行されます。スマートコントラクトは、特定のノードで実行されているSVMバージョンのブロックチェーンデータを更新します。
  • コンセンサスの達成:この改訂されたブロックチェーンは、他のすべてのネットワークノードに配布され、コンセンサスに達します。

SeaLevel 並列トランザクション処理

SeaLevelは、ソラナVMの重要なコンポーネントであり、仮想マシンがトランザクションを同時に実行できるようにします。並列トランザクション処理モデルは、ネットワーク全体の検証者が同時にトランザクションを処理することで、逐次実行モデルとは異なります。これにより、ネットワークはより高いスループットと改善されたスケーラビリティを実現します。これにより、Solana実行環境内での「水平」スケーリングが可能となり、複数のスマートコントラクトを同時に実装してもそれぞれのパフォーマンスに影響を与えることなく実行できます。Solanaスマートコントラクトは、実行中に読み取られるまたは書き込まれるデータ(状態)を指定することで、これを実現しています。

これにより、競合を起こさずにトランザクションを並行して実行し、同じ情報に簡単にアクセスすることが可能になります。Sealevelは、Ethereum Virtual Machine(EVM)が個々に処理するのではなく、SVMが一度に数万のトランザクションを処理することを可能にします。

Sealevelは楽観的並行制御を採用しており、ほとんどのトランザクションが競合しないと仮定して並行して実行する方法です。実行中に競合が検出された場合、Sealevelは競合するトランザクションを順次再試行します。ロールバックが実装されています。

SeaLevelは、Solanaネットワーク内のさまざまなノードで同時に多数のトランザクションを実行できるようにすることで、スマートコントラクトの実行を最適化します。これは、アクセスまたは変更するデータに基づいて干渉のリスクがない並列処理が可能なトランザクションを識別して分離することで実現されます。SeaLevelは、競合する可能性があるトランザクションを賢くシーケンス化して正確かつ整然とした実行を保証します。

SeaLevelの利点

並列処理アプローチの主な利点は、スケーラビリティです。Solanaネットワークは、他のブロックチェーンで使用される従来の直列処理システムで通常観察される障害なしに、効率的にスケーリングすることができます。SeaLevelは、並列処理の増加に伴う取引量の増加に対応する能力を持っています。これにより、処理期間が短縮され、リアルタイムのパフォーマンスを要求するアプリケーションにとって不可欠な高速な取引速度が実現されます。

並列実行モデルと順次実行モデルの対照

並列実行は、トランザクションの同時実行と独立した分類を可能にする高度なソリューションです。従来の直列実行方式とは異なり、並列実行は複数のトランザクションを同時に処理できるため、ネットワークの拡張性とパフォーマンスを向上させます。

基本的なアプローチは主な差別化ポイントです。全ネットワークは各トランザクションを順次実行で検証する必要があります。これにより、マイナーやバリデータにとってのエネルギー消費量が大幅に増加し、取引にかかる労力も増加します。対照的に、並列実行は取引速度を向上させます。ネットワークの能力を最適化することで関連コストを削減し、同時にEthereum Virtual Machine(EVM)環境との互換性を確保します。

Solana Virtual Machine (SVM)とEthereum Virtual Machine (EVM)の違い

SVMとEVM:クライアントの区別

EthereumとSolanaは、さまざまなバリデータクライアントがトランザクションを検証するために使用されるユニークなブロックチェーンです。特定のクライアントに問題が発生した場合、複数のバリデータクライアントがネットワークの混乱を防ぐのに役立ちます。実行レイヤー(EL)とコンセンサスレイヤー(CL)クライアントは、バリデータクライアントの2つのカテゴリーです。

実行クライアントは以下の責任を負います:

  • ネットワークに発信された新しい取引を受け取る
  • EVM上でそれらを実行する
  • すべてのEthereumデータの現在の状態とデータベースを維持する


出典:AMINA Bank

一方、コンセンサスクライアントはPoSコンセンサスアルゴリズムを実装し、実行クライアントからの検証済みデータを利用してネットワーク上で合意に達します。

Ethereumの検証ノードは通常、実行クライアントとコンセンサスクライアントの両方で動作します。これらの2つのカテゴリのクライアントは異なる機能を果たしています。一方、Solanaはこれらの機能を単一のクライアントに統合しています。Solana LabsはSolana上で最初の検証者クライアントを開発した最初の組織でした。


ソース:AMINA銀行

その後、Solanaネットワーク上で追加のフルバリデータクライアントやライトバリデータクライアントを作成するために、数多くの独立した取り組みが行われてきました。

Jito Labs

2022年8月、Jito Labsはメインネットで2つ目のバリデータクライアントを公開しました。Jitoは、独自に開発したSolana Labsコードのこのフォークの保守、変更、デプロイを担当しています。それにもかかわらず、このクライアントは、既存のクライアントのフォークであるため、Solana Labsクライアントに欠陥があります。

Firedancer

2022年8月、Jump CryptoはSolana上で新しいバリデータクライアントの開発をする意向を公表しました。このバリデータクライアントは完全にC++で作成され、大幅なパフォーマンス向上を実証しています。Firedancerはテスト環境で1秒あたり最大100万トランザクションを処理しました。これに比べて、元のSolana Labsクライアントは類似のテスト環境で1秒あたり約55,000トランザクションを処理しています。

シグ

2023年7月、シンジカは、Zigプログラミング言語で書かれたSolanaネットワークのバリデータクライアントであるSigの作成を公開しました。シンジカのバリデータチームは、最初に2023年9月にSigのためにゴシッププロトコルを実装しました。

TinyDancer

TinyDancer、Solanaの軽量クライアントは、これらの4つのバリデータクライアントに加えて、現在積極的に開発中です。 TinyDancerおよび他の軽量クライアントはブロックを構築したりコンセンサスに参加したりしません。代わりに、フルノードの運用を必要とせずに、ブロックチェーンの状態の検証を容易にします。

SVM vs. EVM: ノードの数

より多くの検証者を持つブロックチェーンは一般的により強靭です。ブロックチェーン上で契約を実行する際に、ユーザーは自分の送信が記録される保証を持たなければなりません。理想的には、ブロックチェーンへの各追加は、そのチェーン上のすべての検証者に記録されます。そのため、より多くの検証者が重要です。多様な検証者の配列により、データセンターの停止などの災害的な事象に対する保護が確保されます。

EVM ノードの数

イーサリアムは、コンセンサスへの参加とデータストレージの範囲に基づいてノードを3つのカテゴリに分類しています。

フルノード:フルノードは、ブロックチェーン内の各ブロックのデータを取得し、ブロックごとに検証します。さまざまな種類のフルノードがあり、その中にはジェネシスブロックから始まり、ブロックチェーン全体のすべてのエントリを検証するものもあります。他のフルノードは、最新の信頼されたブロックから検証を開始し、通常は最新の128ブロックのローカルコピーを保持し、定期的に古いデータを削除してディスク容量を節約します。必要に応じて古いデータを再生成することができます。

アーカイブノード:アーカイブノードは、ジェネシスブロック以降のすべてのブロックを検証および維持し、データの削除が行われないことを確保します。信頼性の高いマイニングやブロックエクスプローラ、ウォレットプロバイダ、チェーン分析などのサービスを必要とせずにテストセットをクエリするためには欠かせません。

ライトノード:完全なブロックチェーンとは異なり、ライトノードはブロックヘッダーのみを取得します。フルノードは、ライトノードの要件に応じて追加情報を提供するよう要求されます。データが受信されると、ライトノードはブロックヘッダーの状態ルートに対して独立して検証できます。ライトノードは高帯域幅や高度なハードウェアを必要とせず、モバイル電話や組み込みデバイスからEthereumネットワークへの参加を可能にします。ライトノードはマイナーやバリデータになることはできませんが、フルノードと同じセキュリティと機能を提供することができます。

SVMノード数

ソラナのノードは、コンセンサスへの関与に応じて2つのカテゴリに分類されます:

  • コンセンサスノード:コンセンサスノードは、新しいブロックを生成して提案し、他のノードによって提案された新しいブロックの有効性に投票するため、ネットワークにとって不可欠です。これらは、ネットワークの運用に不可欠です。
  • RPCノード(リモート手続き呼び出しノード):RPCノードは、Solanaブロックチェーン上に構築されたdAppsにとって不可欠であり、ブロックチェーンデータのゲートウェイとして機能します。それらは新しいブロックとネットワークの変更を独立して検証します。これは、コンセンサスノードと同様に、投票には参加しません。

最初から、SolanaはRPCノードとコンセンサスノードを区別しています。しかし、RPCノードはポーリングを実施しません。EthereumのRPCノードは通常、完全ノードまたはアーカイブノードから構築されています。Solanaのノードの絶対数は、他のプルーフオブステークブロックチェーンと比較して比較的高いです。財団は、ノードの量だけでなく、ノードの品質を促進するためにプログラムを近々変更する意向です。

2023年3月、コンセンサスノードの総数が約2200から1700に減少しました。この減少は、100%手数料を請求するノードから大量のステークが再分配されたことによるものです。ステークホルダーはこの問題を認識し、より活発なバリデータに委任を再割り当てしました。この減少の結果として、コンセンサスノードは徐々に増加し、2023年9月13日現在、1961のコンセンサスノードと2874のバリデータノードがあります。

SVMとEVMの違いの概要

結論として、SVMノードとEVMノードの比較は以下の通りです:

トランザクション管理モデル:SVMは並列処理モデルを利用しており、これにより複数のトランザクションを同時に実行することが可能となり、スループットが向上し、レイテンシが低減します。一方、EVMはトランザクションを順次処理するため、利用が高い時にネットワークの混雑が発生する可能性があります。

プログラミング言語:SVMは効率性で知られるRustをサポートしています。この言語は、高いパフォーマンスとセキュリティが必要なアプリケーションに特に適しています。一方、EVMはスマートコントラクトを開発するために設計されたSolidityというプログラミング言語を使用しています。

スマートコントラクトの実装:各バリデータはSVM上でスマートコントラクトを独立して実行し、より効率的なネットワークの運用を可能にします。一方、EVMでは、すべてのノードがスマートコントラクトの実行結果について合意する必要があり、処理時間が遅れる可能性があります。

結論

SVMは、スマートコントラクトとトランザクション処理の効率的な実装を優先するSolanaブロックチェーン上の実行環境です。Rustプログラミング言語と並列トランザクション処理を使用して、スケーラビリティとトランザクションスループットを向上させます。SVMは、並列実行モデル固有の欠点やRust言語の急激な学習曲線などの障害に直面しています。それにもかかわらず、SVMは新しいAI技術との統合により、将来の利用と採用が増加すると予想されます。

著者: Abhishek Rajbhar
翻訳者: Cedar
レビュアー: KOWEI、Matheus、Ashley
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!