著者のような初心者の友人は、初めて WEB3 ウォレットを使用したとき、喜んでビットコイン ウォレットを開いてアドレスをコピーする準備をしたものの、突然、自分が作成したウォレットに実際には複数の異なるアドレスがあることに気づいた人が多いかもしれません。それは、困惑した表情を浮かべながら、見慣れない交差点に向かって歩いているようなものです。

なぜアドレスが違うのでしょうか?これらのアドレスのうちどれを使用する必要がありますか?

OKX ウォレットの複数のビットコイン アドレス

これらのアドレスは何ですか?

ビットコインコミュニティはテクノロジーが常に進化しており、テクノロジーの発展によって新たなコンテンツが生み出されるコミュニティです。さまざまなアドレス形式は、新しいテクノロジーを適用した結果であると考えられます。次に、さまざまなアドレス形式の違いを調べます。

レガシーアドレス (P2P KH)

この形式は、2009 年にビットコインが初めて使用されたときに使用されたため、レガシー形式と呼ばれます。当時のビットコイン アドレスは公開鍵と秘密鍵のペアから作成されていたため、Payment Public Key Hash (P2P) とも呼ばれます。 KH) のアドレス。

現時点では、レガシータイプのアドレスはトランザクションでより多くのスペースを占有するため、トランザクション手数料が高くなる可能性があるようです。現在、このタイプのアドレスは、新しいアドレスと互換性のない古いウォレットを使用する場合にのみ使用されます。

レガシーアドレスには特徴があり、アドレスはすべて「1」から始まることがわかります。これは、アドレスを生成するときに、さまざまなシナリオ (例: testnet/mainnet) に従って生成された公開鍵の前にプレフィックスが追加され、プレフィックスが追加された公開キーがハッシュによって計算された後、アドレスが最終的に で始まるためです。 「1」。

ネストされた SegWit アドレス (P 2 SH-P 2 WPKH)

従来のレガシー アドレスと比較して、P 2 SH アドレスは公開キーのハッシュではなく、償還スクリプト (償還スクリプト) のハッシュを使用します。平たく言えば、P2P KH は公開鍵のハッシュに支払いますが、P2SH は償還スクリプトに支払います。受信者が償還スクリプトの転送条件を満たした場合にのみ、内部の資金を使用できます。

支払いオブジェクトが公開鍵からスクリプトに変換されるため、柔軟性が大幅に拡張され、引き換えスクリプトの実行ロジックをカスタマイズできます。一般的なアプリケーションには、マルチシグネチャ トランザクションの実装が含まれます。

P2SH に基づいて、Segregated Witness テクノロジーが組み込まれている場合、このアドレスの形式は Segregated Witness 互換アドレス (Nested SegWit) になります。 Segregated Witness のアドレスを紹介するときに、Segregated Witness について詳しく知ることができます。 Segregated Witness テクノロジーの導入後は、取引量を減らすことができるため、取引手数料が削減されます。

P 2 SH アドレスが「3」で始まることがわかります。

分離された証人アドレス (ネイティブ SegWit) アドレス

このタイプのアドレスを導入する前に、その内部の主要なテクノロジーである Segregated Witness (SegWit) を導入する必要があります。名前が示すように、Segregated Witness は証人データ (証人) を分離し、個別に処理します。

そうすることの大きな利点は、取引情報のサイズが削減され、それによって取引手数料が削減されることです。サイズの縮小によってもたらされるもう 1 つの利点は、ビットコインのブロック トランザクション サイズの上限が 1 MB から 4 MB に増加したことです。

Segregated Witness アドレスの特徴は、アドレスが「bc 1」で始まることです。

タップルートアドレス (Taproot)

Taproot アドレスの利点は、複雑なトランザクション シナリオにおけるプライバシーと効率性です。ネイティブ SegWit と比較して、Schnorr アルゴリズムを使用して楕円曲線デジタル署名アルゴリズムを置き換えます。前者はバッチ トランザクション シナリオでより効率的であり、マルチ署名ウォレットのプライバシーを向上します。

メインルートアドレスの特徴は、一般に「bc 1 q」で始まるアドレスであることです。

どのようなアドレス形式を選択すればよいですか?

OKX、Unisat、その他のウォレットなどの現在の主流のウォレットは上記の 4 つのアドレスをサポートしているため、トランザクションコストを削減するには、ネイティブ SegWit および Taproot 形式のアドレスを使用する方が合理的です。

さらに、ビットコインの刻印などに興味がある場合は、これら 2 つのアドレスが最良の選択です。ほとんどのウォレットでは、これら 2 つのアドレスの刻印に対して追加の処理が行われており、これにより、特別な UTXO がトランザクション中に誤って転送されるのを防ぐことができます。 。 「bc 1」で始まるウォレットアドレスを探してください。

もちろん、アドレス形式が異なるウォレットでも資金取引は可能ですのでご安心ください。

ビットコインの残高やブロック情報を確認したい場合は、開発者向けに豊富なAPIを提供するZANのノードサービスをご利用ください。 API ドキュメントの詳細: https://docs.zan.top/reference/zan_getbalance-enhance

さらに詳しく - 主要テクノロジーの紹介

上記の紹介を終えて、誰もが多かれ少なかれウォレットについて予備知識を持っていますが、私はウォレット内のテクノロジーのいくつかを取得することに非常に興味があるので、内部の謎に満ちたテクノロジーを見てみましょう。

引き換えスクリプト 引き換えスクリプト

P2SH を導入したとき、これが償還スクリプト トランザクションのためのテクノロジーであることはわかっていました。そのため、償還スクリプトとは何であり、ビットコイン エコシステムにおけるその役割は何でしょうか。

引き換えスクリプトを紹介する前に、ビットコイントランザクションの基本構造を紹介する必要があります。

以下は典型的な P2P K タイプのトランザクションで、04 ae で始まるアドレスが 15 kD で始まるアドレスに 10 BTC を転送したいと考えています。 04 ae アドレスを持つアカウントは、このアカウントを使用する権利がある (秘密キーを所有している) ことをチェーン上の他のアカウントに示す必要があり、その後、このトランザクションで自分の身元を証明するために署名 (ScriptSig) を提供する必要があります。

署名の取得に加えて、検証者は、UTXO に対応する前のトランザクションの出力スクリプトを見つける必要もあります。これら 2 つのスクリプトが結合されて引き換えスクリプトが形成されます。引き換えスクリプトの機能は、トランザクションの正当性を証明することです。

このトランザクションでは、署名と出力スクリプトが両方ともコンピューターの命令であることがわかります。 「OP_PUSHBYTES」は、データをスタックにプッシュすることを意味します。まず、ScriptSig の 04 ae が独自の秘密鍵でトランザクション全体に署名し、その署名がスタックにプッシュされます。次に、公開キーをスタックにプッシュし、最後に「OP_CHECKSIG」で公開キーを使用して署名を復号し、トランザクションが一貫しているかどうかを比較します。それらが一貫している場合、ID は有効です。

この P2P K 方式に加えて、償還スクリプトは P2P KH や P2SH などのさまざまな ID 検証方式を実装することもできます。

隔離された証人 隔離された証人

上記の紹介から、新しいウォレット形式では現在、Segregated Witness テクノロジーが使用されていることがわかります。では、Witness とは何で、どのように分離されているのでしょうか?

ここでの Witness は、Bitcoin の基本構造におけるスクリプト署名 (scriptSig) 情報と考えることができ、Segregated Witness はそれを基本構造から抽出し、新しいデータ構造に置きます。

上の図からわかるように、トランザクションに必要なコンテンツはトランザクションのソース情報とトランザクションの出力情報だけです。黄色の部分 (トランザクションの合計サイズ) にはサイズ制限があるため、トランザクションのサイズが削減されます。署名を個別に送信すると、1 つのブロックでより多くのトランザクションに対応できるようになります。さらに、トランザクションの署名を計算する際、署名部分の内容は含まれないため、トランザクションの展性の問題を効果的に解決できます。

以下は P 2 TR トランザクションです。このトランザクションには追加の監視部分があることがわかります。その機能は、トランザクションの正当性を検証することです。 ScriptSig の代わりに Witness を使用した後も、正当性を検証する方法は変わりません。つまり、公開鍵を使用して Witness の署名を復号し、トランザクションの内容が一貫しているかどうかを検証します。ノードがトランザクションの合法性を検証する必要がある場合にのみ、証人情報を要求します。今すぐ ZAN ノード サービスを無料で使用して (ZAN.TOP にアクセスしてください)、BTC ネットワークに安定かつ高速で接続します。

要約すると、Segregated Witness はトランザクション署名部分を元のトランザクションの残りの部分から分離するため、単一トランザクションのサイズが削減され、ブロック全体の容量が増加します。また、署名部分の内容はトランザクションのハッシュ値の計算に含まれないため、トランザクションの展性の問題を効果的に解決できます。

この記事は、ZAN チーム (X アカウント @zan_team) の Yeezo (X アカウント @GaoYeezo 75065) によって書かれました。