Re: Bitcoinアドレスの衝突

参加者: ec

Quote from: NewLibertyStandard on February 23, 2010, 09:22:47 AM

Bitcoinを初回起動したときに生成される秘密鍵のことを言っているのか? もし誰かが他人の鍵を複製することに成功したら、全ブロックをダウンロードした後、元の鍵の所有者と同じ残高を持つことになる。そういうことだよな?

自分が言っていたのはカスタムBitcoinアドレスのことだ。bitcoinを送ってくる相手の名前でラベルを付けて、誰からの支払いか分かるようにするものだ。これらのアドレスは前述の秘密鍵から生成されると思う。衝突について疑問なのは、非常にユニークではあるが、すべてのbitcoinクライアントで簡単に何度でも生成されるからだ。

その通りだ。ウォレットを共有することになり、先にお金を使う競争になる。

Quote from: NewLibertyStandard on February 23, 2010, 09:22:47 AM

Bitcoinを初回起動したときに生成される秘密鍵のことを言っているのか? もし誰かが他人の鍵を複製することに成功したら、全ブロックをダウンロードした後、元の鍵の所有者と同じ残高を持つことになる。そういうことだよな?

自分が言っていたのはカスタムBitcoinアドレスのことだ。bitcoinを送ってくる相手の名前でラベルを付けて、誰からの支払いか分かるようにするものだ。これらのアドレスは前述の秘密鍵から生成されると思う。衝突について疑問なのは、非常にユニークではあるが、すべてのbitcoinクライアントで簡単に何度でも生成されるからだ。

ソースコードを正しく読んでいれば、鍵は常にペアで作られる。つまり、すべてのアドレスには対応する秘密鍵がある。「New Address」をクリックすると、main.cppのGenerateKeyが呼ばれ、新しい鍵ペアが生成される。したがって、重複アドレスは究極的には重複公開鍵を意味する。これは非常に起こりにくい。

鍵は確かに「簡単に生成される」が、衝突が起きるまでには膨大な数の鍵を生成する必要がある。確信はないが、生成される鍵の空間は256ビットのようで、UUIDに関するWikipedia記事で見通しが示された122ビットよりもはるかに大きい。123ビットは122ビットの半分の衝突確率であり、124ビットはさらにその半分、といった具合だ。