比特币现金和区块链分叉漏洞已成功披露.doc

比特币现金和区块链分叉漏洞已成功披露.doc

ID:28103069

大小:100.50 KB

页数:8页

时间:2018-12-08

比特币现金和区块链分叉漏洞已成功披露.doc_第1页
比特币现金和区块链分叉漏洞已成功披露.doc_第2页
比特币现金和区块链分叉漏洞已成功披露.doc_第3页
比特币现金和区块链分叉漏洞已成功披露.doc_第4页
比特币现金和区块链分叉漏洞已成功披露.doc_第5页
资源描述:

《比特币现金和区块链分叉漏洞已成功披露.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、比特币现金和区块链分叉漏洞已成功披露比特币现金和区块链分叉漏洞已成功披露比特币现金和区块链分叉漏洞已成功披露  2018年4月25日,我以匿名的方式私下披露了比特币现金(BCH)的一个关键漏洞。比特币现金是世界上最有价值的加密货币之一,与比特币(BTC)不同。如果有黑客成功地利用这个安全漏洞,可能会造成极大的破坏,导致比特币现金的交易不再可能安全进行下去,最终会完全破坏该货币本身的使用以及价值。事实情况是,这一漏洞在没有发生事故的情况下得到了很好的修复,并于2018年5月7日向公众披露了这起事件。  

2、首先要对比特币现金做一个简单的说明。比特币现金是一种不同于比特币、而且与比特币不兼容的加密货币。之所以这样命名,是因为它源自比特币。下文描述的已经修复好的漏洞只对比特币现金产生了影响;比特币现金与比特币唯一相关的就是它们的名字很相似。  至于我为什么要这么做?我的动机是什么?我在麻省理工学院媒体实验室的数字货币项目工作,顾名思义,这是一个负责研究和开发加密货币的团队。具体来说,我帮助开发和维护比特币核心钱包以及比特币的主要软件实现。由于承担这项工作,我经常在会议和研讨会上被问到这样一个问题:你认为未来

3、比特币面临的最大挑战是什么?而我的回答总是一样的:比特币未来一定要注意避免灾难性的软件漏洞。  通过研究这个有可能带来灾难性后果的漏洞,我确信软件漏洞的威胁在加密货币世界中被严重低估了。我对这一事件提供了一个详细的报告,这不是小题大做,而是希望以这个真实世界的例子让人们了解到,要达到加密货币所需的复杂工程水平还有很多工作仍然要做,同时也给那些还没有为这种情况做好充分准备的公司敲响了警钟。  简而言之,一部分交易签名验证代码被重写,但新代码省略了对签名类型中特定位(bit)的关键检性查。我在本文中将这个

4、位称为SIGHASH_BUG。这种省略行为将使一个特制的交易把比特币现金区块链分叉成两条不兼容的链。下一节我将描述这种分叉的重要性。有关漏洞和修复的详细信息,请参阅公开的文本。  区块链分叉漏洞有何特别之处?  大多数加密货币,包括比特币和比特币现金,通过向所有参与者分发所有交易的分类帐来运行。为了能够进行消费,货币持有者必须首先创建一个交易,这个交易要遵守系统的所有规则。这些规则大多数都很明显,很直接,例如“你的花费不能超出你所拥有的数量”,但其他规则则更加微妙,技术性更强,尤其是那些描述数字签名应

5、该如何格式化的规则。但是,如果加密货币是不允许使用的,那么谁来设置这些所谓的验证规则呢?每个人都参与设置验证规则  系统的规则是由每个人来决定的,而执行这些规则是软件的工作。如果一个参与者试图欺骗并创建一个交易,在这笔交易中,他花费的不是自己的货币,那么其他参与者的软件会简单地拒绝这笔交易。因此,为了确保交易被普遍接受,它必须遵守所有的规则,哪怕规则迂腐至极。  负责执行验证规则的软件需要不断地改进。为了提高性能、增加特性、提高安全性等,需要不断进行更改。但是,从一个版本到另一个版本执行规则的方式必须

6、保持完全相同,这一点非常重要。  那么,如果新版本软件中的一个意外编程漏洞导致交易被认为是有效的,而之前的所有版本都将其视为无效时,会发生什么情况呢?其结果就是“区块链分裂”,这意味着只有升级了该软件的参与者子集才会接受上述交易。由于交易和区块是链接在一起的,因此这两个子集在接下来的每笔交易上都不一致。如果没有开发人员的快速行动,没有让所有参与者团结统一到一起,这两个参与者阵营将永远无法达成一致。到那时,这种货币实际上已经分裂为两种不兼容的货币,像以前那样交易将不再可能。  在权衡诸如此类的漏洞的潜在

7、影响时,时机起着至关重要的作用。如果区块链被分割成两块,99%的参与者在一边,而只有1%的参与者站在另一边,那么显然与多数人站在一起就是前进的道路。然而,如果大约有50%的人已经升级到新版本,那么就没有简单的选择了。  我在比特币现金最受欢迎的一个软件新版本中发现了这种分链漏洞,但这是在将近一半的网络升级到它之后才发现的。发现漏洞  由于比特币现金是免费的开源软件,它经常被用作新兴加密货币的起点。除了受益于多年的改进之外,共享代码还意味着,其他不相关的加密货币可以从彼此的改进中获益。比特币现金的主要软

8、件被称为比特币ABC(BitcoinABC),是基于比特币核心钱包的软件之一。  由于大量的通用代码,这些派生项目通常会有类似的漏洞,因此也会有类似的漏洞修复。但是,期望一种货币的开发人员积极主动地与其他货币的开发人员分享他们的改进是不现实的,因为单单要跟上一个项目就是足够困难了。出于这个原因,我养成了一个习惯,每隔几个月就会对这些项目进行一些修改,以查找可能与比特币核心钱包相关的漏洞修复。  在今年早些时候查看比特币ABC的变更日志时,我注意到交易验证

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。