Arbitrumは以前からEthereumのL2として大きな存在感を放っています。Arbitrumはいくつかのプロダクトをリリースしており、代表的なものが「Arbitrum One」でこれがよく「Arbitrum」と呼ばれているメインのチェーンです。
その他にも「Arbitrum Nova」や「Arbitrum Orbit」などをリリースし、Polygonのような立ち回りをしているのが開発元の「Offchain Labs」でした。
そのOffchain Labsからまたもや新しいプロダクトがリリースされました。今日は新プロダクトの「Arbitrum Stylus」についてdocsをもとに解説しました。まだ追えてなかった方はぜひ最後まで見ていただけると嬉しいです。
はじめに
まずEthereum(EVM)系のブロックチェーンでスマートコントラクトを開発するためにはスマコン開発に特化した言語の「Solidity」や「Vyper」を使う必要がありました。それぞれの成り立ちや言語的特徴を軽くおさらいしておきましょう。
Solidityとはスマートコントラクト開発に特化したオブジェクト指向の高級言語です。C++から最も影響を受けているので「{ }」を使って記述し、コンパイル時に変数の型が定まる静的型付け言語です。いまいちばん主流なスマコン開発用言語ですね。
Vyperとはスマートコントラクト開発に特化したPythonicなプログラミング言語です。効率的なbytecode生成ができるので、同じ機能の実装でもSolidityよりもgas代が安いことからCurveなどで採用されています。Solidityよりも意図的に機能を削ぎ落とすことで、監査の効率化を図っている点が特徴です。
ちなみに他にも「Yul」や「Yul+」もありますがあまり利用されておらず、特にスマートコントラクトの開発のみであれば最初の2つのいずれかで問題ないです。
既にエンジニアであれば真新しい言語仕様ってこともないのでそんなにとっかかりにくいものでもないですが、一定学習コストが発生してしまうのがどうしてもネックでした。そして肝心のStylusはどんな言語を利用可能なのでしょうか。まずはその点を見てからその他の概要について解説をしていきます。
Stylusの概要
Arbitrum StylusとはRust、C、C++などのWASMにコンパイルできるプログラミング言語でスマートコントラクト開発ができ、EVMと完全に相互運用可能な互換性のあるWASM VMを搭載している開発者向けツール(実行環境)です。立ち位置としてはいままで発表してきたOne、Novaをアップグレードするもの的なイメージですね。具体的に変わったところは後ほど紹介します。
Rust、C、C++はスマートコントラクト開発専用の言語ではなく一般的な開発に使われている言語なので、エンジニアの言語的な学習コストを極限まで下げることができ監査の効率も上げる事ができているのが特徴です。
またSolidityからRustで書かれたcontractを呼び出すこともその逆も可能のになるみたい(ちょっと仕組みは書いてなかったのでわかりませんでした)。
次に今回のStylusの説明で一際目を惹いたのは「EVM+」の概念、今回の最大のアップデートでもあるArbitrumのVMにECMと同等のWASM VMを追加するというもの。これらの環境のことをOffchain LabsはEVMではなく「EVM+」としました。
このチェーンにおける第2のVMであるWASM VMは、EVMでいうところのbytecordではなくWASM(WebAssembly)を実行します。なのでRustなどを始めとするWASMへのコンパイルが可能な言語を包括的にスマートコントラクト開発に使用できるってイメージです。
またSolidityを使うよりもWASMのほうがめちゃくちゃ効率的な処理が可能で、まず目に見えるgas代が1桁安くなるとのことです。
なんで重要なのか
そもそもこのStylusがどのようないい影響をもたらすのかをArbitrumは説明しています。なぜStylusが重要なのかという視点でいくつかの項目を見ていきましょう。
エンジニアのオンボーディングコストの削減と参入人口の増加
スマートコントラクトの開発により多くのプログラミング言語をサポートすることは、エンジニアのオンボーディングなどにかかる一連のコスト削減と、スマートコントラクト開発を行える潜在的なエンジニア人口の増加に繋がります。
ちなみにRustの開発者は300万人で、C言語の開発者は1,200万人と推定されていますが、Solidityに関しては2万人なので企業は採用難からの給与高に繋がり、スタートアップのイノベーションにも大きな影響を及ぼしています。そこをRust、C系で開発できるようにすることで、スマートコントラクトを開発できるエンジニアが増加し、ブロックチェーン上での開発プレイヤーも増加するとの見立てです。
より柔軟に、より安全に
現行のEVMを使うよりも計算は10倍以上高速化、メモリ効率も100倍以上良くなったのでいままでより柔軟なスマートコントラクトの設計が可能になります。
またコストやスピードといった表面的な数字に部分だけではなく、WASMによってより安全に利用できるようになりました。よく聞く「Reentrancy」攻撃は提供されているRust SDKを使用することで意図的に上書きをしない限りはまず無効化されます。
技術面について聞いてみた
技術的な部分は自分だと知識不足な部分があるので、メンバーのSeiji Tamura氏に聞いてみました。いくつかの面白かった点をまとめてみました。
Special thanks to @chocochocopipip
対応する開発言語が増えて開発者増やすってのも優位性ではあるけど、WASMで実行できる環境をちゃんとスマコンに待ってこれていて、既存のEVMチェーンで実装できる点は結構すごい。加えてRust、C系以外の言語でもWASM変換にサポートできるかもな拡張的な部分も十分に持ち合わせている。
いわゆるモダンな言語であるGoに対応したら、Javascriptが人気なように幅広くエンジニアの誘致ってところにはかなり貢献できると思う。
EVM+ってところでSolidityの既存のVM(EVM)使うようならそれでもいいし、選択肢としてWASMがあるって共存は良さそう。
Arbitrum Orbitを使って構築されたL3はいつでもStylusをオプトイン(いまからでも既存のチェーンに組み込めそう)できるとのこと。また全てのArbitrumチェーンに対応することを目的に作られている点も良い。
まあとりあえず監査が終わってないのでメインネットでは使わないでとのこと、加えて機能の追加もあるみたいなので今後に期待したいです!
さいごに
ArbitrumはStylusの認知拡大や普及のために来月9月22日から3日間に渡って行われる「ETH Global NY」にて、20,000ドルの賞金を用意しています。ぜひハッカソンに参加する方は受賞を狙ってみてもいいのかも。
ちなみに明後日7日にはAMAが予定されているので、Stylusについて詳しく知りたい場合はこちらもぜひぜひ聞いてみてくださいな!
では明日のOhayoとニュースレターでお会いしましょう、まだメールアドレスの登録が終わっていない方はぜひ登録をお願いします。今朝のOhayoはこちら↓