Arbitrum Stylusの概要
Arbitrum Stylusとは?
Arbitrum Stylusは、WASM互換言語であるRustやCなどを使用してスマートコントラクトを開発できるプロダクトです。
WASMで実行可能なスマートコントラクトは、ICPやSolanaなどのEVM以外のチェーンで既に実現されていますが、Stylusの革新性は、EVMの実行環境を保持しつつ、WASMの利用を可能にした点にあります。これにより、ブロックチェーン開発で最も多くの開発者が使用している言語の一つであるSolidityのエンジニアは、Arbitrum上での開発を継続できるだけでなく、RustやCといったブロックチェーン外で広く使われている言語の開発者も取り込むことが可能になります。これは、従来のネットワークにはない大きな強みとなります。
さらに、WASMの導入により、ガスコストの削減や実行速度の向上といったメリットが得られます。特に、Memoryの使用に関しては、Solidityに比べて100から500倍ものコスト削減が見込まれています。
Stylusのメリット
多数のプログラミング言語を使用可能
現在はRustのみ対応していますが、将来的にはC、C++、Goなども順次対応予定です。さらに、Fuelで利用されているSway、Aptos/Suiなどで利用されているMove、StarkNetで利用されているCairoなど、他のネットワークで利用されている言語への対応も計画されています。
Solidityの開発者数は約20,000人ですが、Rustは約300万人でCは約1200万人の開発者がいるとされており、Solidityより幅広い開発者層にリーチできる可能性を秘めています。
EVM+
前述の通り、StylusはEVMとWASMの両方を実行できるため、SolidityだけでなくRustやCなどの言語にも対応しています。これにより、最も多いSolidityの開発者を引き続き惹きつける一方で、より多くの開発者がブロックチェーン開発に参入しやすくなります。
さらに安価に実行可能
StylusではWASMを用いてスマートコントラクトを扱うことができるため、ガスコストが削減され、処理速度が向上します。これにより、EVMでは扱いにくかった暗号技術関連のライブラリも容易に扱えるようになります。
再入攻撃を防ぐ
スマートコントラクトのハッキングでよくある手法として再入攻撃があります。Solidityの場合は開発者が設計をして再入攻撃を防ぐ必要がありましたが、Stylusの場合はSDKを使って意図的にoverrideされない限りはデフォルトで再入を防ぐことができます。
完全に相互運用可能
SolidityのプログラムとWASMプログラムは完全に相互運用可能です。つまり、SolidityのコントラクトからWASMのコントラクトを呼び出すことができ、その逆も可能です。
まとめ
本記事ではStylusの概要やSolidityとStylusの比較について解説しました。
Rustを使ってスマートコントラクトを実装することはできるが、オンチェーンに保存されるデータの取り扱いに制限があったり、extenalやInterfaceなどスマートコントラクト独自の仕様があったりします。したがって、Rustを使えるからといってすぐにスマートコントラクト開発できるわけではなく、ある程度の学習コストはかかる印象を受けました。しかし、検証した結果から分かるようにガス代の削減などのStylusによるメリットは十分にあります。
また、L2エコシステム全体の話にはなりますが、Optimistic Rollupはセキュリティーやfinalityの速さの観点からZK Rollupに劣っており、Optimistic RollupはZK Rollupが流行るまでの繋ぎとよく言われています。しかし、Optimistic RollupがZK Rollupと比べると比較的実装が容易でEthereumに近い実装になっているからこそ、今回のチェーン自体を開発する以外のリソースを確保でき、今回のstylusのようなコア以外の開発を実現できてたと感じています。
詳細は以下をご覧ください↓
https://docs.arbitrum.io/stylus/stylus-gentle-introduction