ビットコインブロックチェーン技術:タプロート。 Taprootの背後にあるアイデアは、P2SHとMASTと一緒に動作するマルチジグSchnorrシグネチャを介してトランザクションにロジックを追加できるようにすることです。 本質的に、Taproot は、条件が満たされたときに何が起こるかについての指示を含むシグネチャ出力を作成します。
Taprootは、Bitcoinネットワーク内でスマートな契約のような機能を作成します。ユーザーは、単純な支払い取引として出力されるスクリプトを介してトランザクションにロジックを追加できます。
Taprootの大きな利点は、簡単に元の提案者、グレッグ・マクスウェルによってここに説明されています:
「私は、この建設が、固定当事者のスマートコントラクトのための可能な限り最大の匿名性を可能にすることで、可能な限り簡単な支払いのように見せると信じています。 これは、一般的なケースではオーバーヘッドなしでこれを達成し、スケッチや非実用的なテクニックを呼び出し、契約参加者の間の相互作用の余分なラウンドを必要とし、他のデータの耐久性のあるストレージを必要としません。」
P2SH-スクリプトへの支払いハッシュ
P2SHは、タプロートが正常に動作するために不可欠です。 すべてのBitcoinsは本質的にスクリプト内で「ロックアップ」されています。ブロックチェーン内のトランザクションに埋め込まれた数行のコードで、次のトランザクションでコインを使う方法を定義します。 支出条件は、通常、コインの所有権を証明するための署名を提供することを含みます。 他のよく知られている条件には、タイムロック(コインは特定のブロックの高さまたは日付の後にのみ使用できます)またはmultisig(コインは、秘密鍵のセットから特定の数の秘密鍵が署名を提供する場合にのみ使用できます)があります。
P2SHは、コインの所有者だけが、彼らが費やすことができる方法を知ることができます。 所有者がコインを使うと、スクリプト全体と同時にスクリプトへの「解決策」が明らかになります。 誰でも最初のハッシュを使用して、提供されたスクリプトが実際にコインをロックしている元のスクリプトであることを確認し、スクリプトの要件が満たされたとすぐに結論付けることができます。
それでも、コインが使われたとき、満たされなかった条件を含め、満たされた可能性のある条件をすべて明らかにする必要があります。 これには2つの主な欠点があります。
A)データ量が多い(特に条件が多い場合)
B)プライバシーに悪い
基本的に、誰もが資金が費やされた可能性のあるさまざまな方法を学びます。たとえば、どのような種類の財布が使用されたのか、さらにはユーザーが開示したくない情報を明らかにすることができます。
タプロットを入力
Taprootは興味深い実現に基づいています。どんなに複雑であっても、ほぼすべてのMASTのような構造は、すべての参加者が結果に同意し、単に一緒に決済取引にサインオフすることを可能にする条件を含めることができます。 簡単に言えば、MASTはMerkle Treesを組み合わせたデータ構造です。これは、セット全体を表示せずに特定のデータセットの情報を証明する機能です。AST(または抽象構文木)を使用して、ユーザーがプログラムを個々の部分に分割できるようにすることによってトランザクションにロジックを追加します。
今、お金が協力的に費やされた場合、すべての参加者は署名を「しきい値の署名」に結合し、スクリプトで調整します。 結果として得られる「しきい値署名 xスクリプト」は、資金を費やすことを可能にします。 しかし、外の世界では、これはすべて通常の公開鍵と通常の署名のように見えるので、通常の単一のトランザクションです。
ご想像のとおり、Taproot は複数のシグニチャを 1 つのシグニチャに集約することで Schnorr シグニチャを利用しています。
Bitcoinのコア開発者ジミー・ソングによるTaprootの仕組みの詳細な技術的な説明をお探しの場合は、以下のビデオをご覧ください。
Taprootは、P2SH 機能を追加することで機能します。スクリプトを分離ステートメントのコレクションに分割するという前提で、使用するスクリプトの一部だけを明らかにします。 これにより、受人は、ログスケールの枝の数だけを明らかにすることができます。 これにより、追加の格納要件が不要なため、ユーザーのプライバシーが大幅に向上し、スケーラビリティが向上します。
TaprootはBitcoinトランザクションをブロックチェーンエクスプローラでまったく同じように見えるようにするために働き、トランザクション間の違いを伝えることは不可能になり、Bitcoinは当然のことながら非常に良いプライバシーを提供します。
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.