著者: アシュ・リー、ノア・ホー
ビットコインに番号を付けて刻印する機能を提供する Ordinal プロトコルの作成により、ビットコイン エコシステムで利用できる製品の範囲が広がり、ビットコイン エコシステムに新しいダイナミクスがもたらされました。この記事では、各ビットコインに番号を付けて追跡する方法や、刻印と番号の関係など、Ordinal プロトコルの詳細について説明します。ただし、このトピックに進む前に、次に説明する内容をよりよく理解できるように、まずビットコインの基本的な背景を理解する必要があります。
この記事を読み終えると、ビットコインの取引メカニズムと支払いモデルをマスターし、Ordinals が各サトシの番号付けと追跡を実装する方法、および刻印がどのように作成され、取引されるかを理解できるようになります。さらに、さまざまな種類のウォレットの違いも理解できるようになります。
I. ビットコインの背景
ビットコインは現金のような取引モデルを採用しており、その支払いは従来の口座残高ベースのモデルとは異なる UTXO と呼ばれるモデルに基づいています。たとえば、銀行口座の記帳モデルプロセスでは、A が B に 100 ドルを送金すると、銀行は取引プロセスを構成する 3 つのステップを記録します。最初のステップは、A の口座から 100 ドルを引き出すことであり、このステップのレコード ID は tid1 です。2 番目のステップは、B の口座に 100 ドルを入金することであり、このステップのレコード ID は tid2 です。3 番目のステップは、tid1 と tid2 を関連付ける転送レコードを記録することです。これは、A の口座が 100 ドル減少し、B の口座が 100 ドル増加したことを示します。このようにして、A と B の間の転送関係が記録され、将来的に照会および追跡することができます。次に、UTXO と支払いモデルを紹介しながら、ビットコインの支払いがどのように行われるかを説明します。
UTTXO
ビットコイン ブロックチェーンでは、すべての残高は未使用トランザクション出力 (UTXO) と呼ばれるリストに保存されます。各 UTXO には、一定数のビットコインと、そのビットコインの所有者に関する情報が含まれており、使用可能かどうかが示されています。所有者の名前で署名された現金小切手のようなもので、所有者が署名する限り、別の人に譲渡して使用できます。特定のアドレスでは、そのすべての UTXO 金額が、そのアドレスのウォレットの残高に加算されます。すべての UTXO をトラバースすることで、各アドレスの現在の残高を取得できます。すべての UTXO 金額を加算すると、現在流通しているビットコインの合計金額になります。
ビットコインのトランザクション構造では、各トランザクションは複数の入力と出力で構成され、各入力は既存の UTXO への参照であり、各出力は資金が受け取られる新しいアドレスと対応する金額を指定します。トランザクションが開始されると、その入力セクションで参照される UTXO は、トランザクションが完了するまで再利用されないように一時的にロックされます。このトランザクションがマイナーによってブロックに正常にパックされ、ネットワークによって確認された場合にのみ、関連する UTXO ステータスが変更されます。具体的には、トランザクションへの入力として使用された UTXO は、消費されたことを示すために UTXO リストから削除され、トランザクションの出力によって新しい UTXO が生成され、UTXO リストに追加されます。古いキャッシュ チェックが使用され、期限切れになると、新しい所有者が所有権を持つ新しいキャッシュ チェックが生成されることが理解できます。
各 UTXO は単一のトランザクションで 1 回しか使用できないことを強調しておく価値があります。入力として消費されると、UTXO リストから永久に削除されます。同時に、新しく生成された出力は新しい UTXO としてリストに追加されます。UTXO リストは常に変化しており、新しいブロックが作成されるたびに、それに応じて更新されます。また、ブロックチェーンのトランザクション履歴を分析することで、任意の時点での UTXO リストの状態を再構築できます。
さらに、トランザクションの合計入力額は、通常、合計出力額をわずかに上回ります。この差額はトランザクション手数料またはネットワーク手数料と呼ばれ、トランザクションをブロックにまとめる作業を担当するマイナーへのインセンティブとして与えられます。ネットワーク手数料の大きさはトランザクションの複雑さに比例するため、より多くの入力と出力を含むトランザクションでは、通常、より高いネットワーク手数料が必要になります。
ここで、ビットコイン取引の構造をより視覚的に理解するために、具体的な例を見てみましょう。ビットコイン取引の構造は次のとおりです。変数 vin と vout は、それぞれビットコイン取引の「入力」と「出力」を表します。ビットコイン取引は、アカウントの形をしたデータの変更を記録する従来のアカウント残高モデルとは異なり、入力と出力では表されません。

blockchain.com でランダムなトランザクション レコードを選択して分析できます。下の図は、ハッシュ ID 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2 のトランザクションを示しています。これには 1 つの入力と 2 つの出力が含まれます。

bitcoin-cli コマンドの getrawtransaction とdecoderawtransaction を使用すると、上記のトランザクションの基礎となる構造を確認できます。

ビットコイン ネットワークでは、トランザクション出力に、アドレス (公開鍵ハッシュ) と金額 (ビットコイン) という 2 つの重要な情報が含まれています。トランザクション出力が他のトランザクションの入力に使用されない場合、このトランザクション出力は未使用トランザクション出力 (UTXO) と呼ばれます。UTXO 内の公開鍵に対応する秘密鍵を持つ人は誰でも、この UTXO を使用したり使用したりする権利を持ちます。
上記のコードの「vin」の情報を見てみましょう。これは、このトランザクションで使用された UTXO が、0 番目の出力 (トランザクションの出力は複数ある場合があり、インデックスは 0 から番号が付けられます) の別のトランザクション (ID 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18) からのものであることを示しています。この UTXO の量はトランザクションの履歴から見つけることができます (たとえば、0.1)。したがって、この値 0.1 はトランザクションに明示的に書き込む必要はなく、UTXO 情報を検索することで取得されます。このトランザクションの「vout」には 2 つの出力があり、別のトランザクションが入力として消費するまで、新しい残高と保有者に対応する 2 つの新しい UTXO です。
支払いモデル
ビットコイン ネットワークの支払いモデルをよりよく理解するために、A から B への n ビットコインの支払いプロセスの例を示します。次の図は、ユーザー A からユーザー B に 3 ビットコインを送信するプロセスを示しています。

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

II. サトシの番号付けと追跡
ビットコインの総数は 2100 万で、各ビットコインには 10^8 サトシ (Sat) が含まれています。したがって、ビットコイン ネットワークには 2100 万 * 10^8 サトシが存在します。Ordinals プロトコルは、各サトシに一意の番号を付けることによって、これらのサトシを区別します。このセクションでは、プロトコルがこれをどのように行うか、また各サトシが配置されているアカウントをどのように追跡するかについて説明します。さらに、サトシの希少性の分類についても説明します。
サトシの番号
Ordinals プロトコルによれば、サトシは採掘された順番に番号が付けられます。次の図は、0 番目のブロックから採掘された 0 番目のサトシの表現を示しています。

序数にはさまざまな表現方法があります: (https://docs.ordinals.com/overview.html)
整数表記: [2099994106992659]() サトシがマイニングされた順序に従って割り当てられた序数。
10進表記: [3891094.16797]() 最初の数字はサトシが採掘されたブロックの高さ、2番目の数字はブロック内のサトシのオフセットです。
度数表記: [3°111094′214″16797‴]()。最初の数字は0から始まるサイクル、2番目は半減期のブロックのインデックス、3番目は難易度調整期間のブロックのインデックス、最後の数字はブロック内のsatのインデックスです。
パーセンタイル表記: [99.99971949060254%]() 。ビットコインの供給量におけるサトシの位置をパーセンテージで表します。
名前: [satoshi]()。a から z までの文字を使用した序数のエンコード。
新しく採掘されたビットコインに番号を付ける方法の例を見ていきましょう。ビットコイン ブロックチェーンのブロック 795952 を見ると、これらのトランザクションの最初のトランザクションである Tx 3a1f...b177 がマイナーの報酬 (コインベース トランザクション) を記録していることがわかります。このトランザクションには、新しく採掘されたビットコインが含まれています。これは、マイナーへのパッケージ報酬として使用され、トランザクションの開始者によってマイナーに支払われる手数料も含まれています。下の図の入力を見ると、その UTXO ID がゼロの文字列とブロックの高さで構成されていることがわかります。出力アドレスはマイナーのウォレット アドレスであり、金額は上記の報酬と手数料の合計です。

マイナーへの出力のセクションをさらに見てみると、アドレス、金額、含まれるサトシの分布がわかります。前述のように、これらにはマイニング報酬と手数料が含まれています。このうち、緑色のサトシ番号情報 1941220000000000~1941220625000000 はマイニング報酬によって生成された新しいサトシであり、残りの 712 サトシ レコードはブロック内のすべての手数料に対応しています。

Sat 1941220000000000 という数字を確認できます。そのブロック番号は 795952 で、小数は 795952.0 です。つまり、この Satoshi をマイニングするためのブロックの高さは 795952 であり、このブロック内の Satoshi の番号は 0 で、その後に珍しいという希少性マークが続きます。これについては、後ほど詳しく説明します。

サトシのフロー
各 BTC はマイニング報酬を通じて生成されるため、すべて追跡可能です。ビットコイン アカウントは UTXO モデルを使用します。ユーザー A がマイニングによって 100 番目から 110 番目のサトシを取得したと仮定します (10 サトシは、id adc123 の同じ UTXO にまとめて保存されます)。ユーザー A がユーザー B に 5 サトシを支払う場合、トランザクションの入力として ID abc123 を使用することを選択します。5 サトシがユーザー B に与えられ、5 サトシがお釣りとしてユーザー A に返されます。5 サトシの両方のコピーは、それぞれ ID abc456 と abc789 の 2 つの UTXO にまとめて保存されます。上記の UTXO ID とサトシの数は例としてのみ示されており、実際には最小数は 546sats であり、UTXO ID はこの形式では表現されません。

上記の取引では、ユーザーAの10サトシのフローパスは
マイニングにより、[100, 110) の番号を持つ 10 サトシが生成されます。つまり、100 番目から 109 番目の番号の付いたサトシは、ID abc123 の UTXO に格納され、その所有者はユーザー A です。
A が転送を行うと、10 サトシは 5 サトシずつ 2 つの部分に分割されます。ここでは「先入れ先出し」の原則が採用されています。つまり、サトシの番号はトランザクション出力のインデックスによって決まります。出力の順序がユーザー A、ユーザー B の順であると仮定すると、ユーザー A の残りの 5 サトシは [100 , 105) と番号が付けられ、ID abc456 の UTXO に保存されます。一方、ユーザー B の 5 サトシは [105, 110) と番号が付けられ、ID abc789 の UTXO に保存されます。
Rare Satoshi
Ordinals プロトコルの派生として、Satoshi の希少性は採掘された順序に基づいて定義できます。これにより、いくつかの特別な Satoshi は異なる希少性を持つことになります。以下は、さまざまな Satoshi の希少性レベルです。
共通: ブロックの最初の SAT ではない任意の SAT (総供給量: 2.1 京)
アンコモン: 各ブロックの最初のサット (総供給数: 6,929,999)
レア:各難易度調整期間の最初のサト(総供給数:3437)
エピック: 各半減期の最初の sat (総供給量: 32)
伝説: 各サイクルの最初のサタデー(合計供給量: 5)
神話: ジェネシスブロックの最初のサット (合計供給数: 1)
この希少なサトシの概念は、ビットコイン エコシステムにさらなる関心と価値をもたらす可能性があります。希少性の異なるサトシは市場で異なる価値を持つ可能性があり、コレクターや投資家を引き付けます。
III. 刻印方法
Ordinals は、ビットコイン以外のチェーン上の他の NFT とは大きく異なります。主な違いの 1 つは、Ordinals のメタデータが特定の場所に保存されないことです。代わりに、メタデータはトランザクションの Witness データに埋め込まれます。これが、ビットコイン トランザクションの特定の部分に碑文のように「刻まれる」ため、「碑文」と呼ばれる理由です。データは特定の satoshi に添付されます。この碑文プロセスは、Segregated Witness (SegWitness) と Pay-to-Taproot (P2TR) を通じて実装され、コミットと公開の 2 つのフェーズで構成されます。指定された satoshi にあらゆる種類のコンテンツ (テキスト、画像、ビデオなど) を碑文することができます。以下では、より直接的な別のストレージ方法である OP_RETURN を紹介し、それが碑文の手段として使用されない理由を説明します。また、isolated witness と Pay-to-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 は、2015 年にビットコインのコア開発者である Pieter Wuille によって提案され、最終的に 2017 年にバージョン 0.16.0 で正式に採用された、ビットコインの主要なプロトコル アップグレードです。Segregated Witness の Segregated は、分離、隔離を意味し、Witness はトランザクションに関連付けられた署名されたものです。したがって、SegWit は、特定のトランザクション署名データ (witness データ) をトランザクションから分離することです。
署名をトランザクション関連データから分離することの主な利点は、ビットコイン ブロックに保存されるデータのサイズが小さくなることです。これにより、各ブロックにさらに多くのトランザクションを保存するための余分な容量が与えられ、ネットワークはより多くのトランザクションを処理でき、送信者が支払う手数料が低くなります。技術的に言えば、これは、scriptSig 情報をベース ブロックから取り出して新しいデータ構造に配置することを意味します。Segwit アップグレードでは、トランザクション出力に新しい監視フィールドが導入され、プライバシーとパフォーマンスが確保されます。監視データはデータ保存用に設計されていませんが、実際には、刻印メタデータなどのコンテンツを保存する機会が与えられます。次の図を使用して、分離された監視をより視覚的に理解しましょう。



主根
P2TR は、2021 年に実施された Taproot アップグレードで導入されたビットコインのトランザクション出力タイプであり、さまざまなトランザクション条件をよりプライベートな方法でブロックチェーンに保存できます。P2TR は Ordinals の刻印において重要な役割を果たします。刻印は基本的に、特定のデータ コンテンツをビットコイン トランザクションに埋め込みますが、Taproot アップグレード、特に P2TR により、この埋め込まれたデータはより柔軟で経済的になります。
まず、Taproot スクリプトの保存方法により、事実上コンテンツが無制限であるスクリプトを消費する Taproot スクリプト パスに刻印コンテンツを保存できます。同時に、証人データの割引も受けられるため、刻印コンテンツの保存が比較的経済的になります。Taproot スクリプトは既存の Taproot 出力からのみ使用できるため、刻印は 2 段階の送信/公開プロセスを使用して送信/公開されます。まず、送信トランザクションで、刻印コンテンツを含むスクリプトを約束する Taproot 出力が作成されます。次に、公開トランザクションで、送信トランザクションによって作成された出力が消費され、チェーン上の刻印コンテンツが公開されます。
このアプローチにより、リソースの消費が大幅に削減されます。P2TR が使用されない場合、証人情報はトランザクションの出力に保存されます。したがって、この出力が消費されない限り、証人情報は UTXO セットに保存されたままになります。対照的に、P2TR が使用される場合、証人情報はコミット フェーズ中に生成されたトランザクションには表示されないため、UTXO セットには書き込まれません。この UTXO が消費された場合にのみ、証人情報は公開フェーズ中のトランザクション入力に表示されます。p2tr では、メタデータをビットコイン ブロックチェーンに書き込むことができますが、UTXO セットには表示されません。UTXO セットの維持/変更にはより多くのリソースが必要になるため、このアプローチにより多くのリソースが節約されます。
碑文
Ordinals プロトコルは、SegWit がビットコイン ネットワーク コンテンツへの書き込みサイズ制限を緩和したことを利用し、証人データに碑文コンテンツを保存しています。Taproot により、ビットコイン トランザクションに任意の証人データを保存しやすくなり、Ordinals 開発者の Casey Rodarmor は、古いオペコード (OP_FALSE、OP_IF、OP_PUSH) を「エンベロープ」として再利用して、「碑文」と呼ばれる任意のデータを保存できるようになりました。
刻印を鋳造するプロセスは、次の 2 つのステップで構成されます。
まず、送信されたトランザクションの刻印の内容を含むスクリプトの Commit-to-Taproot 出力を作成する必要があります。保存される形式は Taproot です。つまり、前のトランザクションの出力は P2TR (Pay-To-Taproot) で、後者のトランザクションの入力は、特定の形式が証人 Taproot スクリプトに埋め込まれています。最初に、文字列 ord がスタックに配置され、刻印が他の用途を持つことを区別します。OP_PUSH 1 は、次のプッシュにコンテンツ タイプが含まれることを示し、OP_PUSH 0 は、後続のデータ プッシュにコンテンツ自体が含まれることを示します。大規模な刻印では、複数のデータ プッシュを使用する必要があります。これは、taproot の数少ない制限の 1 つとして、個々のデータ プッシュが 520 バイトを超えてはならないことが挙げられるためです。この時点で、刻印のデータは、トランザクション出力の UTXO にすでに対応していますが、公開されていません。

「Hello, world!」という文字列を含むテキストの表記は上記のようにシリアル化されます。 次に、公開トランザクションでトランザクションを送信することによって作成された出力を消費する必要があります。この段階では、その刻印に対応する UTXO を入力としてトランザクションが開始されます。この時点で、対応する刻印の内容がネットワーク全体に公開されます。
上記の 2 つの手順により、刻印内容は刻印される UTXO にバインドされます。また、上記の satoshi の配置に従って、その入力 UTXO に対応する最初の satoshi に刻印が行われ、刻印内容はトランザクションを示す入力に含まれます。上記の satoshi の流れと追跡の概要に従って、特別な内容が刻印されたこの satoshi は、転送、購入、販売、紛失、復元できます。刻印を繰り返すことはできないことに注意してください。そうしないと、後の刻印が無効になります。
このプロセスを、前述のコミットと公開という 2 つの主要なフェーズで構成される小さな BTC NFT 画像の例を記載して詳しく説明します。まず、最初のトランザクションのハッシュ ID が 2ddf9...f585c であることがわかります。このトランザクションの出力には証人データが含まれておらず、Web ページに関連する記載がないことがわかります。

次に、ハッシュIDがe7454...7c0e1であるレコードの第2段階を見てみましょう。ここでは、証人刻印の内容である序数刻印の情報を見ることができます。このトランザクションの入力アドレスは前のものの出力アドレスであり、0.00000546BTC(546 Satoshi)の出力は、このNFTを独自のアドレスに送信します。また、この刻印が配置されているサトシは、Sat 1893640468329373にあります。


Bitcoin ウォレットでは、この資産を確認できます。この NFT を取引したい場合は、他の人のアドレスに直接送信できます。つまり、この UTXO を送信することで、刻印のフローが完了します。

IV. ビットコインウォレット
Ordinals とは何か、Satoshi の流れ、刻印についての知識を理解した後、現在、BRC-20、ORC-20、BRC-721、GBRC-721 などの関連する派生プロトコルなど、トークン情報や NFT の小さな画像をサポートして表示するための対応するウォレットを必要とする多くのアプリケーション シナリオが出現しています。このセクションでは、さまざまなビットコイン ウォレット アドレスの概念と特性を紹介します。
ビットコイン アドレスは 1、3、または bc1 で始まります。電子メール アドレスと同様に、他のビットコイン ユーザーと共有して、ウォレットに直接ビットコインを送信することができます。セキュリティの観点から見ると、ビットコイン アドレスには機密コンテンツは含まれません。アカウントのセキュリティを損なうことなく、どこにでも公開できます。電子メール アドレスとは異なり、必要に応じて新しいアドレスを何度でも作成でき、そのすべてがウォレットに直接資金を入金します。実際、多くの最新のウォレットは、プライバシーを最大限に高めるために、トランザクションごとに新しいアドレスを自動的に作成します。ウォレットは、単にアドレスと、その中の資金のロックを解除するキーのコレクションです。まず、ビットコイン ウォレットのアドレスがどのように作成されるかを知る必要があります。
ビットコインの秘密鍵と公開鍵
Bitcoin は楕円曲線 Secp256k1 を使用します。ここで、「秘密鍵」は 1 から n-1 の間の乱数です。n は非常に大きな数 (256 ビット) で、n は科学的記数法でおよそ 1.15792*10^77 と表されます。
範囲が非常に広いため、他人の秘密鍵を推測することはほぼ不可能です。このランダムな整数の秘密鍵は 256 ビットで表すことができ、エンコードする方法は多数あります。WIF、WIF 圧縮形式の秘密鍵が暗号化されていない場合は、デコードして元の「ランダムな整数」を取得できます。別の方法は BIP38 で、AES アルゴリズムを使用して秘密鍵を暗号化することを提案しています。このスキームから取得された秘密鍵は文字 6P で始まり、この秘密鍵は、さまざまなビットコイン ウォレットにインポートするためのパスワードとして入力する必要があります。これが、私たちが通常使用する秘密鍵です。
次に、楕円曲線の式 K = kG を使用して、秘密鍵 k から Bitcoin の公開鍵 K を生成します。G はベース ポイントであり、secp256k1 のパラメーターです。K の 2 つの座標は、公開鍵の 2 つの表現であり、「非圧縮形式」と「圧縮形式」です。

非圧縮。先頭に 0x04 プレフィックスが付いた、2 つの座標 x と y の直接連結です。
圧縮形式。y が偶数の場合は 02 x、y が奇数の場合は 03 x としてコード化されます。
ビットコインアドレス
さまざまな種類のビットコイン アドレスは、次の図に 4 つの表現で示されています。

レガシー (P2PKH) 形式
例: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
アドレスは「1」で始まり、現在でも使用されている Bitcoin の元のアドレス形式です。これは P2PKH (Pay To PubKey Hash) とも呼ばれ、ハッシュを通じて公開鍵を計算することで取得されます。
ネストされた SegWit (P2SH) 形式
例: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
ネストされた P2SH は、既存の P2SH アドレス (「3」で始まる) を取得し、それを SegWit アドレスでラップします。
ネイティブ SegWit (Bech32) 形式
例: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
bc1 で始まるアドレスは BIP0173 で提案されており、ネイティブの isolation Witness アドレスです。bech32 でエンコードされたアドレスは、SegWit 専用に開発されたアドレス形式です。bech32 は 2017 年後半に BIP173 で定義され、形式の主な特徴の 1 つとなっています。主な特徴の 1 つは、大文字と小文字を区別しないことです (アドレスには 0-9、az のみが含まれます)。これにより、混乱を避けるのに効果的であり、入力時に読みやすくなります。アドレスに必要な文字数が少なくなるため、アドレスは従来の Base58 ではなく Base32 を使用してエンコードされ、計算がより簡単かつ効率的になります。QR コードにデータをより緊密に格納できます。bech32 は、より高いセキュリティ、チェックサムとエラー検出コードのより優れた最適化を提供し、無効なアドレスの可能性を最小限に抑えます。
Bech32 アドレス自体は SegWit と互換性があります。SegWit アドレスを P2SH アドレスに入れるのに追加のスペースは必要ないため、Bech32 形式のアドレスでは手数料が低くなります。Bech32 アドレスは、古い Base58 (Base58Check エンコードは、Bitcoin のバイト配列を人間がエンコードできる文字列にエンコードするために使用されます) アドレスに比べて、QR コードが小さい、エラー防止機能が高い、セキュリティが高い、大文字と小文字が区別されない、小文字のみで構成されているため読みやすく、入力しやすく、理解しやすいなどの利点があります。
タップルート形式 (P2TR)
Bech32 には欠点があります。アドレスの最後の文字が p の場合、p の直前に任意の数の文字 q を挿入または削除しても、チェックサムは無効になりません。
Bech32 のこの欠点を軽減するために、BIP0350 では Bech32m アドレスが提案されています。
バージョン 0 のネイティブの分離された監視アドレスの場合は、以前の Bech32 を使用します。
バージョン 1 (またはそれ以降) のネイティブ分離監視アドレスの場合、新しい Bech32m が使用されます。
Bech32m アドレスの場合、バージョン 1 が使用されると、アドレスは常に bc1p (つまり Taproot アドレス) で始まります。具体的には、ローカルの分離された証人のように、ウォレットはシード フレーズと暗号化フレーズで構成できます。これらは、階層的な決定論的ウォレットで任意のパス アドレスを導出するために使用される拡張公開キーと秘密キーを生成するために使用されます。主な目的は、BRC-20 と BTC などの NFT を保存することです。
V. 当社について
Spectrum Labs は、ブロックチェーン研究に重点を置く修士号と博士号取得者、およびブロックチェーン業界のベテランで構成されるチームです。私たちは、ブロックチェーン研究チェーン技術とその応用に注力し、人々がブロックチェーンをより深く理解できるように支援しています。Spectrum Labs の主な活動には、研究レポートの作成、カリキュラムの開発、ツールの開発などがあります。
BTC NFT 中国コミュニティ(中文社区)は、世界中の中国コミュニティの新規参入者のための BTC NFT 中国コミュニケーションプラザです。
