Pay-to-Public-Key(P2PK)は、ビットコインを受け取るためのオリジナルの方法であり、アドレスを必要としません。 代わりに、名前が示すように、ビットコインは公開された公開鍵に直接支払われます。 ある人から別の人への史上初のビットコイン取引は、サトシ・ナカモトが ブロック170でハル・フィニーにコインを送ったときに、P2PKを使用しました。
P2PKは、その後の方法よりも高価で、プライバシーが低く、安全性の低いビットコインを受け取る方法であるため、使用されなくなりました。
Pay-to-Public-Key-Hash(P2PKH)は、ビットコインの誕生当初から利用可能で、ジェネシスブロックから2週間も経たないうちにブロックチェーンに初めて登場しました。 P2PKHは、アドレスの利用など、P2PKにいくつかの改善を加えています。 以前の記事で説明したように、アドレスには、タイプミスやビットコインの損失を防ぐのに役立つチェックサムが含まれています。
P2PKHアドレスは通常、長さが34文字または33文字で(ただし、理論的には 26文字まで短くなる可能性があります)、 Base58形式でエンコードされます。 プレフィックスは1から始まり、現在、マイニングされたビットコイン供給量の43%を受信して確保する役割を担っており、これは他のどのアドレスタイプよりも多くなっています。
P2PKH アドレスを作成するには、ハッシュ関数 SHA-256 と RIPEMD-160 に 1 つの公開鍵を通す必要があります。 これにより、データ量が短縮され、ユーザーのブロックスペースと取引手数料を節約できます。 また、すでに解読不可能であると信じられているsecp256k1楕円曲線を超えて秘密鍵をリバースエンジニアリングすることに対するさらなる抵抗も生じます。
ペイ・トゥ・マルチシグ(P2MS)は、短期間しか関係のない些細な取引タイプであり、すべてのネットワーク参加者で一度に100ビットコイン以上を保有する責任を負ったことはありません。 それにもかかわらず、P2MSはビットコインの歴史の一部です。
P2MS は、BIP 11 で指定されているように、2012 年初頭に標準スクリプトとして導入されました。 ただし、このトランザクションタイプは、公開された公開鍵を含み、アドレス形式を使用しないため、P2PKと同じ問題に悩まされていました。 また、マルチシグクォーラムの公開鍵の数を 3 つに制限しました。 数ヶ月以内に、P2MSは、ビットコインを受け取るための代替方法に置き換えられ、P2SHと呼ばれるマルチシグの取り決めになります。
Pay-to-Script-Hash(P2SH)は、2012年4月1日にBIP 16に従ってソフトフォークとしてビットコインに導入されました。 ほとんどのフォークと同様に、 その背後にあるストーリーは魅力的です。 P2SHはP2PKHと多くの共通点があります。 主な違いは、アドレスが単一の公開鍵をハッシュ化するのではなく、償還スクリプトをハッシュ化することによって作成されることです。
償還スクリプトは、P2SHアドレスに受け取ったビットコインを将来どのように使用できるかを指定するコード化された命令と考えることができます。 複数の異なる公開鍵など、さまざまな可能性があります。 送信者ではなく受信者がスクリプトの詳細を決定し、ビットコインがアドレスから使用されるまで、支払いの指示は公開されません。
上級ユーザーは複雑なスクリプトを構築できますが、P2SHの最も一般的な用途は、ネストされたSegWitアドレス(以下で説明)とマルチシグウォレットを作成することです。 たとえば、スクリプトに 3 つの公開鍵を含め、対応する 2 つの秘密鍵からの署名がビットコインを使用できるように指定できます。 これにより、2-of-3 マルチシグアドレスが作成されます。
P2SH アドレスの長さは 正確に 34 文字で、BIP 13 で指定されているように、プレフィックス 3 で始まります。 4月1日のソフトフォークの前に、いくつかのトランザクションがこの代替プレフィックスを実験しており、その最初のものは ブロック170,052にあります。
Pay-to-Witness-Public-Key-Hash(P2WPKH)は、2017年8月のSegWitソフトフォークでビットコインに導入された2つのアドレスタイプのうちの最初のものです。 この非常に重要で特に論争の的となったソフトフォークの裏話は、Jonathan Bier氏の著書 「The Blocksize War」に記載されています。
P2WPKHはP2PKHのSegWit版で、基本的なレベルでは、古いP2PKHアドレスではなくこのアドレスタイプを選択することで、ビットコインを移動させる際の取引手数料を節約することができます。
SegWitアドレスは、BIP 173に従ってBase58ではなくBech32エンコーディングを使用しているため、古いアドレスタイプとは大きく異なります。 最も注目すべきは、Bech32に大文字がないことです。 P2WPKHアドレスは、bc1qのプレフィックスと正確に42の文字長で識別できます。
Pay-to-Witness-Script-Hash (P2WSH) は、P2SH の SegWit バリアントです。 P2SH よりも P2WSH を使用する主な利点は、トランザクション手数料を削減できることであり、公開鍵ハッシュの代わりにスクリプトハッシュを使用する主な理由は、マルチシグの配置に対応するためです。
P2WPKHと同様に、P2WSHアドレスはbc1qのプレフィックスで始まります。 ただし、文字長は正確に 62 文字です。これまで取り上げてきたアドレスタイプとは異なり、P2WSHアドレスはSHA-256ハッシュ関数のみを使用して作成され、RIPEMD-160は含まれないため、文字長が長くなります。 これは慎重に実装され、かなり微妙で非常にありそうにないマルチシグ 攻撃ベクトルからの保護が追加されました。
ネストされたSegWit(Wrapped SegWitとも呼ばれます)は、技術的には上記で説明したアドレスタイプと異なるものではありません。 それでも、これは、ビットコインコミュニティにとって一時的に有用であった方法で、以前に説明したアドレスタイプを使用するユニークな方法です。
SegWitのソフトフォークが発生したとき、すべてのビットコインノード、ソフトウェア、サービスがすぐにアップグレードされ、新しいネイティブSegWitアドレスタイプであるP2WPKHとP2WSHをサポートするわけではありませんでした。 アップグレードを行ったエンティティのみが、これらの新しいアドレスに送信できます。 つまり、誰からでもビットコインを受け取る機能(アップグレードしていない人を含む)は、まだNative SegWitウォレットを使用できないということです。 しかし、SegWitは取引手数料が安かったため、ほとんどの人が利用したいと思っていました。
このジレンマに対する巧妙な解決策は、P2SHトランザクションタイプを利用することでした。 SegWitをまだ実装していないエンティティは、ビットコインをP2SHアドレスに送ることができますが、P2SHアドレスは、 前述のように、ビットコインを後でどのように使用できるかの指示を指定する償還スクリプトで構築されています。 結局のところ、これらの指示は新しいSegWit支出モデルを組み込んでおり、ユーザーに手数料削減への橋渡しを提供することができます。 そのため、このトリックを使用したP2SHアドレスはNested SegWitとして知られるようになり、SegWitの採用プロセスにおいて重要な役割を果たしました。
表面的には、ネストされたSegWitアドレスは他のP2SHアドレスと区別がつかないため、この配置で保持されているビットコインの供給はわかりません。 さらに、最新のビットコインツールはすべてネイティブSegWitアドレスに直接送信できるようになったため、ネストされたSegWitを使用する正当な理由はもはやありません。
Pay-to-Taproot(P2TR)は、2021年11月にTaprootのソフトフォークによって利用可能になった最新のアドレスタイプです。 本稿執筆時点では、P2TRの採用率はかなり低く、多くのビットコインソフトウェアやサービスはまだ統合に取り組んでいます。
P2WPKH と P2WSH は SegWit V0 として知られていますが、P2TR は SegWit V1 と見なされます。 特に、P2TRはSchnorrと呼ばれるデジタル署名アルゴリズムを利用しており、以前のビットコイントランザクションタイプで使用されていたECDSA形式とは異なります。 シュノア署名には、追加の取引手数料の削減やプライバシーの向上など、いくつかの利点があります。
プライバシーに関しては、Schnorrによって可能になった鍵と署名の集約により、マルチシグアドレスはシングルシグアドレスと区別がつかず、P2TRアドレスの使用条件は公開されません。 アドレスの作成者は、後でビットコインを使用するために選択できる複数のカスタマイズされた償還スクリプトを含めることもできます。
P2TR アドレスの長さは 62 文字で、 BIP 350 で説明されているように、Bech32 を少し変更したバージョンである Bech32m エンコーディングを使用します。 P2TR アドレスは、一意の bc1p プレフィックスで識別できます。
ビットコインをオンチェーンで受け取るための標準化された方法をすべてカバーしたので、簡単な事実とアドレス機能のいくつかを組み合わせて、参照用の便利なチャートにすることができます。
Pay-to-Public-Key(P2PK)は、ビットコインを受け取るためのオリジナルの方法であり、アドレスを必要としません。 代わりに、名前が示すように、ビットコインは公開された公開鍵に直接支払われます。 ある人から別の人への史上初のビットコイン取引は、サトシ・ナカモトが ブロック170でハル・フィニーにコインを送ったときに、P2PKを使用しました。
P2PKは、その後の方法よりも高価で、プライバシーが低く、安全性の低いビットコインを受け取る方法であるため、使用されなくなりました。
Pay-to-Public-Key-Hash(P2PKH)は、ビットコインの誕生当初から利用可能で、ジェネシスブロックから2週間も経たないうちにブロックチェーンに初めて登場しました。 P2PKHは、アドレスの利用など、P2PKにいくつかの改善を加えています。 以前の記事で説明したように、アドレスには、タイプミスやビットコインの損失を防ぐのに役立つチェックサムが含まれています。
P2PKHアドレスは通常、長さが34文字または33文字で(ただし、理論的には 26文字まで短くなる可能性があります)、 Base58形式でエンコードされます。 プレフィックスは1から始まり、現在、マイニングされたビットコイン供給量の43%を受信して確保する役割を担っており、これは他のどのアドレスタイプよりも多くなっています。
P2PKH アドレスを作成するには、ハッシュ関数 SHA-256 と RIPEMD-160 に 1 つの公開鍵を通す必要があります。 これにより、データ量が短縮され、ユーザーのブロックスペースと取引手数料を節約できます。 また、すでに解読不可能であると信じられているsecp256k1楕円曲線を超えて秘密鍵をリバースエンジニアリングすることに対するさらなる抵抗も生じます。
ペイ・トゥ・マルチシグ(P2MS)は、短期間しか関係のない些細な取引タイプであり、すべてのネットワーク参加者で一度に100ビットコイン以上を保有する責任を負ったことはありません。 それにもかかわらず、P2MSはビットコインの歴史の一部です。
P2MS は、BIP 11 で指定されているように、2012 年初頭に標準スクリプトとして導入されました。 ただし、このトランザクションタイプは、公開された公開鍵を含み、アドレス形式を使用しないため、P2PKと同じ問題に悩まされていました。 また、マルチシグクォーラムの公開鍵の数を 3 つに制限しました。 数ヶ月以内に、P2MSは、ビットコインを受け取るための代替方法に置き換えられ、P2SHと呼ばれるマルチシグの取り決めになります。
Pay-to-Script-Hash(P2SH)は、2012年4月1日にBIP 16に従ってソフトフォークとしてビットコインに導入されました。 ほとんどのフォークと同様に、 その背後にあるストーリーは魅力的です。 P2SHはP2PKHと多くの共通点があります。 主な違いは、アドレスが単一の公開鍵をハッシュ化するのではなく、償還スクリプトをハッシュ化することによって作成されることです。
償還スクリプトは、P2SHアドレスに受け取ったビットコインを将来どのように使用できるかを指定するコード化された命令と考えることができます。 複数の異なる公開鍵など、さまざまな可能性があります。 送信者ではなく受信者がスクリプトの詳細を決定し、ビットコインがアドレスから使用されるまで、支払いの指示は公開されません。
上級ユーザーは複雑なスクリプトを構築できますが、P2SHの最も一般的な用途は、ネストされたSegWitアドレス(以下で説明)とマルチシグウォレットを作成することです。 たとえば、スクリプトに 3 つの公開鍵を含め、対応する 2 つの秘密鍵からの署名がビットコインを使用できるように指定できます。 これにより、2-of-3 マルチシグアドレスが作成されます。
P2SH アドレスの長さは 正確に 34 文字で、BIP 13 で指定されているように、プレフィックス 3 で始まります。 4月1日のソフトフォークの前に、いくつかのトランザクションがこの代替プレフィックスを実験しており、その最初のものは ブロック170,052にあります。
Pay-to-Witness-Public-Key-Hash(P2WPKH)は、2017年8月のSegWitソフトフォークでビットコインに導入された2つのアドレスタイプのうちの最初のものです。 この非常に重要で特に論争の的となったソフトフォークの裏話は、Jonathan Bier氏の著書 「The Blocksize War」に記載されています。
P2WPKHはP2PKHのSegWit版で、基本的なレベルでは、古いP2PKHアドレスではなくこのアドレスタイプを選択することで、ビットコインを移動させる際の取引手数料を節約することができます。
SegWitアドレスは、BIP 173に従ってBase58ではなくBech32エンコーディングを使用しているため、古いアドレスタイプとは大きく異なります。 最も注目すべきは、Bech32に大文字がないことです。 P2WPKHアドレスは、bc1qのプレフィックスと正確に42の文字長で識別できます。
Pay-to-Witness-Script-Hash (P2WSH) は、P2SH の SegWit バリアントです。 P2SH よりも P2WSH を使用する主な利点は、トランザクション手数料を削減できることであり、公開鍵ハッシュの代わりにスクリプトハッシュを使用する主な理由は、マルチシグの配置に対応するためです。
P2WPKHと同様に、P2WSHアドレスはbc1qのプレフィックスで始まります。 ただし、文字長は正確に 62 文字です。これまで取り上げてきたアドレスタイプとは異なり、P2WSHアドレスはSHA-256ハッシュ関数のみを使用して作成され、RIPEMD-160は含まれないため、文字長が長くなります。 これは慎重に実装され、かなり微妙で非常にありそうにないマルチシグ 攻撃ベクトルからの保護が追加されました。
ネストされたSegWit(Wrapped SegWitとも呼ばれます)は、技術的には上記で説明したアドレスタイプと異なるものではありません。 それでも、これは、ビットコインコミュニティにとって一時的に有用であった方法で、以前に説明したアドレスタイプを使用するユニークな方法です。
SegWitのソフトフォークが発生したとき、すべてのビットコインノード、ソフトウェア、サービスがすぐにアップグレードされ、新しいネイティブSegWitアドレスタイプであるP2WPKHとP2WSHをサポートするわけではありませんでした。 アップグレードを行ったエンティティのみが、これらの新しいアドレスに送信できます。 つまり、誰からでもビットコインを受け取る機能(アップグレードしていない人を含む)は、まだNative SegWitウォレットを使用できないということです。 しかし、SegWitは取引手数料が安かったため、ほとんどの人が利用したいと思っていました。
このジレンマに対する巧妙な解決策は、P2SHトランザクションタイプを利用することでした。 SegWitをまだ実装していないエンティティは、ビットコインをP2SHアドレスに送ることができますが、P2SHアドレスは、 前述のように、ビットコインを後でどのように使用できるかの指示を指定する償還スクリプトで構築されています。 結局のところ、これらの指示は新しいSegWit支出モデルを組み込んでおり、ユーザーに手数料削減への橋渡しを提供することができます。 そのため、このトリックを使用したP2SHアドレスはNested SegWitとして知られるようになり、SegWitの採用プロセスにおいて重要な役割を果たしました。
表面的には、ネストされたSegWitアドレスは他のP2SHアドレスと区別がつかないため、この配置で保持されているビットコインの供給はわかりません。 さらに、最新のビットコインツールはすべてネイティブSegWitアドレスに直接送信できるようになったため、ネストされたSegWitを使用する正当な理由はもはやありません。
Pay-to-Taproot(P2TR)は、2021年11月にTaprootのソフトフォークによって利用可能になった最新のアドレスタイプです。 本稿執筆時点では、P2TRの採用率はかなり低く、多くのビットコインソフトウェアやサービスはまだ統合に取り組んでいます。
P2WPKH と P2WSH は SegWit V0 として知られていますが、P2TR は SegWit V1 と見なされます。 特に、P2TRはSchnorrと呼ばれるデジタル署名アルゴリズムを利用しており、以前のビットコイントランザクションタイプで使用されていたECDSA形式とは異なります。 シュノア署名には、追加の取引手数料の削減やプライバシーの向上など、いくつかの利点があります。
プライバシーに関しては、Schnorrによって可能になった鍵と署名の集約により、マルチシグアドレスはシングルシグアドレスと区別がつかず、P2TRアドレスの使用条件は公開されません。 アドレスの作成者は、後でビットコインを使用するために選択できる複数のカスタマイズされた償還スクリプトを含めることもできます。
P2TR アドレスの長さは 62 文字で、 BIP 350 で説明されているように、Bech32 を少し変更したバージョンである Bech32m エンコーディングを使用します。 P2TR アドレスは、一意の bc1p プレフィックスで識別できます。
ビットコインをオンチェーンで受け取るための標準化された方法をすべてカバーしたので、簡単な事実とアドレス機能のいくつかを組み合わせて、参照用の便利なチャートにすることができます。