ビットコインアドレス

ビットコインのアドレスってどうやって生成されるのか疑問だったんですが、 Mastering bitcoinの続きにちゃんと載っていました。

ビットコインアドレス

ビットコインアドレスは、簡単に言うと公開鍵のハッシュ値です。

ウォレットの公開鍵

SHA-256ハッシュ

RIPMED160ハッシュ

公開鍵ハッシュ(20バイト/160ビット)

だそうです。 ちなみに

SHA-256ハッシュ

RIPMED160ハッシュ

の部分は、二重ハッシュ化またはHASH160と呼ぶそうです。

さらにBASE58Checkというエンコードを行います。 こまかいこというとその先頭には、version prefix 0x00というものをいれてるみたい。 その結果としてビットコインアドレスは、今まで使ってきたテキスト(アルファベットと数字)でみられるようになりますね。

なるほど

BASE58は、電子メールの添付ファイルで使われているBASE64のお仲間で、記号と見間違いやすいアルファベットOなど以外の数字とアルファベットだけにしたエンコード方式。

BASE58Checkは、BASE58にチェックサムをいれたもの。チェックサムは、元データにSHA256を2回かけたもので作られるらしい。

(追記) ビットコインアドレスは、後日書く代表的なウォレットであるHDウォレットとも関係が出てきます。