btc量子攻击
『壹』 比特币有没有可能被破解
比特币的破解是有可能但几乎不可能的,仅仅存在理论可能。
从背景和基本原理上来讲,比特币账户购物城是通过秘钥-公钥-地址的结构形式来构成的,可以大致理解成钥匙-箱子-箱子编号的基本模式,比特币的破解实际上就是从箱子编号或者从箱子入手破解到钥匙。
破解比特币的攻击手段一般意义上只有两种,一种是通过字典的方式进行攻击,也就是通过脑钱包直接破解。这种破解方式并非直接破解比特币持有者的比特币秘钥,而是去破解比特币持有者为记忆比特币秘钥而新设置的便捷密码,也就是脑钱包。如果是这种方式的话,首先需要比特币持有者通过脑账户设置一个新密码,同时需要对包含别的比特币持有者的个人生活信息十分了解才能破解。如果比特币持有者不设置脑账户的话,那么就无法通过这个方式进行破解。
其次是通过暴力破解的手段进行破解,也就是通过枚举法列举出所有可能的数字字母与符号的排列组合。以这些全部的组合一一进行尝试破解。但通过这种方式破解出比特币秘钥的可能性就更低了,因为比特币的秘钥是由256位二进制数字组成的。这是一个非常大的数字,使用十进制进行表示大约是十的77次方。目前市面上绝大多数的电脑算力是无法完成这个计算过程的,即便完成也需要花费几千年甚至上万年的时间。只有科研机构与高校内的部分量子计算机才可能实现这一目标。
『贰』 比特币是可以破解的吗
首先讲一下背景,比特币“账户”的基本原理就是 密钥-公钥-地址,你可以大致理解为“钥匙-箱子-箱子编号”。现在就是要从箱子编号或者箱子入手破解到钥匙。
攻击手段基本上就两种,一种字典攻击所谓脑钱包,另外一种就是暴力破解。
字典攻击就是把常用的密码以及其简单变种,组合作为钥匙一个一个试。只要你的pass phrase不过硬,这种手段攻击成功的可能性很高。所以要用这个的话,需要先普及一下密码学知识,不要以为密码很长再加个&就很安全了。
如果你不是用pass phrase生成的钱包,就只能暴力破解了,相当于枚举所有可能的钥匙,目前来看这个是不可能的,哪怕电子计算机越来越强大。但是,量子计算机理论上是可以做到的,不过不用太担心,真的有这么强大的量子计算机出来的话,不仅仅危及到比特币而已。
同时,比特币还有第二层防护:如果一个地址只接受而还没有输出比特币的话,他的公钥都是保密的,就是说箱子别人都看不到只能看到箱子编号。目前来看从箱子编号反推箱子这个过程连量子计算机也做不到。换句话说,真的有量子计算机的话,比特币还有最后一道防线:把你的钱转移到一个全新的地址就暂时安全了。
最后,前一段时间,Android上的客户端生成的钱包被攻击了,这个是因为底层随机数生成器有bug。其实就是这个函数不随机SecureRandom,Google很快承认并修复了这个问题。这种事情会不会再有也不好说,不过我觉得不用太过担心。
『叁』 为什么说量子计算机可轻易破解比特币,究竟怎么
摘要:在位于纽约市以北约50英里处僻静乡村中的一个小型实验室内,天花板下缠绕着错综复杂的管线和电子设备。这一堆看似杂乱无章的设备是一台计算机。它与世界上的任何一台计算机都有所不同,而是一个即将开创历史的里程碑式设备---量子计算机。
2017年5月3日,科技界的一则重磅消息:世界上第一台超越早期经典计算机的光量子计算机诞生。这个“世界首台”是货真价实的“中国造”,属中国科学技术大学潘建伟教授及其同事等,联合浙江大学王浩华教授研究组攻关突破的成果。
如果现在传统计算机的速度是自行车,量子计算机的速度就好比飞机。在过去的几个月里,IBM和英特尔已经宣布他们已经分别制造了50和49个量子比特的量子计算机。有专家指出,在十年之内,量子计算机的计算能力就可能赶超当前的超级计算机。
2018年3月5日在洛杉矶举行的美国物理学年会上,谷歌量子AI实验室研究科学家Julian Kelly报告了,带领谷歌团队正测试一台72量子比特通用量子计算机。然而,这还是仅仅是72量子比特而已。按照这个速度发展下去,很快量子计算机的神通,将强劲得让人恐惧。
那么,为什么说量子计算机可轻易破解比特币,究竟怎么回事?
要破解现在常用的一个RSA密码系统,用当前最大、最好超级计算机需要花60万年,但用一个有相当储存功能的量子计算机,则只需花上不到3个小时!也就是说,从电子计算机飞跃到量子计算机,整个人类计算能力、处理大数据的能力,就将出现上千上万乃至上亿次的提升。在量子计算机面前,我们曾经引以为豪的传统电子计算机,就相当于以前的算盘,显得笨重又古老!
虽然比特币协议使用的是不对称的加密货币,用相应的公钥验证私钥签署的交易,以确保比特币只能被合法所有人使用。使用当前可用计算机强制私钥与公钥保持一致不可行,但量子计算机却可以解决不对称加密货币的问题。
另外,比特币的规定是处理得更多的那个区块加入区块链,另一个区块则作废。举个例子,这就像于在一个账簿里有51个人说你在银行存了100块钱,而49个人说你存了50块钱,这种情况下,区块链算法少数服从多数,银行认为你存了100块钱是真,存了50块钱是假。所以一旦一位矿工拥有51%的算力,其他后续矿工将无法继续获得比特币。
Andersen Cheng,英国一家网络安全公司的联合创始人,他表示在量子计算机投入使用的那一天,比特币就会终结。你觉得呢?
『肆』 量子计算机会破坏比特币和互联网吗
- 在当前情况下,量子计算机无法帮助进行比特币挖矿
- 转向量子计算机不会影响挖矿速度,因为随着价格的飙升,挖矿难度也会增加
- 确实,量子算法的推出将使传统的加密货币系统面临风险
在目前的情况下,我们没有这样的量子算法,但是如果将来我们发现它,该怎么办?众所周知,比特币旨在识别挖矿速度,并且同样提高了挖矿难度。意味着找到算法后难度将变得更加复杂。
实际上,现在实际上不可能使用普通计算机进行挖矿,因此矿工使用ASIC芯片来挖比特币。当前,使用了两种加密货币,RSA和椭圆曲线加密货币。实际上,这两种加密货币方法都容易受到量子计算机的攻击。 根据Anastasia的说法,我们只需要2500 cubits即可中断algoant中断EC,而需要约4000 cubit才能中断RSA。
黑客可以识别比特币钱包地址在当前情况下,硬分叉是不可能的,因为许多用户丢失了他们的钱包地址和硬币。现在,令人担忧的因素是,量子计算机可以轻松地帮助追踪那些丢失的钱包,而黑客可以使用此类计算机解密并获取此类丢失的硬币。
但是,主要的关注点是量子计算机的研究。此类计算机系统的进入将使加密货币系统面临风险。该系统可能是比特币的破坏者。
『伍』 为什么比特币的私钥无法被攻破
关于:为什么比特币的私钥无法被破解?
以下为正文:
破解比特币私钥,实际上就是要在 1 到 2²⁵⁶ 之间找到一个数,这个数对应的钱包里面有比特币。
2²⁵⁶ 约等于 10⁷⁷,这是个巨大的数字,对比的话,人类可观测宇宙的基本粒子也就是在 10⁸⁰ 这个数量级上。
人类现有的超级计算机,前 500 强加起来的算力,大约是每秒进行 10¹⁸ 次浮点运算,有兴趣的人可以算一算,就算每次浮点运算能完成一次破解比特币的尝试,那完成破解需要多少时间。简单说,一年约有 3.1536 × 10⁷ 秒,按上文的假设,破解一个比特币需要的时间在 10⁵¹ 年这个数量级上。
实际上要花的时间比这多的多,比特币网络计算的是哈希值,现在比特币全网每秒可以做约 1.51 × 10¹⁸ 次哈希运算,这差不多相当于每秒做 1.91 × 10²² 次浮点运算,这远超过现有的超级计算机的算力(换句话说就是超级计算机没法对比特币网络进行攻击,能力差距太大,这和比特币网络解决的是一个专门问题,超级计算机要解决的是各种不同问题有关系)。
无论如何,我觉得超过 10⁴ 年(也就是一万年)的时间对我们的意义都不大了,甚至超过 10² 年(也就是一百年)的时间对我们都没有多大意义。想想,要花那么多年,只是破解一个钱包的私钥,还不知道这钱包里有多少比特币,这事情实在没有做的意义,就算是知道某个钱包里有很多比特币,投入产出也不可能合算。
这些年间,被盗的比特币都是从人类这边搞的,都是什么从持币人手里盗取了私钥之类的事情,直接攻击比特币网络尝试破解私钥的,闻所未闻,未来估计也不可能有了。
有些人担心量子计算机,首先,量子计算机现在还是早期,解决的都是特定问题,没有针对处理比特币网络的问题,其次,量子计算机的算力现在还是比较低的,远远威胁不到比特币网络,第三,就算量子计算机将来发展起来了,比特币网络也会一并演进的,到时肯定会有针对性的升级。总之,量子计算机并不是比特币的一个威胁。
以下为该文的参考文献;
How Hard Is It to Brute Force a Bitcoin Private Key?
https://news.bitcoin.com/how-hard-is-it-to-brute-force-a-bitcoin-private-key/
超级计算机 500 强
https://en.wikipedia.org/wiki/TOP500
PetaFLOPS and how it relates to Bitcoin
https://bitcointalk.org/index.php?topic=50720.0
Bitcoin Total Hash Rate(比特币全网算力)
https://www.blockchain.com/charts/hash-rate
Observable universe(可观测宇宙)
https://en.wikipedia.org/wiki/Observable_universe
『陆』 强大的量子计算机可以破解加密并解决经典计算机无法解决的问题
强大的量子计算机可以破解加密并解决经典机器无法解决的问题。虽然目前还没有人成功制造出这样的设备,但最近我们看到了进步的步伐——那么,会是新的一年吗?目前,注意力集中在一个被称为量子霸权的重要里程碑上:在合理的时间范围内,量子计算机能够完成经典计算机无法完成的计算。
谷歌在2019年首次使用具有 54 个量子位(常规计算位的量子等价物)的设备来执行称为随机抽样计算的基本上无用的计算,从而实现了这一目标。2021 年,中国科学技术大学的一个团队使用 56 个量子比特解决了一个更复杂的采样问题,后来又用 60 个量子比特将其推得更远。
但IBM 的Bob Sutor表示,这种跨越式 游戏 是一项尚未产生真正影响的学术成就。只有当量子计算机明显优于经典计算机并且能够解决不同问题时,才能实现真正的霸权,而不是目前用作基准的随机抽样计算。
他说,IBM 正在努力实现“量子商业优势”——在这一点上,量子计算机可以比传统计算机更快地为研究人员或公司解决真正有用的问题。Sutor说,这还没有到来,也不会在新的一年到来,但可以预期在十年内。
量子软件公司Classiq的联合创始人Nir Minerbi则更为乐观。他认为,新的一年将在一个有用的问题中展示量子霸权。
还记得第一辆电动 汽车 问世的时候吗?它们对于开车去杂货店很有用,但也许不适合开车300公里送孩子上大学。就像电动 汽车 一样,量子计算机会随着时间的推移变得越来越好,使其在更广泛的应用中发挥作用。
解决实际问题存在许多障碍。首先是设备需要数千个量子比特才能做到这一点,而且这些量子比特也必须比现有的更稳定和可靠。研究人员很可能需要将它们分组在一起,以作为单个“逻辑量子比特”工作。这有助于提高保真度,但会削弱规模的改进:数千个逻辑量子位可能需要数百万个物理量子位。
随着时间的推移,量子计算机会变得更好,在一系列应用中变得有用
研究人员还致力于量子纠错,以在出现故障时对其进行修复。谷歌在2021年7月宣布,其Sycamore处理器能够检测并修复其超导量子比特中的错误,但执行此操作所需的额外硬件引入的错误多于修复的错误。马里兰州联合量子研究所的研究人员后来设法用他们捕获的离子量子比特通过了这个关键的收支平衡阈值。
即便如此,现在还为时过早。如果通用量子计算机在新的一年解决了一个有用的问题,那将是“相当令人震惊的”。在任意时间内保护单个编码的量子位,更不用说对数千或数百万个编码的量子位进行计算了。
量子计算机需要多大才能破解比特币加密或模拟分子?
预计量子计算机将具有颠覆性,并可能影响许多行业领域。因此,英国和荷兰的研究人员决定 探索 两个截然不同的量子问题:破解比特币(一种数字货币)的加密以及模拟负责生物固氮的分子。研究人员描述了他们创建的一种工具,用于确定解决此类问题需要多大的量子计算机以及需要多长时间。
这一领域的大部分现有工作都集中在特定的硬件平台、超导设备上,就像 IBM 和谷歌正在努力开发的那样。不同的硬件平台在关键硬件规格上会有很大差异,例如运算速率和对量子比特(量子比特)的控制质量。许多最有前途的量子优势用例将需要纠错量子计算机。纠错可以通过补偿量子计算机内部的固有错误来运行更长的算法,但它是以更多物理量子比特为代价的。从空气中提取氮来制造用于肥料的氨是非常耗能的,改进这一过程可能会影响世界粮食短缺和气候危机。相关分子的模拟目前甚至超出了世界上最快的超级计算机的能力,但应该在下一代量子计算机的范围内。
我们的工具根据关键硬件规格自动计算纠错开销。为了让量子算法运行得更快,我们可以通过添加更多物理量子位来并行执行更多操作。我们根据需要引入额外的量子位以达到所需的运行时间,这严重依赖于物理硬件级别的操作速率。大多数量子计算硬件平台都是有限的,因为只有彼此相邻的量子位才能直接交互。在其他平台中,例如一些捕获离子的设计,量子位不在固定位置,而是可以物理移动——这意味着每个量子位可以直接与大量其他量子位相互作用。
我们 探索 了如何最好地利用这种连接遥远量子位的能力,目的是用更少的量子位在更短的时间内解决问题。我们必须继续调整纠错策略以利用底层硬件的优势,这可能使我们能够使用比以前假设的更小的量子计算机来解决影响深远的问题。
量子计算机在破解许多加密技术方面比经典计算机更强大。世界上大多数安全通信设备都使用 RSA 加密。RSA 加密和比特币使用的一种(椭圆曲线数字签名算法)有一天会容易受到量子计算攻击,但今天,即使是最大的超级计算机也永远不会构成严重威胁。研究人员估计,一台量子计算机需要的大小才能在它实际上会构成威胁的一小段时间内破解比特币网络的加密——在它宣布和集成到区块链之间。交易支付的费用越高,这个窗口就越短,但可能从几分钟到几小时不等。
当今最先进的量子计算机只有50-100个量子比特。“我们估计需要30[百万] 到3亿物理量子比特,这表明比特币目前应该被认为是安全的,不会受到量子攻击,但这种尺寸的设备通常被认为是可以实现的,未来的进步可能会进一步降低要求。比特币网络可以对量子安全加密技术执行‘硬分叉’,但这可能会由于内存需求增加而导致网络扩展问题。
研究人员强调了量子算法和纠错协议的改进速度。四年前,我们估计捕获离子设备需要 10 亿个物理量子比特才能破解 RSA 加密,这需要一个面积为 100 x 100 平方米的设备。现在,随着全面改进,这可能会显着减少到仅仅 2.5 x 2.5 平方米的面积。大规模纠错量子计算机应该能够解决经典计算机无法解决的重要问题。模拟分子可应用于能源效率、电池、改进的催化剂、新材料和新药的开发。进一步的应用程序全面存在——包括金融、大数据分析、飞机设计的流体流动和物流优化。
什么是量子启示录?
想象一个加密的秘密文件突然被破解的世界——这就是所谓的“量子启示录”。简而言之,量子计算机的工作方式与上个世纪开发的计算机完全不同。从理论上讲,它们最终可能会比今天的机器快很多很多倍。这意味着面对一个极其复杂和耗时的问题——比如试图解密数据——其中有数十亿的多个排列,如果有的话,一台普通的计算机需要很多年才能破解这些加密。但理论上,未来的量子计算机可以在几秒钟内完成这项工作。这样的计算机可以为人类解决各种问题。英国政府正在牛津郡哈威尔投资国家量子计算中心,希望彻底改变该领域的研究。
一种用于量子计算的新语言
Twist是麻省理工学院开发的一种编程语言,可以描述和验证哪些数据被纠缠在一起,以防止量子程序中的错误。时间结晶、微波炉、钻石,这三个不同的东西有什么共同点?量子计算。与使用比特的传统计算机不同,量子计算机使用量子比特将信息编码为0或1,或两者同时编码。再加上来自量子物理学的各种力量,这些冰箱大小的机器可以处理大量信息——但它们远非完美无缺。就像我们的普通计算机一样,我们需要有正确的编程语言才能在量子计算机上正确计算。
对量子计算机进行编程需要了解一种叫做“纠缠”的东西,这是一种用于各种量子比特的计算机,它可以转化为强大的能量。当两个量子位纠缠在一起时,一个量子位上的动作可以改变另一个量子位的值,即使它们在物理上是分开的,这引起了爱因斯坦对“远距离幽灵动作”的描述。但这种效力同样是弱点的来源。在编程时,丢弃一个量子位而不注意它与另一个量子位的纠缠会破坏另一个量子位中存储的数据,从而危及程序的正确性。
麻省理工学院计算机科学与人工智能 (CSAIL) 科学家旨在通过创建自己的量子计算编程语言 Twist 来解开谜团。Twist 可以通过经典程序员可以理解的语言来描述和验证量子程序中纠缠了哪些数据。该语言使用一个称为纯度的概念,它强制不存在纠缠并产生更直观的程序,理想情况下错误更少。例如,程序员可以使用 Twist 表示程序作为垃圾生成的临时数据不会与程序的答案纠缠在一起,从而可以安全地丢弃。
虽然新兴领域可能会让人感觉有点浮华和未来感,但脑海中浮现出巨大的金属机器的图像,但量子计算机具有在经典无法解决的任务中实现计算突破的潜力,例如密码学和通信协议、搜索以及计算物理和化学。计算科学的主要挑战之一是处理问题的复杂性和所需的计算量。经典的数字计算机需要非常大的指数位数才能处理这样的模拟,而量子计算机可能会使用非常少量的量子位来做到这一点——如果那里有正确的程序。 “我们的语言 Twist 允许开发人员通过明确说明何时不得与另一个量子位纠缠来编写更安全的量子程序,”麻省理工学院电气工程和计算机科学博士生、有关 Twist的新论文的主要作者 Charles Yuan 说. “因为理解量子程序需要理解纠缠,我们希望 Twist 为开发语言铺平道路,让程序员更容易应对量子计算的独特挑战。”
解开量子纠缠
想象一个木箱,它的一侧伸出一千根电缆。您可以将任何电缆从包装盒中拉出,也可以将其完全推入。
在你这样做一段时间后,电缆会形成一个位模式——零和一——取决于它们是在里面还是在外面。这个盒子代表了经典计算机的内存。该计算机的程序是关于何时以及如何拉电缆的一系列指令。
现在想象第二个外观相同的盒子。这一次,你拉一根电缆,看到它出现时,其他几根电缆被拉回了里面。显然,在盒子内部,这些电缆不知何故相互缠绕。
第二个框是量子计算机的类比,理解量子程序的含义需要理解其数据中存在的纠缠。但是检测纠缠并不简单。你看不到木箱,所以你能做的最好的就是尝试拉动电缆并仔细推理哪些是纠缠的。同样,今天的量子程序员不得不用手推理纠缠。这就是 Twist 的设计有助于按摩其中一些交错的部分。
科学家们设计的Twist具有足够的表现力,可以为著名的量子算法编写程序并识别其实现中的错误。为了评估Twist的设计,他们对程序进行了修改,以引入某种对于人类程序员来说相对不易察觉的错误,并表明Twist可以自动识别错误并拒绝程序。
他们还测量了程序在运行时方面的实际执行情况,与现有的量子编程技术相比,它的开销不到4%。
对于那些担心量子在破解加密系统方面的“肮脏”名声的人来说,Yuan 表示,目前还不清楚量子计算机在实践中能够在多大程度上实现其性能承诺。“在后量子密码学方面正在进行大量研究,这些研究之所以存在,是因为即使是量子计算也不是万能的。到目前为止,有一组非常具体的应用程序,人们在这些应用程序中开发了量子计算机可以超越经典计算机的算法和技术。”
重要的下一步是使用Twist创建更高级别的量子编程语言。今天的大多数量子编程语言仍然类似于汇编语言,将低级操作串在一起,没有注意数据类型和函数等东西,以及经典软件工程中的典型内容。
量子计算机容易出错且难以编程。通过引入和推理程序代码的“纯度”,Twist 通过保证一段纯代码中的量子位不会被不在该代码中的位更改,朝着简化量子编程迈出了一大步。 这项工作得到了麻省理工学院-IBM 沃森人工智能实验室、国家科学基金会和海军研究办公室的部分支持。
【注释. 量子计算机】
量子计算机是一种直接利用量子力学现象(如叠加和纠缠)对数据进行运算的计算设备。量子计算背后的基本原理是量子属性可以用来表示数据并对这些数据执行操作。
尽管量子计算仍处于起步阶段,但已经进行了一些实验,在这些实验中,量子计算操作是在非常少量的量子比特(量子二进制数字)上执行的。实践和理论研究都在继续进行,许多国家政府和军事资助机构支持量子计算研究,以开发用于民用和国家安全目的的量子计算机,例如密码分析。
如果可以建造大规模的量子计算机,它们将能够比我们目前的任何经典计算机(例如 Shor 算法)更快地解决某些问题。量子计算机不同于DNA计算机和基于晶体管的传统计算机等其他计算机。一些计算架构(例如光学计算机)可能会使用经典的电磁波叠加。如果没有一些特定的量子力学资源,例如纠缠,推测不可能超过经典计算机的指数优势。
『柒』 关于比特币的谜题(完结)
你可曾想过: 为什么矿机算力越大越好?(既然是解数学题那为什么不是拼谁的算法厉害啊喂!) 比特币的数量总和为什么是2100万? 比特币盗窃是怎么回事? 我不玩比特币,就真的与比特币无关了吗…… 🤔️
关于大众不再感到陌生的比特币,背后还有许多巧妙之处。本文介绍了比特币的基本原理和主要原则,并结合对部分技术细节的剖析,来对上述的一些疑问作出解答。全文较长,约7000字,阅读时间约为22分钟,建议收藏后阅读😁
文章可以分成以下几个部分:
* 比特币先验知识
-- 密码学相关
-- 比特币重要概念
* 交易的生命周期
* 区块链的构成
* 区块链的生长
-- “挖矿”的数学本质
-- “矿工”的收益
* 比特币的共识机制
-- 比特币的去中心化共识
-- “最长链优先”原则
* 比特币安全性
比特币作为第一个去中心化的数字货币,其设计中运用了不少的密码学相关知识,主要包括非对称加密技术、哈希函数等等。理解这些密码学知识,能帮助我们更好地理解比特币中的一些概念及规则。
以下是比特币的一些定义及概念解说,了解过的小伙伴们可以直接跳过~
在比特币这个创新的支付网络中,一个交易的生命周期大概可以分为几个阶段:创建、传播和被验证交织、被打包进区块记录到区块链中、获得更多的确认。图1对这几个阶段做出了示意。
注:
1⃣️一个支付方A在发起一个比特币交易时,会使用自己的私钥对交易信息的哈希值进行签名。因此A向全网广播的内容除了交易信息之外,还有自己的公钥信息、对消息的签名。其他矿工只要利用A的公钥即可对这个交易进行验证,判断是否真的由A创建。
2⃣️”交易传播和交易验证“交替意味着 各个节点基于一定的规则独立验证每个交易(共识基础1) , 一个节点只有认为这个交易有效才会把它继续传播出去。
比特币的底层技术是区块链。区块链系统是一种分布式共识系统,区块链网络中所有的参与节点将就交易的状态达成一致。
区块链到底是什么呢?你可以把它理解成一种分布式的交易的共享账本,以区块为基本单位链接在一起。交易信息将被整理并打包记录在区块中。每一个区块,包含区块头,以及紧跟其后的交易列表。区块头包含3个区块元数据集合:前序区块哈希(严格来说是前序区块头哈希,因为只有区块头被用于哈希运算)、元数据集(包括难度、时间戳、随机数等)、一个基于加密哈希来高效概括区块中所有交易的默克尔树(merkle tree)。了解这个结构,将帮助我们更好地理解挖矿的数学本质。
你可能听说过“挖矿”这个词,或者听说众人争相购买挖矿机器来发家致富。但让人疑惑的是:都说打包区块的本质是解数学难题,但单凭那些看似简陋的机器嗡嗡嗡疯狂耗费电力,就能确保自己解出比特币难题的胜率高了吗?比特币技术原理中,矿工们解决的数学题,难道是一个暴力破解题?
看了一圈,发现矿工们解决的题,还真有点暴力破解的意思,每次尝试解题的过程几乎都是茫茫然、去碰运气的。拼的是谁足够幸运,也拼谁算的足够快;算的快了么,试错次数多,自然胜算也就大了。
解题的背景是这样的—— 挖矿节点通过基于工作量证明算法(Proof-of-Work,POW)的证明运算,独立将交易汇聚到新区块中(共识基础2)。 当矿工从网络中接收到一个新的区块的时候,他发现自己已经在上一轮竞争中失败了,所以立即开始新区块的挖矿过程。为了创建一个新的区块,他从内存池中选择交易来填充区块(加入区块的第一笔交易是一个“铸币交易”,3.2节会给出详相关细节)。接下来是填充字段来创建区块头(包括前序区块的区块头哈希、交易的默克尔树(Merkel树)、时间戳、难度目标值、随机数),然后开始计算这个新区块的工作量证明。
这个计算的过程简单来说是对区块头部进行两次sha256运算,得到一个RESULT,如果这个RESULT满足特定要求,这个人才能算是算对了、才有权利去记账。满足要求的RESULT被称为“工作量证明”(中本聪论文中称为“proof of work”)。
关于这个计算过程,强调以下几点:
第一,区块头部,包含了前序区块头部的哈希、本区块交易信息的默克尔树、时间戳、难度目标值、随机数等信息(见图2)。
第二,哈希运算具有“知道y,无法推出使得h(x)=y成立的x”、“即使输入只改变一点点,输出也会差很多”、“利用任意长度的数据作为输入,生成一个固定长度的确定结果”的特性。所以大家也不知道什么样子的输入才能产生自己想要的结果,矿工只能不断尝试。
第三,前面说到,区块头哈希值需要满足一个特定要求才能成为工作量证明——小于某一阈值,或者说哈希值含有给定前缀。阈值的大小求和挖矿难度有关:挖矿难度是一个动态参数,其值越大,则阈值越小,说明哈希值符合要求的概率更小,矿工每次计算能成为工作量证明的概率越小。比特币有一个自我调节过程——通过对现有的挖矿算力情况进行估算,来对应调整挖矿难度,可以保证区块链每十分钟出一个块,达到控制发行速度的目的。(这个过程的基本思想类似产品笔试的数据估算题,根据“一个提供、一个需要“的思路去构造一个等式,然后求解等式一边的一个因子;想了解挖矿难度系统和调整方式的同学可以进一步查阅~)
综合以上三点来看,为了产生工作量证明,用户基本上会通过调整随机数来碰运气(因为其他字段基本不变)、进行多次运算直至符合要求,别无他法。如此一看,随机数就具有“幸运数字”的意味了。因此,平均来讲,谁计算的能力越强(尝试的次数越多),就更有希望打包块。
你可能会想,矿工这么心甘情愿地消耗算力去维护区块链,是受到怎样的利益驱使呢?简单来说,矿工的收益来源有二:1、计算出工作量证明,创造一个新区块所获得的新币奖励;2、记账矿工费。
当矿工找到工作量证明、打包一个新区块,并把区块传送给他的所有对等节点。 每一个挖矿节点都独立验证新区块、把合格的新区块整合进区块链(共识基础3) ,并把这个区块继续传给自己的对等节点。结果是,只有经过验证的区块才会在网络当中广泛传播,保证了诚实矿工挖出的新区块能被区块链所接纳。挖矿成功的个体节点或集体节点,可以同时获得新币奖励和记账矿工费。
新币奖励类似于货币的发行,其遵循规则是,第一个四年每一个新区块产生50btc,第二个四年每一个新区块产生25btc,第三个四年每个新区块产生12.5btc,如此周期指数递减。按照等比数列求和可知,到2140年,比特币产生的总和约为21000000(所以说比特币数量有限,天生紧缩)。届时,不再随区块的产生增加新的比特币,矿工不再拥有第一项收益。但现实中,由于挖矿成本高昂,挖矿成功的往往是是一个矿池的所有参与者。收益被分给矿池地址,矿池按照组内算力贡献比例来分摊收益的。
记账矿工费又称交易费用,以交易输入和交易输出之间的差值的形式存在;一个区块的总交易费用是对加入区块的所有交易的(交易输入-交易输出)求和。一般来说,矿工费越高的交易,会越快被处理。而矿工费在这里起到两个作用,一个是奖励矿工,另一个是防止主链滥用(防止大家发送交易垃圾信息,因为提出交易是有一定代价的)。
矿工的收益以什么样的形式被验证呢?这里不得不提到 “铸币交易” 。每个计算机节点在进行工作量证明计算之前加入区块的第一笔交易,正是“铸币交易”。这个交易从无到有生成比特币,其金额是新币奖励与记账矿工费的总和,被支付到挖矿矿工自己的比特币地址。如果矿工找到了一个工作量证明使区块有效,他就赢得了这个奖励,因为他构造的“铸币交易”生效了。
关于铸币交易和“新币奖励”,之前有一个读者问我:一个矿工把自己挖到新区块的消息公布出去,他的工作量证明 不会被别人剽窃 吗?
个人认为,至少“铸币交易”能防止这件事情发生。让我们来重申一下计算工作量证明的过程——一个矿工E在新区块里加入了奖赏自己的“铸币交易”,并利用时间戳、前序区块头哈希、随机数、本区块交易的merkle树等信息计算出一个符合要求的工作量证明。
在这个过程中,merkle树啥样子,取决于包括“铸币交易”在内的本区块所有交易信息。因此可以把铸币交易视为工作量证明的间接变量之一。那么,即使其他人拿到了E的工作量证明,这个工作量证明也是带有E的印记的、与奖赏E的铸币交易相关的,别人根本无法纳为己用。
你还可以通过设想以下的场景来加深对共识基础2“挖矿节点通过基于工作量证明算法的证明运算,独立将交易汇聚到新区块中”的理解。
为什么一个挖出新区块的矿工不悄悄使个心眼,在创建区块之初就把铸币交易的金额设成1000BTC呢?原因在于每个节点都是基于相同的规则来独立验证区块的。矿工必须创建完美的、符合公共规则的、正确依据工作量证明方法的区块;而一个无效的铸币交易会导致整个区块无效,并被其他节点拒绝,永远无法成为账本的一部分。可以预想,为了生成这个工作量证明,矿工们已经投入了巨大的算力和电量去挖矿,如果涉嫌欺诈而被否决,其为挖矿付出成本都付诸东流。
综上所述,矿工不能冒领他人的奖励,而拿到奖励的矿工也必须只能拿取符合规定的数额。
比特币的卓越之处,在于建立了一种去中心化的自发共识。这种共识是自发产生的,是成千上万在网络中遵循着共同规则的节点,在异步交互中形成的,不依赖于任何中央机构的调解和干涉。
关于比特币的4项主要共识基础,本文在讲解对应细节时有提及,下面做一个整合:
这四个过程相辅相成、互相作用,形成了自发的全网共识,促使全网节点组合出可信、公开、权威的总账。
你可能会想,比特币是一个去中心化的、基于大众信任的、依靠众人力量运转的一个东西。万一有一部分矿工被坏人收买了咋办呢?“51%攻击”指的又是什么?比特币交易所要求的“6个确认”又是怎么回事?
这里首先要提到比特币的一个规则“ 最长链优先 ”。意思是, 比特币的账单链在出现分叉的时候,每个矿工会独立选择长(累积了最多工作量证明)的链条,在上面继续挖矿工作(共识基础4) 。
这个原则主要涉及到两个问题:
当有两个矿工A和B同时挖矿成功(算出符合要求的数学答案)时,他们分别把自己计算出来的工作量证明作为下一个块的前序区块哈希,生成一个块衔接到原有的链后面,由此出现了两个分支。
这个时候,这两个成功的矿工广播了自己打包成功的消息。由于区块链是一个去中心化的数据结构,区块消息到达不同节点的时间点不一致,故不同的节点可能拥有不完全一样的区块链视图——有的矿工会先收到A的消息,有的则先收到B的消息。为了解决这个问题,收到消息的矿工们遵循一个原则:选择并尝试延长最长的链。
因此,这两条分支会各自成长一小段时间,直到他们的长度出现差异(不可能长度一直相同),比如说其中一条链的矿工们,更快地打包在支链后面又加上一块。按照“最长链优先“的规则,较短的链会被抛弃,原本工作在短链上的矿工们都回到长链上工作。
换言之,分叉只是不同节点暂时的不一致现象,当新区块被加入到其中某一分支时,最终收敛将解决这一个问题。[读者可以思考一下,为什么区块链被设置成每十分钟挖出来一个块:如果时间短了,是不是就增加了分支产生的次数?如果时间长了,是不是交易结算的效率就太低了?]
双重支付的本质其实也是区块链的分叉,但这种分叉却是“非自然恶意蓄谋”的产物。
我们假设小敏是密谋双重支付的一方,她把自己仅有的10BTC先给小强、交换一块黄金,待这条交易信息P被打包进区块Q后,她从小强手中拿到了黄金。这时,小敏使了个心眼,她想偷偷抹去、篡改区块Q上的交易信息P,“白嫖”这块黄金。为了实现这样的目的,根据“最长链优先”法则,小敏必须剔除该笔交易P后、重新进行结算工作,集中算力来形成分叉,并让分叉以更快的增速超过并取代Q所在的主链。如果小敏确实能让分叉更长,分叉就成为了主链,其他节点也会转向新主链上继续工作。这样,小强付出了黄金,却没有收到这10个比特币,“赔了夫人又折兵”。
在这个过程中,小敏需要和原链进行“抗争”,使新分叉成为最长的主链,这被称为“共识攻击”。“共识攻击”本质上是对下一区块的争夺,攻击方越“强壮”、哈希算力越大,就越容易成功。
“共识攻击“成功的可能性有多大呢?
大多数比特币交易所规定,一个交易传送到区块链上后需要6个「确认」来完成验证该笔交易。这一规定的根据是,假设意图造假的矿工拥有10%的算力(挖矿成功概率0.1),那么造假矿工要构造另一条伪链实施长度超越,必须至少成功挖矿6次。那么原链被取代、被抛弃的概率约为0.1的6次方,趋近于0。你可以把比特币理解为地质构造层,表层可能因为季节变换而有所改变,甚至可能被风刮走,但一旦深入到地下,地质层就能更加稳定、不受干扰。
而假设有一群拥有了51%算力的矿工,他们控制了一半以上的全网哈希算力,可以故意在区块链中制造分叉、进行双重支付交易 。但事实是,全网哈希算力的大量增加,个体矿工几乎不可能控制哪怕1%的哈希算力了(但矿池带来的算力集中化控制,存在一定的风险)。更何况,如果真有拥有如此强大算力的组织,他完全可以凭借自己强大的算力投入到挖矿中去获取开发新区块所获的的比特币奖励,诚实挖矿比双花更有利可图。
尽管实际上并未出现51%攻击的问题,但不可否认的是,算力的集中违背了比特币去中心化这一初衷,并成为其继续发展的一大隐患。
一个系统的安全性,往往取决于系统安全的最薄弱环节,这也就是所谓的“木桶原理“。与区块链系统相关的安全性问题包括但不限于以下几项:
(1)在区块链上被广泛使用的公钥系统基本上是安全的,但量子算法在理论上能够破解公钥系统;因此,区块链的算法安全性是相对的。
(2)区块链协议本身存在逻辑缺陷,例如受到黑客攻击的区块链系统共识机制。
(3)所有数字货币系统高度依赖私钥,私钥在存储、使用方面的安全性成为区块链系统安全性中至关紧要的一环。
尽管区块链是去中心化系统,但目前绝大多数数字交易所却是中心化的,存在着人为安全漏洞及技术安全漏洞。这些数字交易所拥有存放大量加密货币的私钥,这对于黑客来说无疑是最瞩目的目标;只要黑客偷走了这些私钥,就可以获取到这些加密货币。
作者会继续阅读相关资料、不断完善本文,目标是完成一篇通俗易懂的比特币科普文章。:)
**本文系网上信息与个人理解的结合,如有偏差及误读,欢迎读者指出。也欢迎给出关于文章结构上的指导~
『捌』 币易平台上交易的RCO是和比特币有什么区别
给你一个最本质的解释,比特币的交易网络最为让人诟病的便是它的交易性能,全网每秒7笔的交易速度,而RCO拥有8M区块容量,并采用了闪电网络技术,在交易速度上提升至每秒200笔的交易速度;以太坊因为自身的技术漏洞,至今为止以太坊已经因其自身问题发生了2次重大事故,而RCO在交易安全方面设计采用了抗量子攻击算法和在实践上更为安全的Ed25519签名算法,有效解决了恶意攻击问题,这也进一步巩固了RCO的安全性。
当然,最值得一提的是RCO更优Equihash挖矿算法机制,与比特币相比,RCO能够抗ASIC矿机,有力防止算力剧烈的起伏以及其他矿机来挖矿从而实现人人都可用普通电脑轻松参与挖矿,这意味着人人都能够通过普通笔记本电脑轻松的参与RCO的挖矿并提币至币易Coinyee交易所交易或快速变现
『玖』 为什么说比特币是不能破解的,用量子计算机也不行
因为加密远比解密代价小
假设以数字+大小写字母(共62种字符)设置密码,某超级计算机1秒能暴力尝试10亿个密码,那么:
破解5位密码需要1秒(62^5=9.2亿),
破解6位密码需要62秒,
破解7位需要1小时,
破解8位需要2.5天,
破解9位需要半年,
破解12位需要10万年(超过人类文明史),
破解15位需要243亿年(超过宇宙年龄)。
15位密码不过比5位密码多输入几位,耗时几秒,却导致解密代价高到了几乎不可能的程度。
量子计算机即使带来一亿倍的破解速度提升,那也不过是抵消了比特币256位私钥长度中的27位而已(2^27=1.3亿)。就算外星人出现,连续发生了数次一亿倍破解速度提升(每次抵消27位私钥长度),比特币也只要简单地把私钥长度升级到512位即可。
『拾』 谷歌实现量子霸权,比特币网络要被攻破了吗
北京时间10月23日晚,“自然”杂志150周年纪念版发表了一篇论文,声称谷歌已经成功地实现了“量子霸权”。这一在量子领域被评为“你好世界”的事件立即占据了主流媒体的头版,论文对“200秒内量子计算=地球上最强大的超级计算机一万年”的描述成为整个互联网的热门话题。
目前除以太方、量子链等加密货币项目侧重于量子电阻外,许多密码学和量子密码学专家在倡导尽快建立保障资金安全的问题上,据彭博科技记者威廉·图顿上月在Twitter上透露,国家安全局目前一直在致力于相关技术的研究。因此,除非量子计算的威胁突然爆发,否则比特币仍有时间应对它的到来。“比特币是活的,共识在那里,货币在那里,如果不升级,它就不会因为算法或漏洞而消失。但是量子电阻问题还没有解决。随着量子计算机的不断发展和更多量子比特芯片的到来,这将仍然是悬在密码货币头上的达摩克利斯之剑。”