主页 > imtoken钱包有几个版本 > 比特币地址冲突概率

比特币地址冲突概率

imtoken钱包有几个版本 2023-09-18 05:14:09

比特币碰撞地址软件_外国的比特币便宜中国的比特币贵为什么?_2021年5月比特币持币地址数量

关于比特币地址的碰撞概率,好像没有特别详细的论证。 其实这是一个很重要的问题。 因为它直接影响公众对比特币安全性的信心。

碰撞概率的严密计算需要考虑的因素太多,计算公式也很复杂。 因此比特币碰撞地址软件,下面的分析只是在数量级上,进行简单的逻辑计算和比较。

不准确,仅供娱乐。

先给不想看过程的朋友下个结论: 结论一:与特定比特币地址发生碰撞的概率

假设你拥有比特币当前全网 10 倍的计算能力,并花费 136 年不间断地碰撞特定的比特币地址。 碰撞成功的概率相当于中奖333103亿乘以500万。 (注意单位是亿)

结论2:与任意币种地址发生碰撞的概率(生日攻击) 假设你掌握了比特币当前全网10倍的算力,并花费136年不间断地与所有币种存款地址发生碰撞。 与其中任意一个地址碰撞的概率相当于购买500万福彩双色球1000次。 (注意,这些地址中超过 50% 的 BTC 存款少于 0.001)

下面我来看一下这两个结论的推导过程。

外国的比特币便宜中国的比特币贵为什么?_2021年5月比特币持币地址数量_比特币碰撞地址软件

当然比特币碰撞地址软件,在推导之前,我们首先要对比特币地址进行深入研究。

比特币地址不是公钥

这句话可能会让很多人感到意外。 其实严格的说法应该是:比特币地址是加入验证的公钥摘要。 我们看一下比特币地址的生成过程,就更清楚了。

比特币地址生成过程

(注:有些数以“0x”开头,表示该数用十六进制表示,“0x”本身没有任何意义,是C语言传下来的,按照约定写成,比如0xA就是10十进制。此外,1 字节 = 8 位二进制 = 2 位十六进制)。

第一步是随机选择一个大小在 1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 之间的 32 字节数字作为私钥。 18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725 第二步使用椭圆曲线加密算法(ECDSA-secp256k1)计算出私钥对应的解压公钥。 (一共65个字节,1个字节0x04,32个字节为x坐标,32个字节为y坐标)关于公钥压缩和不压缩的问题会在另一篇文章中说明。 0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6第三步,计算公钥的SHA-256 哈希值600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408第四步,取上一步结果,计算RIPEMD-160 哈希值010966776006953D5567439E5E39F86A0D273BEE第五步,取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)00010966776006953D5567439E5E39F86A0D273BEE第六步,取上一步结果,计算SHA-256 哈希值445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094第七步,取上一步结果,再计算一下SHA-256 哈希值(哈哈)D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30第八第一步,取上一步结果的前4个字节(8位十六进制) D61967F6 第九步,将这4个字节加到第五步的结果中作为校验(这是比特币地址的十六进制形式)。 00010966776006953D5567439E5E39F86A0D273BEED61967F6 第10步,使用base58符号更改地址(这是比特币地址最常见的形式)。 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

base58

比特币碰撞地址软件_2021年5月比特币持币地址数量_外国的比特币便宜中国的比特币贵为什么?

简单介绍一下base58。 Base58 实际上是 58 表示法。

Base58编码表:实际值编码值实际值编码值实际值编码值实际值编码值0116H32Z48q1217J33a49r2318K34b50s3419L35c51t4520M36d52u5621N37e53v6722P38f54w​​7823Q39g55w8924R40h56y9A25S41i57z10B26T42j11C27U43k12D28V44m13E29W45n14F30X46o15G31Y47p

例如,十进制的“58”在十六进制中是3A,“20”在base58中是(因为1是0,所以2是1),十进制中的“68”在Base58中是“2B”。 为什么要使用这种奇怪的编码? (从事编程的同学要注意,比特币使用的Base58的字典顺序与常用的base58不同。)

引用中本聪在源码base58.h中的评论:Why base-58 instead of standard base-64 encoding? 为什么使用 base58 而不是 base-64? 不希望 0OIl 字符在某些字体中看起来相同并且可用于创建视觉上相同的帐号。 我不想要字母 0、O、I、l。 因为这些字母很容易混合在很多字体中。 而且切换之后,看起来比之前舒服多了。 具有非字母数字字符的字符串不像帐号那样容易被接受。 由数字和字母组成的帐户很容易理解。 如果没有标点符号,电子邮件通常不会换行。 如果全是字母数字,则双击会将整个数字选为一个词。 如果全是字母数字,则双击会将整个数字选为一个词。

椭圆曲线加密算法、SHA-256哈希算法、RIPEMD-160哈希算法

这三个算法的原理不是一两句话就说清楚的,先忽略不计。 后面我会写一篇文章详细介绍(不要打我)。

只说目的: 椭圆曲线加密算法:使用任意随机数作为私钥,生成公钥组成密码对。 私钥保密,公钥公开。 私钥签名的信息可以用来验证公钥签名的真实性。 签名不能伪造。 SHA-256哈希算法:通过特定算法对任意大小的数据进行混淆后,生成一个256位的二进制数作为原始数据的摘要信息。 (正向可以查,但不能反向) RIPEMD-160哈希算法:任意大小的数据经过特定算法混淆后,生成一个160位的二进制长度数作为该数据的汇总信息原始数据。 (可以正向检查,不能反向)

2021年5月比特币持币地址数量_外国的比特币便宜中国的比特币贵为什么?_比特币碰撞地址软件

地址可以没有公钥

弄清楚生成比特币地址的步骤后,我们可以得出以下结论。

只有一个比特币地址,公钥不可逆。 合法的比特币地址不一定有对应的公钥。

比如这个: 111111111111111111114oLvT2 它是这样构造的: 00(版本号) 000000000000000000000000000000000000000000(任意20个字节) 94A00911(校验码) 有趣的是,真的有人发币到这个地址(大概3个币就相当于被销毁) , 看这里:

比特币地址冲突

既然地址的来源已经清楚了,我们就来分析一下它是如何碰撞的。

以全零地址:“111111111111111111114oLvT2”为例。 随机碰撞地址对应的公钥是没有意义的。 因为比特币交易需要私钥签名才有效。 因此,如果你想使用这个地址中的比特币,就必须有这个地址的公钥对应的私钥。

比特币碰撞地址软件_2021年5月比特币持币地址数量_外国的比特币便宜中国的比特币贵为什么?

也就是说,您需要: 随机生成一个私钥。 计算私钥对应的公钥。 使用公钥计算比特币地址。 与目标地址进行比较,看是否一致。 如果不是,请返回步骤 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 / ( 2 ^ 101 ) ) * ( 2 ^ 32 ) = 1 / ( 2 ^ 69 ) 这是什么概念? 我们来看一个双色球命中500万的概率: 1/C(33,6)*16 = 1/[ (33 * 32 * 31 * 30 * 29 *28/6*5*4*3* 2*1) * 16 ] = 1/17721088 将这个概率除以碰撞概率: ( 1 / 17721088 ) / ( 1 / ( 2^69 ) ) ≈ 33310359406753.4 所以,结论是:假设你有 10 倍当前比特币计算能力,需要 136 年不间断地与特定的比特币地址发生冲突。 碰撞成功的概率相当于中奖333103亿乘以500万。 (注意单位是亿)

考虑生日袭击

目前,大约有300万个地址有币。 看这里:我们将该数字翻了 10,000 倍。 假设有343亿个地址有比特币(2^35≈343亿,相当于地球上每个人有5个地址有余额,火星人不算,呵呵)

那么命中任意一个地址的概率:( 1 / ( 2 ^ 69 ) ) * ( 2 ^ 35 ) = 1 / 2 ^ 34 = 1 / 17179869184 然后与500万比较: ( 1 / 17721088 ) / ( 1 / 17179869184 )= 969.459052627 哎,已经很接近中奖1000次500万的概率了! 所以,结论是:假设你掌握了比特币当前全网10倍的算力,用136年的时间不间断地碰撞所有存储的币地址。 与其中任意一个地址碰撞的概率相当于购买500万福彩双色球1000次。 (注意,这些地址中超过 50% 的存款少于 0.001BTC) 后记

上述计算有很多遗漏,计算时考虑了最宽松的情况。 所以实际概率更小。 比特币系统的设计使得有计算能力的人更倾向于计算区块链,因为它比碰撞地址更划算。 本文计算存在错误和遗漏,欢迎指正。 但是纠正我,我不一定要改变它。 (开个玩笑,别打我) 没中过500万的同学,不要幻想算别人的地址,还是玩骰子好……睡觉。

如果您喜欢《比特币地址冲突概率》,请捐赠:122222o5a3k6dy7WL5maBBpuvKUtZJhMk4

外国的比特币便宜中国的比特币贵为什么?_比特币碰撞地址软件_2021年5月比特币持币地址数量

参考:https://en.bitcoin.it/wiki/Base58Check_encoding://bitcointalk.org/index.php?topic=41718.0://en.bitcoin.it/wiki/Wallet_import_format 通过CREATE2获取合约地址:解决交易所充值账户问题

CREATE2 是以太坊在 2019 年 2 月 28 日君士坦丁堡硬分叉 [1] 中引入的新操作码。根据 EIP1014[2] CREATE2 操作码的介绍,它主要用于状态通道,但是我们也可以使用它来解决其他问题。 例如,交易所需要为每个用户提供一个以太坊地址,以便用户可以向其存入资金。 我们称这些地址为“充值地址”。 当代币进入充值地址后,我们需要将它们聚合到一个钱包(热钱包)中。下面我们

ICE旗下平台Bakkt遭遇交易危机?比特币期权交易量一个多月为零

节奏BlockBeats消息,洲际交易所旗下Bakkt比特币期权交易量在过去一个月一直为零。 Bakkt 的竞争对手 CME 的未平仓合约在 6 月 25 日达到约 4.4 亿美元后继续下降,7 月 22 日的未平仓合约约为 1.77 亿美元。

比特币后端全解析

比特币节点后端负责参与比特币网络的通信和互联,维护区块链,验证区块和交易,广播和中继区块交易信息。 比特币的后台程序主要由bitcoind和挖矿节点程序组成。

本文哈希值:6f94a5916862d45a18997b07e399f74918376677

免责声明:本文由晚晴梦分享发布,不代表链世界赞同其观点。 文章内容仅供参考。 如果本文侵犯了您的合法权益,请联系我们。