プログラミングのお題スレ Part18
(ID:Nup7rIuHのみ表示中)
戻る
358デフォルトの名無しさん

AAS

NG

前の書き方だとやる気が出ないみたいなので再掲

お題 任意文字列を含む有効なビットコインアドレスを生成するにはどうすればいいか

ビットコインアドレスの形式は
[プレフィックス 1バイト] [本体データ 160ビット] [チェックサム 4バイト]
をbase58(58進数)で表現したもの

プレフィックスは0x00とする
チェックサムはプレフィックス+本体データをsha256に二回かけた後の先頭4バイト

詳細
https://www.tottemoyasashiibitcoin.net/entry/2018/02/04/165300

例:
1BitCoinDescriptionAddressadTvGDH
1MayukoMuraokaXXXXXXXXXXXXXXX5f8QC

これはどっちも有効なビットコインアドレスになってる
https://chainflyer.bitflyer.com/Address/1BitCoinDescriptionAddressadTvGDH
https://chainflyer.bitflyer.jp/Address/1MayukoMuraokaXXXXXXXXXXXXXXX5f8QC

2020/08/17(月)01:49:55.07(Nup7rIuH.net)


364デフォルトの名無しさん

AAS

NG

入力が任意文字列で出力がそれを含む有効なビットコインアドレス
例にあるやつだとMayukoMuraokaが任意文字列の部分
XXX…っていうのはただの本体データ160bitのあまりスペースを埋めてるだけだからなんでもいい
それに対応して最後のチェックサムも任意性がある
直感だとブルートフォースが必要そうだけど実際は単純なやり方でできる

2020/08/17(月)18:12:59.56(Nup7rIuH.net)


366デフォルトの名無しさん [sage]

AAS

NG

基本的にはそれだけのこと
実際の手順を考えるとちょっとややこしいことがあるくらい
ということで実装してみよう

2020/08/17(月)19:45:01.16(Nup7rIuH0.net)


戻る
ver.151005sp