# XVMについて調べてみる

By [mayu2001](https://paragraph.com/@mayu2001) · 2023-02-06

---

EVMとWASMの両方の特徴を備えるAstar Networkの特徴的なバーチャルマシン、XVMについて調べます。実際のところ、今までアンバサダーによるAMA（Ask Me Anything）的なものを聞いていても、全然良さがわからない…その割に開発にものすごく重たい感が伝わってきます。そんな状況を好転させたくて、調べてみます<(｀･ω･´) まずはいつもの手抜きPerplexityさんのお答え。

> XVMて何？日本語で PERPLEXITY XVMはWorld of Tanks (WOT)のMODの一種で、プレイヤーの個人成績を表示したり、ガレージの車両の並び方を設定することができる\[1\]\[2\]\[3\]\[4\]。 4 SOURCES [hatenablog.jp](http://hatenablog.jp) favicon [hatenablog.jp](http://hatenablog.jp)
> 
> 1.  【WOT】 XVM導入と有効化 【必須】 - hirolog123のwot備忘録 XVMはMODの一種で、何らかの形でXVMを利用されている方が多いと思います。 ... で表示されますので、読みやすいように日本語にしましょう。 [yahoo.co.jp](http://yahoo.co.jp) favicon [yahoo.co.jp](http://yahoo.co.jp)
>     
> 2.  Wotのmodでxvmというのが有名ですが、導入するとどんな ... 明らかなメリットと言えるのは、試合開始のときや参加者リストを表示したとき、個人成績が出ているので、要注意人物が解る点です。 [fc2.com](http://fc2.com) favicon [fc2.com](http://fc2.com)
>     
> 3.  XVMカスタム講座 - 鶏小屋（仮） - FC2 設定ファイルの編集 ·.xcファイルをテキストエディタに関連付けしておくといいでしょう。 · （関連付けがわからん人はググって） · ガレージの車両の並び方を設定する ... [wikiwiki.jp](http://wikiwiki.jp) favicon [wikiwiki.jp](http://wikiwiki.jp)
>     
> 4.  XVMのカスタマイズ例 - \[OPEN\]WoT Wiki\* - [WIKIWIKI.jp](http://WIKIWIKI.jp) XVMの公式ページ にアクセスする(デフォルトではロシア語で読みにくいから英語のページにしておいたよ) 2. 右上の「Sign in」をクリックし、「\[ASIA\] Asia」をクリック ...
>     

明らかに世間では知られていない様子。ここからは手作業で💦とおもったら、あっさり公式からの日本語訳が見つかりました…が、長すぎる技術文書。要点を抜き出します。

[https://note.com/you425/n/na76bdb1d775c](https://note.com/you425/n/na76bdb1d775c)

> EVMとWASMの間で構築することを奨励するマルチチェーンネットワークを構築しています。最初のステップは、他のチェーンで既に成功しているスマートコントラクトで構築されたdAppsのエコシステムを形成することによって、Astar Networkをローンチすることでしたが、我々はこれがAstarやPolkadotの長期的成功のための全面的なソリューションであるとは考えていません。その代わり、私たちはWASMとマルチチェーンスマートコントラクトにベットしています。私たちのチームは、WASMをAstar Networkに導入することにレーザーフォーカスを当てています。最近、私たちはマルチチェーンネットワークを実現するための大きなマイルストーンとして、xvm\_palletを使ってEVM-to-WASMで対話させることを達成しました

これ、ほぼ機械翻訳そのままで最小限の校正しか入れてない感(´・ω・｀) 更にぐぐってみると恐ろしく分かりやすい感あるイラスト付きの英文投稿が！！しかも約１ヶ月前に投稿なのでこの変化の激しいブロックチェーン業界では、他の文献参照して最新かどうか確認せずに済みそうで非常にありがたい！

[https://medium.com/astar-network/cross-virtual-machine-creating-a-portal-to-the-future-of-smart-contracts-a96c6d2f79b8](https://medium.com/astar-network/cross-virtual-machine-creating-a-portal-to-the-future-of-smart-contracts-a96c6d2f79b8)

もういっそこの分かりやすいイラスト、Astarにも著者にも不利はないので厳密な著作権的なことはええやろ、ということで、そのまま持ってきてから、部分訳示します。

![](https://storage.googleapis.com/papyrus_images/bc877b08211d3c35169180adde4b97cfd7b0a240175677fb7896869dd72ee388.png)

> Astar Foundationでは、今起きている外部からの影響（訳注：2022年の[UST暴落](https://coinpost.jp/?p=355671)、[3AC破産](https://coinpost.jp/?p=370044)、[FTX騒動](https://coinpost.jp/?p=406333)に代表される下げ相場）に左右されることなく、未来の基盤を作るために努力を続けてきました。そして今日、Astar Visionを実現するための最も重要な機能の一つであるXVM（Cross-Virtual Machine）をご紹介します。本記事では、Web3におけるスマートコントラクトの役割、dApp開発を進める上での課題、XVMを作った理由、XVMの仕組み、そして最後に、未来に向けた展望を紹介します。

> **WASMスマートコントラクトVM** WebAssembly（WASM）は、WASMのバイトコードを解釈するためにWebAssembly仮想マシンが読むことができるメッセージ形式です。厳密には、WASMは仮想環境でシステムと通信するために上位言語からコンパイルされたメッセージ形式を指します。しかし、わかりやすくするために、この記事でWASMと言った場合、バイナリとしてのWASMとブロックチェーン内の仮想マシンの両方を指すことにします。
> 
> WASMはもともと、システムレベル言語からコンパイルされたバイナリをブラウザで利用し、Webアプリケーションのネイティブに近いパフォーマンスを実現するためのものでした。しかし、WASMのポータビリティのおかげで、これはブラウザ以外でも実行できるようになりました。
> 
> WASMのVMはEthereum Virtual Machine（EVM）のようなスタックベースのVMなので、WASMのバイナリにコンパイルされていれば、スマートコントラクトの実行環境を構築することが可能です。EVMとは異なり、WASMを通じて、Rust、Go、C++など、WASMをターゲットにできる言語で書かれたスマートコントラクトを実行するブロックチェーンを作ることが可能で、これらはすべて[型安全性](https://eow.alc.co.jp/search?q=type-safe#:~:text=type%2Dsafe%E3%81%A8%E3%81%AF&text=%E3%80%94%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%AA%E3%81%A9%E3%81%8C%E3%80%95%E5%9E%8B,%E3%82%92%E9%98%B2%E6%AD%A2%E3%81%97%E3%81%9F%E3%82%8A%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%93%E3%81%A8%E3%80%82)と適切なエラー処理をサポートしているということです。
> 
> さらに、WASMにネイティブにコンパイルできる主要な言語は、その構文で非同期関数をサポートしているため、WASMスマートコントラクトに非同期性を導入することが可能です。相互運用性については、レスポンスがわからないままやみくもにメッセージを送信するのではなく、スマートコントラクト内でクロスチェーン関数を扱えるようになったということです。EVMとSolidityがこの部分で欠けていることを考えると、これはDeFi以外の業界グレードの（訳注：なぜDeFiここで除くのかよくわからん💦）、クロスチェーンのネイティブアプリケーションを作る上で大きな意味を持ちます。多くの要因から、WASMはスマートコントラクトの未来形と言えます。しかし、EVMとの互換性の問題から、ブロックチェーン技術の大量導入は困難になっています。

> **XVMの背後にある動機** 技術的に言えば、WASMベースのスマートコントラクトが望ましいということは、誰もが知っています。しかし、EVMが支配的な世界でWASMスマートコントラクトを採用する場合、大きな課題があります。ほとんどのチームは、豊かなEVMエコシステムに慣れすぎています。ほとんどのWASM VMエコシステムが小さく、あまりにも異質であるため、多くの既存プロジェクトはWASMスマートコントラクトをゼロから学び、EVMエコシステムへのアクセスを犠牲にするメリットを見出せないでいます。
> 
> 私たちは、この正確な問題を解決するためにXVMを作りました。
> 
> Plasmから私たちを知っている人は、私たちが常に非常にWASMスマートコントラクトに焦点を当てたネットワークであったことを思い出すかもしれません。しかし、Astarを立ち上げたとき、コントラクトパレット（訳注：あまり理解できてないですが、おそらく[こちら](https://recruit.gmo.jp/engineer/jisedai/blog/substrate-pallets/)が参考になるかと）ではなくEVMで立ち上げました。これは、エコシステムを立ち上げ、より広い利用者にプラットフォームを提供するためでした。しかし、私たちは常にWASMスマートコントラクトをより広いエコシステムに取り込むことを計画していました。それがXVMのアイデアの始まりです。
> 
> XVMは、ある仮想マシン内のスマートコントラクトが、あたかも同じ環境にあるかのように別の仮想マシンと通信することを可能にするカスタムパレット（訳注：図の真ん中に単にXVM Palletとして示されている）とインターフェースのセットです。つまり、XVMを使えば、ink!（訳注：プログラミング言語のようです）のスマートコントラクトを作成し、EVM側で利用できるあらゆるアセットやコントラクトにアクセスすることができるのです。さらに、AstarのEVMが[Axelar](https://www.token-economist.com/2022/03/07/axelarnetwork-introduction/)や[Celer](https://hashhub-research.com/articles/2019-05-16-celer-network-overview)といった別のレイヤー0（訳注：Celerはレイヤー2のはずなのですがわかりません）に接続されている場合、AxelarやCelerに接続されているすべてのEVMチェーンにアクセス可能なink!スマートコントラクトを作成することができるのです。
> 
> これによって可能性は無限に広がり、私たちはXVMが開発者に対して、大規模なEVMエコシステムを利用できなくなる制約にしばられずに、革新的なdApps（訳注：分散型アプリケーション）の開発を促進することを期待しています。

ここでコーディングの例など技術的な詳細が述べられていますが、開発者になる気はないので飛ばします🙇

> **今後の展開** 現在、XVMはv2であり、v3の作成に邁進しています。v2の制限の1つは、XVMストレージのクエリーとエラーメッセージがないことです。スマートコントラクトとやり取りする際、開発者はアプリケーションロジックの一部として、アカウントが保有するERC20トークンの量など、特定の値を問い合わせます。v3では、スマートコントラクトが別の環境からスマートコントラクトのストレージ値を読み取ることができるようにします。エラーメッセージと同様、開発者はトランザクションが成功したかどうかしかわかりません。しかし、エラーメッセージを改善することで、プロジェクトがdAppの[コーナーケース](https://chico-shikaku.com/2022/05/corner-case-in-programming/)を適切に処理できるようにすることができます。
> 
> XVMの将来的には、これをXCMPと統合し、Astar上のスマートコントラクトが、どのVMを使用しているかにかかわらず、他のパラチェーン上のスマートコントラクトを呼び出せるようにしたいと考えています。これによって、開発者は真にクロスチェーンのネイティブなdAppを作ることができ、スマートコントラクトの機能を今までできなかったものに拡張することができるようになります。
> 
> 最後に、EVMとコントラクトパレットだけでは、マルチVMチェーンとは呼べません。将来的には、スマートコントラクトの非同期性をネイティブに処理できる別のVMを追加し、クロスチェーンの呼び出しを非同期関数として[抽象化](https://www.internetacademy.jp/it/programming/java/difference-between-interface-and-abstract.html)する予定です。このVMはXVMと互換性があり、Astar Network上のあらゆるdAppが、ユーザーに別のチェーンで別のアカウントを作らせたり、別のdAppを[デプロイ](https://hnavi.co.jp/knowledge/blog/deploy/)させたりすることなく、クロスチェーン関数の能力を完全に活用できるようにします。

> **終わりに**
> 
> XVMを使えば、EVMが支配する従来のブロックチェーンエコシステムを結合する際に発生する問題を解消し、EVMが提供する広大なエコシステムを利用できなくなる制約なく、新しいパラダイムのdAppプロジェクトが我々のエコシステムに参入できることがおわかりいただけると思います。
> 
> WASMのスマートコントラクトにより、プロジェクトはシンプルな非同期関数で他のブロックチェーンにアクセスして使用することができ、プロジェクトはスマートコントラクトを開発する際にSolidityに欠けている型安全性を恐れる必要がなく、WASMの拡張言語機能により人材プールとプロジェクトの多様性を高めることができる未来が見えています。
> 
> また、XVMを通じて、プロジェクトはWASMで構築することで何が失われるかを心配することなく、エンドユーザーに価値をもたらすものの構築に集中することができるようになります。
> 
> Astar Networkは、あなたのイノベーションが始まる場所なのです。

長かったぁ。でも、かなり理解できた感。XVMは、EVMとWASMのいいとこどりをするってことね。今日のノルマ完了<(｀･ω･´)

---

*Originally published on [mayu2001](https://paragraph.com/@mayu2001/xvm)*
