見出し画像

iExec スマートコントラクトの相互運用性とモジュール性

分散化は、iExecプラットフォームの重要な要素です。 地方分権がなければ、人々が信頼できるオープンな(そして止められない)市場を作ることはできなかったでしょう。
ここでのブロックチェーンの重要性を過小評価することはできません。 これは、アクセス制御、コンセンサス、および当事者間のマイクロトランザクションに使用されます。しかし、これはスマートコントラクトなしでは実現できません。

iExecによるスマートコントラクト開発の現在の段階は?

4番目のバージョンであるiExec V4は、2019年12月13日に予定通りにリリースされました。現在、数か月以内のiExec V5のリリースを目指しています。 iExec V5のリリースは、iExecホワイトペーパーで最初に概説されたほぼすべての技術的機能を提供したことを意味しますが、開発の終わりを意味するものではありません。 iExec V5は、iExecの採用を最大化するために、既存のインフラストラクチャを最適化し、ビジネス連携に焦点を当てます。
バージョン4にはスマートコントラクトの更新が含まれていないことに気づいた方がいるでしょう。実際、プラットフォームはバージョン3のスマートコントラクトで引き続き動作しています。
では、なぜ変更を加えなかったのでしょうか。 最初に覚えておかなければならないのは、バージョン3がメジャーアップデートであり、わずか6か月でフロントエンドとバックエンドの両方で実装できる機能をはるかに超える多くの組み込み機能を使用して設計されたバージョンです。 ユーザーエクスペリエンスを向上させ、iExec V3のスマートコントラクトの上に構築できる多くの機能を今でも検討しています。

iExecバージョン5の主な焦点は新しいプロトコル機能ではありません(前述のように、バージョン3にはまだプラットフォームで利用されていない機能が組み込まれています)が、相互運用性(interoperability)とモジュール性(modularity)に重点が置かれます。

相互運用性の改善


私たちは相互運用性が採用に不可欠であると信じています。 これは、Defiエコシステムを想像すると明らかになります。 DAppはレゴブリックのように組み立てられ、シンプルでうまく設計されたコンポーネントから大きな強力なスタックを構築します。 web2インターフェイスとAPIを介してiExecを使用するクラウドユーザーとは異なり、iExecを介してオフチェーンの世界にアクセスしたいブロックチェーンのユーザーは、接続するための標準化されたインターフェースを必要とします。 イーサリアムコミュニティで構築されているものを観察することで多くのことを学ぶことができます。そのため、iExecは、自社製品に対する最新のイーサリアム開発の関連性の評価に多くの時間を費やしています。

以下は、EthereumエコシステムでのExecと他のアプリケーション間の相互作用を改善する進化的な変更のリストです。

ENSアドレス
ENS(Ethereum Name Service)は、Ethereumの革新的なサービスであり、iExecツールキットにさらに統合したいと考えています。 ENSアドレスの概要を読むには、ここをクリックしてください。 バージョン3で使用されるほとんどのスマートコントラクトは、ENSに既に登録されています。
ユーザーは、私たちのWebサイトの専用アプリを使用して「iExecユーザー名」を既に登録することもできます。

画像1

https://iex.ec → Products → ENS Name

iExecの場合、次のステップは、ENSにアプリ、データセット、およびワーカープールを登録するツールを提供することです。 この登録には2つのコンポーネントが含まれます。


順方向登録 人間が読める名前をイーサリアムアドレスに解決できるようにします。
逆登録 イーサリアムアドレスを人間が読める名前にルックアップできるようにします。

順方向登録にはスマートコントラクト内の特定のツールは必要ありませんが、逆方向登録には必要です。このため、バージョン5には、すべてのスマートコントラクトに組み込まれた逆登録メカニズムが同梱されます。これにより、blender.apps.iexec.ethなどの名前を対応するイーサリアムアドレスに解決できるだけでなく、逆の操作(イーサリアムアドレスからアプリのENSアドレスを見つけること)も実行できます。

ある時点で、16進アドレスは、マーケットプレイスとエクスプローラから消え、人間が読めるアドレスに置き換えられます。

NFTs

iExecはアセットのメタデータと所有権を扱っています。それらは、ファクトリーによって構築された専用のスマートコントラクトを通じてオンチェーンに表示されます。多くの理由から、所有権の譲渡はバージョン3ではサポートされていません。現在のアプリケーションとデータセットは、iExecだけが対応方法を知っているスマートコントラクトによって所有されています。 この状態は将来変わるでしょう。

次のバージョンでは、すべてのアセットはERC721 NFTになります。

これにより、アプリとデータセットのポートフォリオを管理し、etherscanとopenseaで表示できるようになります。 ほとんどのユーザーに対して透過的で、一部のユーザーには多くの新しい使用例が開かれます。 私たちが想定できる機能には、データセットの販売とレンタル、またはローンの担保としてのデータセットの使用が含まれます。

xxx DAIのローンをお願いします。 私が返済しなかたっら、個人データ(IDカード、社会保障番号など)にアクセスされます。

画像2

NFTコミュニティへの関与は、NFTNYCへの参加につながりました

ハイブリッドデザインのおかげで、アセットは独自のアドレスとメソッドを持つスマートコントラクトによって引き続き記述されます。 ただし、これらのアセットの所有権はスマートコントラクト自体によって制御されるのではなく、所有権ロジックを実装するERC721レジストリによって制御されます。これにより、トークンはENS解決可能なアドレスと識別子を持つことができます。

create2 アドレスの予測可能性

iExecは、Ethereumのメインネット、goerliテストネット、および独自のサイドチェーン「ベルクール」を含む複数のネットワークに存在します。1つのブロックチェーンから別のブロックチェーンへの切り替えは、特にスマートコントラクトのアドレスが1つのチェーンから別のチェーンに変更されるときに、困難になる可能性があります。 ありがたいことに、イスタンブールのネットワークアップグレードの一部として導入されたcreate2オペコードはそれを変えることができます。

create2を使用してアプリ、データセット、ワーカープールのアドレスをブロックチェーン全体で同じにすることに加えて、iExecのコアコントラクトのデプロイにも使用する予定です。
*これは、Devcon 5でのHadrienの講演の1つでした。

メタトランザクションのサポート

UXが最近大きな関心事となっており、多くのウォレットプロバイダーが様々なソリューションを提供するようになりました。 この分野における多くの開発の中で、メタトランザクションが最も目に見えるイノベーションの1つです。

バージョン3で導入され、ERC712署名スキームを使用して署名されたiExecのオーダーは、この傾向の一部です。しかし、以前はオーダーのキャンセルなど、一部の主要な操作にはメタトランザクションがサポートされていませんでした。一般化されたメタトランザクションメカニズムが標準になるのを待っている間(メタマスクの最新のハッカソンでの議論を参照)、メタトランザクションを介してアクセスできるいくつかの主要な機能に専用のエンドポイントを追加しました。

Oracleインターフェース

iExecの第三バージョンは、私たちが知っている限り、ERC1154の唯一の有効な実装です。ただし、ERC1154は広く採用されていません。なので、iExecはERC1154に代わる新しい標準の採用に向けて努力しているADO(Alliance of Decentralized Oracles)のメンバーになりました。この新しい規格はまだ初期段階にあります。

明日はどうなるか誰もわかりません。だからこそ準備をする必要があります。 現在、iExecはモジュール性に焦点を当てています。

モジュール性の改善?

バージョン5に含めたい主要な機能は、様々な機能を拡張することです。 ERC1154からERC2363への進化がその一例です。

それを実現するために ERC1538によって提案されたパターンを使うことにしました。

ERC1538は、さまざまな機能を実装するにはモジュールを使います。 ERC1538プロキシは、「シグネチャからモジュールへ」の表に従って、対応するモジュールに呼び出しをリダイレクトします。 これにより、新しい機能を追加したり、バグを修正したりできます。 また、1つのプロキシを介して多くの大きなモジュールにアクセスできるという利点があります。 つまり、コントラクトを分割する必要がなくなり、バージョン3の「hub」と「clerk」が再結合され、それに同じプロキシを介してアクセスできるようになります。
私たちは、ERC1538の独自の実装を使用しています。それはiExec solidityツールキットの一部として誰でも利用できます。

画像3

iExec solidityツールキットはnpmで「@ iexec / solidity」として入手できる。

...

最後まで読んでいただきまして、ありがとうございました!

Website Slack Telegram Twitter Youtube Github Technical Documentation

この記事が気に入ったらサポートをしてみませんか?