主页 > imtoken官方网站 > 计算:比特币地址冲突概率

计算:比特币地址冲突概率

imtoken官方网站 2023-06-18 07:33:56

关于比特币地址的碰撞概率,好像没有特别详细的说法。 其实这是一个很重要的问题。 因为这直接影响到公众对比特币安全性的信心。 严格计算碰撞概率需要考虑的因素太多,公式也比较复杂。 所以下面的分析只是在数量级上,简单的逻辑计算和比较。

u=1278112832,4057677539&fm=15&gp=0

不准确,仅供娱乐。 给不想看过程的小伙伴说一下结论: 结论一:撞到特定比特币地址的概率 假设你掌握了现在比特币10倍的算力,耗时136年不断与特定的比特币地址发生冲突。 碰撞成功的概率相当于买彩票333103亿次和500万次。 (注意单位是亿) 结论2:与任意币种地址发生碰撞的概率(生日攻击) 假设你掌握了比特币当前算力10倍,连续136年与所有币种存款地址发生碰撞. 这些地址中的任何一个发生碰撞的概率都相当于购买 500 万福彩双色球 1000 次。 (注意,这些地址中有50%以上是小于0.001BTC的)我先来看看这两个结论的推导过程。 当然,在推导之前,首先要对比特币地址进行深入研究。 比特币地址不是公钥的说法可能会让很多人感到惊讶。 其实严格的说法应该是:

比特币地址是经过身份验证的公钥摘要。

比特币私钥碰撞开发_比特币钱包 导入私钥_比特币私钥是什么

我们来看看生成比特币地址的过程。 比特币地址的生成过程(注:有些数字以“0x”开头,表示该数字用十六进制表示,“0x”本身没有任何意义,这是C语言流传下来的代码。传统写法。对于例如,0xA 是十进制的 10。此外比特币私钥碰撞开发,1 个字节 = 8 个二进制位 = 2 个十六进制)。 第一步是随机选择一个大小为 1 ~0x fffffffffffffffffffe baa edce 6 af 48 a 03 bbfd 2 5e8c d 036 4141 的 32 字节数作为私钥。

18E14A, 7B6A, 307F426A, 94f 8114701 e 7 c8e 774 e 7 f 9 a 47 e2c 2035 b29 a 206321725

第二步,使用椭圆曲线加密算法(ECDSA-secp256k1)计算出私钥对应的未压缩公钥。 (一共65个字节,1个字节是004比特币私钥碰撞开发,32个字节是X坐标,32个字节是Y坐标)公钥压缩和不压缩的问题在另一篇文章中有说明。 0450863 AD 64 A 87 AE 8 AE 8 A2 Fe 83 C1 A F1 A 8403 CB 53 F 53 E 486D 8511 DAD 8 A 0487 E5B 23522 CD 470243453 A 299 FA 9E 7237716103 ADF 38855 EE 9 C 187 E 第三步就是计算公钥的SHA-256哈希值

比特币钱包 导入私钥_比特币私钥是什么_比特币私钥碰撞开发

600 FFE 422 B4 e 00731 a 5951 计算RIPEMD-160[X]010966776006953d 5567439 e 5e 39 f 86 a0d 273 bee[X]的hash值 第五步,取上一步的结果。 添加地址版本号(比特币主网版本号“000”)[X]0001096676006953d 5567439 e 5e 39 f 86 a0d 273 bee[X] 第六步,取上一步的结果。 计算SHA-256的哈希值 [X] 445 C7 a 8007 a 93d 8733188288 bb 320 a 8 Fe 2 debd 2 AE 1 b 47 f 0 f 50 BC 10 BAE 845 c 094 [X] 第七步2022,取上一步的结果。 再次计算SHA-256的hash值(哈哈)[X] D61967F63 c 7 DD 183914 a 4 AE 452 c 9 F6 ad 5d 462 ce 3d 277798075 b 107615 C1 A8 a 30 [X] 第八步,取前面的结果(8 位十六进制) [X]d 61967 f 6 的前 4 个字节。

0001096676006953d 5567439 e 5e 39 f 86 a0d 273 beed 61967 f 6

第十步是将地址转换为 base58 表示法(这是比特币地址最常见的形式)。

比特币钱包 导入私钥_比特币私钥是什么_比特币私钥碰撞开发

16 uwll 9 RISC 3 qfpqbuvkofhmbq 7 wmt JVMbase58 简单介绍base 58。Base58实际上是一种58位表示法。 base58编码表:实际值编码值编码值编码值编码值编码值编码值编码值编码值编码值编码值编码值编码值编码值37 e 53v 6722 p 38 w 7823 q 39g 558924 r 40h 56 a 2541 I. 2j 11 c 27 u 43k 12d 28 v44 m 13 e 29 w 45n 14 f 30 x 46 o 15g 31y 47 p 比如十进制“58”表示十六进制的3A,“20”表示base58(因为1是0,2是1)、十进制“68”表示Base58。 为什么是这种奇怪的编码? (从事编程的同学要注意,比特币使用的base58的字典顺序与常用的Base58不同。) 引用中本聪在源码base58.h中的评论:为什么是base-58而不是标准的base-64编码? 为什么使用 base58 而不是 base-64? 不希望 0 petro 字符在某些字体中看起来相同,可用于创建视觉上可识别的帐号。

我不要0、O、I、l这些字母,因为这些字母很容易在很多字体中混用。 而且改装之后,看起来比之前舒服多了。 包含非字母数字字符的字符串不像帐号那样可以接受。 每个人都很容易理解。 电子邮件通常不会在没有标点符号的情况下换行。 如果没有标点符号,电子邮件通常不会换行。 如果全部按字母顺序排列,双击会将整个数字选为一个单词。 双击选择整个字符串,哦耶。 椭圆曲线加密算法原理、SHA-256哈希算法、RIPEMD-160哈希算法无法一两句话说清楚,先忽略。 稍后会写一篇关于它的文章(不要打我)。 仅供使用: 椭圆曲线加密算法:取任意随机数作为私钥,生成公钥组成密码对。 私钥保密,公钥公开。 由私钥签名的信息可以由公钥验证。 签名不能伪造。 SHA-256哈希算法:任意大小的数据通过特定的算法进行混淆,生成一个长度为256位的数字作为原始数据的摘要信息。 RIPEMD-160哈希算法:任意大小的数据经过特定算法混淆后,生成一个160位二进制长度的数字作为原始数据的摘要信息。 (可以向前查,但不能向后查)没有公钥也能查到地址。 我们可以得出以下结论。 只有比特币地址,不能推导出公钥。 合法的比特币地址不一定有对应的公钥。

例如这个:

比特币私钥碰撞开发_比特币钱包 导入私钥_比特币私钥是什么

11111111111111114 olvt 2

它是这样构造的:

00(版本号)00000000000000000000000000000000000000000(任意 20)。 真的有人给这个地址汇款了(大概3个币,相当于被销毁了)。 看这里:区块链编号。 信息/地址/11111111111111114 olvt 2

比特币私钥碰撞开发_比特币钱包 导入私钥_比特币私钥是什么

比特币地址碰撞地址的由来已经很清楚了,下面我们来分析一下如何碰撞。 以全零地址:“1111111111111111111114 olvt 2”为例。 随便敲出这个地址对应的公钥是没有意义的。 因为比特币交易需要私钥签名才有效。 所以如果你想在这个地址使用比特币,就必须有这个地址对应的公钥的私钥。 也就是说,您需要: 随机生成一个私钥。 计算对应于私钥的公钥。 使用公钥计算比特币地址。 与目标地址进行比较,看是否一致。 如果没有,回到步骤1。根据比特币地址的理论总数,不难看出单次碰撞成功的理论概率为

1/(2^160)? //"2 160"表示2的160次方

由于每次碰撞至少需要3次SHA-256运算,我们放宽为2次。在不考虑其他计算的情况下,假设你有1E/秒的算力(E=2^60相当于当前比特币网络算力的10倍)来裂缝。 那么,每秒与这个地址碰撞成功的概率:(1/(2^160))*(2^60)/2=1/(2^101) 假设你能活2^32秒=4294967296秒136.2年,你一生中成功撞到这个地址的概率是:(1/) 我们来看看双色球撞到500万的概率:

1/C(33, 6) * 16=1/[(33 * 32 * 31 碰撞成功的概率相当于买彩票333103亿次和500万次。(注意单位是亿)考虑生日攻击,目前有300万个左右的地址有钱,看这里: ,让我们把这个数字乘以一万倍。假设有343亿个地址有比特币(23534.3万,相当于5个地址每个都有余额地球上的人,不包括火星人。呵呵)那么命中任意一个地址的概率为:(1/(2 69))*(2 35)=1/2 34=1/17179869184,相比500万:(1 /17721088) /(1/17179869184)。所以结论是:假设你全网有10倍于当前比特币的算力,用了136年不间断地命中所有的充值地址。任何一个的概率其中一个地址冲突相当于购买500万福彩双色球1000次。(注意超过这些地址中有 50% 的 BTC 小于 0.001)? 后记 以上计算有很多遗漏,计算时考虑了最宽松的情况。 所以实际概率更小。 比特币系统的设计让有计算能力的人倾向于计算区块链,因为它比地址冲突要划算得多。 本文计算存在误差和遗漏。 请纠正我。 但如果你纠正我,我不必改变它。 (开玩笑,别打我。) 从来没有中过1000次,却中过500万的同学,不会幻想计算别人的地址。 我们来玩骰子吧……我们去睡觉吧。 如果您喜欢“比特币地址冲突概率”,请捐赠:122222 o 5 a 3k 6d 7 wl 5 mabpuvkutzjhmk 4 参考:3359en.bitcoin.it/wiki/technical_background_of_bitcoin_address 3359en.bitcoin.it/wiki/base 58 check_encoding bits.com/ 2013/08/ 27/generating-a-bitcoin-address-with-javascript.org/index.php?topic=41718.03359en.bitcoin.it/wiki/列表地址前缀导入格式 3359en.bitcoin.it/wiki/privatekey

———