It’s Showtime! (日本語訳ver)

※こちらは以下の、CosmWasmのEthan Frey氏によるCosmWasm 1.0のリリースに関する紹介記事を日本語訳したものです。
https://medium.com/cosmwasm/its-showtime-3feb474fe183

CosmWasm 1.0が正式リリースされました。あなたが馴染みのブロックチェーンにも、もうすぐやってくるはずです!

Photo by bert brrr on Unsplash

2019年夏、ハッカソンの一プロジェクトとしてスタートしたCosmWasmは、大きなコミュニティに成長し、Defi Llamaによると、スマートコントラクト言語の中で(SolidityとSolanaに次いで)3番目に大きなTVLを保有するまでになりました。
一年以上にわたり、TerraSecret NetworkFetch.aiProvenanceなどのブロックチェーン上で既にCosmWasmは稼働していましたが、私たちCosmWsamの開発チームが考えるセキュリティ、パフォーマンス、ユーザビリティに対する要求は非常に高く、今日まで最終的な正式リリースには至っていませんでした。

The time is here.(しかし、時はやってきました)

v1.0.0-betaのリリースにより、私たちは全てのCosmosチェーンの未来を築くためのプラットフォームを確立します。またv1.0.0-beta以降の、すべての1.xバージョンへの後方互換性と、簡単なアップグレードを保証します
安定し洗練されたAPIと、大幅なパフォーマンスの向上により、DeFi、NFT、ガバナンス、AIなど、勢いのあるエコシステムがしっかりと育つための十分な基盤を提供できるようになりました。

ベータ版という表記はあまり気にしないでください。APIは安定しており、様々なテストネットやメインネットにてテストされています。現在は、10月下旬に行われる正式な監査の結果を待っているところです。監査結果が出て、報告された問題が修正されたら、他の変更を加えずに正式なv1.0.0タグを作成する予定となっています。

CosmWasm v1.0.0-betaにはフルスタックのコードが含まれており、wasmd v0.20.0, cw-plus v0.10.0, cosmjs v0.26.0, cosmos-sdk v0.42.10と互換性があります。wasmdのv1.0.0は間もなくリリースされます。

CosmWasmはWebAssembly(Wasm)のバイトコードを実行する仕様であり、現在のところ、Rustで開発しなければならないという強い制約が存在しています。それを回避するために、来年の2022年Q2までにGo言語のサポートも検討しています。
これによりコントラクトの開発において、安全でパフォーマンスの高いランタイムが提供され、大規模な開発者コミュニティを持つ確立されたGo言語を用いることで、成熟したツールやテストフレームワークを導入し簡単に利用することができるようになります。

APIは、開発を容易にするために設計されているだけでなく、大半のセキュリティの課題の防ぐように設計されています。
Solidityではシンプルなコントラクトを簡単に書くことができますが、セキュリティホールのない複雑なコントラクトを書くことは非常に困難です。一方、多少学ばなければならないことは増えますが、CosmWasmのアーキテクチャは、Solidityに存在するほとんどのクラスの攻撃を防ぐことができます。
さらに、Rustプログラミング言語は、コンパイル時に多くのコーディングの問題を防いでくれます。そのため、稼働はするけれど、悪用可能でもあるようなコントラクトを作成してしまうというような隙を与えません。

リエントランシーアタックのような悪意のある攻撃以外にも、ビジネスロジックの誤った実装がDeFiハッキングの大きな原因となっています。
私たちは、長年のコンピュータエンジニアリングの経験から、ユニットテスト、BDDテスト、ファズテスト、TDD等のテストが、これらの攻撃やエラーを避けるための最良の方法であると考え、CosmWasmでは、コントラクトを様々なレベルのテストを簡単に行えるようにしています。
例えば、模擬のインプットを用いたコントラクトの単体テストから、複雑な複数のコントラクトにわたるのやり取りをシミュレートしたRustのネイティブテスト、また実行中のブロックチェーン内のコントラクトの統合テストまで、様々なレベルの複雑さに対応しています。ローカルチェーンにてクロスチェーンコントラクトのコールをテストするために、TypeScriptでテストを書くこともできます。

つまり、CosmWasmでは、身近で強力かつ安全な言語を使用して、パフォーマンスが高く安全なスマートコントラクトを書くことができます。これらのスマートコントラクトは、多数の異なるブロックチェーンにデプロイすることができ、さらにIBCを介してブロックチェーン間で通信することもできます。このマルチチェーン・スマートコントラクトの世界の詳細については今後の記事で紹介していきます。

CosmWasmは、強力な標準ライブラリ豊富なコントラクトの例、そしてパフォーマンスとセキュリティに優れたVMを提供しますが、それ自体はブロックチェーンではありません。Cosmos SDKベースのあらゆるブロックチェーンに組み込むことができるモジュールです。

私たちは、スマートコントラクト機能を(dPoS、ガバナンス、IBCを既に持っている)基本的なCosmos-SDKに追加し、すぐに実行できるサンプルブロックチェーンwasmdを提供しています。このスマートコントラクトの機能はすべてx/wasmモジュールに含まれており、他のCosmos SDKアプリに簡単に取り入れることができます。このモジュールは非常に柔軟で、フォークせずに取り入れられるよう設計されています。(なお、現在のwasmdはv0.20.0で、CosmWasm v1.0.0-betaを用いています。wasmdのv1.0.0-betaも、主に内部APIのクリーンアップを行った後、すぐにリリースされる予定です。)

これらスマートコントラクトのモジュールは、単に単独でチェーンに追加するだけでなく、実際にネイティブモジュールと深く統合することができます。デフォルトでは、コントラクトはbank(nativeトークンの残高を管理)、stake、distribution(デリゲートを管理)、および限定的なgovernance(投票)モジュール達とやりとりすることができます。
ほとんどのブロックチェーンでは、カスタムメッセージとクエリが追加することができ、そのチェーン上に存在するコントラクトが、そのチェーン上で動作する任意の他のモジュールを利用できるようになっています。

CosmosのネイティブSDKモジュールかスマートコントラクトかの選択はありません。それぞれのタスクに適した方法を選択し、利用できるようになります。

複数のCosmWasmブロックチェーンにまたがるエコシステム開発を拡大・加速するために、InterWasm DAOの設立を支援しました。CosmWasmベースのブロックチェーンすべてを支援する、公共財のためにグラントを発行していきます。
これにより、確立されたチームの開発が促進され、CosmWasmの開発に熟練した開発者を増やすことがより容易になっていきます。

多くのブロックチェーンがCosmWasm v1.0をローンチすることを計画しています。すでにメインネットで(プレリリース版を使って)稼働しているものに加え、テストネットでCosmWasmをすでに使っており、安定したv1.0のリリースを待っているチェーンがいくつもあります。実際、CosmWasmの開発者であるConfioチームは、Cosmos SDKにスマートコントラクトをより幅広く統合した独自のブロックチェーン、「Tgrade」を計画しています。

私にとって、CosmWasmが複数のブロックチェーン上で稼働することの最もエキサイティングな部分は、コントラクトが多くの異なるチェーンに展開できるということだけではなく、むしろInter Blockchain Communication(IBC)の深い統合です。これはコントラクトが、安価かつトラストレスなリレイヤーだけに依存すれば、他のチェーン上のコントラクトと直接、簡単に通信できることを意味しています。これは、トークンの送信だけでなく、DeFiやNFTを立ち上げるのと同じようなスピードで、チェーン間プロトコルを迅速に開発し、相互に連携させることができるということです。

CosmWasm mediumに購読していただくと、”あなたが次行うプロジェクトにCosmWasmを利用するメリット”を解説する、「CTOのためのCosmWasm」シリーズ配信される予定となっています。また、既にCosmWasmをあなたのチェーンに取り入れたいと思われている方は、GitHubで私たちのコードをチェックし、ドキュメントを読み、私たちのDiscordサーバーに参加してください。サポート致します。

翻訳者感想
Cosmosというブロックチェーンのインターオペラビリティが実現するネットワークの上でこそ動くスマートコントラクトや、それらの連携をこれから見ることができると思うとワクワクしています。11月にはHackAtom VIというComsos公式のハッカソンも開催される予定となっていますので、CosmWasmをとりあえず触って何か作りたいという方はぜひ参加をお勧めします。
みんな一緒にCosmos、CosmWasmの世界を楽しんでいきましょう!