1. ビットコインの背景

ビットコインは現金に似た取引モデル(現金制)を採用しており、その決済方法は従来の口座残高ベースのモデルとは異なるUTXOと呼ばれるモデルに基づいています。

图片

例: 銀行の口座会計モデル プロセスでは、A が B に 100 元を送金するとき、銀行は 3 つのステップを記録し、これらが取引プロセスを構成します。最初のステップは A の口座から 100 元を差し引くことであり、このステップのレコード ID は tid1 です。 2 番目のステップは、B の口座に 100 元を入金することであり、このステップのレコード ID は tid2 です。 3 番目のステップは、tid1 と tid2 を関連付けて、アカウント A が 100 元減少し、アカウント B が 100 元増加したことを示す送金レコードを記録することです。

このようにして、A と B の間の転送関係が記録され、将来的にクエリや追跡が可能になります。ここでは、UTXOの導入と決済モデルによるビットコインの決済方法について説明していきます。

UTXO

ビットコインのブロックチェーンでは、すべての残高は「未使用トランザクション出力」(UTXO)と呼ばれるリストに保存されます。各 UTXO には、所有者の名前が記載された小切手と同様に、一定量のビットコイン、所有者情報、および利用可能状況が含​​まれています。この小切手に署名して他の人に譲渡することができます。

アドレスの残高は、そのすべての UTXO の合計に等しく、各アドレスの現在の残高は、UTXO リストを調べることで取得でき、これらの UTXO の合計は、すべてのビットコインの現在の総供給量を表します。

图片

ビットコインのトランザクション構造では、各トランザクションには入力と出力が含まれており、各入力は既存の UTXO への参照であり、各出力は新しい受信アドレスと金額を指定します。トランザクションが作成されると、入力に関連付けられた UTXO は再利用を防ぐために一時的にロックされ、関連付けられた UTXO ステータスは、正常にパッケージ化されてマイナーによって確認された後にのみ変更されます。

具体的には、入力 UTXO が削除され、出力で新しい UTXO が生成され、リストに追加されます。これは、古い小切手の期限が切れた後に新しい小切手が発行され、新しい小切手の所有権が新しい所有者の名前に移されるのと似ています。

各 UTXO はトランザクション内で 1 回しか使用できず、使用後は完全に削除され、新しい出力が作成されて UTXO リストに追加されることに注意してください。 UTXO リストは、新しいブロックが作成されると常に更新されます。トランザクション履歴を分析することで、任意の時点での UTXO リストの状態を再構築できます。

また、取引の投入量の合計は生産量の合計をわずかに上回るのが通常であり、この差額が取引手数料となり、K人労働者にとってインセンティブとなる。トランザクション手数料はトランザクションの複雑さに比例するため、より多くの入力と出力を伴うトランザクションでは、通常、より高いネットワーク料金が必要になります。

图片

ビットコインのトランザクション構造をより鮮明に理解するために、次の例を通してさらに詳しく学ぶことができます。ここで、「vin」はトランザクションの入力を表し、「vout」はトランザクションの出力を表します。ビットコイントランザクションは、従来の口座残高モデルではなく、インプットとアウトプットのアプローチを使用します。

图片

blockchain.com 上のトランザクション レコードをランダムに選択して分析できます。次の図は、ハッシュ ID を示しています。

0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2の取引。 1 つの入力と 2 つの出力が含まれます。

图片

bitcoin-cli コマンド getrawtransaction および decorawtransaction を使用すると、上記のトランザクションの基礎となる構造を検査できます。

图片

ビットコイン ネットワークでは、各トランザクションの出力には、アドレス (公開鍵ハッシュ) と金額 (ビットコイン) という 2 つの重要な情報が含まれます。

トランザクションの出力が他のトランザクションの入力で使用されていない場合、その出力は未使用トランザクション出力 (UTXO) と呼ばれます。 UTXO の公開鍵に対応する秘密鍵を所有する人は誰でも、この UTXO を使用する (つまり、使用する) 権利を持ちます。

上記のコードの「vin」の情報を見てみましょう。これは、このトランザクションによって消費された UTXO が、別のトランザクションの 0 番目の出力 (トランザクションには複数の出力、インデックスを持つことができます) からのものであることを示しています (その ID は 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 です)。 0から)。

このUTXOの金額(例えば0.1ビットコイン)は取引履歴から知ることができます。したがって、このトランザクションでは、このユーザーは 0.1 ビットコインを使用しました。値 0.1 はトランザクション内で明示的に書き込む必要はなく、UTXO 情報をクエリすることによって取得されます。

このトランザクションの「vout」には、新しい残高と所有者に対応する 2 つの新しい UTXO を表す 2 つの出力が含まれています。これらの新しい UTXO は、別のトランザクションが入力として消費するまで存在します。

图片

支払いモデル

ビットコイン ネットワークの支払いモデルをよりよく理解するために、例を使用して、A から B に支払われる n ビットコインの支払いプロセスを紹介します。以下の図は、ユーザー A がユーザー B に 3 ビットコインを送信するプロセスを示しています。

图片

ユーザー A の場合、まず第一に、ユーザー 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 自身の変更アドレスに支払われます。金額は mn-fee (3.3-3-0.001) =0.299BTC)。ユーザーのウォレットは通常、複数のアドレスで構成されます。通常、各アドレスは 1 回のみ使用され、変更はデフォルトで新しいアドレスに返されます。

ワーカー K がブロックチェーン上でトランザクションをパッケージ化して確認すると、受信者 B はトランザクションに関する情報を取得できるようになります。

图片

各ブロックのサイズは制限されている (通常は約 1 MB) ため、K ワーカーは、最高の手数料収益を得るために、高いトランザクション レート (fee_rate=fee/size) のトランザクションを優先します。

未確認トランザクションプール(mempool)では、Kマイニングのトランザクションレートをリアルタイムに確認できます。転送プロセス中にできるだけ早く確認を取得したい場合は、高優先度を選択するか、適切な取引レートをカスタマイズできます。

图片

2. コングの番号付けと追跡

ビットコインの総供給量は 2,100 万で、各ビットコインには 10^8 サトシ (土) が含まれています。したがって、ビットコイン ネットワークには、合計 2,100 万 * 10^8 サトシが存在します。

Ordinals プロトコルは、各サトシに番号を付ける独自の方法を使用して、サトシの固有性と、サトシが属するアカウントを正確に追跡できるようにします。また、サトシのレアリティ分類が簡素化されます。

サトシの番号

Ordinals プロトコルによれば、サトシはマイニングされた順序に従って番号が付けられます。下の図は、0 番目のブロックで採掘された 0 番目のサトシの表現を示しています。

图片

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

整数記号: 例: 2099994106992659。これは、マイニング順序に従って SATOSHI に割り当てられたシリアル番号を表します。

10 進表記: 例: 3891094.16797。1 桁目はサトシが採掘されたブロックの高さを示し、2 桁目はブロック内のサトシ番号を示します。

度記号: たとえば、3°111094'214''16797‴、最初の桁はピリオドで、0 から始まる番号が付けられます。2 桁目は半減期のブロック インデックス、3 桁目は難易度中のブロック インデックスです。調整期間、最後の桁はブロック内のSatのインデックスです。

パーセント記号: たとえば、99.99971949060254% は、ビットコイン供給におけるサトシの位置をパーセンテージで示します。

名前:例えばサトシ。 a ~ z の文字を使用してシーケンス番号をエンコードした名前。

图片

新しく採掘されたビットコインに番号を付ける方法を説明する例を見てみましょう。ビットコイン ブロックチェーンの 795952 番目のブロックを観察すると、K ワーカー (コインベース トランザクション) の報酬を記録する「Tx 3a1f...b177」という名前のトランザクションが含まれています。この取引には、K ワーカーへの報酬として使用される新たにマイニングされたビットコインと、取引開始者が K ワーカーに支払った手数料が含まれます。

入力部分を見ると、ゼロの文字列とブロックの高さで構成される UTXO の ID がわかります。出力セクションでは、これらの報酬と料金を受け取ったアドレスとその合計額を確認できます。

图片

K 個のワーカーに出力された部品をさらに調べると、アドレス、量、および含まれる SATOSHI の分布がわかります。前述したように、これには K マイニング報酬と手数料が含まれます。

このうち、緑色のサトシ番号情報 1941220000000000–1941220625000000 は、K 報酬のマイニングによって生成された新しいサトシであり、残りの 712 サトシレコードは、ブロック内のすべての手数料に対応します。

图片

Sat 1941220000000000 という番号を確認できます。

そのブロック番号は 795952 で、10 進表記 (10 進数) は 795952.0 です。これは、このサトシを採掘するブロックの高さが 795952 であり、このブロック内のサトシの数が 0 であることを意味し、その後のレアリティはアンコモンとしてマークされます。次のセクションで詳しく紹介します。

图片

コングの循環

ビットコインのトランザクション モデルは、未使用トランザクション出力 (UTXO) モデルを使用します。これは、各ビットコイン (BTC) をそのソースまで追跡できることを意味します。このプロセスを例で説明してみましょう。

ユーザー A が K をマイニングして報酬を受け取ったとします。このビットコインには 100 番目のサトシから 110 番目のサトシまでのビットコインがすべて同じ UTXO (未使用トランザクション出力) に保存されています。この UTXO の ID は adc123 です。

ここで、ユーザー A がユーザー B に 5 SATOSHI を支払いたい場合、トランザクションへの入力として ID abc123 の UTXO を使用することを選択します。このトランザクションは 5 SATOSHI をユーザー B に送信し、5 SATOSHI を釣銭としてユーザー A に返します。

これら 2 つの 5 SATOSHI は 1 つの全体になりますが、abc456 と abc789 などの 2 つの異なる UTXO に保存されます。

上記の UTXO ID と SATOSHI の数は例として示しているだけで、実際には送信される SATOSHI の最小数は 546 に制限されており、UTXO ID はこの形式で表現されません。

图片

上記のトランザクションでは、ユーザー A の 10 SATOSHI の循環経路は次のようになります。

K を採掘すると、[100, 110) の番号が付けられた 10 個のサトシが生成されます。 これは、100 番目から 109 番目の SATOSHI が ID abc123 で UTXO に保存されており、その所有者がユーザー A であることを意味します。

A が転送する場合、10 サトシは 5 サトシずつ 2 つの部分に分けられます。ここでは「先入れ先出し」の原則が採用されています。つまり、サトシ番号の順序は、トランザクション出力内のインデックスに従って決定されます。

出力の順序が最初にユーザー A、次にユーザー B であると仮定すると、ユーザー A の残りの 5 SATOSHI のシーケンス番号は [100, 105) であり、ID abc456 の UTXO に保存されており、ユーザー B の 5 SATOSHI のシーケンスは次のとおりです。番号は [105, 110) で、ID abc789 で UTXO に保存されます。

图片

レアサトシ

Ordinals プロトコルのスピンオフとして、サトシの希少性はマイニングされた順序に基づいて定義できます。これにより、異なるレアリティを持ついくつかの特別なサトシが発生します。さまざまなサトシのレア度レベルは次のとおりです。

common コモンレベル: ブロックの最初のサトシを除く任意のサトシ (総供給量は 2100 兆)

珍しい 優秀レベル:各ブロックの最初のサトシ(総供給数は6929999)

レア:各難易度調整期間の最初のサトシ(総供給数3437)

エピック: 各半減後の最初のサトシ (総供給量は 32)

伝説的: 各サイクルの最初のサトシ (合計供給数は 5)

ミシック:ジェネシスブロックの最初のサトシ(総供給数は1)

希少なサトシというこの概念は、ビットコインのエコシステムにさらなる関心と価値を加えることができます。レアリティの異なるサトシは市場で異なる価値を持ち、コレクターや投資家を魅了する可能性があります。

图片

3. 表記方法

Ordinals と他の非ビットコイン チェーン NFT の大きな違いの 1 つは、メタデータが特定の場所に保存されないことです。

代わりに、このメタデータはトランザクションの証人データ (証人フィールド) に埋め込まれます。これが、データがコイン取引の特定の部分のビットに「刻まれる」ため、これを「銘刻」と呼ぶのです。 、このデータは特定のサトシに関連付けられています。

この刻印プロセスは、Segregated Witness (SegWit) と Pay-to-Taproot (P2TR) を通じて実装されます。これには、指定されたサトシに任意の形式のコンテンツ (テキスト、画像、ビデオなど) を刻印するという 2 つの段階が含まれます。

次に、別のより直接的な保存方法である OP_RETURN について詳しく説明し、それが碑文で機能しない理由を説明します。同時に、Segwit と Pay-to-Taproot の概念と、Inscription におけるそれらの役割についても説明します。最後に、刻印の方法について詳しく見ていきます。

图片

ON_RETURN

Bitcoin Core クライアントのバージョン 0.9 では、RETURN 演算子を使用して最終的に妥協点に達しました。 RETURN を使用すると、開発者は 80 バイトの非支払いデータをトランザクション出力に追加できます。疑似支払いとは異なり、RETURN は明示的に検証可能だが使用できない出力を作成し、UTXO (未使用トランザクション出力) コレクションに保存する必要はありません。​

RETURN 出力はブロックチェーンに記録されるため、ディスク領域が占有され、ブロックチェーンのサイズが増加しますが、UTXO コレクションは占有されないため、UTXO コレクションが肥大化したり、高価なメモリ コストが増加したりすることはありません。フルノードの。

OP_RETURN はビットコイン ブロックチェーンに情報を直接保存する方法ですが、いくつかの課題もあります。まず、OP_RETURN は 80 バイトのデータしか保存できませんが、これは明らかに、より多くのデータを保存する必要がある状況には十分ではありません。

次に、OP_RETURN データはトランザクション出力に保存されますが、UTXO コレクションを占有することはありませんが、ブロックチェーンのストレージ領域を占有するため、ブロックチェーンのサイズが増加します。

最後に、OP_RETURN を使用すると、これらのトランザクションをポストするためにより多くの支払いが必要となるため、トランザクション手数料が増加します。

图片

隔離された証人

以前の方法と比較して、SegWit は上記の問題を解決できる新しいソリューションを提供します。

SegWit は、ビットコインの主要なプロトコル アップグレードであり、2015 年にビットコイン コア開発者 Pieter Wuille によって初めて提案され、最終的に 2017 年にバージョン 0.16.0 で正式に採用されました。

Segregated Witness (SegWit) の「Segregated」は分離または隔離を意味し、「Witness」にはトランザクションに関連付けられた署名データが含まれます。したがって、SegWit の中心的な概念は、特定のトランザクション署名データ (証人データとも呼ばれる) を実際のトランザクション データから分離することです。

署名データをトランザクション データから分離する主な利点は、ビットコイン ブロックに保存されるデータのサイズが削減されることです。これにより、より多くのトランザクションに対応できるようにブロックあたりの利用可能な容量が増加します。これは、ネットワークがより多くのトランザクションを処理できるようになり、ユーザーが支払うトランザクション手数料が安くなることも意味します。

技術的には、これは、ベース ブロック構造に元々含まれていたスクリプト署名データ (scriptSig) を新しいデータ構造に移動することを意味します。検証ノードと K ワーカーも、この新しいデータ構造内のスクリプト署名を検証して、トランザクションの正当性を確認します。

图片

SegWit のアップグレードでは、プライバシーと効率を強化するための新しい証人データ フィールドも導入されています。証人データは、平文のトランザクション データを保存するように特別に設計されているわけではありませんが、実際には、碑文メタデータなどを保存する機会を与えてくれます。

隔離された証人をより鮮明に理解するために、次の図を使用します。

图片

主根

P2TR は、2021 年の Taproot アップグレードで導入されたビットコインのトランザクション出力タイプで、さまざまなトランザクション条件をよりプライベートにブロックチェーンに保存できるようになります。

このアーキテクチャでは、P2TR が Ordinals のデータ記述において重要な役割を果たします。 Inscription は実際に特定のデータをビットコイン トランザクションに埋め込みます。Taproot のアップグレード、特に P2TR により、このデータの埋め込みがより柔軟かつ経済的になります。

まず、Taproot コマンド コードの保存方法により、Taproot コマンド パスに碑文データを保存でき、これらのコマンド コードには内容にほとんど制限がありません。同時に、証人データの割引も享受できます。そのため、碑文データを比較的経済的に保存できます。

ただし、Taproot 命令の消費は既存の Taproot 出力からのみ行われるため、碑文のストレージには 2 段階のコミット/公開プロセスが採用されます。まず、コミット トランザクションで、碑文データが含まれることを約束する Taproot 出力が確立されます。

图片

次に、公開トランザクションでは、コミット トランザクションによって確立された出力が消費され、それによってオンチェーンの碑文コンテンツが公開されます。

このアプローチにより、リソースの使用量が大幅に削減されます。 P2TR が使用されない場合、監視データはトランザクション出力に保存され、この出力が消費されない限り、監視データは常に UTXO セットに存在します。

対照的に、P2TR が使用される場合、監視データはコミット フェーズ中に生成されたトランザクションに表示されないため、UTXO セットには書き込まれません。この UTXO が消費される場合にのみ、公開フェーズ中に監視データがトランザクション入力に表示されます。

P2TR を使用すると、元のデータをビットコイン ブロックチェーンに書き込むことができますが、UTXO に集中しているスペースを常に占有するわけではありません。 UTXO セットの維持/変更にはより多くのリソースが必要となるため、この方法ではリソースを大幅に節約できます。

图片

碑文

Ordinals プロトコルは、SegWit を使用して平文コンテンツを監視に保存することで、ビットコイン ネットワーク上の書き込みサイズ制限を拡張し、最大 4MB のメタデータ ストレージを許可します。

Taproot は、ビットコイン トランザクションに任意の証人データを保存するプロセスを簡素化し、Ordinals 開発者の Casey Rodarmor が古いオペコード (OP_FALSE、OP_IF、OP_PUSH) を再利用して、いわゆる「インスクリプション」情報を保存するためのいわゆる「エンベロープ」を作成できるようにします。

碑文の鋳造プロセスは次の 2 つのステップで構成されます。

まず、コミット トランザクションで、碑文コンテンツを含む Taproot 出力を指す Promise を作成する必要があります。このストレージの形式は Taproot で、前のトランザクションの出力は P2TR (Pay-To-Taproot) である必要があり、特定の形式のコンテンツが Taproot 監視スクリプトに埋め込まれます。

まず、碑文の目的を明確にするために、文字列「ordn」がスタックにプッシュされます。次に、OP_PUSH 1 を使用して次のプッシュにコンテンツ タイプが含まれることを示し、OP_PUSH 0 を使用して後続のデータ プッシュにコンテンツ自体が含まれることを示します。

Taproot の制限の 1 つは、1 回のデータ プッシュが 520 バイトを超えられないことであるため、大きな碑文を保存するには複数のデータ プッシュが必要です。現時点では、碑文データはトランザクション出力の未使用トランザクション出力(UTXO)にリンクされていますが、まだ公開されていません。

图片

次に、リビール トランザクションでは、作成された出力を消費する必要があります。この段階で、トランザクションは、碑文に対応する UTXO を入力として取得することによって開始されます。このとき、UTXO に関連する書き込み内容がネットワーク全体に公開されます。

上記の 2 つの手順により、碑文コンテンツが特定の UTXO に関連付けられました。先に紹介したサトシ(UTXO)の測位方法によれば、入力されたUTXOに対応して最初のサトシに碑文が刻まれ、そのトランザクションを示す入力に碑文内容が含まれます。

前述のサトシ(UTXO)の流通と追跡によれば、特別なコンテンツを含むこのサトシは譲渡、購入、販売、紛失、回収が可能です。碑文を繰り返すことはできません。そうでない場合、その後の碑文は無効になることに注意してください。

このプロセスをより詳しく説明するために、ビットコイン NFT の小さな絵を書き込む方法を示す例を見てみましょう。このプロセスは、前述のコミットとリビールの 2 つの段階をカバーします。

まず、最初のトランザクションのハッシュ ID が 2ddf9...f585c であることがわかります。このトランザクションの出力には証人データが含まれておらず、Web ページ上に関連する碑文情報がないことに注意してください。

图片

次に、ハッシュ ID が e7454…7c0e1 である第 2 段階のレコードを確認します。ここでは、証言の碑文内容である序数碑文の情報を見ることができます。

このトランザクションの入力アドレスは前のトランザクションの出力アドレスであり、出力0.00000546BTC (546 SATOSHI)はこのNFTを自身のアドレスに転送することになります。同時に、この碑文があるサトシもSat 1893640468329373で見つけることができます。

图片图片

ビットコインウォレットでこの資産を確認できます。このNFTを取引したい場合は、他の人のアドレスに直接転送する、つまりUTXOを転送することで、碑文の転送が完了します。

图片

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

オーディナルの生態、サトシの循環、そして碑文の関連知識とは何かを理解した後、BRC-20、ORC-20、BRC-721、GBRC-721、その他の関連する派生プロトコルには、トークン情報または NFT の小さな画像をサポートおよび表示するための対応するウォレットがあります。

このセクションでは、さまざまなビットコインウォレットアドレスの概念と特徴を紹介します。

ビットコイン アドレスは通常、1、3、または bc1 で始まり、電子メール アドレスと同様に、ビットコインをウォレットに直接転送するために他のビットコイン ユーザーと共有できます。

セキュリティの観点から見ると、ビットコイン アドレスには機密情報が含まれていないため、アカウントのセキュリティを損なうことなく、いつでも公開で共有できます。電子メール アドレスとは異なり、必要に応じて新しいビットコイン アドレスを作成でき、すべてのアドレスがウォレットに直接資金を入金します。

图片

実際、最新のウォレットの多くは、プライバシーを最大限に高めるために、取引ごとに新しいアドレスを自動的に確立します。ウォレットは、その中の資金のロックを解除するためのアドレスとキーのコレクションにすぎません。まず、ビットコインウォレットのアドレスがどのように生成されるかを知る必要があります。

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

ビットコインは楕円曲線 Secp256k1 を使用します。「秘密鍵」は 1 から n-1 までの乱数です。n は科学表記法で次のように表されます。

图片

この範囲は非常に広範囲であり、他の人の秘密鍵を解読することはほぼ不可能です。この秘密キーはランダムな整数で、通常は 256 バイナリ ビットで表され、さまざまな方法でエンコードできます。 WIF (ウォレット インポート フォーマット) または WIF 圧縮形式を使用した秘密キーは暗号化されていないため、生のランダムな整数に直接デコードできます。

もう 1 つの方法は BIP38 (Bitcoin Improvement Proposal 38) で、秘密キーの暗号化に AES アルゴリズムを使用することを推奨しています。このスキームによって生成される秘密鍵は文字 6P で始まり、それをさまざまなビットコイン ウォレットにインポートするにはパスワードを入力する必要があります。これが私たちが通常使用する秘密鍵保護の方法です。

次に、楕円曲線の式 K = kG を使用します。ここで、k は秘密キー、G は基点であり、secp256k1 楕円曲線の引数です。

この式により、公開鍵の 2 つの表現である「非圧縮形式」と「圧縮形式」である K の 2 つの座標を取得できます。

图片

非圧縮形式では、2 つの座標 x と y を直接接続し、先頭にプレフィックス 0x04 を追加します。

圧縮形式は、y が偶数の場合、コードは 02 x であり、y が奇数の場合、コードは 03 x であることを意味します。

ビットコインアドレス

さまざまな種類のビットコイン アドレスを次の図に示します。 4 つの表現方法があります。

图片

1. レガシー (P2PKH) フォーマット

例: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u

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

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

例: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN

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

图片

3. ネイティブ SegWit (Bech32) 形式

例: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3

BIP0173 では、ネイティブの Segregated Witness (SegWit) に使用されるアドレスである「bc1」で始まるアドレス形式が導入されました。このアドレス形式は Bech32 エンコーディングを使用し、SegWit 用に特別に設計されています。 Bech32形式のアドレスは、2017年末のBIP173で定義されました。大きな特徴の1つは、大文字と小文字を区別しないため、入力時に混乱を避けやすく、読みやすいことです。

従来の Base58 エンコーディングと比較して、Bech32 は Base32 エンコーディングを使用するため、アドレスに必要な文字数が少なくなり、計算がより効率的になり、QR コードによりコンパクトに格納できます。

さらに、Bech32 は、より優れたセキュリティと、より最適化されたチェックサム エラー検出を提供し、無効なアドレスのリスクを最小限に抑えます。

Bech32 アドレス自体は SegWit と互換性があります。 SegWit アドレスを P2SH アドレスに入れるために追加のスペースは必要ないため、Bech32 形式のアドレスを使用すると、手数料が安くなります。

全体として、Bech32 アドレスには、従来の Base58 アドレスに比べていくつかの利点があります。生成される QR コードは小さく、エラーが発生しにくく、安全性が高く、大文字と小文字が区別されず、小文字のみが含まれるため、読みやすく、入力しやすく、より簡単です。理解すること。

图片

4. タップルート形式 (P2TR)

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

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

  • バージョン 0 のネイティブ Segwit アドレスの場合は、以前の Bech32 を使用します。

  • バージョン 1 (またはそれ以降) のネイティブ Segwit アドレスの場合、新しい Bech32m が使用されます。

Bech32m アドレスの場合、バージョン番号が 1 の場合、常に「bc1p」で始まり、Taproot アドレスであることを意味します。ネイティブ Segwit と同様に、これらのアドレスは、拡張スイートの公開鍵と秘密鍵の生成に使用されるシード フレーズとパスフレーズから生成でき、階層的な決定論的ウォレット内のさまざまなパスのアドレスの導出が可能になります。

图片

これは主に、BRC-20 トークンやビットコインの NFT などのデジタル資産を保管するために使用されます。