我正在尝试处理一些非常基本的数字,需要检查一下这在逻辑上是否正确。
查看比特币时,有 2^160 个地址。比特币使用 Base58 编码,因此有 24 个小写字母、24 个大写字母和 10 个数字。
因此,假设我使用 Vanitygen 并想获得以 1TEST 开头的地址,假设我找到以 1TEST 开头的地址的机会是 58^5 中的 1。说1TEST开头的比特币地址数是2^160/58^5对吗?因此 1TEST 有 2.2^39 个地址?
我正在尝试处理一些非常基本的数字,需要检查一下这在逻辑上是否正确。
查看比特币时,有 2^160 个地址。比特币使用 Base58 编码,因此有 24 个小写字母、24 个大写字母和 10 个数字。
因此,假设我使用 Vanitygen 并想获得以 1TEST 开头的地址,假设我找到以 1TEST 开头的地址的机会是 58^5 中的 1。说1TEST开头的比特币地址数是2^160/58^5对吗?因此 1TEST 有 2.2^39 个地址?
Meta:这不是一个编程问题,可能属于bitcoin.SX,正如标签描述所说。它绝对与加密无关。
几乎。首先,比特币的base58实际上是字母9位,24个小写,25个大写。更重要的是,编码地址以'version' (真正的类型)字节开头,但前导 00 字节是特殊编码的,因此第一个字符1
实际上对应于类型字节 00 意味着普通的传统 keyhash(不是测试,不是脚本,不是私钥)。接下来的 4 个字符,如果不是以 more 1
(s) 开头,则表示散列的高位数字,并且由于TEST
在需要 1+33 个字符的范围的不平衡部分中不能不匹配,它确实涵盖了精确的 1 /58^4 部分空间,即 2^160 / 58^4 大约是 2^136.6。