双花攻击是同一笔数字货币被支付或花费了两次甚至多次的情况。双花攻击在使用现金的消费中几乎不可能出现,而只会出现在线上交易中,尤其是虚拟货币中。可以通过健全共识机制、提高节点花费、产生时间戳等方式来预防和阻止双花攻击。
双花攻击是什么?
双花攻击也叫双重花费攻击的简称,也可以被成为双重支付、一币多付,英文是double spending 或double spend attack。是同一笔数字货币被支付或花费了两次甚至多次的情况。
想像一个人使用同一张100 元的纸币在10 家不同的商店各消费100 元,这个人只花费了100 元就获得了价值1000 元的商品,这些商店就是收到了双花攻击。在实体货币的范围内这样的情况基本不可能发生,但是在虚拟货币的范围内却是可能的,因为其并不是能看得到摸得到的实体。
双花攻击是如何发生的?
假如你是一个虚拟货币的项目方,坏人可能会尝试以下方式来进行双花攻击:
- 快速的连续交易:坏人可能会在交易被确认之前不断提交新的交易,试图快速地完成双花攻击,这样可以让系统无法及时侦测到并防止双花攻击。
- 使用多个身份:坏人可能会使用多个身份来提交交易,以增加成功进行双花攻击的机会。
- 控制多个节点:坏人可能会尝试控制多个节点或参与多个矿池,以提高双花攻击成功的概率。例如进行51% 攻击来控制整个区块链网络,使得攻击者可以传输虚假的交易来进行双花攻击。
举例: 假设一个骇客要利用1 BTC来发起双花攻击。他会创建这个BTC 的多个副本,再首先将其中一个BTC 副本发送给商家A 并获得服务(比如卖成USDT、法币,获得某些商品等)。同时,骇客也会将另一个BTC 的副本发送给商家B。
此时两个商家都觉得自己收到了1 BTC,但是其实这笔转帐是没有获得矿工的确认,或者他们看到的矿工确认信息是虚假的,所以他们其实根本没有收到这笔BTC。而骇客在花费极低的情况下获得了价值2 BTC 的服务或商品,这就是双花攻击的情况。
![双花攻击是什么?如何预防?币圈双花攻击案例整理_链圈子](http://www.xmlm.net/wp-content/themes/Justnews/themer/assets/images/lazy.png)
双花攻击的种类
51% 攻击51% Attack
这是最常见的双花攻击手法之一。攻击者尝试控制区块链网络中超过50% 的计算能力,从而能够控制整个区块链的共识机制。这使得攻击者可以修改交易纪录、阻止交易确认来进行双花攻击。
竞赛攻击Race Attack
攻击者会同时发送两笔交易,一笔交易发给自己并提供较高的矿工费,另一笔发给商家并附带较低的矿工费。
由于发送给自己的交易提供较高的手续费,矿工在打包交易时会优先选择这笔交易。同时,商家可能已经看到攻击者发送的交易,并认为该交易已被验证,因此提供商品或服务给攻击者。
然而,事实上攻击者发送给商家的交易可能并未被确认,因为矿工更优先地打包了发送给自己的交易。这样一来,攻击者在不支付真正价值的情况下获得了商家的商品或服务,从而实现了双花攻击。
芬尼攻击Finney Attack
主要针对那些愿意接受未确认交易的商家。攻击者首先挖掘一个新的区块,但暂时不公开它。然后,攻击者向商家发起一笔交易,商家接受并未等待该交易被确认就提供了相应的服务或商品。
接着,攻击者将之前挖掘的区块公开广播。由于攻击者可以控制区块的广播时间,这导致攻击者发给自己的交易就先于发给商家的交易,从而完成了双花攻击。
如何预防双花攻击?
- 健全共识机制:在具有健全共识机制的区块链中,永远不会出现双花现象。PoW、PoS等共识机制使矿工或验证者能够正确履行维护网络完整性的职责,其安全严密的逻辑和设计将默认防止意外或自愿的双重支出问题。
- Nonce (交易序号):Nonce 是一个随机的加密值,在挖掘区块之前必须进行杂凑运算。 Nonce 的值只能使用一次,从而阻止双花攻击的发生。
- 时间戳记:每个成功的交易都有一个时间戳记,这证明了特定区块在特定时间添加到链上。一旦区块被时间戳记,就变得不可逆转。
- 高节点运营成本:双花攻击通常要求攻击者管理一个或多个节点。在51% 攻击的情况下,骇客需要支配网络内超过一半的节点。所以区块链可以通过提高节点运营的门槛来减轻双花攻击的风险。例如,以太坊要求抵押32 个ETH 才能成为节点管理员,这样相当于提高51% 攻击的成本而让攻击者知难而退。
- 中央监督:传统银行系统很少发生双花现象,因为有当局监控和批准每笔交易,所以你几乎不可能将同一张纸钞花两次。区块链也可以采用这种安全检查机制。但是这种解决方案和区块链“去中心化”的价值观是冲突的,因此一些区块链可能永远不会采用这种方法。
- 区块链协议和智能合约审计:双花问题往往会利用区块链协议和智能合约的内部bug来发生,因此进行全面和专业的审计有助于发现和修复这个高风险漏洞。
区块链中的双花攻击案例
- BTG 比特币黄金:2018 年5 月16 日,比特币黄金BTG 遭到了第一次双花攻击,攻击一直持续到3 天后的5 月19 日。攻击者总共获取了12,239 BTG,当时价值约1800 万美元。
- ETC 以太坊经典:2019 年1 月5 日,以太坊经典遭受了双花攻击,攻击者总共获取了219,500 个ETC,当时价值约合110 万美元。
结论
随着区块链技术的不断发展和改进,预防双花攻击的手段也在不断加强。各种加密货币项目和区块链平台都在积极寻求更安全、更可靠的解决方案。
但是,我们也要认识到,双花攻击是一个不断演进的问题,攻击者和骇客会不断寻找新的漏洞和方法。因此,保持警觉并持续改进区块链技术是至关重要的。只有通过共同的努力,我们才能在这个充满挑战的数位时代中建立更加安全和稳固的区块链生态系统。
原创文章,作者:惊蛰财经,如若转载,请注明出处:http://www.xmlm.net/jibi/31366.html