昵称地址包含带有可读信息的有效比特币地址。例如,1 lovebpzzd 72 puxlzckyatgymk 5 vynr 33包含字母“Base-58”。美丽的地址需要生成并通过数十亿个候选私钥测试。
直到私钥可以生成具有所需模式的比特币地址。虽然有一些生成昵称的优化算法,但这种方法必须涉及随机选择一个私钥,生成一个公钥,然后生成一个比特币地址,并检查它是否与所需的昵称模式匹配,这一过程要重复数十亿次。
直到我们找到匹配的。一旦找到匹配所需模式的昵称地址,所有者就可以像使用其他地址一样使用这个昵称地址的私钥。漂亮的地址并不比其他地址更安全。它们依赖与其他地址相同的ECC和SHA。
在一个漂亮的数字模式的开头,你不可能比在任何其他地址更容易得到私钥。在第一章中,我们介绍了尤金妮亚,一位在菲律宾工作的儿童慈善机构的主管。我们假设Eugenia组织了一次比特币筹款活动。
希望用昵称比特币地址来宣布这个筹款活动。Eugenia将创建一个以1Kids开头的美丽地址,用于推广儿童慈善募捐活动。让我们看看这个美丽的地址是如何创建的。
这个漂亮的地址对尤金妮亚的慈善募捐的安全性意味着什么?
4.5.3.1产生美丽的地址。我们必须认识到,使用Base58字母表中的简单符号来表示比特币地址非常重要。
搜索以“1kids”开头的模式,我们会找到从1 kids 11111111111111111111到1 kids zzzz ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ
这些以“1kid”开始的地址范围大约有58的29次方个地址。表4-11显示了这些以“1kids”为前缀的地址。表4-11“1个孩子”昵称的范围
From
| 1Kids11111111111111111111111111111
|
To
| 1Kidszzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
我们把前缀“1Kids”作为一个数字,我们可以看看这个前缀在比特币地址中的出现频率。如果是性能一般的台式电脑,不需要任何特殊的硬件,每秒可以找到10万个左右的按键。
表4-12美丽名字出现的频率(1 kids charm)和产生它们所需的时间
长度
| 地址前缀
| 概率
| 平均生成时间
|
1
| 1K
| 1/58
| < 1毫秒
|
2
| 1Ki
| 1/3,364
| 50毫秒
|
3
| 1Kid
| 1/(195*103)
| < 2秒
|
4
| 1Kids
| 1/(11*106)
| 1分钟
|
5
| 1KidsC
| 1/(656*106)
| 1小时
|
6
| 1KidsCh
| 1/(38*109)
| 2天
|
7
| 1KidsCha
| 1/(2.2*1012)
| 34 月
|
8
| 1KidsChar
| 1/(128*1012)
| 1318年
|
9
| 1KidsChari
| 1/(7*1015)
| 800年
|
10
| 1KidsCharit
| 1/(400*1015)
| 46,000年
|
11
| 1KidsCharity
| 1/(23*1018)
| 250万年
|
正如你所看到的,Eugenia不会很快创建一个以“1KidsCharity”开头的漂亮地址,尽管她有数千台计算机同时执行操作。每增加一个字符,计算难度会增加58倍。
超过七个字符的搜索模式通常需要特殊的硬件来找出,例如用户定制的具有多个图形处理单元(GPU)的桌面设备。那些通常无法在比特币挖矿中继续盈利的钻机又被赋予了寻找漂亮地址的任务。
用GPU系统搜索美名的速度比用一般CPU快很多个数量级。另一种寻找好名字地址的方法是将工作外包给一个矿池中的好名字矿工,例如好名字矿池中的矿池。
矿池是一种服务,它允许那些GPU硬件通过为其他人寻找漂亮的地址来获得比特币。对于小额账单,Eugenia可以外包搜索模式,为7字漂亮地址找工作,几个小时内就能得到结果。
而不是用一个CPU搜索几个月才得到结果。生成一个漂亮的地址是一个蛮力过程:尝试一个随机键,检查得到的地址是否与期望的模式匹配,并重复这个过程,直到成功找到它。例4-8是一个帅气矿工的例子。
用c程序寻找漂亮的地址。这个例子适用于我们在第56页“其他替代客户端、数据库、工具包”一节中介绍的libbitcoin库。实施例4-8梁浩采矿计划
$ #用虚荣挖掘者CPP $(pkg-config-cflags-libs lib比特币)$ #编译代码运行示例$。/虚荣矿工找到了虚荣地址!1 kidzg 4 mxmovzryzrj 8 tk 81 oqrhbz 46 yt秘密:57cc 268 a 05 f 83 a 23 AC 9d 930 BC 8565 BAC 4 e 277055 f 4794 CBD 1a 39 e 5e 71 c 038 f 3 f $ #再运行一次,结果不同$。/虚荣矿工找到了虚荣地址!1 kid xr 3 wsmmzzouwxibkfwtys 5 pau 8 tufnsecret:7 f 65 bbbb 6d 8 caae 74 a 0 c 6 a 0d 2d 7 b5 c 6663d 71 b 60337299 a 1 a2 cf 34 c 04 B2 a 623 #使用"时间"来查看找到一个结果需要多长时间$时间./虚荣矿工找到了虚荣地址!1 kidpwhkggrqwd 5 P5 tangfdyfwp 5 ycesxmsecret:2a 802 e 7a 53d 8 aa 237 CD 059377 b 616d 2 BF CFA 4b 0140 BC 85 fa 008 f 2d 3d 4b 225349 real 0m 8.868 suser 0m 8.828 ssys 0m 0.035s正如我们运行Unix操作系统操作系统命令时间所测出的运行时间所示,
4.5.3.2昵称地址安全性昵称地址可以增加或削弱安全措施,它们确实是一把双刃剑。当用于提高安全性时,唯一的地址使对手很难使用他们自己的地址而不是你的地址来欺骗你的客户支付他们的账单。
不幸的是,昵称地址也可能使任何人能够创建一个类似于随机地址的地址,甚至另一个昵称地址,从而欺骗您的客户。
Eugenia可以要求捐赠者捐款到她公布的随机生成的地址(例如:1j 7 MDG 5 rbqyuhenydx 39 wvwk 7 fslpeoxzy)。或者,她可以生成一个以“1Kids”开头的漂亮地址,以便更加独特。
在这两种情况下,使用单一固定地址(而不是每比捐款用一个独立的动态地址)的风险之一是小偷有可能会黑进你的网站,用他自己的网址取代你的网址,从而将捐赠转移给自己。如果你在不同的地方公布了你的捐款地址,
你的用户可以在付款之前直观地检查以确保这个地址跟在你的网站、邮件和传单上看到的地址是同一个。在随机地址1j7mdg5rbqyuhenydx39wvwk7fslpeoxzy的情况下,
普通用户可能会只检查头几个字符“1j7mdg”,就认为地址匹配。使用靓号地址生成器,那些想通过替换类似地址来盗窃的人可以快速生成与前几个字符相匹配的地址,如表4-13所示。
表4-13 生成匹配某随机地址的多个靓号
原版随机地址
| 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy
|
4位字符匹配
| 1J7md1QqU4LpctBetHS2ZoyLV5d6dShhEy
|
5位字符匹配
| 1J7mdgYqyNd4ya3UEcq31Q7sqRMXw2XZ6n
|
6位字符匹配
| 1J7mdg5WxGENmwyJP9xuGhG5KRzu99BBCX
|
那靓号地址会不会增加安全性?如果Eugenia生成1Kids33q44erFfpeXrmDSz7zEqG2FesZEN的靓号地址,用户可能看到靓号图案的字母和一些字符在上面,
例如在地址部分中注明了1Kids33。这样就会迫使攻击者生成至少6个字母相匹配的的靓号地址(比之前多2个字符),就要花费比Eugenia多3364倍的靓号图案。本质上,
Eugenia付出的努力(或者靓号池付出的)迫使攻击者不得不生成更长的靓号图案。如果Eugenia花钱请矿池生成8个字符的靓号地址,攻击者将会被逼迫到10字符的境地,那将是个人电脑,
甚至昂贵自定义靓号挖掘机或靓号池也无法生成。对Eugenia来说可承担的起支出,对攻击者来说则变成了无法承担支出,特别是如果欺诈的回报不足以支付生成靓号地址所需的费用。
#数字货币##欧易OKEx##比特币[超话]#
标题:莱特币地址和比特币地址(比特币地址如何生成)
链接:https://www.52hkw.com/news/rj/62898.html
版权:文章转载自网络,如有侵权,请联系删除!