用語集 / アドレスと鍵
一意なアドレス
- 一意なアドレスとは?
- 一意なアドレスとは、1回の支払いだけに現れ、二度と使われないアドレスを指します。BIP-32に基づくすべてのウォレットが既定でこうした動作をします。
BIP-32で規定されています。
この表現には2つの意味があり、混同しやすいものです。ウォレットの内部では、一意なアドレスとは衛生上のルールです。1つのアドレスに1回の支払い、そして次へ進みます。ブロックエクスプローラーの「unique addresses」チャートでは、これは計数の単位であり、ビットコインを利用している人数を示す指標としては不適切です。
仕組み
ウォレットは新しい秘密を発明するのではなく、インデックスをたどることで一意なアドレスを生成します。BIP-32では、あるアカウントの受信用ブランチに2,147,483,648個の子がゼロから番号付けされており、受信画面にはオンチェーンに一度も現れていない最も若い番号のものが表示されます。事前に生成されるものはなく、尽きることもありません。
その仕組みを健全に保つ設定が2つあります。BIP-44で20に定められたギャップリミットは、復元したウォレットが、支払いのある最後のアドレスからさらにどれだけ先までスキャンして、探すものがもう残っていないと判断するかを示します。Bitcoin Coreは同じ役割のために1,000個の鍵を先読みして保持します。どちらも存在するのは、復元したウォレットはどのアドレスを使ったのか誰にも尋ねられないためです。候補を導出し、それぞれをチェーン上で探す必要があります。
ギャップリミットは、問題が起きる前に理解しておく価値があります。40個の新しいアドレスを生成し、40番目だけを使い、その後シードフレーズを別のソフトウェアに復元すると、ギャップリミット20に従うウォレットは最初の20個をスキャンし、何も見つからず、残高はゼロであると報告します。コインは安全であり、対処法は復元先のウォレットでギャップリミットを引き上げることですが、そのことを知るまでの10分間は不快なものです。
どこで目にするか
一意なアドレスはエクスプローラーのダッシュボードで主要な指標として表示されますが、その数字は見た目に反してかなり小さな意味しか持ちません。
1日あたりの一意なアドレスの数は、その日にチェーンに触れた相異なるアドレスを数えたものです。現代的なウォレットから3回の支払いを行う1人の利用者は、お釣りを数えれば4つか5つのアドレスを作り出せます。200万人の顧客に対応する取引所が触れるアドレスは数十個程度かもしれません。入金を集約し、出金をまとめて単一のトランザクションにしているからです。したがってこの指標は、少なくとも利用の広がりと同じくらい、ウォレットの設計と取引所の構成を反映しており、人気のあるウォレットがお釣りの方針を変えたときに動くのであって、新しい利用者が現れたときに動くのではありません。
ウォレット側の意味には、知っておく価値のある新しい形態があります。BIP-352で規定されたサイレントペイメントでは、オンチェーンに一切現れない1つの静的な文字列を公開できます。各送信者はそれを使って異なる使い捨てアドレスを計算するため、再利用可能な公開識別子を保ちながら、すべての支払いは一意な場所に届きます。コンセンサスの変更は伴わず、送信側と受信側のソフトウェアの対応だけが必要であり、そのため対応状況はウォレットによって異なります。
請求書は日常的な例です。決済処理業者は拡張公開鍵から注文ごとに一意なアドレスを導出します。そのため請求書のアドレスは、利用者本人ではなく時間枠に結び付いています。支払いが遅れると、加盟店のソフトウェアが手作業で照合する必要が生じるかもしれません。アドレスが使えなくなったからではなく、それが属していた注文が終了しているからです。