著者:A・ジアン
記事のタイトルはBitcoiner Xiong Yue氏によるものです。
ビットコインのTaprootソフトフォークアップグレードは、ビットコインブロック高さ709632でアクティブ化されます(2021年11月15日予定)。このアップグレードには多くの重要で素晴らしいコンテンツが含まれていますが、中華圏では十分な注目を集めていません。この記事では、Taproot のアップグレード内容を技術的な観点から簡単に紹介し、ビットコインの発展の方向性を反映します。
一般的な話は、Taproot がビットコインのプライバシー、スマートコントラクト機能、均一性などを改善するというものです。ただし、Taproot のアップグレードの内容と想像力を理解するには、まずいくつかのビットコインを理解する必要があります。
ビットコインのスマートコントラクト
多くの人が理解していないのは、ビットコインもスマートコントラクト 2 のプログラミングをサポートしていますが、スマート コントラクトの種類は他のブロックチェーン (イーサリアムなど) とは異なるということです。この違いについて詳しく説明するには別の記事が必要ですが、ここでは重要ではありません。ここでは、誰もがアプリケーション シナリオを理解できるように、ビットコイン スマート コントラクト プログラミングの一般的なモジュール 3 をいくつか紹介します。
- 複数署名契約。ビットコインは、資金を使用するためのマルチ署名認証をサポートしています。N 個の記録された公開鍵の中に、(同じ操作の) M 個の公開鍵の署名に対応する秘密鍵が存在する必要があり、資金を使用できます。ビットコインは、最大 15 個の公開鍵を使用したマルチ署名コントラクトをサポートしています。
- タイムロック。ユーザーは、ファンドの利用可能な期間を指定するために 2 種類のタイム ロックを使用できます: (1) CLTV、特定の時間または特定のブロック高さによって定義され、この時間以降のみ使用できる絶対的なタイム ロック、(2) ) CSV (タイムロックに関連)。たとえば、資金は、資金を生成したトランザクションのチェーン上で 1000 ブロック後にのみ使用できます。
- 複数条件プログラミング。つまり、スクリプト内の「IF ... ELSE ...」ステートメントを使用して、同じファンドに対して複数のロック解除条件を設定すると、いずれかの条件が満たされた場合にそのファンドを使用できるようになります。例: 「A の公開キーに対応する秘密キーのロックを解除できます。または、ブロック高さ XXXX の後に、B の公開キーに対応する秘密キーのロックを解除できます。または、ブロックのチェーン上の YYYY ブロックの後に、B の公開キーに対応する秘密キーのロックを解除できます。トランザクション、A、3 つの公開鍵 B および C のいずれか 2 つに対応する秘密鍵のロックを解除できます。」
読者が想像できるように、これらのモジュールは非常にシンプルに見えますが、それらを組み合わせる可能性は数多くあります: マルチ署名契約はさまざまな主体の権限を定義し、会社運営から家族の財務まで、非常に豊富なアプリケーション シナリオに適応できます。異なる時点で異なるサブジェクトの権限を指定します。複数の条件があると、これらの権限制御の複合効果が大幅に増大します。
「この資金は私(公開鍵A)が管理できる、3ヶ月間誰も使わなかったら私(公開鍵B)が管理する」という、わずかな条件で社会再生を支援し、遺産分配効果のある契約を結ぶこともできる。 「そして 4 人の友人、5 人中 3 人がこの基金を一緒に管理できます。1 年間誰も使用しなければ、妻がこの基金を管理できます。」
ただし、これらの契約が実際に役立つためには、効率とプライバシーという 2 つの要素を無視することはできません。
効率とは、ビットコインの取引手数料が取引量に応じて計算されることを意味し、より多くの条件を含むスクリプトほどより多くのスペース(バイト数)を必要とし、取引手数料が高くなります。
プライバシーへの配慮としては、スクリプトが公開されると、一部の公開鍵が相互に関連付けられていることが他人に知られ、公開鍵の所有者の本当の身元を分析しやすくなるという点が挙げられます。
現在、ビットコインのコントラクトは P2SH の「アドレス」(実際にはハッシュ値)として具現化されています。特徴としては、契約書生成時にはスクリプトは公開できず、必要に応じてスクリプトのハッシュ値が直接支払われるが、これらの資金を支出した時点でハッシュ値に対応するスクリプトは完全に公開され、トランザクションに入れます (そうしないと、このスクリプトのハッシュが正確にこのハッシュであることを確認する方法がありません)。マルチ署名契約を例にとると、他者はマルチ署名契約スクリプトのハッシュ値を直接支払うことができますが、マルチ署名契約の参加者がこれらの資金を使用したい場合は、スクリプト全体を開示する必要があります3。
また、SegWitのアップグレード前は、シングルシグネチャの個人ウォレットとコントラクトウォレットは明確に区別されており、前者はP2PKHアドレス、後者はP2SHアドレスであることが、アドレスだけでも分かります。プライバシーにとって不利な要素。 SegWit のアップグレード後、Segregated Witness をサポートする個人ウォレットは P2SH の形式をとることもできますが、元の Segregated Witness アドレス (P2WPKH) と契約アドレス (P2WSH) は依然として別個です4 。
これを念頭に置いて、Taproot アップグレードの 3 つの部分 (MAST、Schnorr 署名、Taproot) がどのように改善できるかを見てみましょう。
マークル抽象構文ツリー (MAST)
マークル化抽象構文ツリー (MAST) 5の意味は、ビットコイン スクリプト検証におけるマークル証拠の検証をサポートすることです。
マークル ツリーは、複数のデータ要素を 1 つのハッシュ値にハッシュする暗号化方法です。ハッシュ関数の構造と特性により、特定のデータ要素がハッシュ値の生成に関与したことを証明する何らかの証拠 (ハッシュ値) が提供されることが決まります。以下の図に示すように、(隣接する) データ要素をペアで継続的にハッシュし、最終的にマークル ルートを生成します。
同様に、下の図に示すように、赤色のデータ「バナナ」が紫色のハッシュ値 (メルケル ルート) の生成に関与したことを証明したい場合は、赤色のデータと 3 つの緑色のハッシュ値を提供するだけで済みます。 -マークルルートの残りの 7 つの要素を生成します。これがマークル ツリーとマークル証明の役割です。
バナナ、ピーチ、キンカンの個別マークル証明
賢明な読者は、この関数を使用すると、コントラクトの作成者は複数の条件を異なるデータ要素に分割し、マークル ルート値をハッシュ化できると考えたに違いありません。ビットコインのロックを解除するために特定の条件が必要な場合は、これを証明するだけで十分です。条件はこのマークル ツリーに記載されており、他のすべての条件を開示する必要はありません。
はい、それがまさに MAST のやっていることです。このファンドには下図のように2つのロック解除条件があり、筆者はそれらを分離してマークルツリーでハッシュ値に抽象化し、いずれかの条件をロック解除して使用する場合、別の条件を公開することはできません。
MAST は P2SH に基づいて大きな一歩を踏み出し、その改善効果はまずプライバシーに反映されます: もともと P2SH では、コンテンツが使用されるかどうかに関係なく、使用される場合はすべてのスクリプトのコンテンツを契約で開示する必要があります。 MAST を使用すると、ユーザーは使用する必要のあるロック解除条件のみを公開するだけでよく、すべての内容を公開する必要はありませんが、同時に、他の人はあなたがまだどれだけの条件を持っているかを知りません。
第 2 に、効率も向上します。ユーザーは、使用する必要があるいくつかのスクリプトとそのマークル証拠を提供するだけで済みます。スクリプト全体が比較的大きい場合、このボリューム節約の効果は非常に明白です。
その結果、将来のビットコインユーザーは、より良い制御効果を得るために、より少ない手数料を支払うだけで多くの条件を含むコントラクトを作成することができ、さらには、マークルツリーを強化してプライバシー改善効果を得るために、いくつかのガベージ条件を意図的に含めることもできます。
これは、この記事のサブタイトル「ハッシュは銀行」の由来でもあります: ビットコインのスクリプトは、実際には資金の管理を中心に展開しています。この管理を達成するための鍵は、複数の条件です。MAST では、条件が多くても資産管理が可能ですのスクリプトもハッシュ値に圧縮でき、使用時にその一部のみを公開する必要があります。コストの削減により多くの可能性が開かれる可能性があり、ウォレット開発者がそれを発見するのを待っています。
シュノアの署名
Taproot のアップグレード後、ビットコインは楕円曲線ベースの暗号署名をサポートするだけでなく、Schnorr デジタル署名スキームもサポートします6。
Schnorr 署名の構築方法についてはここでは触れず、重要なプロパティのみを紹介します。 署名/キーの集約 - 複数の秘密キーの署名を 1 つの署名に集約でき、単一の秘密キーによってサインアウトされたように見えます。署名するときも、各秘密鍵所有者によって署名されており、署名を検証すると、これらの署名は既知の公開鍵 (もちろん、これらの参加者の公開鍵を集約した公開鍵) に対応する秘密鍵であるように見えます。キーはサインアウトしました。
言い換えれば、Schnorr 署名を使用すると、署名が 1 人によってサインアウトされたのか複数人によってサインアウトされたのかを他の人が知ることができなくなり、複数の署名のロック解除条件を集約された公開鍵で置き換えることができます。すべての nn マルチ署名契約は、Schnorr 署名によって提供されるプライバシー保護を享受できます。その最も明白なアプリケーションは Lightning Network チャネルです。これは、Lightning Network チャネルが 2 対 2 のマルチ署名契約であるためです。これ以降、他のユーザーは署名の数に基づいて支払いチャネルと個々のユーザーを区別できなくなります。
mn のマルチ署名契約については、心配しないでください。MAST があることを忘れないでください。考えられるすべてのロック解除状況をブランチに変えることができ、ブランチを使用する場合、提供される署名は集約署名だけで済みます。たとえば、2 ~ 3 の多重署名契約を作成し、公開鍵 A、B、C のうち 2 つを選択するとします。この多重署名契約の効果は、「(A、B) のいずれかがロックを解除する」と同等です。 、または (B, C) ロック解除、または (A, C) ロック解除」は、複数条件のスクリプトとして理解できます。各条件は 2-2 の複数署名であるため、対応する集約公開キーも使用できます。ロック解除条件を定義します (マルチシグネチャに関して定義する必要はありません)。したがって、特定の組み合わせで資金のロックを解除する必要がある場合、MAST を使用してブランチを公開し、署名を提供するだけでよく、他の人はそれが 1 人であるか、2 人であるか、または複数人であるかまだわかりません。
まだ終わっていないのです。
主根
私たちが理解している経路によれば、Taproot アップグレードの最後の部分は Taproot であり、これが名前の由来です。この概念を提案するにあたり、グレゴリー・マクスウェルは次のように書いています7。
マークル化されたスクリプトについて議論するときによく出てくる質問は、最も一般的で退屈な支払いと区別できないスマート コントラクトを実装できるかどうかです。そうでなければ、これらの流行の手法を使用した匿名化された出力セットは、単なるニッチなセットにすぎず、実際にはあまり意味がありません。
マクスウェル氏はここで、ビットコインのプライバシー保護は「市場に隠された大きなもの」から来ている、それが最も理解しにくい、という問題の要点を鋭く捉えた。しかし、新しい機能が導入されると、新たな「アドレス」の提案が避けられず、その機能を利用するユーザーが少ないと、各ユーザーの正体がバレる可能性が非常に高まり、このような問題が発生する可能性があります。新しい機能はまったく使用されなくなり、その意味が失われます。
また、MASTは契約のプライバシーにおいて重要な役割を果たしていますが、これまでと同じであれば、個人ウォレットは個人ウォレット、契約ウォレットは契約ウォレットということが一目で明らかであれば、 、そのようなプライバシーには依然として欠陥があると言わざるを得ません。
人々はこの個人ウォレットと契約ウォレットの区別を終わらせ、ビットコインのプライバシーに最後の仕上げを加える方法を緊急に必要としています。このため、最低限知っておくべきことは、この種の契約付きウォレットのコストは、ユーザーの日常使用においては通常の個人ウォレットと変わらない(経済的)ということです。
Taproot はそのような手法であり、鍵集約の特性を利用し、nn マルチシグネチャ契約とユーザー定義契約スクリプトの 2 つの使用パスを持つスクリプト モードを提案します。
マクスウェルの原文の例に従う: 2 人のユーザーが公開鍵 A と B を持っており、2 つの集合公開鍵 A + B = C を持ち、最終的な公開鍵 P = C + H(C||S)*G を生成すると仮定します。ここで、S はカスタム スクリプトです。最終的な公開鍵 P は、ファンドのロック解除条件を定義するために使用されます。両方のユーザーがオンラインであると仮定すると、どちらかのユーザーが署名時に秘密鍵に H(C||S) を追加する限り、資金を簡単に一緒に使用できます。たとえば、一方のみがオンラインの場合、S はB が資金を支出できる条件を設定するため、Taproot のルールでは、公開鍵 B のユーザーが、集約された公開鍵 P と H(C||S) を公開し、S を満たす条件を提供することで資金を支出することができます。
ここでは 2-2 マルチシグネチャ契約を使用していますが、鍵集約技術が利用できる限り、1-1、つまりシングルシグネチャでもこのスクリプトの記述方法を使用できるとユーザーは想像できます。重要な点は、 (1) カスタムコントラクト付きのファンドであるが、コントラクトを使用せずnnマルチシグネチャーのみを使用する場合、手数料コストはシングルサインでロック解除されたファンドと変わりません。 ! (2) nn マルチ署名を使用している場合、他の人はこの資金がロック解除されて他の方法で使用できることを知りません。
このようにして、個人ユーザーと契約ユーザーの両方を 1 つのスクリプト モード (P2TR「アドレス」) に統合することができ、個人ユーザーは、日常的に高額な手数料を支払うことを心配することなく、安全に自分の資金に契約を追加できます。ユーザーは同じ「アドレス」を使用し、ほとんどの場合自分自身を公開することなく契約を使用するため、より高い匿名性を享受できます。みんなが幸せだ。
全体として、Taproot 後は、このアドレス内の資金がロック解除されている場合、Schnorr 署名の効果により、他の人はアドレス フォームから P2TR アドレスが個人ユーザーであるか契約ユーザーであるかを区別できなくなります。署名が 1 つだけでは、他の人にはそれが個人ユーザーなのか契約ユーザーなのかがわかりません。1 人で使用しているのか、n 人で一緒に使用しているのか、このアドレスにカスタム スクリプトがあるかどうかを知ることはできません。 MAST の効果により、ユーザーがカスタム スクリプトを使用して資金を使用する場合、スクリプトを使用する必要がある部分を公開するだけで済みます。他の人はこのアドレスにカスタム スクリプトがあることを知っていますが、スクリプト全体にどのような条件が含まれているかはまだ不明です。
そのため、Taproot がビットコインのプライバシーを侵害するのではないかと疑問を持つ人もいます7 が、私はまったく心配していません。 Taproot の「アドレス」は利便性、プライバシー、経済性の点で間違いなくビットコイン史上最高であるため、ビットコインの「アドレス」タイプを統一し、ビットコイン史上最大の匿名性を形成できることが大いに期待されています。
エピローグ
暗号化技術をある程度知っている人にとって、ビットコインの開発とアップグレードについて学ぶことは非常に楽しいことであり、目を見張るものさえあります。そのアップグレードでは、人々がこのシステムを継続的に最適化するために暗号化を精力的に使用していることがわかります。システム自体のモジュール式の性質のおかげで、これらの最適化は本物です。直根もその一つです。
ビットコイン (特にタップルート) について学ぶプロセスは、読者に本当の「暗号通貨」とは何かを教えることになると私は信じています。
タップルートは、ビットコインの歴史の中で最も重要なアップグレードとなる可能性があり、史上最も純粋な暗号通貨、つまり暗号を極限まで利用し、最も軽く、最も粘り強い生命力を持った通貨を生み出すことになる。
脚注:
- ビットコインアップグレード提案Taproot技術説明、https://www.btcstudy.org/2021/09/29/bitcoin-taproot-a-technical-explanation/
- ビットコイン Wiki スマート コントラクト、https://en.wikipedia.org/wiki/Smart_contract
- マスタービットコイン中国語版第 7 章: 高度なトランザクションとスクリプト、https://github.com/tianmingyun/MasterBitcoin2CN/blob/master/ch07.md
- ビットコイン取引の種類 - パート II Segwit、https://blog.susanka.eu/types-of-bitcoin-transactions-part-ii-segwit/
- ビットコインのマークライズされた抽象構文ツリーとは、https://www.btcstudy.org/2021/09/07/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast/
- Schnorr 署名がビットコインをどのように改善するか、https://www.btcstudy.org/2021/09/09/how-schnorr-signatures-may-improve-bitcoin/
- Taproot: プライバシーを保護する切り替え可能なスクリプト、https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018- January/015614.html
- Taproot がプライバシーに与える影響を平易な言葉で説明する (https://www.btcstudy.org/2021/09/23/explain-like-im-not-a-developer-taproot-privacy/)
出典:オレンジブック
免責事項: Cointelegraph Chinese はブロックチェーンのニュース情報プラットフォームであり、提供される情報は著者の個人的な意見のみを表しており、Cointelegraph Chinese プラットフォームの立場とは何の関係もなく、投資や金融に関するアドバイスを構成するものではありません。読者の皆様におかれましては、正しい通貨概念や投資概念を確立し、リスク意識を真摯に高めていただきますようお願いいたします。