ink!とバージョン4.0の新機能について
この記事は次の記事を日本語訳し、注釈を加えたものです。
ぜひ多くの方に読んでいただきたい記事だと思ったので、原文を読む補助になれれば幸いです。
eDSLって何?
まず、背景を少し説明します: EDSLとは、Embedded Domain-Specific Languagesの略で、ホストプログラミング言語の中に組み込まれた小さなプログラミング言語です。EDSLは、スマートコントラクトの開発など、特定の領域や問題に対して使用されるように設計されており、その領域に合わせた構文やセマンティクスを持つため、コードの形でソリューションを読み、表現することが容易になります。
eDSLを使用することで、より簡潔で表現力豊かなコードを実現できるほか、生産性の向上やエラーの減少につながります。また、EDSLはホスト言語よりも高いレベルの抽象化を提供できるため、コードの推論や最適化を容易にすることができます。
ブロックチェーンのeDSLの現状
スマートコントラクトといえば、SolidityとEthereum Virtual Machineが思い浮かびますが、これは大規模なツール群、確立された開発者コミュニティ、実績ある歴史があるからです。しかし、その理由を理解することが重要であり、ink!を使用してWasmスマートコントラクトを構築することで、開発者がEVMを越えてスケールし、Web3の採用を促進することができるのです。
SolidityとEthereum仮想マシン環境が成熟し、採用が ※クリティカルマス に達したとき、ユーザーと開発者は、スケーリングとUXの問題の理論的可能性を本格的な現実に変えるいくつかの詰所を発見し、その後、EVMリソース使用のための一過性のネットワーク混雑と想像を絶するガスコストを引き起こし、EthereumブロックチェーンとEVM全般の成長を阻害しています。
WebAssemblyとink!の必要性
Parity社が開発したeDSLであるink!は、開発者が高性能なWebAssemblyにコンパイルされたスマートコントラクトを構築できるようにし、EVMの制限を越えてスマートコントラクトを拡張するように設計されています。
WebAssembly(Wasm)は、高速で効率的、かつ安全に設計された低レベルの仮想マシンです。コードを実行するためのポータブルで ※クロスプラットフォーム な環境を提供し、すべての主要なウェブブラウザでサポートされています。Wasmは ※サンドボックス化された実行環境 を提供し、スマートコントラクトがアクセスできないはずのシステムリソースにアクセスするのを防ぐことで、セキュリティの向上に貢献しています。
Ink!は、スマートコントラクトのコードをWasmバイトコードにコンパイルすることで、WebAssemblyの利点を生かすように設計されており、Ink!で書かれたスマートコントラクトは、安全な環境で迅速かつ効率的に実行することができます。
Ink!の特徴
Ink!は、スマートコントラクトのコードにおけるエラーのリスクを低減するのに役立つ強力な型サポートなど、スマートコントラクト開発に適した多くの機能を備えています:
- 慣用的なRustコード
- Ink!マクロ&アトリビュート - #[ink::contract]
- Traitのサポート
- アップグレーダブルコントラクト - ※Delegate Call
- ※Chain Extensions (コントラクト内のSubstrateパレットと相互作用します。)
- オフチェーンテスト - #[ink(test)]
これらの機能により、ink!はあらゆるプラットフォームやバックグラウンドのスマートコントラクト開発者にとって魅力的なeDSLとなり、たとえ従来のWeb2.0空間から来たとしても、未来のスマートコントラクトに望ましい選択肢となります。
ink!の機能についての詳細や、いくつかのハンズオン例を試すには、Wasmスマートコントラクトガイドをご覧ください。
ink!4.0 の新機能
ink!の誕生以来、ロードマップには多くの変更と追加がありました。ここでは、このリリースで私たちが楽しみにしているすべてのアップデートを紹介します。
新機能のリスト:
-
最も重要なのは、ink!4.0はProduction-Readyです。これは、集中的な監査が完了し、コードの整合性を確保するためのコンパイルチェックが行われたことを意味します。
-
コントラクトサイズ(※ストレージAPI がどのように機能するか)を減らすという私たちの努力から、残っているすべての変更点を実装しています。
-
現在の欠点(コンパイル環境など)を考慮し、新しいメタデータ形式を導入する。
-
ink!をRustの慣用的な方法に近づける(※コンストラクターからのerrリターンに対するトランザクションを元に戻す)。
-
クロスコントラクト呼び出しのテストと ※カスタムランタイム に対するテストのためのツールの作成。
-
すべてのInk!クレートを1つのInk!入口クレートにバンドルすることで、開発者の体験を向上させる。
-
異なるコントラクトが同じイベントタイプを参照および使用できるようにする。
ink!をプロダクションレディにするのに時間がかかりましたが、コードにさまざまな修正を加え、最終的に実世界での採用に必要な監査を行うことで、ink!4.0は、今後数カ月から数年のうちに、より広く普及することが予想されます!
ink!の安全性は?
SRLabsは、さまざまなソフトウェアアプリケーションやシステムのセキュリティ脆弱性の特定と修正に焦点を当てた研究組織です。彼らは、ブロックチェーン技術の分野で広範な研究を行っています。
Substrateは、開発者が独自のブロックチェーンアプリケーションを簡単に作成できるブロックチェーン開発フレームワークで、2018年にSRLabsが重大な脆弱性を発見したParity Ethereum Clientを開発したParity社によって開発されました。
それ以来、SRLabsはParity Ethereum Client、Substrate、ink!を含むすべてのParity製品に影響を及ぼすセキュリティ脆弱性の調査を続けています!
SRLabsがink!の監査を実施しているため、開発者は各メジャーリリースが本番に対応したものであることを安心することができます。
次に何が起こるのか、何を期待すればいいのか。
Shidenで始まり、Astarで終わります。
ink!は、Astarの ※カナリアチェーン として、まずShidenに展開され、WasmスマートコントラクトがSubstrate上でどのように動作するかを知ることができます。テストが終われば、Astar Networkへの展開が予定されています。
最近のコミュニティの提案とバウンティで、Openzeppelinのインクに関する提案に前進が見られました!Wasmスマートコントラクトの監査。(https://polkadot.polkassembly.io/post/1401#fd254236-d9f6-474b-8935-08738d41ca82)
先日、Web3 Foundation、BrushFam、Aleph Zero、Phala Network、Parityのチーム連合によるBounty 19に関するレファレンダ101が可決されました。このバウンティは、開発者がPolkadot上でWebAssemblyスマートコントラクト開発ツールを採用することを奨励、促進、支援するものです。(https://polkadot.polkassembly.io/referendum/101)
160万ドルのバウンティは、ink!の未来を形成し、教育するのに役立ちます!ink!4.0では時間が解決してくれるでしょう!4.0がどのような結末を迎えるかは時間が解決してくれますが、私たちはPolkadotでのWasmスマートコントラクト開発の未来にとても楽観的です!
Astar Networkについて
Astar Networkは、※Multichainスマートコントラクトプラットフォーム であり、Polkadotの主要なパラチェーンです。EVMとWebAssembly(Wasm)のデュアル独立環境をサポートし、独自のクロス仮想マシン(XVM)を使用して、これらの間の相互運用性もサポートしています。この技術により、開発者はEVMとWasmのスマートコントラクト機能をシームレスに融合させることができ、また、非ブロックチェーン開発者や彼らが既に知っているツールや言語にも親しみやすくなっています。
Astarの革新的なBuild2Earnシステムは、ネットワークを保護すると同時に、参加者と構築者に報酬を与えるように設計されており、開発者はdAppの構築と維持、およびコミュニティの成長によってインセンティブを獲得することができます。
Discussion