Ordinals Protocolの原則とBitcoinのインスクリプションについての記事を学ぶ

上級1/1/2024, 4:54:08 AM
この記事では、Ordinalsプロトコルの技術的な詳細とBTCアドレス詳細の進化について説明しています。

Ordinals Protocolの誕生により、Bitcoinに番号付けと刻印の機能が提供され、これによりBitcoinエコシステムの製品範囲が拡大し、新たな活力がもたらされました。この記事では、各Bitcoinがどのように番号付けおよび追跡されるか、および刻印と番号の関係など、Ordinals Protocolの詳細について詳しく説明します。しかし、このトピックにさらに深く入る前に、次に何が起こるかをよりよく理解するために、いくつかの基本的なBitcoinの背景を最初に理解する必要があります。

この記事を読んだ後、あなたはビットコインの取引メカニズムと支払いモデルを習得し、Ordinalsがすべてのサトシを番号付けして追跡する方法、およびインスクリプションが作成および取引される方法を学びます。また、さまざまな種類のウォレットの違いについても学ぶことができます。

I. ビットコインの背景

Bitcoinは現金のような取引モデル(現金システム)を使用しており、その支払い方法はUTXOと呼ばれるモデルに基づいています。このモデルは従来の口座残高に基づくモデルとは異なります。例えば、銀行の勘定簿付けモデルのプロセスでは、AがBに100元を送金する場合、銀行は3つのステップを記録します。これらの3つのステップが取引プロセスを形成します。最初のステップは、Aの口座から100元を差し引くことです。このステップの記録IDはtid1です。2番目のステップは、Bの口座に100元を入金することです。このステップの記録IDはtid2です。3番目のステップは、送金記録を記録することです。この記録はtid1とtid2をリンクし、口座Aから100元が減少し、口座Bに100元が増加したことを示します。このように、AとBの間の送金関係が記録され、将来的に照会および追跡することができます。これから、UTXOと支払いモデルを紹介することを通じてBitcoinの支払い方法について説明します。

UTXO

ビットコインのブロックチェーンでは、すべての残高が「未使用取引出力(UTXO)」と呼ばれるリストに格納されます。各UTXOには、一定量のビットコインとそのビットコインの所有者に関する情報、およびそれらが利用可能かどうかが含まれています。それは、その持ち主の名前が書かれた現金小切手のようなものです。持ち主が署名すれば、それを他の人に使用する権利を譲渡できます。特定のアドレスについては、そのUTXOのすべての金額がそのアドレスのウォレットの残高に加算されます。すべてのUTXOを調べることで、各アドレスの現在の残高を取得できます。すべてのUTXOの金額の合計が現在流通しているビットコインの総量です。

ビットコインの取引構造では、各取引には複数のインプットとアウトプットが含まれています。各インプットは既存のUTXOへの参照であり、各アウトプットは新しい資金受領アドレスと対応する金額を指定しています。取引が開始されると、インプットセクションで参照されているUTXOは再利用を防ぐために一時的にロックされます。取引がブロック(ブロック)にパッケージ化され、ネットワークによって確認されたときにのみ、関連するUTXOの状態が変わります。具体的には、取引のインプットに使用されたUTXOはUTXOリストから削除され、それらが消費されたことを示し、取引のアウトプットは新しいUTXOを生成し、UTXOリストに追加されます。古い現金小切手が使用されてから無効になり、新しい所有者によって所有される新しい現金小切手が生成されたと理解することができます。

各UTXOは1回の取引でのみ使用できることを強調する価値があります。入力として消費されると、UTXOリストから永久に削除されます。一方、新しく生成された出力は新しいUTXOとしてリストに追加されます。UTXOリストは常に変化しており、新しいブロックが作成されるたびに適切に更新されます。また、ブロックチェーンの取引履歴を分析することで、任意の時点でUTXOリストの状態を再構築することができます。

また、通常、取引の総入力額はその総出力額をわずかに上回ります。この差額は、取引手数料(取引手数料)またはネットワーク手数料(ネットワーク手数料)と呼ばれ、取引をブロックにパッケージ化するマイナーに対するインセンティブとして与えられます。ネットワーク料金の額は、取引の複雑さに比例しており、より多くの入力と出力を持つ取引には通常、より高いネットワーク料金が必要です。

ビットコインの取引構造をよりよく理解するために、具体的な例を通じて深く分析します。 ビットコインの取引構造は次のとおりです。 vin と vout という2つの変数は、それぞれビットコイン取引の「入力」と「出力」を表しています。 ビットコイン取引は、口座のデータ変更を記録する従来の口座残高モデルのようなものではなく、入力と出力によって表現されます。

blockchain.comで取引記録をランダムに選択して分析することができます。以下の図は、ハッシュIDが0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2のトランザクションです。1つの入力と2つの出力を含んでいます。

bitcoin-cliコマンドのgetrawtransactionおよびdecoderawtransactionを使用することで、上記トランザクションの基本的な構造を表示することができます。

ビットコインネットワークでは、取引の出力には2つの重要な情報が含まれています:アドレス(公開鍵ハッシュ)と金額(ビットコイン単位)。1つの取引の出力が別の取引の入力で使用されていない場合、その取引の出力は未使用取引の出力(UTXO)と呼ばれます。UTXO内の公開鍵に対応する秘密鍵を持っている人物は、このUTXOを使用(つまり支出)する権利を持っています。

上記のコードで「vin」の情報を見てみましょう。「vin」は、この取引で使用されるUTXOが別の取引から来ていることを示しています(そのIDは7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18です)。このUTXOの金額は、過去の取引から見つけることができます(例えば、0.1)。したがって、この取引では、ユーザーは0.1 BTCを費やしました。0.1という値は取引に明示的に書かれる必要はありませんが、UTXOの情報を検索することで得られます。この取引の「vout」には2つの出力があります。これら2つの出力は、新しい残高と保有者に対応する2つの新しいUTXOであり、別の取引がそれらを入力として消費するまで保持されます。

  1. ユーザーAにとって、最初に所有するすべてのUTXOセット、つまり、ユーザーAがコントロールできるすべてのビットコインを特定する必要があります。
  2. このセットから1つ以上のUTXOを入力として選択します。これらの入力の金額の合計は、支払われる金額n(3 BTC)よりも大きいm(2 + 0.8 + 0.5 = 3.3 BTC)です。
  3. ユーザーAは、トランザクションのために2つのアウトプットを設定します。1つのアウトプットはBのアドレスに支払われ、金額はn(3 BTC)であり、もう1つのアウトプットはA自身のゼロ化アドレスに支払われます。 金額はm-n-fee(3.3-3-0.001 = 0.299 BTC)です。ユーザーのウォレットは通常、複数のアドレスで構成されています。通常、各アドレスは1度だけ使用され、ゼロはデフォルトで新しいアドレスに返されます。
  4. マイナーがこの取引をチェーンにパッケージ化して確認した後、Bは取引情報を受け取ることができます。ブロックサイズには上限があります(約1 MB)、マイナーは高い取引率(手数料率=手数料/サイズ)の取引を優先して確認し、最高の手数料を得ることができます。リアルタイムでマイニング取引手数料の状況を確認することができます。メンプール送金プロセス中の最速確認を希望する場合、High Priority(ハイプライオリティ)またはCustom(カスタム)の適切な取引レートを選択することができます。

II. サトシのナンバリングとトラッキング

ビットコインの総数は2,100万で、各ビットコインには10^8サトシ(サトシ、Sat)が含まれています。したがって、ビットコインネットワーク上には21,000万×10^8サトシがあります。オーディナルズプロトコルはこれらのサトシを区別し、各サトシに一意の番号を付けます。このセクションでは、この合意が各サトシに一意の番号を付け、そのアカウントを追跡する方法について説明します。さらに、サトシの希少性分類も紹介されます。

サトシの番号

Ordinals Agreementによると、Satoshiは採掘された順に番号が付けられています。下の図は、0番目のSatoshiが0番目のブロックで表されている方法を示しています。

サトシを表現する方法はたくさんあります:

  1. 整数記号: たとえば、2099994106992659などは、サトシによって採掘順に割り当てられたシリアルナンバーを示しています。
  2. 小数点の記号:例えば、3891094.16797。最初の数字はサトシが採掘されたブロックの高さを示し、2番目の数字はブロック内のサトシの数を示します。
  3. 度記号:例えば、3°111094′214″16797。最初の数字は、0から始まる期間番号で、2番目の数字は半減期のブロックインデックス、3番目の数字は難度調整期間中のブロックインデックスで、最後の数字はブロック内のSATインデックスです。
  4. パーセント記号: たとえば、99.99971949060254% は、ビットコイン供給におけるサトシの位置をパーセンテージで表したものです。
  5. 名前:たとえば、佐藤。文字aからzを使用して順番に数字を符号化する名前。

新たに発掘されたビットコインに番号を付ける方法を説明するために、例を使用します。 ビットコインのブロックチェーンの795952番目のブロックを見ると、最初のトランザクションTx 3a1f… b177がマイナーの報酬(Coinbaseトランザクション)を記録していることがわかります。 このトランザクションには、新たに発掘されたビットコイン(マイナー向けのパッケージ化された報酬)と、トランザクションのイニシエーターによってマイナーに支払われる手数料が含まれています。 以下の画像の入力を見ることで、そのUTxO IDがゼロの文字列とブロック高さから構成されていることがわかります。 出力アドレスはマイナーのウォレットアドレスであり、金額は上記の報酬と手数料の合計です。

マイナーセクションの出力をよく見てみると、含まれるSatoshiのアドレス、金額、および分配がわかります。前述のように、これらにはマイニング報酬や手数料が含まれます。その中でも、緑のSATS番号情報1941220000000000-1941220625000000は、マイニング報酬によって生成された新しいSatoshiであり、残りの712 Satoshiレコードは、このブロック内のすべての処理手数料に対応しています。

Sat 1941220000000000の数を検証できます。そのブロック番号は795952で、小数記号(小数)は795952.0です。これは、このサトシを採掘するためのブロック高さが795952であることを意味し、このブロック内の数は0であり、その後に続く希少性(レアリティ)は一般的であることが示されています。後のセクションで詳しく説明します。

スマートサーキュレーション

すべてのBTCは採掘報酬を通じて生成されるため、すべてが追跡可能です。 BitcoinアカウントはUTXOモデルを使用しています。たとえば、ユーザーAが採掘を通じて100番目から110番目のサトシを取得したとします(10サトシは同じID adc123でUTXO全体として保存されています)。ユーザーAがユーザーBに5サトシを支払いたいとき、トランザクションの入力としてID abc123を選択します。そのうち5サトシがユーザーBに与えられ、5サトシがユーザーAにゼロとして返されます。これらの5サトシの2つのコピーは、それぞれIDがabc456とabc789で2つのUTXOに保存されています。上記で言及されているUTXO IDとサトシの数は、例としてのみ表示されています。実際の状況では、送信されるサトシの最小数は546に制限されており、UTXO IDはこの形式で表現されていません。

上記の取引において、ユーザーAの10サトシの転送経路は次のとおりです:

  1. マイニングは10サトシを生成し、その数字は[100*、110)です。*は、100番目から109番目のサトシがUTXOにID ABC123で格納されており、その所有者はユーザーAであることを示しています。
  2. Aがお金を送金すると、10サトシが2つに分割され、それぞれ5サトシになります。ここでは「先入れ先出し」の原則が使用されており、つまり、サトシの数値の順位はトランザクションのアウトプット内のインデックスによって決定されます。出力順がまずユーザーAで、次にユーザーBであると仮定すると、ユーザーAの残りの5サトシの番号は[100, 105)であり、UTXOのIDがABC456に格納され、一方、ユーザーBの5サトシの番号は[105, 110)であり、UTXOのIDがABC789に格納されています。

希少性(レアサトシ)

Ordinals Protocolの派生物として、Satoshiの希少性は、採掘される順番に基づいて定義することができます。これにより、特定の特別なSatoshiには異なる希少度のレベルがあることになります。以下は、異なるタイプの希少度です。

  1. 一般的な通常レベル:ブロック内の最初のサトシ以外の任意のサトシ(総供給量は2,100兆ドル)
  2. 希少な優れたレベル: 各ブロックの最初のサトシ(総供給量は6929999)
  3. Rare Level: 各難易度調整期間の最初のサトシ(総供給量は3437)
  4. エピック レベル:各ハーフィング後の最初のサトシ(総供給量は32)
  5. LEGENDARY LEGENDARY LEGENDARY: 各サイクルの最初のサトシ(総供給量は5)
  6. 神話的な神話的なレベル:ジェネシスブロックの最初のサトシ(総供給量は1)

この珍しい賢いコンセプトは、ビットコインエコシステムにさらなる楽しさと価値をもたらす可能性があります。異なる希少性のサトシは市場で異なる価値を持ち、コレクターや投資家を惹きつけるかもしれません。

3. インスクリプション方法

オーディナルは、他の非ビットコインオンチェーンNFTとは大きく異なります。その中で、主な違いは、序数のメタデータが特定の場所に保存されないことです。代わりに、このメタデータはトランザクションのwitnessデータ(witnessフィールド)に埋め込まれており、このデータはビットコイントランザクションの特定の部分に碑文のように「刻印」され、このデータは特定のサトシに添付されるため、これを「碑文(碑文)」と呼びます。この登録プロセスは、分離されたwitness(SegWit)と "pay-to-taproot (P2TR)" (pay-to-taproot (P2TR))によって実現されます。提出(コミット)と開示(公開)の2段階があり、指定されたスマートボードにあらゆる形式のコンテンツ(テキスト、画像、動画など)を刻印することができます。以下OP_RETURN、より直接的な保存方法を紹介し、なぜそれが碑文の手段として使用されなかったのかを説明します。同時に、分離された証人とTaprootへの支払いとは何か、そしてそれらが碑文でどのような役割を果たしているかを紹介します。最後に、碑文がどのように作られているかを紹介します。

OP_RETURE

Bitcoin Coreクライアントのバージョン0.9では、RETURN演算子を使用して妥協がついた。 **RETURNを使用すると、開発者はトランザクション出力に80バイトの非支払いデータを追加できる。 **偽の支払いとは異なり、RETURNは明確な検証可能な消費不可の出力を作成する。そのようなデータはUTXOセットに保存する必要はない。RETURN出力はブロックチェーンに記録される。これらはディスク容量を消費し、ブロックチェーンのサイズを増加させるが、UTXO集中に保存されていないため、UTXOメモリプールを拡大させることはなく、全ノードの高コストなメモリコストを増加させることもない。

OP_RETURNはビットコインブロックチェーンに情報を格納するための非常に直接的な手段ですが、潜在的なインスクリプション方法でもあります。ただし、OP_RETURNの制限により、メタデータの保存に関するいくつかの課題に直面しています。まず、OP_RETURNはデータを80バイトしか格納できないため、より大きなデータ量を保存する必要がある場合、この制限は明らかに満たすことができません。第二に、OP_RETURNデータはトランザクションのアウトプットセクションに保存されます。このデータはUTXOで中央集権的に保存されていませんが、ブロックチェーンのストレージスペースを占有し、ブロックチェーンのサイズを増加させます。最後に、OP_RETURNを使用するとトランザクション手数料が高くなります。なぜなら、これらのトランザクションを投稿するにはより多く支払う必要があるからです。

隔離証人

一方、SegWitはこれらの問題を克服する新しいアプローチを提供します。SegWitはBitcoinの重要なプロトコルアップグレードです。これは、2015年にBitcoinコア開発者のPieter Wuilleによって提案され、2017年の0.16.0バージョンで正式に採用されました。分離されたウィットネス(segregated witness)のsegregatedは分離または孤立を意味し、witnessはトランザクションに関連する署名です。したがって、SegWitは特定のトランザクション署名データ(ウィットネスデータ)をトランザクションから分離します。

署名をトランザクション関連データから分離する主な利点は、ビットコインブロックに格納されるデータのサイズを削減することです。これにより、各ブロックには追加の容量があり、より多くの取引を保存できるため、ネットワークはより多くの取引を処理し、送信者は処理手数料を支払う必要があります。技術的には、スクリプト署名(scriptSig)情報は基本構造(ベースブロック)から取得され、新しいデータ構造に配置されます。検証作業を行うノードとマイナーは、この新しいデータ構造内のスクリプト署名を検証して、取引が有効であることを確認します。セグウィットのアップグレードにより、プライバシーとパフォーマンスを確保するために、トランザクション出力に新しいウィットネスフィールドが導入されました。ウィットネスデータはデータストレージ用に設計されていませんが、インスクリプションメタデータなどの保存の機会を提供してくれます。検疫ウィットネスをよりよく理解するために、以下の画像を使用しましょう。

タップルート

P2TRはビットコインのトランザクション出力の一種です。これは2021年のTaprootアップグレードで導入されました。これにより、異なるトランザクション条件をブロックチェーン上でよりプライベートに保存することができます。Ordinals’のインスクリプションでは、P2TRが重要な役割を果たしています。インスクリプションは基本的に特定のデータコンテンツをビットコインのトランザクションに埋め込んでおり、特にP2TRを含むTaprootのアップグレードにより、この埋め込まれたデータがより柔軟で経済的になりました。

まず、Taprootスクリプトの格納方法により、インスクリプションコンテンツをTaprootスクリプトパス支出スクリプトに格納することができます。これらのスクリプトにはほとんど制限がなく、同時に証人データに割引を得ることもできるため、インスクリプションコンテンツの格納は比較的経済的です。Taprootスクリプトの消費は既存のTaproot出力からのみ行われるため、インスクリプションは二段階の提出/開示プロセスを使用します。まず、取引を提出する際に、インスクリプションのコンテンツを含むスクリプトを約束するTaproot出力が作成されました。そして、開示取引で、取引を提出して作成された出力が消費され、それによりインスクリプションのコンテンツがチェーン上で開示されました。

この方法により、リソースの消費が大幅に削減されました。P2TRが使用されていない場合、ウィットネス情報はトランザクションの出力に格納されます。このように、この出力が消費されていない限り、ウィットネス情報は常にUTXOプールに格納されます。逆に、P2TRが使用されている場合、送信段階で生成されたトランザクションにウィットネス情報は表示されないため、UTXOセットに書き込まれません。このUTXOが使用されると、開示段階でトランザクションの入力にウィットネス情報が表示されます。P2TRにより、メタデータをBitcoinブロックチェーンに書き込むことができますが、決してUTXOには表示されません。UTXOセットの維持/変更にはより多くのリソースが必要ですので、この方法は著しいリソースを節約できます。

インスクリプション

Ordinalsプロトコルは、Bitcoinネットワークに書かれたコンテンツのサイズ制限を緩和するためにSegWitを使用し、インスクリプションコンテンツをウィットネスデータに格納します。これにより、最大4MBのメタデータを格納できます。Taprootは、Bitcoin取引に任意のウィットネスデータを格納することを容易にし、Ordinalsの開発者であるCasey Rodarmorが古いオペコード(OP_FALSE、OP_IF、OP_PUSH)を再利用して、「エンベロープ」と呼ばれる「インスクリプション」というものに任意のデータを格納することを可能にします。

インスクリプションを鋳造するプロセスは、以下の2つのステップから構成されています:

まず、インスクリプションを含むスクリプトのTaproot出力への提出トランザクションで約束を作成する必要があります。ストレージ形式はTaprootであり、前のトランザクションの出力がP2TR(Pay-To-Taproot)であり、後のトランザクションの入力が特定の形式でTaprootスクリプトに内容を埋め込みます。文字列ordは、インスクリプションに他の用途がある可能性を排除するために最初にスタックされます。OP_PUSH 1は、次のプッシュがコンテンツタイプを含むことを示し、OP_PUSH 0は、その後のデータプッシュがコンテンツ自体を含むことを示します。大きなインスクリプションは、taprootの数少ない制限の1つである、単一のデータプッシュが520バイトを超えることはできないということから、複数のデータプッシュを使用する必要があります。この時点で、インスクリプションのデータはトランザクションのUTXO出力に適用されていますが、まだ開示されていません。

第二に、トランザクション内の購入申請トランザクションによって作成された出力を公開する必要があります。この段階では、そのインスクリプションに対応するUTXOを入力として使用してトランザクションが開始されます。この時点で、対応するインスクリプションの内容が全ネットワークに公開されました。

上記の2つのステップを通じて、インスクリプションの内容が彫刻されたUTXOにバインドされました。また、上記で説明されたSatoshiのポジショニングに従い、インスクリプションは、UTXOの入力に対応する最初のSatoshiに実行され、インスクリプションの内容は、トランザクションを示す入力に含まれています。上記で説明したSatoshiの流通と追跡に関する紹介によると、特別な内容で彫刻されたこのSatoshiは、転送、購入、売却、紛失、回収が可能です。インスクリプションは繰り返すことができず、それ以降のインスクリプションは無効になりますことに注意してください。

このプロセスを詳しく説明します。小さなBTC NFT画像の例を刻印することで、このプロセスは主に以前に言及された提出(確約)と開示(明らかにする)の2つの段階を含みます。まず、最初の取引のハッシュIDが2ddf9... f585cであることに注目します。この取引の出力には証人データが含まれておらず、ページには関連する刻印がありませんでした。

次に、第2ステージの記録を見てみましょう。ハッシュIDはe7454... 7c0e1です。ここでは、オーディナルインスクリプションに関する情報、つまり、証人インスクリプションの内容が見られます。この取引の入力アドレスは前の取引の出力アドレスであり、出力0.00000546 BTC(546サトシ)がこのNFTを自分自身のアドレスに送信しています。同時に、このインスクリプションが1893640468329373にある場所を見つけるためにSat Find Satoshiも使用できます。

ビットコインウォレットでは、この資産を見ることができます。このNFTを取引したい場合、他の人のアドレスに直接送信することができます。つまり、このUTXOを送信し、これによりインスクリプションの流通が完了します。

4. ビットコインウォレット

Ordinalsエコシステムについて学んだ後、サトシの流通やインスクリプションに関する知識など、現在は多くのアプリケーションシナリオがあります。BRC-20、ORC-20、BRC-721、GBRC-721などの関連派生契約の出現であれば、トークン情報や小さなNFT画像をサポートして表示する対応するウォレットが必要です。このセクションでは、異なるBitcoinウォレットアドレスの概念と特性について紹介します。

ビットコインアドレスは、1、3、またはbc1で始まります。電子メールアドレスと同様に、他のビットコインユーザーと共有することができ、彼らはそれを使用してビットコインを直接ウォレットに送金することができます。セキュリティの観点から見ると、ビットコインアドレスには機密情報はありません。アカウントのセキュリティを危険にさらすことなく、どこにでも投稿することができます。電子メールアドレスとは異なり、必要に応じて新しいアドレスを作成でき、そのすべてが直接ウォレットに資金を入金します。実際、多くの現代のウォレットは、プライバシーを最大限に活用するために、すべての取引に対して新しいアドレスを自動的に作成します。ウォレットは単にアドレスとその中の資金を開示するためのキーのコレクションです。まず、ビットコインウォレットアドレスがどのように生成されるかを知る必要があります。

ビットコインの秘密鍵と公開鍵

Bitcoinは楕円曲線secp256k1を使用します。「秘密鍵」は1からn-1までのランダムな数です。nは大きな数(256ビット)で、nは約1.15792*10^77という科学的表記で表されます。範囲は非常に広大で、他人の秘密鍵を推測するのはほぼ不可能です。このランダム整数の秘密鍵は256ビットを使用してエンコードする方法が多数あります。WIFまたはWIF-圧縮を使用する場合、秘密鍵は暗号化されていないため、元の「ランダム整数」をデコードして取得できます。別の方法としてBIP38があります。この方法ではAESアルゴリズムを使用して秘密鍵を暗号化することが提案されています。この方式で取得した秘密鍵は文字6Pで始まります。この秘密鍵はさまざまなBitcoinウォレットにインポートする必要があります。これが通常私たちが使用する秘密鍵です。

その後、楕円曲線の式K = kGを使用して、プライベートキーkからBitcoinの公開キーKを生成します。Gはベースポイントであり、secp256k1のパラメータです。Kの2つの座標、つまり公開キーの2つの表現である「非圧縮形式」と「圧縮形式」を取得できます。

  1. 非圧縮形式は、2つの座標xとyを直接接続し、その前に0x04接頭辞を追加することです。
  2. 圧縮形式は、yが偶数の場合、コードは02 xであり、yが奇数の場合、コードは03 xです。

ビットコインアドレス

以下の図に、様々な種類のビットコインアドレスが表示されています。これらを表現する方法は4つあります。

1.Legacy (P2PKH)形式

例: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u

「1」で始まるアドレスはビットコインの元のアドレス形式であり、今日でも使用されています。公開鍵からハッシュ計算を通じて取得され、Pay To PubKey Hash(公開鍵ハッシュへの支払い)の略称であるP2PKHとも呼ばれています。

2. ネストされたSegWit(P2SH)形式

Example: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan

アドレスは「3」で始まります。P2SHはPay To Script Hash(Pay To Script Hash)の略であり、レガシーアドレスよりも複雑な機能をサポートしています。ネストされたP2SHは既存のP2SHアドレス(「3」で始まる)を取得し、SegWitアドレスでカプセル化します。

3.ネイティブSegWit(Bech32)フォーマット

BIP0173で提案されたbc1で始まるアドレスは、ネイティブな隔離証人アドレスです。Bech32エンコードされたアドレスは、SegWit向けに特別に開発されたアドレス形式です。Bech32は2017年末にBIP173で定義されました。この形式の主な特徴の1つは、大文字小文字を区別しないことです(アドレスには0-9、azのみ含まれるため)、そのため混乱を効果的に避け、入力時に読みやすくなります。アドレスには文字数が少なくて済むため、従来のBase58ではなくBase32エンコーディングが使用され、より便利で効率的な計算が可能です。データはQRコードによりより密に保存できます。Bech32はより高いセキュリティを提供し、検証およびエラー検出コードをより最適化し、無効なアドレスの可能性を最小限に抑えます。

Bech32アドレス自体はSegWit互換です。SegWitアドレスをP2SHアドレスに入れるための追加スペースは必要ありませんので、Bech32形式のアドレスを使用すると手数料が低くなります。Bech32アドレスには、古いBase58(Base58Checkコーディングはビットコインのバイト配列を人間がエンコード可能な文字列にエンコードするために使用されます)アドレスに比べていくつかの利点があります: QRコードが小さくなります; よりエラーに強くなります; より安全です; 大文字と小文字を区別しません; 小文字のみで構成されているため、読みやすく、タイプしやすく、理解しやすいです。

4.Taprootフォーマット(P2TR)

Bech32には欠点があります:pがアドレスの最後の文字の場合、pの直前にqを挿入または削除しても、そのチェックサムは無効になりません。

Bech32の上記の欠点を緩和するために、BIP0350でBech32Mアドレスが提案されました。

  1. ネイティブのセグリゲーテッドウィットネスアドレスの場合は、バージョン0を使用して、以前のBech32を使用してください;
  2. ネイティブの隔離証人アドレスのバージョン1(またはそれ以上)には、新しいBech32Mを使用してください。

Bech32Mアドレスの場合、バージョンが1の場合、常にbc1pで始まります(つまり、Taprootアドレスです)。具体的には、地元の検疫証人のように、ウォレットはシードフレーズとパスフレーズで構成されることがあります。これらは拡張公開鍵と秘密鍵を生成するために使用され、階層的決定ウォレット内の任意のパスのためのアドレスを派生するために使用されます。主にBRC-20とBTCを格納するNFTです。

5. 私たちについて

スペクトラムラボは、ブロックチェーン研究に焦点を当てた修士号と博士号を持つチームであり、ブロックチェーン業界のベテランでもあります。私たちは、人々がブロックチェーンをより良く理解するのを助けるために、ブロックチェーン研究チェーン技術とその応用に取り組んでいます。スペクトラムラボの主な事業には、研究レポートの執筆、コースの執筆、ツールの開発が含まれています。

BTC NFT中国コミュニティは、世界中の中国初心者向けのBTC NFT中国取引プラットフォームです。

免責事項:

  1. この記事は[から転載されていますスペクトラムラボ]. All copyrights belong to the original author [Ash Li, Noah Ho]. もしこの転載に異議がある場合は、お問い合わせください。Gate Learnチームが promptly で対処します。
  2. 責任の免責事項:この記事で表現されている意見や見解は、著者個人のものであり、投資アドバイスを構成するものではありません。
  3. 他の言語への記事の翻訳はGate Learnチームによって行われます。特に断りがない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。

Ordinals Protocolの原則とBitcoinのインスクリプションについての記事を学ぶ

上級1/1/2024, 4:54:08 AM
この記事では、Ordinalsプロトコルの技術的な詳細とBTCアドレス詳細の進化について説明しています。

Ordinals Protocolの誕生により、Bitcoinに番号付けと刻印の機能が提供され、これによりBitcoinエコシステムの製品範囲が拡大し、新たな活力がもたらされました。この記事では、各Bitcoinがどのように番号付けおよび追跡されるか、および刻印と番号の関係など、Ordinals Protocolの詳細について詳しく説明します。しかし、このトピックにさらに深く入る前に、次に何が起こるかをよりよく理解するために、いくつかの基本的なBitcoinの背景を最初に理解する必要があります。

この記事を読んだ後、あなたはビットコインの取引メカニズムと支払いモデルを習得し、Ordinalsがすべてのサトシを番号付けして追跡する方法、およびインスクリプションが作成および取引される方法を学びます。また、さまざまな種類のウォレットの違いについても学ぶことができます。

I. ビットコインの背景

Bitcoinは現金のような取引モデル(現金システム)を使用しており、その支払い方法はUTXOと呼ばれるモデルに基づいています。このモデルは従来の口座残高に基づくモデルとは異なります。例えば、銀行の勘定簿付けモデルのプロセスでは、AがBに100元を送金する場合、銀行は3つのステップを記録します。これらの3つのステップが取引プロセスを形成します。最初のステップは、Aの口座から100元を差し引くことです。このステップの記録IDはtid1です。2番目のステップは、Bの口座に100元を入金することです。このステップの記録IDはtid2です。3番目のステップは、送金記録を記録することです。この記録はtid1とtid2をリンクし、口座Aから100元が減少し、口座Bに100元が増加したことを示します。このように、AとBの間の送金関係が記録され、将来的に照会および追跡することができます。これから、UTXOと支払いモデルを紹介することを通じてBitcoinの支払い方法について説明します。

UTXO

ビットコインのブロックチェーンでは、すべての残高が「未使用取引出力(UTXO)」と呼ばれるリストに格納されます。各UTXOには、一定量のビットコインとそのビットコインの所有者に関する情報、およびそれらが利用可能かどうかが含まれています。それは、その持ち主の名前が書かれた現金小切手のようなものです。持ち主が署名すれば、それを他の人に使用する権利を譲渡できます。特定のアドレスについては、そのUTXOのすべての金額がそのアドレスのウォレットの残高に加算されます。すべてのUTXOを調べることで、各アドレスの現在の残高を取得できます。すべてのUTXOの金額の合計が現在流通しているビットコインの総量です。

ビットコインの取引構造では、各取引には複数のインプットとアウトプットが含まれています。各インプットは既存のUTXOへの参照であり、各アウトプットは新しい資金受領アドレスと対応する金額を指定しています。取引が開始されると、インプットセクションで参照されているUTXOは再利用を防ぐために一時的にロックされます。取引がブロック(ブロック)にパッケージ化され、ネットワークによって確認されたときにのみ、関連するUTXOの状態が変わります。具体的には、取引のインプットに使用されたUTXOはUTXOリストから削除され、それらが消費されたことを示し、取引のアウトプットは新しいUTXOを生成し、UTXOリストに追加されます。古い現金小切手が使用されてから無効になり、新しい所有者によって所有される新しい現金小切手が生成されたと理解することができます。

各UTXOは1回の取引でのみ使用できることを強調する価値があります。入力として消費されると、UTXOリストから永久に削除されます。一方、新しく生成された出力は新しいUTXOとしてリストに追加されます。UTXOリストは常に変化しており、新しいブロックが作成されるたびに適切に更新されます。また、ブロックチェーンの取引履歴を分析することで、任意の時点でUTXOリストの状態を再構築することができます。

また、通常、取引の総入力額はその総出力額をわずかに上回ります。この差額は、取引手数料(取引手数料)またはネットワーク手数料(ネットワーク手数料)と呼ばれ、取引をブロックにパッケージ化するマイナーに対するインセンティブとして与えられます。ネットワーク料金の額は、取引の複雑さに比例しており、より多くの入力と出力を持つ取引には通常、より高いネットワーク料金が必要です。

ビットコインの取引構造をよりよく理解するために、具体的な例を通じて深く分析します。 ビットコインの取引構造は次のとおりです。 vin と vout という2つの変数は、それぞれビットコイン取引の「入力」と「出力」を表しています。 ビットコイン取引は、口座のデータ変更を記録する従来の口座残高モデルのようなものではなく、入力と出力によって表現されます。

blockchain.comで取引記録をランダムに選択して分析することができます。以下の図は、ハッシュIDが0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2のトランザクションです。1つの入力と2つの出力を含んでいます。

bitcoin-cliコマンドのgetrawtransactionおよびdecoderawtransactionを使用することで、上記トランザクションの基本的な構造を表示することができます。

ビットコインネットワークでは、取引の出力には2つの重要な情報が含まれています:アドレス(公開鍵ハッシュ)と金額(ビットコイン単位)。1つの取引の出力が別の取引の入力で使用されていない場合、その取引の出力は未使用取引の出力(UTXO)と呼ばれます。UTXO内の公開鍵に対応する秘密鍵を持っている人物は、このUTXOを使用(つまり支出)する権利を持っています。

上記のコードで「vin」の情報を見てみましょう。「vin」は、この取引で使用されるUTXOが別の取引から来ていることを示しています(そのIDは7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18です)。このUTXOの金額は、過去の取引から見つけることができます(例えば、0.1)。したがって、この取引では、ユーザーは0.1 BTCを費やしました。0.1という値は取引に明示的に書かれる必要はありませんが、UTXOの情報を検索することで得られます。この取引の「vout」には2つの出力があります。これら2つの出力は、新しい残高と保有者に対応する2つの新しいUTXOであり、別の取引がそれらを入力として消費するまで保持されます。

  1. ユーザーAにとって、最初に所有するすべてのUTXOセット、つまり、ユーザーAがコントロールできるすべてのビットコインを特定する必要があります。
  2. このセットから1つ以上のUTXOを入力として選択します。これらの入力の金額の合計は、支払われる金額n(3 BTC)よりも大きいm(2 + 0.8 + 0.5 = 3.3 BTC)です。
  3. ユーザーAは、トランザクションのために2つのアウトプットを設定します。1つのアウトプットはBのアドレスに支払われ、金額はn(3 BTC)であり、もう1つのアウトプットはA自身のゼロ化アドレスに支払われます。 金額はm-n-fee(3.3-3-0.001 = 0.299 BTC)です。ユーザーのウォレットは通常、複数のアドレスで構成されています。通常、各アドレスは1度だけ使用され、ゼロはデフォルトで新しいアドレスに返されます。
  4. マイナーがこの取引をチェーンにパッケージ化して確認した後、Bは取引情報を受け取ることができます。ブロックサイズには上限があります(約1 MB)、マイナーは高い取引率(手数料率=手数料/サイズ)の取引を優先して確認し、最高の手数料を得ることができます。リアルタイムでマイニング取引手数料の状況を確認することができます。メンプール送金プロセス中の最速確認を希望する場合、High Priority(ハイプライオリティ)またはCustom(カスタム)の適切な取引レートを選択することができます。

II. サトシのナンバリングとトラッキング

ビットコインの総数は2,100万で、各ビットコインには10^8サトシ(サトシ、Sat)が含まれています。したがって、ビットコインネットワーク上には21,000万×10^8サトシがあります。オーディナルズプロトコルはこれらのサトシを区別し、各サトシに一意の番号を付けます。このセクションでは、この合意が各サトシに一意の番号を付け、そのアカウントを追跡する方法について説明します。さらに、サトシの希少性分類も紹介されます。

サトシの番号

Ordinals Agreementによると、Satoshiは採掘された順に番号が付けられています。下の図は、0番目のSatoshiが0番目のブロックで表されている方法を示しています。

サトシを表現する方法はたくさんあります:

  1. 整数記号: たとえば、2099994106992659などは、サトシによって採掘順に割り当てられたシリアルナンバーを示しています。
  2. 小数点の記号:例えば、3891094.16797。最初の数字はサトシが採掘されたブロックの高さを示し、2番目の数字はブロック内のサトシの数を示します。
  3. 度記号:例えば、3°111094′214″16797。最初の数字は、0から始まる期間番号で、2番目の数字は半減期のブロックインデックス、3番目の数字は難度調整期間中のブロックインデックスで、最後の数字はブロック内のSATインデックスです。
  4. パーセント記号: たとえば、99.99971949060254% は、ビットコイン供給におけるサトシの位置をパーセンテージで表したものです。
  5. 名前:たとえば、佐藤。文字aからzを使用して順番に数字を符号化する名前。

新たに発掘されたビットコインに番号を付ける方法を説明するために、例を使用します。 ビットコインのブロックチェーンの795952番目のブロックを見ると、最初のトランザクションTx 3a1f… b177がマイナーの報酬(Coinbaseトランザクション)を記録していることがわかります。 このトランザクションには、新たに発掘されたビットコイン(マイナー向けのパッケージ化された報酬)と、トランザクションのイニシエーターによってマイナーに支払われる手数料が含まれています。 以下の画像の入力を見ることで、そのUTxO IDがゼロの文字列とブロック高さから構成されていることがわかります。 出力アドレスはマイナーのウォレットアドレスであり、金額は上記の報酬と手数料の合計です。

マイナーセクションの出力をよく見てみると、含まれるSatoshiのアドレス、金額、および分配がわかります。前述のように、これらにはマイニング報酬や手数料が含まれます。その中でも、緑のSATS番号情報1941220000000000-1941220625000000は、マイニング報酬によって生成された新しいSatoshiであり、残りの712 Satoshiレコードは、このブロック内のすべての処理手数料に対応しています。

Sat 1941220000000000の数を検証できます。そのブロック番号は795952で、小数記号(小数)は795952.0です。これは、このサトシを採掘するためのブロック高さが795952であることを意味し、このブロック内の数は0であり、その後に続く希少性(レアリティ)は一般的であることが示されています。後のセクションで詳しく説明します。

スマートサーキュレーション

すべてのBTCは採掘報酬を通じて生成されるため、すべてが追跡可能です。 BitcoinアカウントはUTXOモデルを使用しています。たとえば、ユーザーAが採掘を通じて100番目から110番目のサトシを取得したとします(10サトシは同じID adc123でUTXO全体として保存されています)。ユーザーAがユーザーBに5サトシを支払いたいとき、トランザクションの入力としてID abc123を選択します。そのうち5サトシがユーザーBに与えられ、5サトシがユーザーAにゼロとして返されます。これらの5サトシの2つのコピーは、それぞれIDがabc456とabc789で2つのUTXOに保存されています。上記で言及されているUTXO IDとサトシの数は、例としてのみ表示されています。実際の状況では、送信されるサトシの最小数は546に制限されており、UTXO IDはこの形式で表現されていません。

上記の取引において、ユーザーAの10サトシの転送経路は次のとおりです:

  1. マイニングは10サトシを生成し、その数字は[100*、110)です。*は、100番目から109番目のサトシがUTXOにID ABC123で格納されており、その所有者はユーザーAであることを示しています。
  2. Aがお金を送金すると、10サトシが2つに分割され、それぞれ5サトシになります。ここでは「先入れ先出し」の原則が使用されており、つまり、サトシの数値の順位はトランザクションのアウトプット内のインデックスによって決定されます。出力順がまずユーザーAで、次にユーザーBであると仮定すると、ユーザーAの残りの5サトシの番号は[100, 105)であり、UTXOのIDがABC456に格納され、一方、ユーザーBの5サトシの番号は[105, 110)であり、UTXOのIDがABC789に格納されています。

希少性(レアサトシ)

Ordinals Protocolの派生物として、Satoshiの希少性は、採掘される順番に基づいて定義することができます。これにより、特定の特別なSatoshiには異なる希少度のレベルがあることになります。以下は、異なるタイプの希少度です。

  1. 一般的な通常レベル:ブロック内の最初のサトシ以外の任意のサトシ(総供給量は2,100兆ドル)
  2. 希少な優れたレベル: 各ブロックの最初のサトシ(総供給量は6929999)
  3. Rare Level: 各難易度調整期間の最初のサトシ(総供給量は3437)
  4. エピック レベル:各ハーフィング後の最初のサトシ(総供給量は32)
  5. LEGENDARY LEGENDARY LEGENDARY: 各サイクルの最初のサトシ(総供給量は5)
  6. 神話的な神話的なレベル:ジェネシスブロックの最初のサトシ(総供給量は1)

この珍しい賢いコンセプトは、ビットコインエコシステムにさらなる楽しさと価値をもたらす可能性があります。異なる希少性のサトシは市場で異なる価値を持ち、コレクターや投資家を惹きつけるかもしれません。

3. インスクリプション方法

オーディナルは、他の非ビットコインオンチェーンNFTとは大きく異なります。その中で、主な違いは、序数のメタデータが特定の場所に保存されないことです。代わりに、このメタデータはトランザクションのwitnessデータ(witnessフィールド)に埋め込まれており、このデータはビットコイントランザクションの特定の部分に碑文のように「刻印」され、このデータは特定のサトシに添付されるため、これを「碑文(碑文)」と呼びます。この登録プロセスは、分離されたwitness(SegWit)と "pay-to-taproot (P2TR)" (pay-to-taproot (P2TR))によって実現されます。提出(コミット)と開示(公開)の2段階があり、指定されたスマートボードにあらゆる形式のコンテンツ(テキスト、画像、動画など)を刻印することができます。以下OP_RETURN、より直接的な保存方法を紹介し、なぜそれが碑文の手段として使用されなかったのかを説明します。同時に、分離された証人とTaprootへの支払いとは何か、そしてそれらが碑文でどのような役割を果たしているかを紹介します。最後に、碑文がどのように作られているかを紹介します。

OP_RETURE

Bitcoin Coreクライアントのバージョン0.9では、RETURN演算子を使用して妥協がついた。 **RETURNを使用すると、開発者はトランザクション出力に80バイトの非支払いデータを追加できる。 **偽の支払いとは異なり、RETURNは明確な検証可能な消費不可の出力を作成する。そのようなデータはUTXOセットに保存する必要はない。RETURN出力はブロックチェーンに記録される。これらはディスク容量を消費し、ブロックチェーンのサイズを増加させるが、UTXO集中に保存されていないため、UTXOメモリプールを拡大させることはなく、全ノードの高コストなメモリコストを増加させることもない。

OP_RETURNはビットコインブロックチェーンに情報を格納するための非常に直接的な手段ですが、潜在的なインスクリプション方法でもあります。ただし、OP_RETURNの制限により、メタデータの保存に関するいくつかの課題に直面しています。まず、OP_RETURNはデータを80バイトしか格納できないため、より大きなデータ量を保存する必要がある場合、この制限は明らかに満たすことができません。第二に、OP_RETURNデータはトランザクションのアウトプットセクションに保存されます。このデータはUTXOで中央集権的に保存されていませんが、ブロックチェーンのストレージスペースを占有し、ブロックチェーンのサイズを増加させます。最後に、OP_RETURNを使用するとトランザクション手数料が高くなります。なぜなら、これらのトランザクションを投稿するにはより多く支払う必要があるからです。

隔離証人

一方、SegWitはこれらの問題を克服する新しいアプローチを提供します。SegWitはBitcoinの重要なプロトコルアップグレードです。これは、2015年にBitcoinコア開発者のPieter Wuilleによって提案され、2017年の0.16.0バージョンで正式に採用されました。分離されたウィットネス(segregated witness)のsegregatedは分離または孤立を意味し、witnessはトランザクションに関連する署名です。したがって、SegWitは特定のトランザクション署名データ(ウィットネスデータ)をトランザクションから分離します。

署名をトランザクション関連データから分離する主な利点は、ビットコインブロックに格納されるデータのサイズを削減することです。これにより、各ブロックには追加の容量があり、より多くの取引を保存できるため、ネットワークはより多くの取引を処理し、送信者は処理手数料を支払う必要があります。技術的には、スクリプト署名(scriptSig)情報は基本構造(ベースブロック)から取得され、新しいデータ構造に配置されます。検証作業を行うノードとマイナーは、この新しいデータ構造内のスクリプト署名を検証して、取引が有効であることを確認します。セグウィットのアップグレードにより、プライバシーとパフォーマンスを確保するために、トランザクション出力に新しいウィットネスフィールドが導入されました。ウィットネスデータはデータストレージ用に設計されていませんが、インスクリプションメタデータなどの保存の機会を提供してくれます。検疫ウィットネスをよりよく理解するために、以下の画像を使用しましょう。

タップルート

P2TRはビットコインのトランザクション出力の一種です。これは2021年のTaprootアップグレードで導入されました。これにより、異なるトランザクション条件をブロックチェーン上でよりプライベートに保存することができます。Ordinals’のインスクリプションでは、P2TRが重要な役割を果たしています。インスクリプションは基本的に特定のデータコンテンツをビットコインのトランザクションに埋め込んでおり、特にP2TRを含むTaprootのアップグレードにより、この埋め込まれたデータがより柔軟で経済的になりました。

まず、Taprootスクリプトの格納方法により、インスクリプションコンテンツをTaprootスクリプトパス支出スクリプトに格納することができます。これらのスクリプトにはほとんど制限がなく、同時に証人データに割引を得ることもできるため、インスクリプションコンテンツの格納は比較的経済的です。Taprootスクリプトの消費は既存のTaproot出力からのみ行われるため、インスクリプションは二段階の提出/開示プロセスを使用します。まず、取引を提出する際に、インスクリプションのコンテンツを含むスクリプトを約束するTaproot出力が作成されました。そして、開示取引で、取引を提出して作成された出力が消費され、それによりインスクリプションのコンテンツがチェーン上で開示されました。

この方法により、リソースの消費が大幅に削減されました。P2TRが使用されていない場合、ウィットネス情報はトランザクションの出力に格納されます。このように、この出力が消費されていない限り、ウィットネス情報は常にUTXOプールに格納されます。逆に、P2TRが使用されている場合、送信段階で生成されたトランザクションにウィットネス情報は表示されないため、UTXOセットに書き込まれません。このUTXOが使用されると、開示段階でトランザクションの入力にウィットネス情報が表示されます。P2TRにより、メタデータをBitcoinブロックチェーンに書き込むことができますが、決してUTXOには表示されません。UTXOセットの維持/変更にはより多くのリソースが必要ですので、この方法は著しいリソースを節約できます。

インスクリプション

Ordinalsプロトコルは、Bitcoinネットワークに書かれたコンテンツのサイズ制限を緩和するためにSegWitを使用し、インスクリプションコンテンツをウィットネスデータに格納します。これにより、最大4MBのメタデータを格納できます。Taprootは、Bitcoin取引に任意のウィットネスデータを格納することを容易にし、Ordinalsの開発者であるCasey Rodarmorが古いオペコード(OP_FALSE、OP_IF、OP_PUSH)を再利用して、「エンベロープ」と呼ばれる「インスクリプション」というものに任意のデータを格納することを可能にします。

インスクリプションを鋳造するプロセスは、以下の2つのステップから構成されています:

まず、インスクリプションを含むスクリプトのTaproot出力への提出トランザクションで約束を作成する必要があります。ストレージ形式はTaprootであり、前のトランザクションの出力がP2TR(Pay-To-Taproot)であり、後のトランザクションの入力が特定の形式でTaprootスクリプトに内容を埋め込みます。文字列ordは、インスクリプションに他の用途がある可能性を排除するために最初にスタックされます。OP_PUSH 1は、次のプッシュがコンテンツタイプを含むことを示し、OP_PUSH 0は、その後のデータプッシュがコンテンツ自体を含むことを示します。大きなインスクリプションは、taprootの数少ない制限の1つである、単一のデータプッシュが520バイトを超えることはできないということから、複数のデータプッシュを使用する必要があります。この時点で、インスクリプションのデータはトランザクションのUTXO出力に適用されていますが、まだ開示されていません。

第二に、トランザクション内の購入申請トランザクションによって作成された出力を公開する必要があります。この段階では、そのインスクリプションに対応するUTXOを入力として使用してトランザクションが開始されます。この時点で、対応するインスクリプションの内容が全ネットワークに公開されました。

上記の2つのステップを通じて、インスクリプションの内容が彫刻されたUTXOにバインドされました。また、上記で説明されたSatoshiのポジショニングに従い、インスクリプションは、UTXOの入力に対応する最初のSatoshiに実行され、インスクリプションの内容は、トランザクションを示す入力に含まれています。上記で説明したSatoshiの流通と追跡に関する紹介によると、特別な内容で彫刻されたこのSatoshiは、転送、購入、売却、紛失、回収が可能です。インスクリプションは繰り返すことができず、それ以降のインスクリプションは無効になりますことに注意してください。

このプロセスを詳しく説明します。小さなBTC NFT画像の例を刻印することで、このプロセスは主に以前に言及された提出(確約)と開示(明らかにする)の2つの段階を含みます。まず、最初の取引のハッシュIDが2ddf9... f585cであることに注目します。この取引の出力には証人データが含まれておらず、ページには関連する刻印がありませんでした。

次に、第2ステージの記録を見てみましょう。ハッシュIDはe7454... 7c0e1です。ここでは、オーディナルインスクリプションに関する情報、つまり、証人インスクリプションの内容が見られます。この取引の入力アドレスは前の取引の出力アドレスであり、出力0.00000546 BTC(546サトシ)がこのNFTを自分自身のアドレスに送信しています。同時に、このインスクリプションが1893640468329373にある場所を見つけるためにSat Find Satoshiも使用できます。

ビットコインウォレットでは、この資産を見ることができます。このNFTを取引したい場合、他の人のアドレスに直接送信することができます。つまり、このUTXOを送信し、これによりインスクリプションの流通が完了します。

4. ビットコインウォレット

Ordinalsエコシステムについて学んだ後、サトシの流通やインスクリプションに関する知識など、現在は多くのアプリケーションシナリオがあります。BRC-20、ORC-20、BRC-721、GBRC-721などの関連派生契約の出現であれば、トークン情報や小さなNFT画像をサポートして表示する対応するウォレットが必要です。このセクションでは、異なるBitcoinウォレットアドレスの概念と特性について紹介します。

ビットコインアドレスは、1、3、またはbc1で始まります。電子メールアドレスと同様に、他のビットコインユーザーと共有することができ、彼らはそれを使用してビットコインを直接ウォレットに送金することができます。セキュリティの観点から見ると、ビットコインアドレスには機密情報はありません。アカウントのセキュリティを危険にさらすことなく、どこにでも投稿することができます。電子メールアドレスとは異なり、必要に応じて新しいアドレスを作成でき、そのすべてが直接ウォレットに資金を入金します。実際、多くの現代のウォレットは、プライバシーを最大限に活用するために、すべての取引に対して新しいアドレスを自動的に作成します。ウォレットは単にアドレスとその中の資金を開示するためのキーのコレクションです。まず、ビットコインウォレットアドレスがどのように生成されるかを知る必要があります。

ビットコインの秘密鍵と公開鍵

Bitcoinは楕円曲線secp256k1を使用します。「秘密鍵」は1からn-1までのランダムな数です。nは大きな数(256ビット)で、nは約1.15792*10^77という科学的表記で表されます。範囲は非常に広大で、他人の秘密鍵を推測するのはほぼ不可能です。このランダム整数の秘密鍵は256ビットを使用してエンコードする方法が多数あります。WIFまたはWIF-圧縮を使用する場合、秘密鍵は暗号化されていないため、元の「ランダム整数」をデコードして取得できます。別の方法としてBIP38があります。この方法ではAESアルゴリズムを使用して秘密鍵を暗号化することが提案されています。この方式で取得した秘密鍵は文字6Pで始まります。この秘密鍵はさまざまなBitcoinウォレットにインポートする必要があります。これが通常私たちが使用する秘密鍵です。

その後、楕円曲線の式K = kGを使用して、プライベートキーkからBitcoinの公開キーKを生成します。Gはベースポイントであり、secp256k1のパラメータです。Kの2つの座標、つまり公開キーの2つの表現である「非圧縮形式」と「圧縮形式」を取得できます。

  1. 非圧縮形式は、2つの座標xとyを直接接続し、その前に0x04接頭辞を追加することです。
  2. 圧縮形式は、yが偶数の場合、コードは02 xであり、yが奇数の場合、コードは03 xです。

ビットコインアドレス

以下の図に、様々な種類のビットコインアドレスが表示されています。これらを表現する方法は4つあります。

1.Legacy (P2PKH)形式

例: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u

「1」で始まるアドレスはビットコインの元のアドレス形式であり、今日でも使用されています。公開鍵からハッシュ計算を通じて取得され、Pay To PubKey Hash(公開鍵ハッシュへの支払い)の略称であるP2PKHとも呼ばれています。

2. ネストされたSegWit(P2SH)形式

Example: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan

アドレスは「3」で始まります。P2SHはPay To Script Hash(Pay To Script Hash)の略であり、レガシーアドレスよりも複雑な機能をサポートしています。ネストされたP2SHは既存のP2SHアドレス(「3」で始まる)を取得し、SegWitアドレスでカプセル化します。

3.ネイティブSegWit(Bech32)フォーマット

BIP0173で提案されたbc1で始まるアドレスは、ネイティブな隔離証人アドレスです。Bech32エンコードされたアドレスは、SegWit向けに特別に開発されたアドレス形式です。Bech32は2017年末にBIP173で定義されました。この形式の主な特徴の1つは、大文字小文字を区別しないことです(アドレスには0-9、azのみ含まれるため)、そのため混乱を効果的に避け、入力時に読みやすくなります。アドレスには文字数が少なくて済むため、従来のBase58ではなくBase32エンコーディングが使用され、より便利で効率的な計算が可能です。データはQRコードによりより密に保存できます。Bech32はより高いセキュリティを提供し、検証およびエラー検出コードをより最適化し、無効なアドレスの可能性を最小限に抑えます。

Bech32アドレス自体はSegWit互換です。SegWitアドレスをP2SHアドレスに入れるための追加スペースは必要ありませんので、Bech32形式のアドレスを使用すると手数料が低くなります。Bech32アドレスには、古いBase58(Base58Checkコーディングはビットコインのバイト配列を人間がエンコード可能な文字列にエンコードするために使用されます)アドレスに比べていくつかの利点があります: QRコードが小さくなります; よりエラーに強くなります; より安全です; 大文字と小文字を区別しません; 小文字のみで構成されているため、読みやすく、タイプしやすく、理解しやすいです。

4.Taprootフォーマット(P2TR)

Bech32には欠点があります:pがアドレスの最後の文字の場合、pの直前にqを挿入または削除しても、そのチェックサムは無効になりません。

Bech32の上記の欠点を緩和するために、BIP0350でBech32Mアドレスが提案されました。

  1. ネイティブのセグリゲーテッドウィットネスアドレスの場合は、バージョン0を使用して、以前のBech32を使用してください;
  2. ネイティブの隔離証人アドレスのバージョン1(またはそれ以上)には、新しいBech32Mを使用してください。

Bech32Mアドレスの場合、バージョンが1の場合、常にbc1pで始まります(つまり、Taprootアドレスです)。具体的には、地元の検疫証人のように、ウォレットはシードフレーズとパスフレーズで構成されることがあります。これらは拡張公開鍵と秘密鍵を生成するために使用され、階層的決定ウォレット内の任意のパスのためのアドレスを派生するために使用されます。主にBRC-20とBTCを格納するNFTです。

5. 私たちについて

スペクトラムラボは、ブロックチェーン研究に焦点を当てた修士号と博士号を持つチームであり、ブロックチェーン業界のベテランでもあります。私たちは、人々がブロックチェーンをより良く理解するのを助けるために、ブロックチェーン研究チェーン技術とその応用に取り組んでいます。スペクトラムラボの主な事業には、研究レポートの執筆、コースの執筆、ツールの開発が含まれています。

BTC NFT中国コミュニティは、世界中の中国初心者向けのBTC NFT中国取引プラットフォームです。

免責事項:

  1. この記事は[から転載されていますスペクトラムラボ]. All copyrights belong to the original author [Ash Li, Noah Ho]. もしこの転載に異議がある場合は、お問い合わせください。Gate Learnチームが promptly で対処します。
  2. 責任の免責事項:この記事で表現されている意見や見解は、著者個人のものであり、投資アドバイスを構成するものではありません。
  3. 他の言語への記事の翻訳はGate Learnチームによって行われます。特に断りがない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。
Comece agora
Inscreva-se e ganhe um cupom de
$100
!