Pay to PubKey Hash (P2PKH)とは何か?
Pay to PubKey Hash (P2PKH)は、コインを公開鍵のハッシュに紐づけてロックする古典的なビットコインスクリプトです。支出する際には対応する公開鍵を公開し、署名で所有権を証明します。シルエットに合わせた鍵穴のついた南京錠を想像してください。実際の鍵は解除するときにだけ現れます。
P2PKHは公開鍵をすぐにさらすと言われますが、必ずしもそうではありません。支出するまで鍵は隠されたままで、これによりプライバシーが多少守られ、攻撃を受ける時間が短くなります。
Pay to PubKey Hash (P2PKH)の仕組み
手短に説明します。クラシックな形式のビットコインで友人に支払う場面を想像してください。
- ステップ 1: 相手の アドレス の一つにコインを送ります。
- ステップ 2: 出力はhash160を使って相手の 公開鍵 のハッシュにロックされます。
- ステップ 3: 支出するとき、相手はその公開鍵を公開し、相手の 秘密鍵 で作った署名を添えます。
- ステップ 4: すべてのノードが 暗号署名 を検証し、表示された公開鍵とハッシュが一致するか確認します。
- ステップ 5: 問題なければネットワークは支出を受理し、コインは移動します。
これが基本的な考え方です。シンプルで信頼性があります。
Pay to PubKey Hash (P2PKH)が重要な理由
なぜ気にするべきか?簡潔にまとめます。
- 利点:ウォレットや取引所で広くサポートされているため、面倒が少なく送金がスムーズです。
- 位置づけ:元の主流フォーマットで、新しい形式が出てきてもいまだ一般的です。
- 関連性:アドレスが1で始まるときにはこれです。チュートリアル、古いバックアップ、多くのコールドストレージで見かけます。
P2PKHは1で始まるアドレスで見分けられます。QRをスキャンするか、貼り付けるときは慎重にしてください。1文字の間違いで送金できなくなります。
Pay to PubKey Hash (P2PKH)の主な特徴
際立つ点:
- ロック:コインは公開鍵そのものではなく公開鍵のハッシュにロックされます。
- プライバシー:公開鍵は受け取り時ではなく支出時にのみ現れます。
- サポート:古いウォレットからハードウェアまでほぼすべてで動作します。
- 手数料:最新の形式よりややサイズが大きいため、メンプールが混雑すると費用が高くなることがあります。
派生型
P2PKHは古典的な形式ですが、ほかにもよく目にするものがあります:
- P2SH: Pay to Script Hash (P2SH) は柔軟なスクリプトをハッシュで包み、マルチシグなどを単純なアドレスのように見せます。
- P2WPKH:SegWit版でbech32表記になり、手数料を節約し取引の改変問題を軽くします。変更点は Segregated Witness (SegWit) を参照してください。
- P2TR:Taprootはキーとスクリプトの統合をもたらし、通常の支出でより高いプライバシーを提供します。bc1pで始まるアドレスでよく見かけます。
同じP2PKHアドレスを使い回すとプライバシーが損なわれます。新しいアドレスを使うことをおすすめします。
例
作り手にチップを送るとき、1で始まるアドレスに送金し、後で相手が自分の鍵と署名で使います。これがPay to PubKey Hash (P2PKH)の仕組みです。
豆知識
初期のブロックではハッシュ化された形式ではなくpay to pubkeyが使われていました。P2PKHに切り替えることで鍵は支出まで隠され、データ量も節約されました。これはサトシらしい工夫です。
まとめ
一言で言えば:Pay to PubKey Hash (P2PKH)はビットコインの古典的な南京錠で、コインを動かすときまで鍵は舞台裏にあります。
