見出し画像

ICP Chain Fusionのユースケース|Chain-key・EVM RPC canisterについて

この記事は「Chain Fusion Technology」を日本語訳したものです。

他のチェーンでの ICPスマートコントラクトの実行やBitcoinおよび Ethereum を使用した資産の保管など、Chain Fusionテクノロジーのユースケースを探ります。これらのアプリケーションは、Ethereum上のタスクの自動化から、Bitcoin/Ethereum を管理する ICP スマート コントラクトの作成まで多岐にわたります。開発者はckBTCとckETH を使用して、高コストと遅延を回避し、DeFi サービスを効率的に構築することもできます。

ウェブベースのマルチチェーンウォレット

スマートフォンやラップトップに MetaMask などの従来のウォレットをホストする場合の主な問題は、特に発展途上国で恐喝による盗難のリスクがあることです。たとえば、強盗は被害者を壁に押し付け、暴力で脅して携帯電話を開けるように強要する可能性があります。被害者が従来のウォレットに暗号資産を保管している場合、それが発見され、暗号資産を失ってしまいます。

チェーンキーを使用すると、暗号資産を管理するキャニスタースマートコントラクトによって裏付けられた純粋なWeb ベースのウォレットを作成できます。このようなウォレットの認証には、必要に応じてインターネット ID、Google SSO、またはユーザー名とパスワードを使用できます。これらは、シークレット モードのWebブラウザー タブを使用して開くことができ、閉じたときにウォレットの痕跡は残りません。

OISYウォレットは良い例です。必要に応じて、ICPのアセット (チェーン キー ツインを含む)、ネイティブビットコイン、ネイティブビットコインBRC20 トークン、ネイティブEthereumをカストディできます。自己管理された Ethereumのアセットは、サポートされるWalletConnect機能を使用して Ethereum DeFiで使用できます。ユーザーは利便性と優れたエクスペリエンス、そして優れたセキュリティを得ることができます。

ICP の Ethereum 上の Cron ジョブ

Ethereum スマート コントラクトを使用して DeFi やその他のサービスをホストする際の主な課題は、通常のジョブを安全に開始することです。多くの場合、スマート コントラクト ジョブは、Amazon Web Services などの安全でないクラウドで実行される外部スクリプトを使用して開始されますが、呼び出しを行うために保持される秘密鍵は、ホット ウォレットで使用される秘密鍵と同じように脆弱です。

Internet Computer は解決策を提供します。キャニスター スマート コントラクトには、将来必要な期間、安全な自動実行をスケジュールできる API があります。EVM RPC を使用すると、キャニスターを使用して、秘密鍵が脆弱になることなく、Ethereum スマート コントラクトへの時間ベースの呼び出しを開始することもできます。

EVM RPC を使用して ICP から Ethereum 上のスマート コントラクトを呼び出す

Internet Computerを使用すると、フルスタックの分散化モデルで、ほぼすべてのオンラインサービスを完全にオンチェーンで構築できます。このモデルは、SNS DAOの管理下にサービスを配置してメンテナンスを自動化することで拡張できます。これは、キャニスタースマートコントラクトがそれぞれ最大400GiBのメモリを保持し、非常に効率的に並列実行できるためです。

さらに、ICPのリバースガス モデル (キャニスタースマート コントラクトは、課金された「サイクル」を使用して自身の実行に対して支払います) により、HTTP リクエストを処理することで、ユーザーにインタラクティブなWeb ベースのユーザーエクスペリエンスを直接提供できます。現在、これらはワールドコンピュータパラダイムでEthereumがホストするDeFi やその他の機能とトラストレスで組み合わせることもできます。

EVM RPCにより、Internet Computer キャニスター スマートコントラクトは、Ethereum JSON-RPCプロトコルをサポートする任意のブロックチェーン上のスマートコントラクトと対話できるようになります。Internet Computer上で UX と大量のデータストレージおよび処理を維持しながら、金融レールが必要な場所では Ethereum DeFi に依存する、高度で完全に分散化された Web3 サービスを作成できます。この統合を容易にするために、EVM RPC キャニスターは、ICP キャニスター スマート コントラクトと Ethereum スマート コントラクト間の統合を簡単に構築できるサービスです。

エッジルーティングによる無制限のマルチチェーン

これまでのところ、Internet Computerネットワークは、ビットコインおよびイーサリアム ネットワークと直接統合されており、これらのネットワークでホストされる資産のツインを生成することができます。ただし、より広範なマルチチェーン機能は簡単に生成できます。

Internet Computerにより、ホストされたスマートコントラクトは他のブロックチェーン上にアカウントを作成し、そのネットワーク上で実行できるトランザクションに署名できるようになります。トランザクション ルーティングは、Web3 サービスのUX によって実行できます。

Web3サービスの UX は、トランザクションに対して非常に高速で完全に分散化されたエッジルーティングを提供できます。たとえば、キャニスタースマートコントラクトが別のブロックチェーンで実行するためのトランザクションを作成すると、UX (Web ブラウザーで実行されている JavaScript など) はスマート コントラクトを呼び出して署名済みのトランザクションを取得し、それを宛先ネットワークのノードのオンライン API にプッシュして結果をポーリングできます。

Bitcoin twin:ckBTC

開発者は ICPを使用して、スマートコントラクト機能をBitcoinに導入します。この新しいソリューションは、Bitcoin のコストと待機時間という新たな課題をもたらします。ICP スマートコントラクトがどれだけ高速であっても、Bitcoin の移動には Bitcoin ネットワークのコストと待機時間が発生します。

これに対処するために、開発者は ckBTC (「チェーン キー ビットコイン」) も使用します。これは ICP でホストされる信頼できない「ビットコイン ツイン」であり、ICP スマート コントラクトでビットコインを安価かつ迅速に移動するために使用できます。これが可能なのは、ICP ノードがビットコイン ノードと通信してビットコイン ネットワークのブロックをダウンロードし、未使用トランザクション出力 (UTXO) セットを維持するためです。CkBTC はキャニスター スマート コントラクト ロジックによって直接処理され、ほぼゼロのコストで 1 秒のファイナリティで転送できます。

キャニスタースマートコントラクトは、ビットコインを直接組み込んだ Web ベースのウォレットやその他の Web3 サービスを提供するために使用できます。たとえば、OpenChat では、チェーン キー ビットコインをインスタント チャット メッセージ経由で転送できます。キャニスターは、新世代の「ビットコイン DeFi」サービスの構築にも使用できます。

ckBTC を作成するには、ユーザーは自分のウォレットが提供する ckBTC アドレスにビットコインを転送します (例: NNS で提供される機能を参照)。その後、ckBTC ツインはわずかな手数料でほぼ瞬時に他の ckBTC アドレスに送信したり、標準のビットコイン アドレスに直接送信してビットコイン ツインを元の形式に戻すことができます。

OrdinalsとBRC20

Bitcoin Ordinals の作成にはコストがかかり、時間がかかります。ICP はここでも役立ちます。ICP キャニスタースマートコントラクトは Bitcoin API を使用してビットコインを処理できます。また、Bitcoinブロックチェーン上で NFTを作成および転送するために使用されるOrdinalsも処理できます。Internet Compute上の完全に分散化された Web3 サービスは、Bioniqなどの Ordinals のマーケットプレイスを作成する機能を活用しています。

BitcoinとOrdinalsの処理には、舞台裏で ECDSA 暗号化を処理する ICP プロトコルが関与します。ただし、Ordinalsの刻印と BRC20アセット (ビットコインに便乗するミーム コインなど) の作成と処理には Schnorr 暗号化が関与し、ICP は現在これもサポートしています。

ICP は SchnorrをサポートしているためOISYなどのWebベースのスマートコントラクトウォレットは、BRC20、Ethereum、ネイティブ ICP アセットを自己ホストできます。

さらなる利点は、キャニスター スマート コントラクトが Cardano や Solana などのチェーン上で実行するためのトランザクションに署名できることです。

Ethereum asset twins: ckETH と ckERC20

開発者は、ICP を使用して Ethereum を保管します。この新しいソリューションは、Ethereum のコストと待ち時間という新しい開発者エクスペリエンスの課題をもたらします。これに対処するために、ICP コミュニティは ckEth (「チェーン キー Ethereum」) を使用します。これは、ICP でホストされる信頼できない「Ethereum の双子」で、ckETH と呼ばれる「イーサ ツイン」や、ckUSDC (ステーブルコイン)、 ckUSDT、ckUNISWAP、ck1INCH、ckAAVE などの ERC20 トークンの「双子」などがあります。これらは、ICP でホストされるスマート コントラクトによって直接処理できます。

Ethereum 資産の「チェーン キー」バージョンは、ICP スマート コントラクトによって作成された台帳に保存され、1 秒で完了し、ほぼゼロのコストで転送できます。さらに、Web ベースのウォレットを提供するキャニスターや、SocialFi や GameFi など ICP でホストされているその他の Web3 サービスによって直接処理できます。

チェーン キーの Ethereum アセット ツインを作成するには、ユーザーはそれをウォレットで指定されたアドレスに転送します。その後、標準的なファイナライズ遅延とトランザクション手数料を経た後、ほぼ瞬時にわずかなコストで他のチェーン キー アドレスに送信するか、標準の Ethereum アドレスに直接送信します (ツインは元の形式に戻ります)。

イーサリアム上のicpERC20トークン

Ethereum は世界有数の DeFi レールを提供しています。Uniswap などの分散型取引所は、ERC20 トークンの取引に莫大な流動性を提供しています。投資機関の間で人気のある Fireblocks などの人気の保管サービスは、あらゆる ERC20 トークンを標準で保管します。

ICP プロトコルにより、標準台帳にホストされているネイティブ ICP トークンを icpERC20 の形式で Ethereum に公開できるようになります。ツインは標準の ERC20 トークンであり、ERC20 トークンを処理する任意のサービスで処理できます。

インターネット コンピュータがホストするスマート コントラクトによって作成されたサービスは、ICP トークンの icpERC20 ツインを作成する機能 (多くの場合、ウォレットによって中継されます) を提供します。このサービスでは、icpERC20 ツインをインターネット コンピュータに返すこともでき、そこではネイティブ形式が保持されます。

icpERC20 トークンが作成されると、Ethereum レイヤー 2 ネットワークで処理され、従来のブリッジを使用して他のチェーン間で移動できるようになります。

Ordinals、tSchnorr を使用した ICP からの BRC20 のinscriptions

インターネット コンピュータ上のキャニスター スマート コントラクトは、ビットコイン API を使用してビットコインを処理できるほか、ビットコイン ブロックチェーン上で NFT を作成および転送するために使用される Ordinals も処理できます。インターネット コンピュータ上の完全に分散化された Web3 サービスは、この機能を利用して Ordinals のマーケットプレイスを作成しています (例: Bioniq)

ビットコインとオーディナルの処理には、舞台裏で ECDSA 暗号化を処理する ICP プロトコルが関与します。ただし、Ordinalsの刻印と BRC20 資産 (ビットコインに便乗するミーム コインなど) の作成と処理には Schnorr 暗号化が関与し、ICP は現在これもサポートしています。

ICP は Schnorr をサポートしているため、OISY などの Web ベースのスマート コントラクト ウォレットは、BRC20、Ethereum、ネイティブ ICP アセットを自己ホストできます。

さらなる利点は、キャニスター スマート コントラクトが Cardano や Solana などのチェーン上で実行するためのトランザクションに署名できることです。

Chain Fusionについて

ICP は、信頼できる仲介者に頼ることなく、ビットコイン、イーサリアム、その他の EVM (近々 Solana も) を含むすべての主要なブロックチェーンとの直接的な相互運用性を実現します。他のブロックチェーンと比較してユニークなのは、ICP スマート コントラクトは異なるチェーンから読み取り、異なるチェーンに書き込みができるため、開発者は異なるチェーンにまたがるスマート コントラクトを作成できる点です。これが Chain Fusion です。

一般的な Web3 パターンは、異なるブロックチェーンから dapp を構築することです。たとえば、資産の保存には Ethereum または Solana、フロントエンドの提供には IPFS または Arweave、スマート コントラクトの計算の大部分には Arbitrum または Optimism を使用します。ただし、このような dapp の構築は非常に面倒です。開発者は、さまざまなプログラミング モデル、トランザクション コスト、決済時間に適応する必要があります。チェーン フュージョンにより、マルチチェーン dapp の開発が大幅に簡素化され、単一の環境で構築するのと同じくらい簡単で直感的になります。

サンプルコード

Chain Fusion がいかに強力であるかを示すために、1 つのスマートコントラクトで 3 つのチェーンが相互作用する簡単な例を示します。これは、ビットコインを保管し、 Ethereum DeFi スマートコントラクトで観察されたイベントに基づいてプログラムでビットコインの送信をトリガーできる 単一のICPスマートコントラクトです。

このコード スニペットはRustと Motoko プログラミング言語 の両方で記述されていますが、TypeScript、Python、その他の言語でも記述できます。

オンラインエディタでコントラクトを展開する

// This is a test canister without API keys, for production use 7hfb6-caaaa-aaaar-qadga-cai
import evm "ic:a6d44-nyaaa-aaaap-abp7q-cai";
import ic "ic:aaaaa-aa";
import Cycles "mo:base/ExperimentalCycles";
import Timer "mo:base/Timer";

//Actor is the computational unit of ICP smart contract
actor {
  let EVM_FEE = 1_000_000_000;
  let BITCOIN_FEE = 1_000_000_000;

  //Function checks the logs of an ETH smart contract for an event
  //If a particular event is found, it sends bitcoin to an address
  func check_evm_log() : async () {
    Cycles.add<system>(EVM_FEE);
    let log = await evm.eth_getLogs(
      #EthMainnet(null),
      null,
      {
        // dummy address. Replace with the right one
        addresses = ["address"];
        fromBlock = ? #Finalized;
        toBlock = ? #Finalized;
        //dummy topics to look at. Replace with topics of interest
        topics = ?[["topic1", "topic2"]];
      },
    );
    switch log {
      case (#Consistent(#Ok(_))) {
        // if we get a consistent log, send bitcoin
        await send_bitcoin();
      };
      case _ {};
    };
  };

  // Function that sends bitcoin. This is used by check_evm_log()
  func send_bitcoin() : async () {
    Cycles.add<system>(BITCOIN_FEE);
    await ic.bitcoin_send_transaction({
      transaction = "eef";
      network = #testnet;
    });
  };

  // Check for evm logs every 2 seconds
  let _ = Timer.setTimer<system>(#seconds 2, check_evm_log);
};

                              

どのように課題が解決されるか

今日の開発者は、他のブロックチェーンで使用するためにネイティブ トークンのラップされたコピーを作成するブリッジとして機能する信頼できる仲介者に依存しています。これらのブリッジは遅く、不便であり、ほとんどのハッキングがここで発生し、数百億ドルの資産が失われるということです。

また、ベース L1 チェーンのセキュリティに依存するロールアップもあります。ただし、各ステップの転送がメインチェーンに依存するため、異なるロールアップチェーン間で資産を任意に簡単に移動することは依然として不可能であり、その結果、高額なL1 ガス料金と数日間続く決済遅延が発生します。ロールアップでは、Bitcoin、Ethereum、Solana などのチェーン間のスマートコントラクトの相互運用性も解決されません。

チェーンフュージョンの2つの柱

真のマルチチェーン機能には、スマートコントラクトがチェーン間で読み取りと書き込みを行えるようにする必要があります。たとえば、ビットコインを保管し、 Ethereum DeFi スマート コントラクトで観察されたイベントに基づいてプログラムでビットコインの送信をトリガーできる 単一のICPスマートコントラクトを作成できます。

チェーンキー暗号化は、 ICP スマート コントラクトが他のブロックチェーンで実行されるトランザクションを作成および署名し、他のブロックチェーンに直接書き込むことを可能にする科学的なブレークスルーです。

直接的なネットワーク統合により、 ICPスマートコントラクトは、ICPコンセンサスによって検証された他のブロックチェーンからのデータやスマート コントラクトを照会し、他のブロックチェーンから読み取ることができます。


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