当前位置:首页 > 物联网 > 区块链
[导读] Bitcoin Unlimited是比特现金的主要客户之一,该公司的一名匿名开发者透露,他是如何在过去八年中发现比特币最严重的漏洞的。 作为证据,他发现了这个漏洞,Aweman

Bitcoin Unlimited是比特现金的主要客户之一,该公司的一名匿名开发者透露,他是如何在过去八年中发现比特币最严重的漏洞的。

作为证据,他发现了这个漏洞,Awemany时间戳了哈希(如图),并进一步与PGP密钥签署了协议,用于对比特币核心和其他项目进行负责的披露。我们会在下文详细引述有关部分:“我当时正在努力在Bitcoin Unlimited客户机上实现新的CHECKDATASIG/-VERIFY操作码,该操作码将在11月启动比特币(Cash)。我一直在研究这些工具的潜在的巧妙的用例,并且有动机去完成这项工作。

大约中午时分(9月17日,星期一),我注意到在ABC的签名运算和比特币无限的(BU)的数字运算方式上存在着很大的分歧。早些时候,我和BU团队达成了一致,我将把大部分CDS/-V文件从ABC移植过来,但我感到不堪重负。我的想法是:好吧,这是可行的,但这需要更多的分析,也需要更多的访客来评论。而且需要更长时间。叹气。同时,我在ABC代码库中偶然发现了这个注释:

//检查重复的输入 —注意这个检查很慢,所以我们在检查快中跳过它。

我的第一反应有点儿,呃,怎么回事?还在说那个评论吗?然后,我查找了ABC中CheckRegularTransaction的用法,它是在Core(核心)中重命名的CheckTransacTIon的变体(但是我当时不知道。我翻遍了代码,试图理解其中的逻辑。

我注意到,块验证跳过了这个测试,因为它被假定已经在内存池入口发生。我的下一个想法是有点下沉的感觉和一个‘啊哦,我真的希望ABC的人们已经考虑了记忆池和块传输之间的区别,并且这些是进入系统的独特方式。这里可能有问题!”然后我想出了一个测试这个的方法。我修补了一个ABC节点,使其在-regtest模式下即使被请求并连接了一个未匹配的和一个补丁的节点,也不中继交易,并创建一个带有重复输入的交易(上面的测试跳过了这个交易)。

哇!断言(),中止…

我打开了致deadalnix(BitcoinABC维护者)的电子邮件,开始想到:‘好吧,实际上,这些东西是从哪里来的,什么时候从哪里来的,他们把它引入到代码中,我们可能很幸运,但这还没有发布吗?’

然后我注意到这些东西是来自核心的。我已经写了一份披露报告,重新检查了核心是否也很脆弱。

再一次,哇!断言(),中止…

作为一个负责任的公民,我随后给Wladimir(比特币核心维护者)、sickpig(Bitcoin Unlimited开发者)和其他一些人写了一封加密的公开邮件,附上了ABC和核心补丁的一个变体来利用这个问题来揭露我的信息。”

根据以上,只要看一眼代码就能发现这个错误,BU开发者似乎从看12PM到在2018年9月17日下午14:47PM发邮件给其他开发者。

因此,一系列事件似乎表明,取消双重支出检查是一件相当大的事情,而且几乎是立竿见影。

即使是一个非程序员,你可能也会想到一些东西,这就提出了一个问题:当5个比特币核心的开发者批准这个错误时,他们到底在想什么?

这是因为这个错误并不微妙或复杂,但它是如此的简单,只要看一眼就可以看出,根据上面的描述,取消双倍支出检查是一个相当大的问题。

这就提出了一个问题,即这个错误是如何精确地把比特币打印出来的,而比特币本来可以被矿工用稀薄的空气进行打印的,但它最终却被写入了代码。

据我们所知,这也对Blockstream可能存在的利益冲突提出了问题,即地雷问题。提出这个明显错误的开发人员当时正在为Blockstream工作,而批准它的两个开发人员也是如此。

对于比特币核心的代码是否正在接受充分的审查,还需要提出进一步的问题。这是因为,如果非比特币Core的开发者对漏洞一目了然,但仍然能够进入,那么很明显,评审过程已经失败了,而且非常糟糕。

值得庆幸的是,现在存在一些竞争,比特币核心的科里·菲尔兹(Cory Fields)之前在ABC上发现了一个漏洞,这是个严重的问题,但比这严重得多,因为它没有考虑到“有效”的双倍支出。

在辩论最激烈的时期,一些比特币公司的态度不那么友善,做出了非常不负责任的行为,这导致了比特币无限使用的漏洞。

Awemany并没有回报他的支持,而是进行了非常负责任的披露,这导致比特币生态系统的大部分快速升级。

到目前为止,矿商和企业可能已经升级,但在编写本文时,仍有数千个节点仍然容易受到通胀风险的影响。

在这种情况下,会向节点发送警报,要求它们快速升级。这样的警报系统被删除了,即使它只是在节点屏幕的角落说一些类似于你应该升级的东西,就像你已经发现了一个错误一样,可以在一些链接中读到更多的内容。

警报本身不会以任何方式干扰代码节点的运行,如果发出了错误的警报,其他开发人员可能会将其覆盖。所有的警报都是通知节点操作员,然后节点操作员就可以自己作出决定。

现在,节点操作员必须检查加密媒体或crypto twitter,如果他们在新闻发布期休假,那么他们可能会认为它们的bugy节点没有什么问题。

由于Awemany的披露,对于那些已经升级的人来说,这是一个更安全的节点。为此,在撰写本文时,他获得了价值200美元的0.03BTC捐款。比特币现金支付者已经慷慨了很多,给他寄去了将近36BCH的捐款,价值17000美元。

然而,这些开发者不应该依赖他人的善意,因为考虑到风险有多大,应该会有漏洞奖金。然而,比特币核心和比特币现金的客户似乎都没有这样的漏洞奖励,这可能意味着开发者并没有太多动力来揭露这些漏洞,因此这也许是为什么比特币在直播代码中保留了两年的原因。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭