双花攻击
双花攻击(又称一币多付、双重支付,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%,并请求其他矿池效仿,以恢复对网络的信任。
参考链接[编辑 | 编辑源代码]
- ↑ The Double Spending Problem and Cryptocurrencies by Usman W. Chohan :: SSRN
- ↑ 雙花攻擊是什麼?如何預防雙花攻擊?幣圈雙花攻擊案例整理 | CoinDada 幣答