# ネイティブBitcoinとスマートコントラクトの統合

By [hashigo](https://paragraph.com/@hashigo) · 2023-01-29

---

1\. はじめに
========

Cryptoエコシステムにおいて、それぞれのブロックチェーンは閉じており、それらを相互作用させるには何らかの手段を用いる必要があります。例えば、Ethereum L2であるArbitrumとOptimismとの間でETHをブリッジさせるには、ブリッジプロトコルや、CEXなどの信頼できる第三者が必要となります。しかし、これらの例では、トラストポイントが発生してしまいます。

さらに、もっと違う種類のブロックチェーン間で相互作用させる場合には、これらの問題は顕在化しやすいです。例えば、Bitcoinネットワークで取り扱われるBTCをEthereumで取り扱う場合では、WBTCやrenBTCがEthereum上にmintする必要がありますが、ブリッジのしくみにトラストが必要であり、信用不安によって価格乖離がたびたび起こりました。さらに、ブリッジは攻撃対象となりやすく、大規模なExploitによってたびたび世間を騒がせてきました。

以上のような問題意識から、トラストレスまたはトラスト最小化した手法でBitcoinにスマートコントラクトを作用させようとするプロジェクトが動いています。今回は、以下の3つのプロジェクトを取り上げます。

1.  Avalanche Bridge(BTC.b)
    
2.  Internet Computer(ckBTC)
    
3.  ZetaChain(ZRC-20)
    

注：私はZetaChainコミュニティで活動をしており、公平なレビューが期待できないことにご注意ください。

2\. Avalanche Bridge
====================

Avalanche BridgeにおけるネイティブBitcoinのサポートは、2022年6月に始まりました。このサポートによって、AvalancheでBTC.bトークンというBTCのラップトークンが活用できるようになりました。また、同年11月にLayerZeroと統合し、オムニチェーントークンに対応しました。このブリッジは、SGXアプリケーションとWardenに分けることができます。Wardenは、Enclaveに適格なトランザクションを提出し、処理させる責任を負います。

2.1 Intel SGXアプリケーション
---------------------

Intel SGXとは、

> センシティブデータを保護しつつプログラムを実行する為のCPUの拡張機能

です\[1\]。つまり、あらゆる攻撃耐性を持ちながら、確実に「あるプログラム」が実行できるようになります。これを実現するために、メモリ上にEnclaveとよばれる、保護された特別な領域が生成されます。

そして、Intel SGXアプリケーションはEnclave内で実行されるコードベースと、Enclave外で実行されるコードベースで構成されます。Enclave外で行われる処理として、Enclaveの初期化と起動、リモート認証サーバの実行があり、一連のプロセスでEnclaveの身元を保証します。

EnclaveはWardenと直接通信し、オンチェーンイベントから署名済みトランザクションを送信します。それはつまり秘密鍵を有していることになるのですが、Enclaveが使用する秘密鍵は、Enclave内のスタートアップで生成された単一のマスターシークレットから派生します。このシークレットはShamirの秘密分散法によって8人のWardenに配布されます。~~みんな大好き多項式。~~共有する必要が生じた場合には、各WardenはEnclaveとリモート認証を行い、共有セッションキーを確立します。このセッションにおいて、各Wardenに配布された秘密は暗号化されてEnclaveに返されます。ブリッジは、秘密からマスターシークレットを再構築し、必要な秘密鍵を再導出するためにマスターシークレットを使用します。

2.2 Warden
----------

Wardenは、Enclaveに適格なトランザクションを提出し、処理させる責任を負います。つまり、中継者(リレイヤー)のような役割をします。Wardenは以下の8人です。Shamirの秘密分散法からマスターシークレットを導き出すために、6人の承認が必要になります。また、この承認のため、シークレットシェアを保管する責務を負います。

*   Ankr
    
*   Blockdaemon
    
*   Chainstack
    
*   Protofire
    
*   Avascan
    
*   Ava Labs
    
*   Bware Labs
    
*   Halborn
    

また各Wardenは、Enclaveによって処理されたトランザクションを追跡する責務を負います。これは、二段階のコミットプロセスによって成立します。

まず、暗号化された署名済みトランザクションを各Wardenに送信し、バックアップとしてデータベースとして保存します。これは、Enclaveのみが復号化することができます。

保存されたことをEnclaveが確認すると、Enclaveは処理のために暗号化されていないトランザクションを各Wardenに送信します。これを受信すると、関係するチェーンにそのトランザクションをブロードキャストしようとします。すでにブロックに含まれていることが確認できると、Wardenはそのトランザクションが正常に処理されたことが確認できます。

その他にも、Wardenはブロックチェーンのインデックス化や手数料等に関する情報の公開、Enclaveで実行されるコードベースの検証といった責務を負います。

2.3 BTC.bのオムニチェーン化
------------------

2022年6月に始まったAvalanche BridgeのBTCサポートによって、Avalancheのエコシステム内でBTCのラップトークンであるBTC.bを活用できるようになりました。また、同年11月にBTC.bはOmnichain Fungible Token（OFT）に対応しました。これにより、LayerZeroがサポートする複数のブロックチェーンにおいて、単一のBTC.bコントラクトにアクセスできるようになるため、流動性の断片化が発生しません。

LayerZeroは、トランザクションの証明を提供するリレイヤーと、ブロックヘッダを提供するオラクルという2つの主体から成り立ちます。そして、あるブロックヘッダは過去のブロックヘッダに遡って検証されるライトクライアントという形式をとらないことで、ストレージ等のコストを削減しています。オラクルとして、Chainlink等の分散型オラクルが想定されていますが、LayerZeroを使ったアプリ開発者はこれを自由に選択することができます。

3\. Internet Computer
=====================

Internet Computer(IC)は、物理的に分散したデータセンターのコンピューティングリソースが利用可能なプラットフォームで、EthereumのスマートコントラクトにあたるCanisterを用いたアプリケーションを提供します。

ICを運用管理する仕組みをInternet Computer Protocolといい、リソースを分散配置し、耐障害性を確保しています。

3.1 Bitcoinとのプロトコルレベルでの統合
-------------------------

Bitcoinとのプロトコルレベルの統合は、ICがオンチェーン上でBitcoinのUTXOセットを維持管理することを意味します。Canister自身が新しいしきい値ECDSAプロトコルを用いてECDSA鍵を持つことができるため、Bitcoinの受け取り、維持、送金ができます。

しきい値ECDSAプロトコルは、秘密共有によるマルチパーティ計算(MPC)の技術であり、どのノードも秘密鍵を知ることなく、共同で計算してECDSA署名を生成することができます。

3.2 ckBTCの提案
------------

ckBTCはdfinityのフォーラム\[7\]で提案されており、フォーラムによれば、2023年のはじめにリリースされる予定です。現在、ICが扱うことができるBTCはBitcoinネットーワークに存在するBTCであるため、トランザクションが遅いという欠点があります。これは、Bitcoinネットワークのブロック生成が10分前後かかり、確実にブロックに取り込まれたと判定されるまでに1時間は見積もらなければならないことに由来します。

そこで、ckBTCという、キャニスタースマートコントラクトによってラップされたトークンが提案されています。ICとBitcoinはプロトコルレベルで統合されており、ckBTCはIC上でネイティブなトークンです。また、ckBTCの送金に限れば、非常に安価に実現することができます。ckBTCはNNSというICのガバナンスによって所有されており、このキャニスターを管理する特定の個人は存在しません。

3.3 ckBTCのmint/burnプロセス
-----------------------

ユーザはキャニスターの「ckBTC minter」というスマートコントラクトを使って、Bitcoin上の本物のBTCを入金し、同量のckBTCを受け取ることができます。同様に、ckBTCを返却し、指定したBitcoinアドレスで同量のBTCを受け取ることもできます。

4\. ZetaChain
=============

ZetaChainは、マルチチェーンの未来への基礎となるレイヤーを目指しています。ブロックチェーンは、ブリッジやラップトークンを使用せずにマルチチェーン機能を実現し、オムニチェーンdApps（odApps）を展開することができます。これらのアプリケーションは、すべてのスマートコントラクトプラットフォームだけでなく、BitcoinやDogecoinなどの非スマートコントラクトプラットフォームのデータと価値を管理・接続することができます。

4.1 アーキテクチャ概要
-------------

ZetaChainは、バリデータと呼ばれるノードの分散ネットワークで構成されています。バリデータは、関連する外部の状態とイベントに関するコンセンサスに達する分散型オブザーバとして機能し、また、分散キー署名によって外部のチェーン状態を更新することができます。ZetaChainは、分散型（単一障害点なし、トラストレス、パーミッションレス）、透明、かつ効率的な方法で、これらの機能を達成します。各バリデータ内に含まれるのは、ZetaCoreとZetaClientです。ZetaCoreはブロックチェーンを生成し、複製されたステートマシンを維持する責任を負います。バリデータのオペレータは、このアーキテクチャの異なるコンポーネントを実行します。

Zeta EVM（zEVM）は、ZetaChainのコアブロックチェーン上に構築されたオムニチェーンスマートコントラクトをデプロイして使用できるEthereum互換の仮想マシンです。zEVM上のコントラクトはZetaChainの相互運用性レイヤーに接続されており、外部チェーン上のアセットをあたかも単一のチェーン上にあるかのようにオーケストレーションすることが可能です。

ZetaChainは2023年第1四半期にメインネットがリリースされる予定です。はじめはPoAですが、後にPoSへと移行する予定です。また、現時点でテストネット含め各個人がバリデータノードを建てることはできません。

4.2 バリデータ
---------

バリデータは3つの異なる役割で構成されています。Basicバリデータ、オブザーバ、TSS署名者です。バリデータは、トランザクションを処理し、ネットワークを安全に保つというサービスの対価として、トランザクションからの手数料と報酬が分配され、受け取ります。オブザーバーとTSS署名者は、セキュリティや掛け金の要件が異なるため、Basicバリデーターとは別の規模になります。

### 4.2.1 **Basicバリデータ**

ZetaChainは、部分的な同期ビザンチンフォールトトレラント（BFT）コンセンサスアルゴリズムであるTendermintコンセンサスプロトコルを使用します。各バリデータ・ノードは、拘束/委任されたステーキングコイン（ZETA）に比例した投票権により、ブロックの提案に投票することができます。各バリデーターはコンセンサス公開鍵によって識別されます。バリデータは常にオンラインである必要があり、常に成長し続けるブロック生成に参加します。バリデータはそのサービスの対価として、ブロック報酬と取引手数料を受け取ります。

### 4.2.2 **オブザーバ**

ZetaChainのコンセンサスにとって重要なもう一つの参加者は、外部のチェーンイベントと状態についてコンセンサスを得るオブザーバです。オブザーバは、外部チェーンの完全なノードを介して、特定のアドレスで特定の関連する取引、イベント、状態について、外部接続チェーンを監視します。オブザーバはシーケンサと検証者の2つの役割に分かれます。シーケンサは関連する外部のトランザクション/イベント/状態を発見して検証者に報告し、検証者はZetaChainを検証して投票し、コンセンサスを得ます。

### 4.2.3 **TSS署名者**

ZetaChainは、外部チェーンとの認証された相互作用のために標準的なECDSA/EdDSAキーをまとめて保持します。鍵は、それらの超多数だけがZetaChainを代表して署名できるような方法で、複数の署名者の間で分配されます。重要なことは、いかなる時も、単一のエンティティまたはノードのごく一部が、ZetaChainを代表して外部チェーン上でメッセージに署名できることを確実にすることです。ZetaChainシステムは、経済的安全を確保するために、担保つきのステークと正/負のインセンティブを使用します。

4.3 ZRC-20規格
------------

ZRC-20は、ZetaChainのオムニチェーンスマートコントラクトプラットフォームに統合されたトークン規格です。ZRC-20を使用すると、開発者は、接続された任意のチェーン上でネイティブアセットをオーケストレーションするdAppsを構築することができます。

ZRC-20トークンは、Ethereumエコシステムで見られる標準的なERC-20トークンの拡張版で、ZetaChainに接続されたすべてのチェーン上のアセットを管理する能力が追加されています。Bitcoin、Dogecoin、他のチェーン上のERC-20同等物、他のチェーン上のガスアセットなど、あらゆるファンジブルトークンはZetaChain上でZRC-20として表されます。

ZetaChainが外部チェーンを操作する方法として、GG20リーダーレスしきい値署名方式(TSS)が採られています。ZRC-20はプロトコルレベルで管理されており、外部チェーンの資産をトラストレスに維持管理することができることから、ネイティブBitcoinにオムニチェーンスマートコントラクトを付与することができると期待されています。

4.4 ZRC-20(BTC)のmint/burnプロセス
-----------------------------

ユーザーがBitcoin上に存在するZetaChainのTSSウォレットにBTCを送金すると、ZRC-20コントラクトに反映されます。この際、トランザクションのメモ欄に任意のロジックを指定すると、zEVM上でスマートコントラクトを実行することができます。同様に、ZRC-20(BTC)から、指定したBitcoinアドレスで同量のBTCを受け取ることもできます。

5\. まとめ
=======

以上のことから、次のことがわかりました。

*   Avalancheが謳うBTCのオムニチェーントークンは、OFTに対応したBTC.bトークンのことであり、BTC.bトークンはAbalanche BridgeによるBTCのラップトークンである。
    
*   Internet ComputerとZetaChainはプロトコルレベルでBitcoinと統合する。また、ラップトークンとしてそれぞれckBTCとZRC-20が用意され、UXが改善される。それぞれのラップトークンはネイティブBTCに裏付けされており、分散化された方法で管理されることから、「ネイティブでラップされていないトークン」と表現されることがある。
    

また、インフラ部分に参加できるかどうかという点を比較すると、

*   Avalanche Bridgeの主要な構成要素であるWardenは限られている。（現状8人）
    
*   Internet ComputerのノードはICA (Internet Computer Association)が発行するDataCenter IDが必要であり、実質コンソーシアム型チェーンである。ICAについてはリサーチしなかった。
    
*   ZetaChainのメインネット立ち上げ後はPoAであるが後にPoSへ移行する予定であり、PoS移行後にノードに参加できるようになると思われる。
    

と、どの製品も現状においてはパブリックとは言い難いです。また、どの経済圏にアクセスできるかという観点で比較すると、

*   BTC.bはAvalancheおよびLayerZeroが対応するチェーンに限られる
    
*   ckBTCはICが接続するチェーンおよびIC自体の経済圏に限られる
    
*   ZRC-20はZetaChainが接続するチェーンおよびZetaChain自体の経済圏に限られる
    

という結果になりました。

私個人の感想としては、

*   BTC.bはアプリケーションレベルで現実に即したレベルで実装できており、今回比較したなかでも一番よく使われている(執筆時)ので評価できる。
    
*   ckBTCとZRC-20はTSSという技術を使い分散化された方法で、プロトコルレベルでネイティブBTCを維持管理しようとしており、志が高く評価できる。
    

といった感じになります。

6\. 参考文献
========

\[1\] Cliffford, Intel SGX入門 - SGX基礎知識編, 2019/6/15, [https://qiita.com/Cliffford/items/2f155f40a1c3eec288cf](https://qiita.com/Cliffford/items/2f155f40a1c3eec288cf).

\[2\] Conor Leary, Avalanche Bridge: Secure Cross-Chain Asset Transfers Using Intel SGX, 2021/8/6, [https://medium.com/avalancheavax/avalanche-bridge-secure-cross-chain-asset-transfers-using-intel-sgx-b04f5a4c7ad1](https://medium.com/avalancheavax/avalanche-bridge-secure-cross-chain-asset-transfers-using-intel-sgx-b04f5a4c7ad1).

\[3\] Avalanche, Avalanche Bridge Adds Native Bitcoin Support, 2022/6/23, [https://medium.com/avalancheavax/avalanche-bridge-adds-native-bitcoin-support-6306236fb506](https://medium.com/avalancheavax/avalanche-bridge-adds-native-bitcoin-support-6306236fb506).

\[4\] Avalanche, LayerZero Aims to Create One, Unified Experience for BTC.b, Expanding BTC.b Transfers to Ethereum, Polygon, Arbitrum, Aptos, and more., 2022/11/18, [https://medium.com/avalancheavax/layerzero-aims-to-create-one-unified-experience-for-btc-b-339eb4d23672](https://medium.com/avalancheavax/layerzero-aims-to-create-one-unified-experience-for-btc-b-339eb4d23672).

\[5\] 株式会社日本総合研究所 先端技術ラボ, Internet Computerの概要 ～クラウドコンピューティング基盤を目指すブロックチェーン～, 2022/5/30, [https://www.jri.co.jp/MediaLibrary/file/column/opinion/pdf/13450.pdf](https://www.jri.co.jp/MediaLibrary/file/column/opinion/pdf/13450.pdf).

\[6\] hokosugi, Bitcoin 統合の仕組み ー 技術的背景, 2022/11/28, [https://dfinityjp.netlify.app/docs/current/developer-docs/integrations/bitcoin/bitcoin-how-it-works](https://dfinityjp.netlify.app/docs/current/developer-docs/integrations/bitcoin/bitcoin-how-it-works).

\[7\] Manu, Chain-key Bitcoin (ckBTC): bitcoin wrapped by a smart contract, 2022/12/22, [https://forum.dfinity.org/t/chain-key-bitcoin-ckbtc-bitcoin-wrapped-by-a-smart-contract/17606](https://forum.dfinity.org/t/chain-key-bitcoin-ckbtc-bitcoin-wrapped-by-a-smart-contract/17606).

\[8\] hashigo, ZetaChainのオムニチェーンスマートコントラクトとクロスチェーンメッセージング, 2022/11/28, [https://mirror.xyz/hashigo.eth/CCdB\_j-jtbl1zlRdGDOlwIn1zGdbMklzNURJemXkAYI](https://mirror.xyz/hashigo.eth/CCdB_j-jtbl1zlRdGDOlwIn1zGdbMklzNURJemXkAYI).

---

*Originally published on [hashigo](https://paragraph.com/@hashigo/bitcoin)*
