ビットコインアドレスは本当に使い捨てが良いのか

CG Sales
Crypto Garage
Published in
Feb 17, 2021

ビットコインを送金するときには送付先のビットコインアドレスが必要になります。
ビットコインを受け取る時は自分の受取アドレスを取引相手へ伝え、ビットコインを送る時は相手の受取アドレスを確認し、ビットコインはそのアドレスへ送金します。

そもそもビットコインアドレスとは何だろう。

ビットコインアドレスがどのように生成されるのかはこの後に少し触れますが、以下ビットコインアドレス[*1]の説明です。

(原文)
A Bitcoin address is similar to a physical address or an email. It is the only information you need to provide for someone to pay you with Bitcoin. An important difference, however, is that each address should only be used for a single transaction.
(和訳)
ビットコインアドレスは、物理的な住所や電子メールに似ています。それは誰かがあなたへビットコインで支払うために提供する必要がある唯一の情報です。しかし、重要な違いは、各アドレスは1回の取引にのみ使用されるべきであるということです。

同一のビットコインアドレスは1回の取引にのみ使用されるべきと記載がされています。

技術的には同じアドレスを使い続けることもトランザクション毎に新しいアドレスを用いてもどちらも可能であるにも関わらず、なぜ同じアドレスを使い回さず使い捨てにするべきなのでしょうか。

同じアドレスを使うメリット

  • 過去に送金した実績があれば、確実にそれが相手のアドレスであることがわかり誤送金のリスクが低くなる。
  • 同じ取引相手と送金の度にアドレス情報をやり取りする必要がなく事務作業が簡素化される。

同じアドレスを使うデメリット

  • そのアドレスの全入出金が丸見えとなり様々なリスクがある。
  • 特定のアドレスの入出金はブロックチェーンエクスプローラーを用いて誰でも確認することが可能です。

以下、ブロックチェーンエクスプローラーの一例です。
Blockstream.info
Blockchain.com
Bitcoin.com

全入出金が丸見えになるリスクとは

  • どのアドレスと頻繁に取引しているか、取引量はどのぐらいかなど、取引の傾向を読み取ることが出来て、プライバシーと安全性がない。
  • 自分のアドレスの入出金や残高だけでなく、自分宛の取引相手の出金、もしくは自分から取引相手宛ての入金も丸見えで、他者のプライバシーと安全性も脅かす。
  • 残高が沢山あると資産を狙われる。
  • 取引所への入出金では取引の動きが読まれてフロントランニングされる恐れがある。[*2]

それでは、ビットコインアドレスを使い回さないことを前提とした場合、何が必要になるのでしょうか。

ビットコインアドレスを使い回さないために必要なもの

ビットコインアドレスは公開鍵から一方向関数を使って導出されます。(逆方向の計算は出来ません。) [*3]

ビットコインアドレスの生成に必要となる秘密鍵が入っているのがウォレットです。
アドレスを使い回さないためには、取引毎に新しいアドレスを作成することができるウォレットが必要です。
ウォレットは様々な種類があり、用途や目的で使うウォレットが異なります。

ウォレットの種類

各ウォレットの詳細は別の記事でご案内したいと思います。

上記表のウォレットの種類とは別に、さらにアドレスの生成方式(鍵生成アルゴリズム)[*4] [*5]によって以下の3つに分類されます。

  • 非決定性ウォレット:ランダムに秘密鍵を生成。アドレス作成の度に秘密鍵を生成する。生成されたそれぞれの秘密鍵は関係性なし。管理が煩雑。
  • 決定性ウォレット:1つのシードからハッシュ関数を用いて秘密鍵を生成。アドレス作成の度に秘密鍵を生成する。生成されたそれぞれの秘密鍵は関連性あり。管理が容易。
  • 階層的決定性ウォレットBIP-32をサポートした決定性ウォレット。秘密鍵がツリー構造をしていて、親鍵が子鍵を生成し、子鍵が孫鍵を生成する。

取引毎に新しいアドレスを作成するには、上記3つのいずれかのウォレットシステムを用いたウォレットが必要になります。

次に、使い捨てアドレスを使うことのデメリットを考えてみたいと思います。

使い捨てアドレスのデメリット

  • 取引所のように顧客の資産を預かる場合は管理する鍵の数が多すぎて管理が煩雑になる。
  • 鍵生成仕様に従ってアドレスを作成する仕組みを作り込む必要がありシステムが複雑になる。
  • 生成した、または受取ったアドレスが正しいかを都度確認する必要がある。

上記の通りアドレスの使い回しや使い捨てアドレスにはメリットとデメリットがそれぞれある中で、多くの取引所では取引所の自分のアカウントへ送金する際に使う受取アドレスは、使い捨てであることが確約されていません。

基本的に個人のプライバシーは守られるべきものであるのに対して、公開することでそのもの自体を証明できる公のものもあり、アドレスも使い回しや使い捨てをそれぞれ上手く使い分けることが出来れば良いのではないでしょうか。

引用
1. https://bitcoin.org/en/vocabulary#address
2. https://en.bitcoin.it/wiki/Address_reuse, Worked Example 2
3. ビットコインとブロックチェーン 暗号通貨を支える技術 (アンドレアス・M・アントノプロス 著、今井崇也/鳩貝淳一郎 訳、NTT出版 書籍)
4. https://www.1daydude.com/deterministic-and-non-deterministic-wallets/
5. https://tomokazu-kozuma.com/wallet-mechanism-of-crypto-currency/

株式会社Crypto Garageはビットコイン決済の仮想通貨デリバティブ取引を実現するP2Pプロトコルを開発しています。ご興味のある方は弊社提供のCrypto Finance Development Kit (CFD)をご覧ください。

--

--