Bitcoin Integration Interview (日本語訳)
BTC integration 勉強してみよう
ふーさんツイートより
https://twitter.com/chubchubkun/status/1568089135050797056
BTC integrationの非エンジニア向け解説動画。疑問があればここからトピック毎に深掘りすればいいし、動画を通してイメージを持つだけでもかなり理解が広がると思います。ESDSA integrationとChain keyの性質を理解すると相当深まります。https://t.co/JdcNi1DcJ6
— ふーさん ふー説の流布∞ ♦︎ 🦇🔊 (@chubchubkun) September 9, 2022
ということで、まずは紹介されている動画を見た
Bitcoin Integration Interview
インターネットコンピュータのビットコイン統合は、スマートコントラクトの機能をビットコインに開放し、ビットコインを使用してこれまで不可能だった全く新しいDeFiの風景を作り出します。
動画の中身、ざっくり日本語訳
Dfinity財団のアンドリューです。
私たちはインターネットコンピューターに搭載される、ビットコイン統合と呼ばれる非常にエキサイティングな機能に取り組んできました。
リリースされれば、インターネットコンピュータで動作するキャニスタースマートコントラクトは、ブリッジやラップを使わずにネイティブビットコインを安全に送受信し、保有することができるようになるのです。
ビットコイン統合について詳しく話してくれるのは誰ですか?
こんにちは、アンドレア。コミュニティは、来たるべきビットコイン統合機能にとても興奮しています。
そして、私たちは開発を続け、近い将来、ビットコインのメインネットにアクセスできるようにし、これを完全に安定させ、実世界で使えるようにします。
例えば、ビットコインには大きな価値がありますが、ビットコインはスマートコントラクトをサポートしていないため、このビットコインをDeFiアプリケーションで使用することはできない、というようなデメリットがあります。
そこで私たちは、ビットコインのインターネット・コンピュータ統合によって、この問題に対処しようとしています。これにより、インターネット上のコンピュータで実行されているキャニスターのスマートコントラクトが、ビットコインのブロックチェーン上で本物のビットコインを保持することができます。
このスマートコントラクトは、インターネット上のコンピュータで実行され、ビットコインのブロックチェーン上にある本物のビットコインを保持し、インターネット上のコンピュータで、本物のビットコインを使用することができます。
ビットコインを保有し、ビットコインで取引したいのであれば、2つのものが必要です。
一つは秘密鍵、もう一つは署名や取引を行うための公開鍵です。これは、通常、これらの鍵を保持するハードウェアウォレットデバイスによって行われます。 ビットコインのブロックチェーンの状態を知っている必要があります。 この2つの性質を利用して、IC上のスマートコントラクトを利用できるようにします。
各サブネットは世界中の多くの機械で動いています これがセキュリティと非中央集権の源です サブネットを動かす機械は世界中のビットコインノードと通信し 最新のビットコインブロックを知ることができるのです
そしてサブネットは、どのビットコインブロックが新しく、サブネットに取り込まれるべきかを合意します。ビットコインの状態は全てサブネットの状態に取り込まれ、キャニスターはその状態にアクセスできるのです。
そして、キャニスターはどうやって公開されることなく秘密鍵を保持するのでしょうか。これは実に難しい課題です。
あなたが既に示唆しているように、この秘密鍵をスマート・コントラクトのメモリに保存しておくことはできません。 通常、秘密鍵は常に機密であるとは限らないからです。そこで、キャニスターに署名を要求するためのインタフェースを提供します。
裏ではサブネットのレプリカがマルチパーティ暗号プロトコルや閾値暗号を実行して、キャニスターが署名を要求したときに署名を作成します。 もちろんこの目的は、秘密鍵が実際には一箇所に存在しないことです。
この方法でキャニスターは、秘密鍵が安全でない状態で署名を要求することができます。署名を要求するということはどういうことかというと、キャニスターが、この鍵で署名を要求したいと言うことができる唯一のキャニスターであるということです。
そして全てのレプリカがマルチパーティプロトコルに参加してそれに応答し、この閾値ECDSAプロトコルでキャニスターに署名を返します。 複数のキャニスター、複数のノードが1つのメッセージに署名できます。 キャニスターは自分の鍵で署名を要求することができ、秘密鍵は安全です
なぜならそれは一箇所に存在するのではなく、サブネットを構成する全てのレプリカの間に分散されているからです。
だから閾値と呼ばれるのです。このレプリカの数が一致するか、正確に一致する必要があるのです。
ECDSAはビットコイン統合の主要な構成要素です 開発者は他にどんなことに使えるのでしょう? 実際、非常に柔軟な構成要素だと思います ecdsaは非常に標準的なデジタル署名方式です これはビットコインで使われるだけでなく 他の多くのブロックチェーンでも使われています
ビットコインだけでなく他の多くのブロックチェーンでも使われていますし ブロックチェーン以外でも多くのデジタルシステムで使われています ECDSAは非常に一般的な署名方式なのです そして今、キャニスターはこのような非常に標準的な署名方式を作り、外の世界の何に対しても認証する方法を手に入れたのです
これはビットコインとの統合に使われるものですが、例えばイーサリアムの取引に署名したり、ドメイン名の電子証明書を作ったりと、この機能を使って構築できるオプションはたくさんあります。
もちろん サイクルを支払う必要があります。 しかし、これはおそらく米ドル建てに相当するものです。 イーサリアムのトランザクションを作成することができます。
このソリューションでは、システム内に中央のパーティが存在することになります。
こんな感じです。
このアドレスにあるビットコインを私にください。その代わりにイーサリアムのブロックチェーンにあるビットコイン・トークンを返します。
もしあなたが私にそのようなものをくれれば、もしあなたが戻りたいのであれば、あなたのラップビットコインを私に渡してください。
本物のビットコインを返しますが、これはもちろん、この分散化された世界の中で、中央集権的な要素になります。 この当事者はブリッジングを行う責任があります。 これは過去に見たように、かなりのセキュリティ・リスクです。
このように、私たちは、これを強固なものにするために最善を尽くしています。 この実装方法には非常に注意を払っています。
内部と外部のセキュリティ監査を行い、さらに時間をかけて、死んだ部分が本当に安全で信頼できるものであることを確認しているところです。
でも、次のステップは、CSSの開発者がこれらのAPIを使って新しい機能を構築し、それを使ってクールなものを作ることです。
ですから、私は、これをベースにしたアプリケーションに投資する前に、ある程度の調査をすることをお勧めしますし、コードのセキュリティ監査も行うことを合理的だと思います。 開発者がビットコインとの統合を利用しやすく、かつセキュリティリスクを回避できるようにする必要があります。
ckbtc (chainkey bitcoin)
ckbtcはchainkey bitcoinの略で、私たちが作る予定のトークンです 機能的にラップビットコインに似たものを作ろうと考えています
インターネットコンピュータの効率性を利用して、非常に素早く取引できるインターネットコンピュータネイティブトークンのようなものにしたいのです。
しかし、他のラップビットコインとの決定的な違いは、ここではキャニスターのスマートコントラクトがラップを行うことです。このキャニスターは、ビットコインとの直接的な統合の上に成り立っています。ユーザーは本物のビットコインをキャニスターのスマートコントラクトに送り、その見返りとして、キャニスターが私にckbtcを発行して、私はそれを非常に速く、効率的にインターネット上で使えるようになります。
本物のビットコインを取り戻したくなったら、そのビットコインをキャニスターに送って、本物のビットコインを取り戻すことができます。
そしてその間、秘密鍵を保持しているのはキャニスターです。 秘密鍵を保持しているのはレプリカで、裏ではレプリカが秘密鍵のシェアを保持しているのです。
キャニスターの開発者にとっては、ビットコインとの直接統合よりも、アイシーネイティブトークンを使った方がずっと簡単だと思います。
ビットコインとの統合では、ネイティブ・ビットコインを送るときに使用する台帳はコンピュータ間ではなく、ビットコインのネットワーク上にあるからです。台帳はインターネット上のコンピュータにもあります。 この取引を開始しなければなりません。そして、長い時間待たなければなりません。
なぜなら、この取引はすぐに完了しないからです。 そして、後で新しいビットコインの状態を見て、自分の取引が完了したことを確認します。
もちろん、これが全てインターネット上のコンピュータで行われるのであれば、もう少し速く、開発者にとっても簡単です。
私の理解が正しければ、現在私たちが持っているのは、ICP上でビットコインテストネット上のトランザクションを作成することができるということです。
開発を始めてから、発売時やリリース時にビットコインのメインネットに切り替えたい場合、何を変更すればいいのでしょうか? ビットコインテストネットの代わりに、ビットコインメインネットと言うだけです。
それで、実験的な機能として、これを開始しました。
そして ビットコインテストネットへのアクセスを制限し、すべてが期待通りに動くことを確認する時間を増やしました。 そして、ビットコインのメインネットにアクセスするのに十分な信頼性が得られたと判断した時点で、これらのAPIを有効にします。 そうすれば、既存のDappsはビットコインのメインネットに簡単に移行できるようになるはずです。
主に、より大きなサブネットで実行し、より多くのレプリカでキーを共有することで、セキュリティを向上させたいと考えています。
これは主に性能の問題で、できるだけ高速に動作させることが課題です。 これは、ビットコインとの統合でも同じようなことが言えます。
ビットコインのフォークの長さに耐えられるようにしたいのです。つまり、より大きなビットコイン・ブロックチェーンの状態を保持する必要があるのですが、これにはパフォーマンス上の問題もあるので、このような問題に取り組んでいます。
メインアプリがリリースされたら、テストは利用できなくなるのでしょうか?
私たちは、このビットコインのテストは現在と同じように利用できないようにするつもりです。
開発者が自分のコードをテストするのに非常に便利な機能だと思いますし、賭け金も安く済みます。
もし失敗しても、それはそれで問題ありませんから、私たちはこの機能を使い続けるつもりです。 ラスタ / motoko は間違いなく使えるので、両方の言語でサンプルコードを用意しています。
typescriptのbazelもサポートすることになっていると思いますので、それが実現するといいですね。
ビットコインとの統合によって、ic上のDeFiの状況はどのように変わると思いますか?
ビットコインの統合機能は、icのDeFiの状況をどのように変えるのでしょうか、また、どのような使用例を見たいですか?
インターネット上の分散型取引所は、この技術を最初に採用するかもしれませんね。
とてもクールだと思います。
中央集権的な取引所を通さずに、自分のビットコインをインターネット・コンピュータに移動させて、icpを取得できるようになるのが楽しみです。
ビットコインをインターネット上のコンピュータに移動させて、それをicpsと交換するとか。 これはエキサイティングなユースケースで、人々はもっとクリエイティブなアイデアを思いつくと思います。
この機能については、過去1年間取り組んでこられたわけですが、ようやく一般に公開することができて、どのようなお気持ちですか?
キャニスターから最初のビットコインテストネット取引が行われたときは、とてもエキサイティングでした。
これが開発者の手に渡るのを見るのがとても楽しみです。 どんな素敵なものを作ってくれるのか楽しみです。 どんなクールなものを作ってくれるのか楽しみです。 私たちが想像もつかないようなアプリケーションが、IC上でビットコインを使うことによって可能になることは間違いないでしょう。
まず第一に、DeFiのようなアプリケーションを構築するのが一番わかりやすいと思います。 でも、誰が何を考え出すかわからない。
ハッキングを始めようと思ったら、どこを見ればいいのか。
私たちのウェブサイトには、このアプリケーションの使い方やサンプルコードなどを説明したドキュメントがあります。
というわけで、これらの機能を構築し始めるには、これが素晴らしい出発点だと思うんだ。 最後に、マヌと、ビットコインの統合を可能にしたすべてのチームに感謝します。 もしあなたが開発者なら、私たちのドキュメントを見てください。
あなたがビットコイン統合を使ってどんなものを作るのか、私たちは待ちきれません。 ご覧いただきありがとうございました。