Mastering Bicoin 「キー、アドレス、ウォレット」

今日も今日とてBitcoin勉強中。 今回はBitcoinのセキュリティについて

イントロダクション

Bitcoinの所有権はデジタルキー、Bitcoinアドレス、デジタル署名で規定される。 * デジタルキー:ウォレットに格納される秘密鍵(銀行口座の暗証番号) * Bitcoinアドレス:受取人の公開鍵のデジタルフィンガープリント(銀行口座の口座番号) * デジタル署名:トランザクションの正当性を担保するためにデジタルキーから生成される公開鍵

生成方式

Bitcoinの安全性は公開鍵暗号理論によって規定されている。秘密鍵(ロックを解除するための鍵)と公開鍵(ロックするための鍵)が別々である。 Bitcoinアドレスは、公開鍵を変換することで生成される。 技術的には楕円曲線暗号を使って生成するが、ここはOpenSSLを使うことが多い。 #OpenSSLの暗号ライブラリに欠陥が見つかったら世界が終わりそう

具体的には、秘密鍵→公開鍵→Hash生成(2回)→Base58 encodeで生成する。 公開鍵はトランザクションサイズの軽減のために圧縮することも可能。

ウォレット

財布という名前の通り、秘密鍵を保持してBitcoinの所有権を保証する。 最近は、単独のシードを保持し、トランザクションごとに秘密鍵を生成するウォレット方式が主流(Deterministicウォレット) ウォレットのシードを復元するために、Mnemonic codeを使うこともある。 (英単語24個でシードを表現する)