ビットコイン・ライトニング・ネットワークとタップルート資産の説明
Taproot Assetsプロトコルを通じたライトニング・ネットワークへのステーブルコインの統合は、決済とフィンテック業界に革命をもたらすだろう。
JinseFinance著者:Nickqiao, Faust, Shew Wang; 出典:Geek web3
概要:最近、Delphi Digitalは「The Dawn of Bitcoin Programmability: Paving the Way for Rollups(ビットコインのプログラマビリティの夜明け:ロールアップへの道を開く)」と題したビットコインのレイヤー2技術に関する研究論文を発表しました。
この研究は、ビットコインの第2層技術に関する大まかなイメージを提示しているものの、包括的なものではありません。このレポートは、ビットコインのレイヤー2技術について大まかなイメージを与えてはいるものの、全体的な一般論と詳細の欠如により、理解できないものになっています。Geek web3は、Delphiの研究論文をさらに深く掘り下げることで、BitVMやその他の技術についてより体系的な理解を提供しようとしています。
Bitlayer チームと BitVM Chinese コミュニティと共にこのプロジェクトに取り組みます。
私たちはBitlayer研究チームおよびBitVMコミュニティと協力して、BitVM、OP_CAT、およびビットコイン・クロスチェーンブリッジやその他の重要なトピックに焦点を当て、ビットコイン技術の第2レイヤーに光を当て、より多くの愛好家が道を切り開くのを助けることに専念する「BTCに接近する」というコラムシリーズを開発する予定です。
数ヶ月前、ZeroSyncの責任者であるロビン・ライナスは、「BitVM: Compute Anything on Bitcoin」と題する記事を発表し、BitVMのコンセプトを正式に紹介し、ビットコインの第2層技術の進歩を推し進めました。ビットコインのエコシステムにおける最も革命的なイノベーションの1つであることは間違いなく、ビットコインレイヤー2のエコシステム全体に火をつけ、Bitlayer、Citrea、BOBなどのスタープロジェクトの参加を集め、市場全体に活気をもたらしました。
その後、より多くの研究者がBitVMの改良に関わりました。BitVMは、BitVM1、BitVM2、BitVMX、およびBitSNARKのさまざまなイテレーションによって改良されました。一般的なイメージは以下の通りです:
ロビン・ライナスは、その後のいくつかの講演やインタビューで、ビットコインスクリプトを使用して汎用CPUとしてオフチェーンでシミュレートできる、Optimismの不正証明システムCannonに似た、架空のCPUベースのBitVMソリューション(BitVM1と呼ばれる)を非公式に紹介しました。
また、Robin Linus氏は、Permission-less single-step non-teractive proof-of-fraud protocolであるBitVM2を提案しています。strong>RootstockラボとFairgateラボのメンバーは、BitVMXホワイトペーパーをリリースしました。これは、BitVM1と同様に、ビットコインスクリプティングを通じて汎用CPU(オフチェーン)の効果をエミュレートすることを目的としています。
現在、BitVM関連の開発者エコシステムの構築が目に見えるようになってきており、周辺ツールの反復的な改善も目に見えるようになってきています。BitVMのエコシステムは昨年と比較してより目に見えるものとなっており、ビットコインのエコシステムに参入する開発者やVCを引きつけている。
しかし、ほとんどの人にとって、BitVMとビットコイン第2層に関連する技術用語を理解するのは容易ではない。しかし、ほとんどの人にとって、BitVMとBitcoin第2層を理解するのは簡単なことではなく、その周辺の基礎知識、特にBitcoinスクリプティングとTaprootの背景知識を体系的に理解する必要があります。現在、オンラインで利用可能なリファレンスは、長すぎて複雑であるか、理解できるほど十分に説明されていません。私たちは、より多くの人がビットコインの第2層の周辺をできるだけわかりやすい言葉で理解できるように支援し、BitVMシステムの体系的な理解を構築することで、これらの問題を解決することを約束します。
まず最初に、BitVMの根底にあるアイデアがMATTであることを強調したいと思います。これはMerkleize All The Thingsを意味し、主に複雑なプログラムの実行プロセスを示すツリー状のデータ記憶構造であるMerkle Treeを指し、これを管理してビットコインネイティブの検証済み不正証明。
MATTは、複雑なプログラムとそのデータ処理のトレースを表すことはできますが、BTCのデータを直接表すことはできません。トレースは、このデータの全体的なサイズが非常に大きいため、このデータをBTCチェーン上で直接公開することはありません。MATTのアプローチでは、連鎖の下のMerkleツリーにのみデータを保存し、Merkleツリーの一番上の要約(Merkle Root)のみが連鎖上で公開される。このメルクルツリーには、3つの主要なコア要素が含まれています:
。Smart Contract Script Code
契約に必要なデータ
契約に必要なデータ
コントラクトの実行中に残された痕跡(スマートコントラクトがEVMなどの仮想マシンで実行される際に、メモリ、CPUレジスタに加えられた変更の記録)
(Merkle Rootが多層ハッシュ計算後にグラフ下部の8つのデータフラグメントから計算される単純なMerkle Treeの概略図)
MATT スキームでは、非常に小さな Merkle Root だけがチェーン上に保存され、Merkle Tree に含まれる完全なデータセットはチェーンの下に保存されます。.ここで、コミットメントとは何かについて説明しよう。
コミットメントは簡略化されたステートメントに似ています。strong>は、大量のデータを圧縮して得られる「指紋」と考えることができます。一般的に、チェーン上で「約束」を公表する人々は、チェーン外に保存されたあるデータが正確であり、このチェーン外のデータが簡潔なステートメントに対応していると主張します。
ある時点で、データのハッシュはデータ自体の「約束」として機能する。他のコミットメントスキームにはKZGコミットメントやMerkle Treeがある。Layer2の慣習的な不正証明プロトコルでは、データ公開者はオフチェーンで完全なデータセットを公開し、オンチェーンでデータセットの約束を公開する。もし誰かがチェーン下のデータセットに無効なデータがあることを発見したら、彼らはチェーン上のデータに対してデータの約束に異議を唱えるだろう。
コミットメントによって、レイヤー2は、データセットに含まれるデータセットが無効であることを発見することができます。)、レイヤー2は大量のデータを圧縮し、ビットコインチェーン上でのみ「コミットメント」を公開することができる。もちろん、チェーンの下に公開された完全なデータセットが、外の世界から観察可能であることを保証することも重要です。
BitVM0, BitVM1, BitVM2, BitVMXといった現在の主要なBitVMスキームは、基本的に同様の抽象化を使用しています:
特定のコミットメントスキームには、メルクルツリーなどさまざまな形式があります。strong>2.アセットプレッジと事前署名:データパブリッシャーと検証者は、事前署名によってチェーン上の一定量のアセットをロックする必要があります。これらの条件は、将来起こりうる出来事に対応して発動され、データ発行者が悪事を働いた場合、検証者は証拠を提出してデータ発行者の資産を取り上げることができます
3. データとプロミスの公開: データ公開者はプロミスをオンチェーンで公開し、完全なデータセットはオフチェーンで公開され、バリデータはデータセットを取得してエラーがないかチェックする。チェーン下のデータセットの各部分は、チェーン上の約束と相関がある。
4. 挑戦と罰則:バリデータがデータセットに誤りがあることを発見したら、バリデータはそのデータセットに挑戦する。データパブリッシャーがエラーを含むデータを提供すると、この部分を直接検証チェーンに持ち込む(データのこの部分を特に細かく最初にカットする)ことになり、これが不正証明の論理となる。検証の結果、データ公開者が無効なデータをチェーンの下に提供したことが判明した場合、その資産は彼に異議を唱えた検証者に奪われます。
要約すると、データパブリッシャーであるアリスは、次のようになります。レイヤ2トランザクションの実行中に生成された全てのトレースをオフチェーンで公開し、対応するプロミスをチェーンに投稿する。データの一部が間違っていることを証明したい場合、まずビットコインノードに対して、データのこの部分がチェーン上の約束と関連していることを証明する、つまり、このデータがアリス自身によって公開されていることを証明し、次にビットコインノードにデータのこの部分が間違っていることを判断させる。
BitVMの一般的な理解ができたので、すべてのBitVMが同じ考えを持っていることがわかります。全てのBitVMの亜種は基本的に上記のパラダイムに従っている。それでは、上記のプロセスで使用される重要なテクニックのいくつかを、ビットコイン・スクリプティングとTaprootと事前署名の基本から学び、理解し始めましょう。
(An example of Bitcoin scripting code consisting of lower-level opcodes than a high-level language)
イーサリアムの資産表現は、どちらかというとアリペイやWeChatのようなもので、各送金は異なる口座の残高を足したり引いたりするだけで、口座中心のアプローチであり、資産残高は口座名の下の数字に過ぎません。strong>転送は実際に古いUTXOを破壊し、新しいものを生成します(所有者が変わります)。
Bitcoin UTXOには2つのキーフィールドがあります。
「サトシ(satoshi)」(10億)単位の金額。(satoshi)」(10億satoshiは1BTC);
「ScriptPubKey」としても知られるロックスクリプトは、UTXOのロックを解除する条件を定義します。
重要なのは、UTXOのロックを解除するための条件です。
その後、サム。これらのビットコインを使用するには、ロック解除スクリプト(ScriptSig)を提出する必要があります。このスクリプトでは、サムがデジタル署名を提示し、彼自身がサムであることを証明します。ロック解除スクリプトが前述のロックスクリプトと一致すれば、サムはロックを解除してビットコインを他人に譲渡できる。
(unlock script must be match the lock script to work)
プレゼンテーションの観点から、ビットコインチェーン上の各トランザクションは複数のInputsとOutputsに対応し、各Inputはロックを解除したいUTXOを宣言し、UTXOのロックを解除して破棄するためのロック解除スクリプトを提出します。出力は新しく生成されたUTXO情報を表示し、ロックスクリプトを公開します。
例えば、トランザクションのInputで、あなたが以下のことを証明します。Samであることを証明し、他の誰かから与えられた複数のUTXOのロックを解除し、それらを一律に破棄し、将来的にロックを解除するためにxxxの宣言で複数の新しいUTXOを生成する。
具体的には、トランザクションの入力データで、どのUTXOのロックを解除したいかを宣言し、そのUTXOデータの「保管場所」を指定します。ビットコインは、データを保存するためにコントラクトアカウントとEOAアカウントの両方を提供するイーサとは大きく異なることに注意する必要があります。 資産残高は、コントラクトまたはEOAアカウント名の下に数字として記録され、「State of the World」と呼ばれるデータベースに配置されるため、State of the Worldから特定のアカウントに直接転送することができ、データがどこに保存されているかを簡単に特定することができます。
ビットコインにはステート・オブ・ワールドの設計がなく、資産データは散在しており、通過ブロック(つまり、アンロックされたUTXOデータで、各トランザクションのOutPutに個別に格納されています)。
UTXOのロックを解除したい場合、UTXO情報が過去のトランザクションのどのOutputに存在するかを述べ、トランザクションのID(これはそのハッシュです)を示し、、ビットコインノードに履歴を調べさせます。アドレスのビットコイン残高を調べるには、ゼロからすべてのブロックをトラバースして、アドレスxxに関連するロック解除されたUTXOを見つける必要があります。serif; font-size: 18px;">普段からビットコインウォレットを使っていると、特定のアドレスが所有しているビットコインの残高をすぐに確認することができます。ウォレットサービス自体がブロックをスキャンしてすべてのアドレスをインデックス化しているため、すぐに確認できることが多いのです。
(自分のUTXOを誰かに送るために取引明細を生成する場合、それらのUTXOが属する取引のハッシュ/IDに基づいて、ビットコインの履歴におけるUTXOの位置をマークします)
さらに、UTXOのロックスクリプト(Locking Script)はカスタマイズ可能で、UTXOを「特定のビットコインアドレスの所有者がロック解除可能」に設定でき、これにはデジタル署名と公開鍵(P2PKH)が必要です。また、Pay-to-Script-Hash(P2SH)トランザクションタイプでは、UTXOロックスクリプトにスクリプトハッシュを追加することができ、そのハッシュに対応するオリジナルスクリプトイメージを提出し、そのオリジナルスクリプトイメージにプリセットされた条件を満たすことができる人は誰でも、UTXOのロックを解除することができます。BitVMが依存しているTaprootスクリプトは、P2SHに似た機能を使用しています。
BitVM が依存している Taproot スクリプトは、P2SH と同様の機能を使用しています。P2PKHは「Pay to Public Key Hash」として知られており、このシナリオでは、UTXOのロックスクリプトは、P2PKHを設定します。このシナリオでは、UTXOはロックスクリプトに公開鍵ハッシュを設定し、ロック解除時にはそのハッシュに対応する公開鍵を提出する必要があり、これは基本的に通常のビットコイン送金と同じ考え方です。
この時点で、ビットコインノードは、どの公開鍵がロックスクリプトに設定されているかを判断します。とロックスクリプトで指定された公開鍵ハッシュ、つまり、ロック解除者によって提出された「鍵」とUTXOによってプリセットされた「ロック」が一致することを確認します。
さらに、P2PKHシナリオでは。トランザクションを受け取ると、ビットコインノードはユーザーから与えられたロック解除スクリプトScriptSigを、ロック解除されるUTXOのロックスクリプトScriptPubkeyとスプライスし、BTCスクリプトの実行環境内で実行します。次の画像は、実行前のスプライスを示しています:
おそらく読者はBTCスクリプト環境をご存じないでしょうから、ここで簡単に紹介します。まず、BTCスクリプトは2つの要素を含んでいます:
BTCスクリプトは2つの要素を含んでいます。: 18px;">データとオペコード。データとオペコードは左から右の順番でスタックに押され、指定されたロジックに従って実行され、最終的な結果を得ます(スタックが何であるかの詳細には触れませんが、それはChatgptの読者に任せます)。
例えば上の画像左は、誰かがロック解除スクリプトを含むScriptSigというスクリプトをアップロードしているところです。左側には、誰かがアップロードしたロック解除スクリプト ScriptSig があり、そこには彼のデジタル署名と公開鍵が含まれています。右側には、ロック スクリプト ScriptPubkey があり、そこには UTXO の生成時に UTXO の作成者によって設定されたオペコードの一部とデータが含まれています (これらのオペコードのそれぞれの意味を知る必要はなく、一般的な意味だけを知る必要があります)。
DUP, HASH160, EQUALVERIFYは、上の画像の右側にあるロックスクリプトのオペコードです、EQUALVERIFYと上図の右側のロッキングスクリプトの他のオペコードは、左側のアンロッキングスクリプトで運ばれた公開鍵とロッキングスクリプトの公開鍵ハッシュプリセットを比較する役割を担っており、もしそれらが等しければ、アンロッキングスクリプトでアップロードされた公開鍵とロッキングスクリプトの公開鍵ハッシュプリセットが一致することを意味し、最初の検証をパスします。
しかし、問題があります。UTXOロックダウン・スクリプトの内容は、実際にはチェーン上で公開されています。UTXOロックスクリプトの内容は実際にチェーン上で公開されており、誰でもその中に含まれる公開鍵ハッシュを観察することができ、誰でも対応する公開鍵をアップロードして「選ばれた」人物だと偽ることができる。したがって、公開鍵と公開鍵ハッシュを検証した後、トランザクションの開始者が本当に 公開鍵の実際の管理者であることを検証する必要がある。これは電子署名の検証を必要とする。lockスクリプトのCHECKSIGオペコードが電子署名の検証を担当する。
要約すると、P2PKHシナリオでは、以下のようになる。トランザクションの開始者によって提出されたロック解除スクリプトには公開鍵とデジタル署名が含まれており、ロックスクリプトで指定された公開鍵ハッシュと一致する必要があります。family: Arial, Helvetica, sans-serif; font-size: 18px;">
(この画像は動的です:P2PKHシナリオにおけるビットコインのロック解除スクリプトの概略図)
もちろん、ビットコインのネットワークは、ビットコインネットワークを使用しています。もちろん、ビットコインネットワークは、公開鍵/公開鍵ハッシュへの支払いだけでなく、P2SH(スクリプトハッシュへの支払い)など、さまざまなトランザクションタイプをサポートしています。それはすべて、UTXOが作成されたときにカスタムロッキングスクリプトが何に設定されているかに依存します。
P2SHシナリオでは、ロックスクリプトにスクリプトハッシュをプリセットすることができ、ロック解除スクリプトはスクリプトハッシュに対応するスクリプトの完全な内容で送信する必要があることに注意することが重要です。ビットコインノードはこのスクリプトを実行でき、マルチシグネチャ検証ロジックがこのスクリプトで定義されている場合、ビットコインチェーン上でマルチシグネチャウォレット効果を実装するために使用できます。
もちろん、P2SHのシナリオでは、UTXOの作成者は、ビットコインチェーンのロックを解除する人に、ビットコインチェーンのロックを解除させる必要があります。UTXOの作成者は、将来UTXOのロックを解除する人に、スクリプトハッシュに対応するスクリプトの内容を事前に知らせなければなりません。両者がこのスクリプトの内容を知っている限り、マルチシグネチャよりも複雑なビジネスロジックを実装することができます。
はっきりさせておくと、ビットコインチェーンはブロック内にどのUTXOがあるかを直接記録しません。どのUTXOがどのアドレスに関連付けられているかを直接記録するのではなく、UTXOがどの公開鍵ハッシュ/どのスクリプトハッシュでロック解除できるかを記録するだけです。
ブロックブラウザとウォレットのインターフェイスでxxアドレスのxxビットコインが表示されるのは、ブロックブラウザとウォレットプロジェクトがそのデータを解析し、すべてのブロックをスキャンし、ロックスクリプトで宣言された公開鍵ハッシュ/スクリプトハッシュに基づいて対応する「アドレス」を計算するからです。そして、アドレスxxという名前の下に何枚のビットコインがあるかを表示します。
前のセクションのアンロックとロックのスクリプト、およびUTXOのアンロック処理を再検討すると、問題が見えてきます。アンロック処理では、問題が見つかります。トランザクションのデジタル署名はアンロックスクリプトに含まれており、署名を生成するときにアンロックスクリプトをカバーすることはできません(署名を生成するために使用されるパラメータには署名自体を含めることはできません)。そのため、デジタル署名はアンロックスクリプトの外側の部分しかカバーすることができません。つまり、トランザクションデータのバックボーンに関連付けることしかできず、トランザクションデータ全体をカバーすることはできません。
このように、たとえトランザクションのロック解除スクリプトが中間業者によって少し改ざんされたとしても、署名チェックの結果には影響しない。例えば、ビットコインノードやマイニングプールは、署名確認や取引結果に影響を与えることなく、取引のデータをわずかに変更するような他のデータを取引のロック解除スクリプトに挿入し、処理の最後に取引のハッシュ/取引IDを変更することができる。これはトランザクションの拡張性問題と呼ばれる。
これの欠点は、複数のトランザクションを連続して開始しようとする場合、また、トランザクションIDを変更しようとする場合です。順次依存関係(例えば、トランザクション3はトランザクション2の出力を参照し、トランザクション2はトランザクション1の出力を参照する)を持つ複数のトランザクションを連続して開始しようとする場合、その行に続くトランザクションは前のトランザクションのID(ハッシュ)を参照しなければならず、マイニングプールやビットコインノードなどの仲介者がロック解除スクリプトの内容をいじって、トランザクションのアップロードされたハッシュを期待するものとは異なるものにすることができ、事前に作成した順次依存関係が無効になってしまいます。事前に作成したトランザクションは無効になります。
実際、DLC BridgeとBitVM2のシナリオでは、トランザクションのシーケンシャルな相関関係は一括で構築されます。は逐次相関でトランザクションを構築するため、前述のシナリオは珍しいことではありません。
簡単に言うと、トランザクションの拡張性の問題は、トランザクションID/ハッシュがロック解除スクリプトのデータを含んで計算されることであり、ビットコインノードのような仲介者はロック解除スクリプトの内容を微調整することができ、その結果、トランザクションIDはユーザーが期待するものと一致しない。実際、これはビットコインの初期設計の思慮の浅さからくる歴史的なお荷物です。
分離された証人/SegWitアップグレードは、実際にはトランザクションIDとトランザクションIDを同じレベルに変更する方法でした。アップグレードは、実際には、トランザクション ID とロック解除スクリプトを完全に切り離すことであり、 トランザクション ハッシュの計算にロック解除スクリプトのデータを含める必要はありません。SegWitのアップグレードに従うUTXOロックスクリプトは、トークンとして機能するように、デフォルトで最初に「OP_0」と呼ばれるオペコードを持つようになり、対応するロック解除スクリプトはSigScriptからWitnessに名前が変更されます。
Segregated Witness Ruleがあれば、トランザクションの拡張性は適切に対処され、ビットコインノードに送信されるトランザクションデータの微調整について心配する必要はありません。もちろん、あまり複雑に考える必要はありません。P2WSHの機能は、先ほど説明したP2SHと根本的に異なるわけではなく、UTXOロックスクリプトにスクリプトハッシュをプリセットしておき、アンロックスクリプトの提出者がスクリプトの内容に対応するハッシュをチェーンに提出して実行するのを待つことができます。
しかし、実装しようとしているスクリプトが特に大きく、多くのコードを含んでいる場合、UTXOメソッドを使用することで簡単に実装できます。特に大量のコードを含むスクリプトの場合、通常の方法ではスクリプト全体をビットコインチェーンに提出することはできません(ブロックごとにサイズ制限があります)。ではどうするか?BitVMはTaproot上に構築された複雑なソリューションであり、チェーンにアップロードするスクリプトを合理化・単純化するためにTaprootを必要とします。
Taproot Assetsプロトコルを通じたライトニング・ネットワークへのステーブルコインの統合は、決済とフィンテック業界に革命をもたらすだろう。
JinseFinanceタップルート・アセットの重要なポイントをご紹介します。
JinseFinanceタップルート・コンセンサスは、シュナー署名、MASTコントラクト、SPVノード・ネットワークといったコア・コンポーネントを備え、完全にネイティブなビットコイン技術に基づいて構築されたBTC L2ソリューションである。
JinseFinance彼はこの問題について何も説明しておらず、仮想通貨コミュニティは推測を始めています。
Beincryptoデジタルトークンの劇的な弱気の動きは、いくつかの暗号とビットコインの投資家の心に疑問をもたらしました...
Bitcoinistlnd 0.15 ベータ (v0.15-ベータ) という名前の最新のソフトウェア リリースは、開発者がビットコイン ネットワークの機能を活用して、より多くのユース ケースのソリューションを作成できるようにすることを目的としています。
CointelegraphTaproot のアップグレードの内容と想像力を理解するには、まずビットコインについて理解する必要があります。
Cointelegraph