見出し画像

DFINITY < > Ethereum: how to achieve interoperability of smart contracts?

前回のICP Leagueの記事("Why is it the next-generation blockchain, the 8 core advantages of DFINITY!")では、DFINITYのコア暗号技術であるChainKeyについて触れ、その特徴を説明する中で、DFINITYがChainKey署名を介してEthereumなどの他のブロックチェーンを呼び出せるようになると予測しました。

また、DFINITYの創始者であるドミニク氏の最近のツイートや記事では、DFINITYからEthereumへの仲介者のいない相互運用可能なコントラクトの設計について詳しく述べられており、両者を統合することによる大きな可能性を示しています。

□まとめ
1. ChainKey技術により、DFINITYブロックチェーンは48KBのサイズで単一の公開鍵を持つことができる。

2. DFINITYのスマートコントラクトは、ECDSAに基づいてBitcoinやEthereumタイプのトランザクションに署名して発行することができます。

3. Ethereumスマートコントラクトに格納されている48KBの単一公開鍵は、チェーンが送信したメッセージを検証し、取引やステータスの有効性を保証することができます。

4. DFINITYスマートコントラクト(実行メモリ4GB)に、ブロックを検証してコールの戻り値を取得するEthereumライトノードを実装。

5. DFINITYは、ミドルウェア、クロスチェーンブリッジ、ハブ、プロファイリングマシンを必要とせず、ポイントツーポイントのアプローチでEthereumnetコントラクトと直接相互運用します。

6. DFINITYを使用してEthereum用のDeFiのようなアプリケーションを拡張することができます。例えば、DFINITYに特定のEthereumゲームのデータ操作の命令を実行させ、Ethereumを介して直接決済することができます。

7. DFINITYがEthereum向けに無制限にスケーリングし、ミドルウェア、フロントエンドリソース、ビジネスロジックなどのフルスタックを分散させることで、両者のシームレスな統合は大きなビジネスの可能性を打ち出します。

□チェーンキー
ChainKeyは、インターネット・コンピューティングの中核をなす技術であり、上記コントラクトの相互運用可能なマジックを可能にする原理です。
Ethereumでは、PoWの仕組みを使ってブロックを競い合う際に、ノードが自分の秘密鍵でブロックチェーンに署名してブロードキャストし、ブロックを検証しに行く際にはノードの公開鍵を取得する必要があります。ブロックが発行されるたびにノードが異なる可能性があるため、多くの署名情報を保持し、ブロックを同期させる必要があります。つまり、イーサリアムの取引を検証したいユーザーは、400GBのブロックを同期させる必要があるのです。一般のユーザーがこれにアクセスできるのは、AWS上で動作するミドルウェア「Infura」のフルノードのみです。
DFINITYでは、VRF+BLS+非インタラクティブDKGをベースに、ブロックチェーンは単一の不変的な公開鍵のみを持つことが保証されており、すべてのブロック署名はこの48KBの単一公開鍵を使って検証することができ、インタラクションとブロックの信頼性を保証することができます。

画像1

DFINITYチェーンは、単一の公開鍵を持っていますが、対応する単一の秘密鍵は持っていません。チェーンを構成するノードは、ブロックへの署名に使用する秘密鍵の共有を保持しており、十分な数の秘密鍵の共有を集めて初めて、単一の公開鍵で検証できる完全な署名を集約することができます。このようにして、DFINITYは一貫したコンセンサスを実現しています。
非対話型の分散鍵配布(DKG)では、秘密鍵のシェアをノードに配布しますが、非対話型であるため、基本的に帯域消費が少なく、ノードは自由にネットワークに参加したり離脱したりできるため、全体的な分散性が確保されています。

そのため、他のブロックチェーン上のスマートコントラクトであっても、この公開鍵が保存されていれば、どんなデバイスでもDFINITYチェーン自体のメッセージやイベント、状態を検証することができます。
ChainKey技術は、コントラクトの相互運用性の基盤となっています。

□DFINITYを使ったEthereumコントラクトの呼び出し
ChainKeyは、BitcoinとEthereumの両方で使用されている暗号プリミティブであるECDSAをサポートしているため、対応する秘密鍵を生成しなくても、ChainKeyプロキシを介してDFINITY上のスマートコントラクトに署名することができます(BLS評価済み署名技術を使用)。チェーンへのChainKeyシングルでの署名後、BitcoinとEthereumの両方のフォーマットを満たすトランザクションがP2Pで送信されます。最終的にはEthereumのスマートコントラクトにコールされます。

また、DFINITYのスマートコントラクトはアクターの非同期メッセージ処理モデルを使用しているため、Ethereumの呼び出しの戻りを待つ設定が可能です。

画像2

(0) DFINITY上にプロキシ署名されたコントラクトを展開し、ChainKeyのモック署名されたコードを実行します。
(1) DFINITY上のコントラクトがプロキシ署名されたコントラクトを呼び出します。

画像3

(2) DFINITY上のコントラクトは、Ethereumを呼び出して、コントラクトアドレス、呼び出し方法、パラメータを署名コントラクトに送る必要があります。

画像4

(3) トランザクションは、チェーンの単一の公開鍵を使用して署名され、Ethereumフォーマットのトランザクションが生成され、P2P経由でEthereumネットワーク上にブロードキャストされ、トランザクションの確認を待ちます。

画像5

(4) Ethereum呼び出しのリターンを得るには2つのオプションがあります。a) 初期段階では、Ethereum呼び出しの結果をDFINITYに返すために特別にEthereum上にクエリコントラクトを展開することができますが、これにはまだコストがかかります。 b) 後に、Ethereumの状態を同期するライトノードをDFINITYのコンテナ内に直接作成し、結果を直接検証して返すことができます。

画像6

しかし、Ethereumコールのリターンを得るにはまだ問題があります。Ethereum上でクエリコントラクトをデプロイすると、リターンのたびに追加のコントラクトコールを送信する必要があるため、コストがかかります。また、DFINITY上で軽い検証ノードを作成すると、現在のコンテナ実行メモリの4GB制限に制約され、Ethereumの状態を多くのコンテナに別々に保存しなければならない可能性があります。そのため、より効率的で革新的なソリューションを実装する開発者が必要になるかもしれません。

□直接的なインターオペラビリティとは?
DFINITYの基礎となる暗号技術の革新は、ユーザーがミドルウェアを必要とせずにエンド・ツー・エンドのブロックチェーンレベルのセキュリティを享受できるという、経験上のブレイクスルーをもたらします。これは、イーサリアムが直接にインターオペラブルなスケーリングを達成するのに役立つ機会でもあります。
このクロスチェーンコントラクト間の相互運用性が広がれば、chainlink、TheGraph、Infuraなどのミドルウェアは、DFINITY上で置き換えられるか、直接デプロイされ、無制限のスケーラビリティと分散化のメリットを得ることができます。DFINITY上でデータベース・コンテナを作成してミドルウェアを置き換えることは、良い方向性であり、我々の重要な分野の1つです。この観点から見ると、DFINITYは、汎用的な計算能力を持つミドルウェアとフロントエンドサービスのように見えます。NFTの映像や画像などをEthereum上で迅速に検証し、コンピューティングパワーで拡張できるNFT専用プラットフォームなど、両者の特徴を組み合わせた商業的な試みは、より輝きを増すでしょう。
同時にDFINITYは、Ethereumのスケールアップにも役立ち、チェーン上の大量のデータを迅速かつコスト効率よく維持・処理することができます。そして、このスケーリング能力は一度だけで、非同期メッセージ処理マシンとして、DFINITYは無制限のサブネットでスケーリングする能力を持っているからです。Ethereumでは1GBのスマートコントラクトに数千万円かかるのに対し、DFINITYでは年間5ドルしかかかりません。
コントラクトレベルでの相互運用性、DFINITY チェーン自体の高いセキュリティ、AWS などのクラウドサービスへの依存、わずか数ノードで動作するクロスチェーンブリッジ、レイヤ 2 ステートチェーンなどがないため、従来のレイヤ 2 スケーリングソリューションの流動性、集中化、セキュリティの問題も回避できます。
DFINITYをEthereum上の運用決済レイヤーのコマンドレイヤーとして使用する可能性は多くあります。同時に、DFINITYをベースにしたIDシステムとリバース・ガス・モデルにより、利用の敷居が大きく下がり、ユーザーはイーサリアムのコントラクトを利用するためにガス代を支払う必要すらなくなります。
DFINITY上にサードパーティのフロントエンドをCompound、AAVE、DYDXといった形で集約して実装し、ユーザーが使用するガスを払わないというビジネスが考えられます。サードパーティ製フロントエンドの製作者は、ガスの代金をEthereumで支払うと同時に、戦略を推奨して一定の収益を得ることができます。
例えば、オーダーブックの集約やマーケットメイキングなど、完全な中央集権型取引のロジックをDFINITYに実装し、DFINITYブロックチェーンが価値や資産の流れを改ざんされない形で記録し、最終的にイーサリアムで決済することで、分散型セキュリティ、ライセンスレス、公的所有権を確保するとともに、中央集権型の伝統的な取引所の経験を生かすことができます。
ETH FlashBotアービトラージボットをDFINITY上でホスティングすることも可能で、その際には集中管理されたサーバーを導入し、秘密鍵を集中管理されたサーバー上でホストする必要はありません。コンテナは状態を共有しないため、ストラテジーを「プライベート」に設定することができ、ストラテジーを共有することで利益を得ることもできます(DFINITYエコプロジェクトENSO)。

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