WebAssembly (Wasm) は、Web ブラウザーで実行できるポータブルで高性能なバイナリ命令形式です。 これは、複数のプログラミング言語で使用でき、さまざまなプラットフォームで実行できるユニバーサル コンパイル ターゲットとして設計されています。
ブロックチェーンは、暗号化とコンセンサスアルゴリズムを使用してデータのセキュリティと信頼性を保証する分散型台帳技術です。 ブロックチェーンは、トランザクションの記録、データの保存、スマートコントラクトの実行などのアプリケーションに使用できます。
Wasmとブロックチェーンの間には、いくつかの関係とアプリケーションシナリオがあります。
要約すると、Wasmとブロックチェーンの組み合わせは、より効率的で安全、かつ柔軟なブロックチェーンアプリケーションとサービスを提供します。 Wasmの移植性と高性能により、ブロックチェーンの分野で重要な技術となっています。
WebAssembly は、World Wide Web Consortium (W3C) によって開発された効率的で軽量な命令セット標準です。 これは、Webおよびハイパフォーマンスコンピューティングのディスラプターとして歓迎されており、クロスブラウザ実行をサポートします。 これは、C/C++、Go、Rust などのさまざまなプログラミング言語を統一された標準バイナリ形式にコンパイルし、JavaScript の代替として使用して、Web ブラウザーでネイティブに近いコード効率で実行できることを意味します。
WebAssembly は WASM とも呼ばれ、メモリセーフでプラットフォームに依存しないテクノロジーであり、さまざまな CPU アーキテクチャに効率的にマッピングできます。 これには、いくつかの重要な利点があります。
さらに、Web は、あらゆるデバイスからアプリケーションにアクセスできる唯一の真のユニバーサル プラットフォームです。 これにより、単一のコードベースを維持し、更新を簡素化し、すべてのユーザーがアプリケーションにアクセスできるようにすることもできます。 WASM は、CPU 命令に直接対応する 64 ビットおよび 32 ビット整数演算をサポートします。 浮動小数点演算をなくすことで、コンセンサスアルゴリズムに必要な決定論的な振る舞いを簡単に実現できます。 WASMはLLVMコンパイラインフラストラクチャプロジェクトによってサポートされており、LLVMにおける10年以上にわたるコンパイラ最適化の恩恵を受けることができます。 WASMは、Google、Apple、Microsoft、Mozilla、Facebookなどの大手企業によって継続的に開発されており、これらの企業が開発したブラウザのバックエンドによってサポートされています。
WASMの優れた点は、バイナリ形式であるため、ダウンロードやインストールを必要とせずにどこでも実行できることです。 ワンクリックで、必要なときにすぐにWebアプリケーションを実行できます。 ブラウザには、実行されたコードがシステムに害を及ぼすのを防ぐセキュリティメカニズムが組み込まれているため、バイナリファイルを直接ダウンロードして実行するよりもさらに安全です。 さらに、Webアプリケーションの共有は簡単で、リンクはクリック可能な文字列としてどこにでも配置できます。
Web は、静的コンテンツと小さなスクリプト言語のプラットフォームから、ブラウザーの組み込み機能と Web が提供する対話機能のおかげで、すばらしいアプリケーションや機能を備えた強力で人気のあるプラットフォームに進化しました。 しかし、Web アプリケーションは依然として、当初はこれらのタスクを実行するように設計されていなかった同じスクリプト言語 (JavaScript) によって駆動されます。
JavaScript は当初、Web アプリケーションの軽量ハイパーテキスト文書に対話性を持たせることを目的とした単純なスクリプト言語でした。 そのデザインは習得と書き込みが簡単で、実行速度を優先していませんでした。 何年にもわたって、ブラウザによるJavaScript解析のパフォーマンスが大幅に向上し、パフォーマンスが大幅に向上しました。
JavaScriptの実行速度が加速したことで、ブラウザ内でできることの幅が格段に広がりました。 新しいAPIには、インタラクティブなグラフィックス、ビデオストリーミング、オフラインブラウジングなどの機能が導入されています。 さらに、以前はデスクトップ環境に限定されていたアプリケーションがWebに参入するケースも増えています。 これで、ブラウザでドキュメントを簡単に編集したり、メールを送信したりできます。 ただし、特定のドメインでは、JavaScript のパフォーマンスが依然として課題となっています。 ブラウザ以外に使用するソフトウェアアプリケーション(ゲーム、ビデオ編集、3Dレンダリング、音楽制作など)について考えてみてください。 これらのアプリケーションには、広範な計算と高いパフォーマンスが必要です。 JavaScript は、これらの高パフォーマンス要件を満たすのに苦労しています。
しかし、JavaScriptを置き換えることは現実的ではなく、インターネット全体がJavaScriptに依存しているため、その目標を達成するには数十年かかるかもしれません。 さらに、JavaScriptを絶えず改善している大規模なコミュニティがあります。 実際、他の言語と比較すると、JavaScript には null や == などの点でいくつかの欠点があります。 ただし、これらの問題は、テクノロジ全体を置き換えることを正当化するほど深刻ではありません。
したがって、WebAssembly が JavaScript に取って代わることはありませんが、だからといって WASM が将来使用されないわけではありません。 実際、WASMの使用はますます広まるでしょう。 これは、WASMが画像処理やゲームなどの強力な計算機能をWebにもたらすことができるためです。 WASM を使用すると、適切に動作する Photoshop の Web ベース バージョンや、ブラウザーで毎秒 60 フレームまたはそれ以上のフレームレートで動作する 3D ゲームを作成できます。 特にゲームでは、音声処理と映像処理の同時実行や、物理効果とAIの連携が課題となっています。 WASMには、ブラウザでゲームを効率的に実行する機能があり、他の多くのアプリケーションをブラウザに導入するための扉を開きます。
上の図は、JavaScript と WebAssembly (wasm) のワークフローの比較を示しています。 wasm は JavaScript に比べてはるかに簡潔であることがわかります。
WASM 仮想マシン
2018年、イーサリアムのエコシステムは、EVMよりもパフォーマンスが優れていると考えられていたため、WASM VMをスマートコントラクト仮想マシンとして使用することについて議論し始めました。 EVMの発明者であるGavin Wood氏は、EVMをWASMに置き換える可能性を表明しており、Vitalik氏は、より多くの開発ニーズを満たすために、Ethereum 2.0をWASMコントラクト(eWASM)をサポートするようにアップグレードすると述べています。 今日、WASM契約の開発はすでに具体化しています。
アーキテクチャのサイズの問題
従来のコンピュータには、32ビットまたは64ビットの入力を受け入れる命令セットがあります。 しかし、EVMは、イーサリアムのハッシュアルゴリズムをより簡単に処理できるように設計された256ビットコンピュータであり、明示的な256ビット出力を生成するという点で、他とは一線を画し、ユニークです。
しかし、EVMプログラムを実行する実際のコンピュータは、スマートコントラクトを実行するために256ビットワードをネイティブアーキテクチャに分割する必要があるため、システム全体が非効率的で実用的ではありません。
さらに、イーサリアム上でEVMの基本的なオペコードを使用してSHA256のような複雑なアルゴリズムを実装したい場合は、大変なことになります。 命令セットを介して複雑なプログラムを実行するという高いガスコストの問題に対処するために、イーサリアムはプログラムをEVMにコンパイルし、一定量のガスを消費するプリコンパイルの概念を導入しました。 注目すべきプリコンパイルはイーサリアムのハッシュアルゴリズムで、仮想マシン内に実装すると、コントラクトが呼び出されたときに非常に高額な料金が発生するためです。
肥大化したプリコンパイル
プリコンパイルの問題は、仮想マシンの肥大化と複雑さが継続的に増大し、核心的な問題である現在の命令セットと仕様の非効率的で貧弱な設計に対処できないことです。
これらの複雑なプログラムのプリコンパイルを必要とせず、代わりに基本的な命令を通じて目的の結果を効率的に達成する新しい仕様と命令セットを定義できるとしたらどうでしょうか。 ここでWASMの出番です。
EWASMチームは現在、イーサリアムにWebAssemblyを統合して、より効率的で簡素化された実行レイヤーを確保し、イーサリアムを完全に分散型コンピューティングプラットフォームとして適したものにしています。 WASMは、DfinityやEOSなど、他の多くのプロジェクトで標準として採用されており、どちらも実行レイヤーを強化するために使用しています。
Stylusプロジェクトは、Arbitrum Ethereumレイヤー2ネットワーク上のイニシアチブであり、WebAssembly(WASM)仮想マシンを導入することでスマートコントラクトの実行パフォーマンスを向上させることを目的としています。 契約はSolidityよりも迅速に実行でき、ガス代も削減できます。 これにより、Arbitrumネットワーク上で高性能なスマートコントラクトを簡単に構築でき、現在、C、C++、Rustでのコンパイルをサポートしています。
カスタムプリコンパイルのサポート: Stylusはカスタムプリコンパイルもサポートしており、開発者は独自のRustまたはC++プリコンパイルをArbitrumネットワークにデプロイできます。 これにより、オンチェーンのアップグレードを待たずに、新しい暗号化アルゴリズムやその他の特定の機能をオンチェーンで導入することができます。 例えば、テンソル計算をプリコンパイルして推論コストを削減することができ、オンチェーンの機械学習に有益です。
EVMとの相互運用性:Stylusは、イーサリアム仮想マシン(EVM)との相互運用性を通じて、既存のイーサリアムエコシステムとの統合を実現します。 つまり、Stylus コントラクトは既存の EVM コントラクトと対話し、EVM と同じグローバル状態を共有できます。
再入性: Cosmos Wasm とは異なり、Stylus Rust SDK には再入機能が導入されており、開発者は手動で有効にすることができます。 これにより、コントラクトの相互運用性に対する柔軟性が高まりますが、開発者はセキュリティを確保するために状態を慎重に管理する必要があります。
Arbitrumの活発なエコシステムに基づいて、Stylusの統合はおそらく最も意味のあるWASM統合です。 また、zkRollupフィールド間でのArbitrumの競争力も強化します。
Gearプロトコルは、スマートコントラクトをホストするためのツールとして機能するPolkadotパラチェーンとして展開できる技術を作成しています。 Polkadotと同様に、GearもSubstrateフレームワークを利用しており、特定のアプリケーション向けにさまざまなブロックチェーンを作成するプロセスを簡素化します。 Substrateは、すぐに使える機能を備えているため、ユーザーはプロトコル上にカスタムエンジンを作成することに集中できます。
以前は、ブロックチェーンを立ち上げるコストは高かったが、Gearを使用すると、dApp開発者はブロックチェーン全体をゼロから構築して運用するのではなく、プロジェクトに集中することができます。
Gearプロトコルのメインエンジンは、スマートコントラクトモジュールです。 Gearの場合、スマートコントラクトは、Rust、C、C++などのさまざまな言語でコンパイルされたWebAssemblyプログラムです。 仮想通貨の世界以外の開発者にとっては、使い慣れた環境でスマートコントラクトを構築できるため、参入障壁は低くなります。 開発者は、スマートコントラクトプログラミング言語を試す方が簡単だと感じています。
Gearのスマートコントラクトアーキテクチャは、内部でアクターモデルを利用し、以下の機能を提供します。
各プログラムには固定量のメモリがあり、Gearはそれを制御できます。 プログラムは、自身のメモリ内でのみ読み取りと書き込みを行うことができ、他のプログラムのメモリ空間にアクセスすることはできません。 各プログラムには独自の独立したメモリ空間があり、Gearノードの情報を並列に処理できます。
CosmWasm は、Cosmos-SDK と簡単に統合できる、モダンで強力な Wasm ベースのスマート コントラクト プラットフォームです。 これは、CosmWasmの主な利点の1つであるCosmWasmの主な利点の1つを示しています:CosmWasmで書かれたコントラクトは、IBC(Inter-Blockchain Communication)とネイティブに緊密に統合されており、開発者とユーザーはマルチチェーンの未来に入ることができます。 現在、Rust のみがサポートされています。
CosmWasmの利点
課題と制限
wasm 仮想マシンに加えて、ZKWASM と呼ばれる最近の新しいテクノロジもあります。 発明者であるDelphinus Labsは、GitHubでZK-WASMのコードをオープンソース化しました。 ZKWASMを使用すると、開発者は実行された計算を再実行せずに正確性を検証できます。 ZKWASMを活用することで、開発者はさまざまなプログラミング言語を使用してゼロ知識証明(ZKP)アプリケーションを柔軟に構築できます。 これらのアプリケーションは、Webブラウザでシームレスに実行できます。
ZKWASMは、SNARGとゼロ知識証明を組み合わせたZKSNARKから派生しています。 さらに説明しましょう。 通常、ZKSNARKを使用するには、算術回路言語またはPinocchio、TinyRAM、Buffet/Pequin、Geppetto、xJsnarkフレームワーク、ZoKratesなどの回路に適した言語でプログラムを作成する必要があります。 これは既存のプログラムにとって障壁となり、ZKSNARKの力を活用することを困難にしています。 ただし、ソースコードレベルではなく、仮想マシンのバイトコードレベルでZKSNARKを使用し、ZKSNARKをサポートする仮想マシンを実装するという別の方法があります。 Delphinus Labsは、WASM仮想マシン全体をZKSNARK回線に組み込むことで、後者のアプローチを採用しました。 その結果、既存のWASMアプリケーションは、変更することなくZKWASM上で直接実行できます。 したがって、クラウドサービスプロバイダーは、計算結果が正直に計算され、個人情報を開示しないことをすべてのユーザーに証明できます。
ZKWASMは、ブラウザで実行される操作のオンチェーン検証を可能にするなど、さまざまなユースケースを提供します。 これにより、ブロックチェーン上で検証可能なWebベースのインタラクションが可能になります。 その他のユースケースには、オラクルサービス、オフチェーン計算、自動化、Web2とWeb3の間のギャップを埋める、機械学習とデータ処理の証明の生成、さらにはゲームやソーシャルアプリケーションなどがあります。 zkWASMは、Web3の可能性を広げ、Web2開発者をこの変革的な状況に統合します。
Delphinus LabのZKWASMの実装により、開発者はゼロ知識証明の力を利用してアプリケーションのセキュリティとプライバシーを強化し、より信頼性の高い分散型デジタルエコシステムへの道を開くことができます。
Webのパフォーマンスとスマートコントラクトプラットフォーム実行レイヤーの将来は有望です。 dAppsはパフォーマンスが向上するだけでなく、WASMを統合することで、RustやGoなどの主流言語に精通している人は、Solidityやその他のブロックチェーン開発言語の複雑さを学ぶことなく、スマートコントラクトを簡単に開発できるようになります。 Evans Data Corporation によると、世界には約 2,700 万人の開発者がおり、この数は着実に増加しており、2024 年までに 2,870 万人以上に増加すると予想されています。 しかし、ブロックチェーン分野の開発者数はまだ3万人に満たず、開発者全体の約1000分の1に過ぎません。 この数は着実に増加していますが、新しいスマートコントラクト言語を学ぶことは、開発者がブロックチェーン業界に参入する上で依然として障壁となる可能性があります。
しかし、ますます多くのブロックチェーンが、コンパイルされたスマートコントラクトのバイトコードとしてWeb Assemblyをサポートし始めています。 WASMは、効率性、相互運用性、および幅広いユースケースをブロックチェーンにもたらします。 また、開発者の扉を開く鍵としても機能し、ブロックチェーン開発への参入障壁を下げます。 近い将来、Web 2.0の開発者がブロックチェーン開発に挑戦したいと思ったとき、Python、C++、JavaScriptなどの使い慣れた言語を使用してブロックチェーン上に大規模なアプリケーションを構築し、分散型ネットワークの価値を最大化できることを想像してみてください。 まずはクリエイター(開発者)のハードルを下げ、次にユーザーのハードルを下げて、マスアダプションへと向かう。
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introducing-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
この記事に関するアドバイスとガイダンスを提供してくれた Maggie と Xinyou Ji (CMU) に感謝します。
免責事項:Foresight Venturesのすべての記事は、投資アドバイスを意図したものではありません。 投資にはリスクが伴いますので、ご自身のリスク許容度を見極め、慎重に投資判断を行ってください。
WebAssembly (Wasm) は、Web ブラウザーで実行できるポータブルで高性能なバイナリ命令形式です。 これは、複数のプログラミング言語で使用でき、さまざまなプラットフォームで実行できるユニバーサル コンパイル ターゲットとして設計されています。
ブロックチェーンは、暗号化とコンセンサスアルゴリズムを使用してデータのセキュリティと信頼性を保証する分散型台帳技術です。 ブロックチェーンは、トランザクションの記録、データの保存、スマートコントラクトの実行などのアプリケーションに使用できます。
Wasmとブロックチェーンの間には、いくつかの関係とアプリケーションシナリオがあります。
要約すると、Wasmとブロックチェーンの組み合わせは、より効率的で安全、かつ柔軟なブロックチェーンアプリケーションとサービスを提供します。 Wasmの移植性と高性能により、ブロックチェーンの分野で重要な技術となっています。
WebAssembly は、World Wide Web Consortium (W3C) によって開発された効率的で軽量な命令セット標準です。 これは、Webおよびハイパフォーマンスコンピューティングのディスラプターとして歓迎されており、クロスブラウザ実行をサポートします。 これは、C/C++、Go、Rust などのさまざまなプログラミング言語を統一された標準バイナリ形式にコンパイルし、JavaScript の代替として使用して、Web ブラウザーでネイティブに近いコード効率で実行できることを意味します。
WebAssembly は WASM とも呼ばれ、メモリセーフでプラットフォームに依存しないテクノロジーであり、さまざまな CPU アーキテクチャに効率的にマッピングできます。 これには、いくつかの重要な利点があります。
さらに、Web は、あらゆるデバイスからアプリケーションにアクセスできる唯一の真のユニバーサル プラットフォームです。 これにより、単一のコードベースを維持し、更新を簡素化し、すべてのユーザーがアプリケーションにアクセスできるようにすることもできます。 WASM は、CPU 命令に直接対応する 64 ビットおよび 32 ビット整数演算をサポートします。 浮動小数点演算をなくすことで、コンセンサスアルゴリズムに必要な決定論的な振る舞いを簡単に実現できます。 WASMはLLVMコンパイラインフラストラクチャプロジェクトによってサポートされており、LLVMにおける10年以上にわたるコンパイラ最適化の恩恵を受けることができます。 WASMは、Google、Apple、Microsoft、Mozilla、Facebookなどの大手企業によって継続的に開発されており、これらの企業が開発したブラウザのバックエンドによってサポートされています。
WASMの優れた点は、バイナリ形式であるため、ダウンロードやインストールを必要とせずにどこでも実行できることです。 ワンクリックで、必要なときにすぐにWebアプリケーションを実行できます。 ブラウザには、実行されたコードがシステムに害を及ぼすのを防ぐセキュリティメカニズムが組み込まれているため、バイナリファイルを直接ダウンロードして実行するよりもさらに安全です。 さらに、Webアプリケーションの共有は簡単で、リンクはクリック可能な文字列としてどこにでも配置できます。
Web は、静的コンテンツと小さなスクリプト言語のプラットフォームから、ブラウザーの組み込み機能と Web が提供する対話機能のおかげで、すばらしいアプリケーションや機能を備えた強力で人気のあるプラットフォームに進化しました。 しかし、Web アプリケーションは依然として、当初はこれらのタスクを実行するように設計されていなかった同じスクリプト言語 (JavaScript) によって駆動されます。
JavaScript は当初、Web アプリケーションの軽量ハイパーテキスト文書に対話性を持たせることを目的とした単純なスクリプト言語でした。 そのデザインは習得と書き込みが簡単で、実行速度を優先していませんでした。 何年にもわたって、ブラウザによるJavaScript解析のパフォーマンスが大幅に向上し、パフォーマンスが大幅に向上しました。
JavaScriptの実行速度が加速したことで、ブラウザ内でできることの幅が格段に広がりました。 新しいAPIには、インタラクティブなグラフィックス、ビデオストリーミング、オフラインブラウジングなどの機能が導入されています。 さらに、以前はデスクトップ環境に限定されていたアプリケーションがWebに参入するケースも増えています。 これで、ブラウザでドキュメントを簡単に編集したり、メールを送信したりできます。 ただし、特定のドメインでは、JavaScript のパフォーマンスが依然として課題となっています。 ブラウザ以外に使用するソフトウェアアプリケーション(ゲーム、ビデオ編集、3Dレンダリング、音楽制作など)について考えてみてください。 これらのアプリケーションには、広範な計算と高いパフォーマンスが必要です。 JavaScript は、これらの高パフォーマンス要件を満たすのに苦労しています。
しかし、JavaScriptを置き換えることは現実的ではなく、インターネット全体がJavaScriptに依存しているため、その目標を達成するには数十年かかるかもしれません。 さらに、JavaScriptを絶えず改善している大規模なコミュニティがあります。 実際、他の言語と比較すると、JavaScript には null や == などの点でいくつかの欠点があります。 ただし、これらの問題は、テクノロジ全体を置き換えることを正当化するほど深刻ではありません。
したがって、WebAssembly が JavaScript に取って代わることはありませんが、だからといって WASM が将来使用されないわけではありません。 実際、WASMの使用はますます広まるでしょう。 これは、WASMが画像処理やゲームなどの強力な計算機能をWebにもたらすことができるためです。 WASM を使用すると、適切に動作する Photoshop の Web ベース バージョンや、ブラウザーで毎秒 60 フレームまたはそれ以上のフレームレートで動作する 3D ゲームを作成できます。 特にゲームでは、音声処理と映像処理の同時実行や、物理効果とAIの連携が課題となっています。 WASMには、ブラウザでゲームを効率的に実行する機能があり、他の多くのアプリケーションをブラウザに導入するための扉を開きます。
上の図は、JavaScript と WebAssembly (wasm) のワークフローの比較を示しています。 wasm は JavaScript に比べてはるかに簡潔であることがわかります。
WASM 仮想マシン
2018年、イーサリアムのエコシステムは、EVMよりもパフォーマンスが優れていると考えられていたため、WASM VMをスマートコントラクト仮想マシンとして使用することについて議論し始めました。 EVMの発明者であるGavin Wood氏は、EVMをWASMに置き換える可能性を表明しており、Vitalik氏は、より多くの開発ニーズを満たすために、Ethereum 2.0をWASMコントラクト(eWASM)をサポートするようにアップグレードすると述べています。 今日、WASM契約の開発はすでに具体化しています。
アーキテクチャのサイズの問題
従来のコンピュータには、32ビットまたは64ビットの入力を受け入れる命令セットがあります。 しかし、EVMは、イーサリアムのハッシュアルゴリズムをより簡単に処理できるように設計された256ビットコンピュータであり、明示的な256ビット出力を生成するという点で、他とは一線を画し、ユニークです。
しかし、EVMプログラムを実行する実際のコンピュータは、スマートコントラクトを実行するために256ビットワードをネイティブアーキテクチャに分割する必要があるため、システム全体が非効率的で実用的ではありません。
さらに、イーサリアム上でEVMの基本的なオペコードを使用してSHA256のような複雑なアルゴリズムを実装したい場合は、大変なことになります。 命令セットを介して複雑なプログラムを実行するという高いガスコストの問題に対処するために、イーサリアムはプログラムをEVMにコンパイルし、一定量のガスを消費するプリコンパイルの概念を導入しました。 注目すべきプリコンパイルはイーサリアムのハッシュアルゴリズムで、仮想マシン内に実装すると、コントラクトが呼び出されたときに非常に高額な料金が発生するためです。
肥大化したプリコンパイル
プリコンパイルの問題は、仮想マシンの肥大化と複雑さが継続的に増大し、核心的な問題である現在の命令セットと仕様の非効率的で貧弱な設計に対処できないことです。
これらの複雑なプログラムのプリコンパイルを必要とせず、代わりに基本的な命令を通じて目的の結果を効率的に達成する新しい仕様と命令セットを定義できるとしたらどうでしょうか。 ここでWASMの出番です。
EWASMチームは現在、イーサリアムにWebAssemblyを統合して、より効率的で簡素化された実行レイヤーを確保し、イーサリアムを完全に分散型コンピューティングプラットフォームとして適したものにしています。 WASMは、DfinityやEOSなど、他の多くのプロジェクトで標準として採用されており、どちらも実行レイヤーを強化するために使用しています。
Stylusプロジェクトは、Arbitrum Ethereumレイヤー2ネットワーク上のイニシアチブであり、WebAssembly(WASM)仮想マシンを導入することでスマートコントラクトの実行パフォーマンスを向上させることを目的としています。 契約はSolidityよりも迅速に実行でき、ガス代も削減できます。 これにより、Arbitrumネットワーク上で高性能なスマートコントラクトを簡単に構築でき、現在、C、C++、Rustでのコンパイルをサポートしています。
カスタムプリコンパイルのサポート: Stylusはカスタムプリコンパイルもサポートしており、開発者は独自のRustまたはC++プリコンパイルをArbitrumネットワークにデプロイできます。 これにより、オンチェーンのアップグレードを待たずに、新しい暗号化アルゴリズムやその他の特定の機能をオンチェーンで導入することができます。 例えば、テンソル計算をプリコンパイルして推論コストを削減することができ、オンチェーンの機械学習に有益です。
EVMとの相互運用性:Stylusは、イーサリアム仮想マシン(EVM)との相互運用性を通じて、既存のイーサリアムエコシステムとの統合を実現します。 つまり、Stylus コントラクトは既存の EVM コントラクトと対話し、EVM と同じグローバル状態を共有できます。
再入性: Cosmos Wasm とは異なり、Stylus Rust SDK には再入機能が導入されており、開発者は手動で有効にすることができます。 これにより、コントラクトの相互運用性に対する柔軟性が高まりますが、開発者はセキュリティを確保するために状態を慎重に管理する必要があります。
Arbitrumの活発なエコシステムに基づいて、Stylusの統合はおそらく最も意味のあるWASM統合です。 また、zkRollupフィールド間でのArbitrumの競争力も強化します。
Gearプロトコルは、スマートコントラクトをホストするためのツールとして機能するPolkadotパラチェーンとして展開できる技術を作成しています。 Polkadotと同様に、GearもSubstrateフレームワークを利用しており、特定のアプリケーション向けにさまざまなブロックチェーンを作成するプロセスを簡素化します。 Substrateは、すぐに使える機能を備えているため、ユーザーはプロトコル上にカスタムエンジンを作成することに集中できます。
以前は、ブロックチェーンを立ち上げるコストは高かったが、Gearを使用すると、dApp開発者はブロックチェーン全体をゼロから構築して運用するのではなく、プロジェクトに集中することができます。
Gearプロトコルのメインエンジンは、スマートコントラクトモジュールです。 Gearの場合、スマートコントラクトは、Rust、C、C++などのさまざまな言語でコンパイルされたWebAssemblyプログラムです。 仮想通貨の世界以外の開発者にとっては、使い慣れた環境でスマートコントラクトを構築できるため、参入障壁は低くなります。 開発者は、スマートコントラクトプログラミング言語を試す方が簡単だと感じています。
Gearのスマートコントラクトアーキテクチャは、内部でアクターモデルを利用し、以下の機能を提供します。
各プログラムには固定量のメモリがあり、Gearはそれを制御できます。 プログラムは、自身のメモリ内でのみ読み取りと書き込みを行うことができ、他のプログラムのメモリ空間にアクセスすることはできません。 各プログラムには独自の独立したメモリ空間があり、Gearノードの情報を並列に処理できます。
CosmWasm は、Cosmos-SDK と簡単に統合できる、モダンで強力な Wasm ベースのスマート コントラクト プラットフォームです。 これは、CosmWasmの主な利点の1つであるCosmWasmの主な利点の1つを示しています:CosmWasmで書かれたコントラクトは、IBC(Inter-Blockchain Communication)とネイティブに緊密に統合されており、開発者とユーザーはマルチチェーンの未来に入ることができます。 現在、Rust のみがサポートされています。
CosmWasmの利点
課題と制限
wasm 仮想マシンに加えて、ZKWASM と呼ばれる最近の新しいテクノロジもあります。 発明者であるDelphinus Labsは、GitHubでZK-WASMのコードをオープンソース化しました。 ZKWASMを使用すると、開発者は実行された計算を再実行せずに正確性を検証できます。 ZKWASMを活用することで、開発者はさまざまなプログラミング言語を使用してゼロ知識証明(ZKP)アプリケーションを柔軟に構築できます。 これらのアプリケーションは、Webブラウザでシームレスに実行できます。
ZKWASMは、SNARGとゼロ知識証明を組み合わせたZKSNARKから派生しています。 さらに説明しましょう。 通常、ZKSNARKを使用するには、算術回路言語またはPinocchio、TinyRAM、Buffet/Pequin、Geppetto、xJsnarkフレームワーク、ZoKratesなどの回路に適した言語でプログラムを作成する必要があります。 これは既存のプログラムにとって障壁となり、ZKSNARKの力を活用することを困難にしています。 ただし、ソースコードレベルではなく、仮想マシンのバイトコードレベルでZKSNARKを使用し、ZKSNARKをサポートする仮想マシンを実装するという別の方法があります。 Delphinus Labsは、WASM仮想マシン全体をZKSNARK回線に組み込むことで、後者のアプローチを採用しました。 その結果、既存のWASMアプリケーションは、変更することなくZKWASM上で直接実行できます。 したがって、クラウドサービスプロバイダーは、計算結果が正直に計算され、個人情報を開示しないことをすべてのユーザーに証明できます。
ZKWASMは、ブラウザで実行される操作のオンチェーン検証を可能にするなど、さまざまなユースケースを提供します。 これにより、ブロックチェーン上で検証可能なWebベースのインタラクションが可能になります。 その他のユースケースには、オラクルサービス、オフチェーン計算、自動化、Web2とWeb3の間のギャップを埋める、機械学習とデータ処理の証明の生成、さらにはゲームやソーシャルアプリケーションなどがあります。 zkWASMは、Web3の可能性を広げ、Web2開発者をこの変革的な状況に統合します。
Delphinus LabのZKWASMの実装により、開発者はゼロ知識証明の力を利用してアプリケーションのセキュリティとプライバシーを強化し、より信頼性の高い分散型デジタルエコシステムへの道を開くことができます。
Webのパフォーマンスとスマートコントラクトプラットフォーム実行レイヤーの将来は有望です。 dAppsはパフォーマンスが向上するだけでなく、WASMを統合することで、RustやGoなどの主流言語に精通している人は、Solidityやその他のブロックチェーン開発言語の複雑さを学ぶことなく、スマートコントラクトを簡単に開発できるようになります。 Evans Data Corporation によると、世界には約 2,700 万人の開発者がおり、この数は着実に増加しており、2024 年までに 2,870 万人以上に増加すると予想されています。 しかし、ブロックチェーン分野の開発者数はまだ3万人に満たず、開発者全体の約1000分の1に過ぎません。 この数は着実に増加していますが、新しいスマートコントラクト言語を学ぶことは、開発者がブロックチェーン業界に参入する上で依然として障壁となる可能性があります。
しかし、ますます多くのブロックチェーンが、コンパイルされたスマートコントラクトのバイトコードとしてWeb Assemblyをサポートし始めています。 WASMは、効率性、相互運用性、および幅広いユースケースをブロックチェーンにもたらします。 また、開発者の扉を開く鍵としても機能し、ブロックチェーン開発への参入障壁を下げます。 近い将来、Web 2.0の開発者がブロックチェーン開発に挑戦したいと思ったとき、Python、C++、JavaScriptなどの使い慣れた言語を使用してブロックチェーン上に大規模なアプリケーションを構築し、分散型ネットワークの価値を最大化できることを想像してみてください。 まずはクリエイター(開発者)のハードルを下げ、次にユーザーのハードルを下げて、マスアダプションへと向かう。
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introducing-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
この記事に関するアドバイスとガイダンスを提供してくれた Maggie と Xinyou Ji (CMU) に感謝します。
免責事項:Foresight Venturesのすべての記事は、投資アドバイスを意図したものではありません。 投資にはリスクが伴いますので、ご自身のリスク許容度を見極め、慎重に投資判断を行ってください。