写点什么

比特币安全实测:暴力破解私钥到底有多难?

你大概需要 1024 年。

  • 2019-10-30
  • 本文字数:1814 字

    阅读完需:约 6 分钟

比特币安全实测:暴力破解私钥到底有多难?


暴力破解私钥有点像数数:数得越快,就会越早得出不可能数尽的结论。然而,目前仍有不少人对利用暴力方式破解比特币私钥抱有浓厚的兴趣。成不成另说,梦想是要有的。


对于很多数学极客而言,破解私钥的关键在于弄清统计概率。但对于纯粹的梦想家来说,这单纯只是个野心大小的问题。一旦把英勇与数学结合起来,诞生出的就是愿意向比特币私钥发起冲击的新时代堂吉诃德。


在 Bitcointalk 论坛上,这类话题从 2018 年 6 月 11 号以来一直相当活跃。不过在《BitCrack——一款私钥暴力破解工具(BitCrack – A tool for brute-forcing private keys)》当中,用户们利用专门为此设计的软件对暴力破解方法进行了分析,并清醒地意识到这一目标根本没有可行性。


用户 Coin-1 最初以非常礼貌的方式劝阻那些打算尝试的人们:“让我们计算一下破解计算机上一枚比特币地址所需要的时间。你提到自己的算力水平为每秒 900 万个比特币地址,即每秒约 2^23 个比特币地址。因此,暴力破解需要花掉的时间就是 2^(160-23) = 2^137 秒!换算之后超过 1024 年!”


可以看出,我们不可能在一台普通计算机上尝试从没钱的比特币钱包里提取资金。但是,如果计算机更快、更强大,每秒能够尝试更多密钥,那么比特币的安全体系是否有可能土崩瓦解?


问题的规模

克服挑战的第一步,在于对挑战进行量化。为此,我们必须确切计算出总共存在多少个潜在密钥。钱包私钥一般就是 1 到 2256 之间的某个数字,也就是说要想强行破解,我们要做的就是不断猜测,直到找出这个在 1 到 2256 之间的正确数字为止。


对于人类大脑而言,这确实是个大到难以理解的数字。事实上,这甚至大于宇宙中所有原子数的估计值。在这种规模下,即使是世界上最快的超级计算机(IBM 的 Summit),对单一数字钱包进行暴力破解所需要的时间仍然非常惊人。


钱包恢复

另外,这种纯粹的暴力破解只会影响到那些想不起密码或者提醒问题的比特币用户。只要二者解决其一,资产并不会真正丢失。例如,只要我们记得一部分密码,就可以申请使用钱包恢复服务。在大多数加密货币中,我们需要完全信任项目公司接管自己的钱包。但就比特币以及 BitCoin Cash 来说,无需完全交出钱包也能享受到这一恢复服务。


假设能够成功,那么暴力破解能够为攻击者带来相当于钱包内总资产 20%的收益;但这是那种打不赢不给钱的比赛,如果未能破解成功,投入的所有资源都将彻底消失。因此,攻击者自然会认真考虑这样的赌局到底有没有必要参与。


量子危机

一段时间以来,量子计算一直被视为比特币持续安全性与保真度的最大威胁。批评者们认为,私钥破解已经指日可待。最近,谷歌公司公布其达成“量子霸权”目标,相关担忧又进一步激化。在短短 3 分钟之内,谷歌的量子计算机就完成了传统计算机号称需要 1 万年的复杂计算任务。


此事足以引起加密货币社区的广泛讨论,但好在量子计算社区向来以严格要求自己、及时摒弃谣传而闻名。IBM 公司很快现身,对谷歌的说明批判了一番。不同于谷歌做出的、传统计算机需要计算 1 万年的主张,蓝色巨人在博文中提到“我们认为,通过对同一任务的理想模拟方法,整个过程在 2.5 天内即可通过经典计算机得到解决,且保真度更高。”


如果要问我对量子霸权的意见,那么我觉得到目前为止,其与真正量子计算间的距离,就像氢弹与可控核聚变之间的距离——我们确实证明了一种现象的存在,以及从中汲取能量的美好可能性,但与真正的实用性仍然相去甚远。



量子计算机构 NEO 全球发展负责人 John Devadoss 在接受采访时表示,“目前在量子计算领域存在一种「为尊者讳」的倾向,这一点在 AI 方面也有存在。首先,即使是在学术领域,卖「大力丸」的人士也很多,他们希望借此为自己的实验室拉拢资金。其次,虽然确实取得了进展也确实存在一定的小众应用空间,但高到离谱的错误率加上实验室条件的严格约束,都反复证明量子计算的实际应用仍然遥遥无期。”


至少就目前来看,量子计算似乎还没有迎来真正的飞跃,至少不可能破解比特币的加密机制。加密货币持有者确实应该时刻关注一切安全威胁,但还不需要为暴力破解问题太过担忧。成功完成劫持需要的时间长到难以想象,也不会有人傻到真的拿出自己的资源与精力进行尝试。


大家认为比特币最终会溃败在量子计算的强大威力之下吗?请在评论中分享您的观点。


原文链接:


How Hard Is It to Brute Force a Bitcoin Private Key?


2019-10-30 14:5912631

评论

发布
暂无评论
发现更多内容

一次压缩引发堆外内存过高的教训

AI乔治

Java kafka JVM

Electronjs

Neil

Java 大前端 Electron 客户端开发

高速路二维码报警定位系统开发,二维码报警定位功能

13530558032

UML练习1-食堂就餐卡系统设计

博古通今小虾米

UML

2020年7月云主机性能评测报告

博睿数据

云计算 测试 公有云 评测 排行榜

2020年8月北京BGP机房网络质量评测报告

博睿数据

测试 机房 评测 排行榜 IDC

Spring Cloud 微服务实践(1) - 用Initializr初始化

xiaoboey

Spring Cloud Eureka Gateway Hoxton

血的教训!千万别在生产使用这些 redis 指令

redis 学习 编程 程序员

USDT支付系统开发技术方案,数字货币承兑商支付

13530558032

在线游戏,如何把握住1个亿以上的DAU?

博睿数据

运维 监控 AIOPS 系统 用户体验

不想搞Java了,4年经验去面试10分钟结束,现在Java面试为何这么难

Java架构师迁哥

关于手机里的IP地址,你不得不知道的“秘密”

脑极体

活着

GongTeng95

危与机并存 保险业如何走好线上线下业务并举转型之路?

博睿数据

运维 监控 保险 AIOPS 系统

算法大赛评委亲授通关秘籍,报名倒计时!

易观大数据

如何进步神速

Sean

学习 个人成长

架构师训练营结业作业

superman

数字货币量化交易,量化对冲搬砖系统开发

13530558032

实践案例丨云连接CC实现跨区域多VPC与线下IDC Server互联

华为云开发者联盟

云服务 IDC

一次旅途

GongTeng95

Spring Cloud 微服务实践(0) - 开篇闲话

xiaoboey

微服务 Spring Cloud Spring Boot Spring Framework

LeetCode题解:622. 设计循环队列,使用数组,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Python基础知识(二)

Python基础

大数据下单集群如何做到2万+规模?

华为云开发者联盟

大数据 集群

python——自定义序列类

菜鸟小sailor 🐕

CentOS 7 安装 Python 3.7

wong

Python

Java 基础语法

InfoQ_34a83d636158

直播倒计时|30分钟带你解锁“技术写作”新技能

有只小耳朵

技术 写作 直播 技术创作 RTC征文大赛

架构师训练营大作业

叮叮董董

Spring Cloud 微服务实践(2) - Gateway重试机制

xiaoboey

maven Spring Cloud Gateway modules 重试

网上赌博输了怎么办?上岸戒赌是唯一的选择

jdxj

网上赌博输了怎么办 网上赌博玩快三输了怎办 网上玩快三输了怎么回血 网赌输了怎么戒赌

比特币安全实测:暴力破解私钥到底有多难?_区块链_Kai Sedgwick_InfoQ精选文章