双花攻击

Doge留言 | 贡献2024年12月19日 (四) 01:47的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

双花攻击(又称一币多付双重支付double-spending)是同一笔数字货币可以被重复花用两次或更多次的情形,是一种数字货币失败模式的构想。因为数字货币是采取电子文件的类型,而电子文件可被复制,所以花用数字货币,能造成不从原持有者扣除已花用的金额,却能支付“购买”商品与服务的消费的现象,这将凭空多出已支付但未扣除的金额,或是使收款者凭空收到多重支付的金额,此现象让整体的数字货币流通量增加,造成“通货膨胀”而导致数字货币贬值,从而不再让人信任并愿意持有及流通。任何数字货币都有防止双重支付的措施[1]

这是一个货币设计问题:一种良好的货币应具有可验证的稀缺性,而当一个价值单位可以被多次使用时,这种货币的稀缺性属性就会受到挑战。与假币一样,这种双重支付通过创造出之前不存在的复制货币导致了通货膨胀。像所有越来越丰富的资源一样,这会使货币相对于其他货币单位或商品贬值,并削弱用户的信任以及货币的流通和留存。为了在交易中防止双花攻击,同时保留匿名性,基本的密码学技术包括引入权威机构(因此带来中心化)进行盲签名,以及特别是在离线系统中使用秘密分割技术。

中心化数字货币 编辑

防止双重支付通常通过一个在线的中心化可信第三方实现,该第三方可以验证某个代币是否已被使用。然而,从可用性和信任的角度来看,这通常构成了一个单点失效的风险。

去中心化数字货币 编辑

在去中心化系统中,解决双重支付问题要困难得多。为了避免依赖可信的第三方,许多服务器必须存储一份相同的、实时更新的公共交易账本。但由于交易(花费货币的请求)是广播的,它们到达每台服务器的时间会略有不同。如果两笔交易试图花费同一个代币,每台服务器会将其首先接收到的交易视为有效,而将另一笔交易视为无效。一旦服务器之间出现分歧,由于每台服务器的观察结果被视为同样有效,就无法确定真正的余额。

大多数去中心化系统通过共识算法解决这个问题,这是一种让服务器重新同步的方法。两种重要的共识机制是工作量证明(Proof-of-Work,PoW)和权益证明(Proof-of-Stake,PoS)。

到2007年,已经提出了一些用于防止双重支付的分布式系统。

比特币(Bitcoin)在2009年初实施了一种解决方案。其加密协议采用了工作量证明的共识机制,将交易分批打包成区块,并通过哈希指针链表(区块链)将这些区块连接在一起。任何服务器都可以通过解决一个计算难题(具体来说是找到部分哈希碰撞)来生成一个区块,这个过程被称为“挖矿”。区块记录了比特币交易的整个历史以及新的交易集合。矿工通过解决该难题获得一定数量的比特币作为奖励。

然而,如果两个包含冲突交易的区块在几乎相同的时间被挖出,双重支付问题仍然存在。当服务器对两个区块的顺序不可避免地产生分歧时,它们会暂时保留这两个区块。当新的区块到来时,它们必须选择对一个历史链进行承诺,最终单一链条会继续延续,而其他链条会被舍弃。由于最长的链(更准确地说是“最重的链”)被认为是有效的数据集,矿工们会被激励仅在他们所知的最长链上构建区块,以确保其成为该数据集的一部分(以及他们的奖励有效)。

因此,在该系统中,交易从技术上来说永远不会“最终”确定,因为冲突的区块链总是有可能超过当前的主链。然而,随着一个交易被更多的区块所覆盖,另一条链超越它的成本会变得越来越高,从而使这种情况越来越不可能发生。

受信任的第三方 编辑

通常由在线受信任的第三方来验证一个数字token是否被花用过 ,这在金融机构的账户存款、电子票证、游戏点数、数字小额支付的系统中采用。受信任的第三方也会使用密码学与散列运算,防止数字货币出现双重支付的状况。

这在信任和信息安全的角度看都是单点脆弱性。

区块链中的双花攻击案例 编辑

在2018年5月,有恶意矿工通过至少51%的全网算力,对当时的全球第26大加密货币比特币黄金(Bitcoin Gold)进行双花攻击(双重支付),造成了千万美元的损失。此次攻击引起了一些对于去中心化以及工作量证明(PoW)机制的质疑。有人因而提出,采用持有量证明(PoS)机制的货币较比特币安全,但同年6月,360公司发声明称EOS链(EOS使用DPOS机制,标榜去中心化)存在一项重大漏洞,正基于区块链网络去中心化的计算特点,一个区块链节点实现上的安全漏洞,可能引发成千上万的节点遭到攻击。

2019年1月5日,ETC 以太坊经典遭受了双花攻击,攻击者总共获取了219,500个ETC,当时价值约合110万美元[2]

51%攻击 编辑

由于去中心化区块链的特性,在缺乏中央权威机构的情况下,交易的正确顺序只能由占主导地位的共识定义。这导致一种可能性,即某个行为者可以获得对决定该共识的实体的多数控制权,从而强迫其自己的交易版本生效,包括替代交易和双重支付交易。由于信息传播的延迟,在局部的子集参与者中,51%攻击暂时也是可能的。

去中心化的工作量证明(Proof-of-Work)系统的总计算能力是所有节点计算能力的总和,而节点计算能力可能因所用硬件的不同而显著差异。更大的计算能力提高了每次挖出新区块获得奖励的机会,这促使矿工聚集节点形成矿池。任何获得51%算力的矿池都可以有效地推翻网络交易,导致双重支付的发生。

比特币的一个分叉币,比特币黄金(Bitcoin Gold),在2018年和2020年都遭受了这样的攻击。

一种加密货币是否容易受到攻击,取决于其网络现有的算力,因为攻击者需要超过这个算力。为了使攻击在经济上可行,货币的市值必须足够大,以证明租用算力的成本是值得的。

2014年,比特币矿池GHash.io获得了比特币网络51%的算力,这引发了关于网络安全性的重大争议。该矿池自愿将其算力限制在39.99%,并请求其他矿池效仿,以恢复对网络的信任。

参考链接 编辑