偶然同じビットコインアドレスが生成される可能性は? サトシが回答

小宮自由

ビットコインアドレスの衝突の可能性は?

ビットコインを発明し、未だその正体が分かっていないサトシ・ナカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第33回。

まずサトシのメールの前に、本連載の元になっている書籍『ビットコイン バイブル:サトシナカモトとは何者か?』の著者フィル・シャンパーニュ氏の解説も掲載する。

フィル・シャンパーニュ氏の解説

ビットコインアドレスは公開アドレスのハッシュ出力値から作成される。ここでは、異なる二人の個人に偶然、同一のビットコインアドレスが割り当てられる衝突の可能性について懸念が示された。ここで注意すべきなのは、160ビットのハッシュは、2^160 または 1.46 x 10^48 のパターンがあるので *1、衝突が起きる可能性が極めて低いということである。

【訳注】
*1 2^160 ≒ 1.46 x 10^48 なので、表記方法の違い。

サトシ・ナカモト 2010年02月23日 午前09時22分47秒

それではサトシの投稿をみていこう。

========================

Re:ビットコインアドレスの衝突

(注:斜体部分は、サトシ以外の者の質問を指す)

NewLibertyStandardは書きました:

極めて可能性が低いことですが、二つのビットコインクライアントが同一のビットコインアドレスを生成したらどうなりますか? 支払を最初に見たクライアントに送金されますか? 衝突を予防するメカニズムがあれば説明して下さい。

各ビットコインアドレスには異なる公開鍵と秘密鍵のペアがあります。一つの秘密鍵で全てを開錠することはできません。ビットコインアドレスは公開鍵の160ビットハッシュ値で、システムではそれ以外のものは全て256ビットです。

衝突が起きると、衝突を起こした本人は、そのアドレスに送られるお金を全て使えるようになります。ただし、アドレスへ送られるお金のみであって、ウォレットの全額ではありません *1。

自分で意図的に衝突を起こそうとすると、現在のシステムでは、衝突するビットコインアドレスの生成には、一つのブロックの生成時間の2^126 の時間がかかります。これなら、ブロックを生成していた方がずっと多くのビットコインが手に入ります。

ランダムシードは極めて完璧です。ウィンドウズでは、ランダムシードは、ディスク・パフォーマンス、ネットワーク・カードのメトリックス値、CPU時間、ページングなど、全ビットを計測するパフォーマンス・モニター・データを全て利用します。Linuxではエントロピー・コレクターが内蔵されています。

これに加え、ビットコイン・ウィンドウの内部にマウスを移動させると、そのたびにエントロピーが生成され、エントロピーはディスク操作のタイミングから捕捉されます *2。

========================

【訳注】
*1 セキュリティやプライバシーを十分に考慮したビットコインのウォレットでは、1つではなく複数のアドレスを送受金に用いている。したがって、そのうちの一つのアドレスが他人と衝突しても、その他人が処分できる資産は衝突した1アドレスのみとなる。
*2 bitaddress.org を使えば、この文章が直感的に理解できる。

解説

ハッシュが入力に応じてランダムな文字を生成するものである以上、偶然アドレスが重複してしまうことは理論上起こり得ます。アドレスは秘密鍵を何度か変換することによって生成されるため、この場合重複したアドレスに存在する資産は全て利用できることになります。他人の資産を盗めてしまうのです。

しかしこれは、天文学的に低い確率です。意図的にやろうとすれば、マイニングより遥かに巨大なマシンパワーが必要ですし、偶然当たるにしても通常のコンピュータでは10,000回分の人生の時間すべてを使おうが当たりません。したがって、これは杞憂と言えます。

小宮自由

→この連載の他の記事を読む

関連するキーワード

この記事の著者・インタビューイ

小宮自由

東京工業大学でコンピュータサイエンスを学び、東京大学ロースクールで法律を学ぶ。幾つかの職を経た後に渡欧し、オランダのIT企業でエンジニアとして従事する。その後東京に戻り、リクルートホールディングスでAI(自然言語処理)のソフトウェア作成業務に携わり、シリコンバレーと東京を行き来しながら働く。この時共著者として提出した論文『A Lightweight Front-end Tool for Interactive Entity Population』と『Koko: a system for scalable semantic querying of text』はそれぞれICML(International Conference on Machine Learning)とACM(Association for Computing Machinery)という世界トップの国際会議会議に採択される。その後、ブロックチェーン業界に参入。数年間ブロックチェーンに関する知見を深める。現在は BlendAI という企業の代表としてAIキャラクター「デルタもん」を発表するなど、AIに関係した事業を行っている。
https://blendai.jp/
https://twitter.com/blendaijp
https://twitter.com/BorderlessJpn
https://twitter.com/BorderlessDAO

東京工業大学でコンピュータサイエンスを学び、東京大学ロースクールで法律を学ぶ。幾つかの職を経た後に渡欧し、オランダのIT企業でエンジニアとして従事する。その後東京に戻り、リクルートホールディングスでAI(自然言語処理)のソフトウェア作成業務に携わり、シリコンバレーと東京を行き来しながら働く。この時共著者として提出した論文『A Lightweight Front-end Tool for Interactive Entity Population』と『Koko: a system for scalable semantic querying of text』はそれぞれICML(International Conference on Machine Learning)とACM(Association for Computing Machinery)という世界トップの国際会議会議に採択される。その後、ブロックチェーン業界に参入。数年間ブロックチェーンに関する知見を深める。現在は BlendAI という企業の代表としてAIキャラクター「デルタもん」を発表するなど、AIに関係した事業を行っている。
https://blendai.jp/
https://twitter.com/blendaijp
https://twitter.com/BorderlessJpn
https://twitter.com/BorderlessDAO

この特集のその他の記事

経済的ディスインセンティブが、ビットコイン51%攻撃を防ぐ

ビットコインネットワークに対する著名な攻撃(取引履歴を不正に改ざんすること)に、51%攻撃というものがあります。ビットコインは世界中のコンピュータがその計算能力を使い、取引履歴をブロックとして保存しています。この計算能力・処理能力の51%、つまり過半数を占めてしまえば、不正な取引履歴を正当とみなせるようになります。この問題は理論上取り除くことはできず、サトシもそれを認めています(ビットコイン以外の多くのブロックチェーンも、同じ問題を有しています)。