首页 > 世链号 > 双花问题,区块链的信任杀手
币小哥  

双花问题,区块链的信任杀手

摘要:在数字经济生态中,数字货币交易所是黑客们最主要的攻击目标。以往出现的数次黑客攻击交易所的事件中,黑客几乎都会获得巨额数字资产,交易所则元气大伤,甚至破产,更有甚者导致整个数字货币市场行情大幅波动。

双花问题,区块链的信任杀手

在数字经济生态中,数字货币交易所是黑客们最主要的攻击目标。以往出现的数次黑客攻击交易所的事件中,黑客几乎都会获得巨额数字资产,交易所则元气大伤,甚至破产,更有甚者导致整个数字货币市场行情大幅波动。
而黑客采用的攻击手段中,双花攻击可以说是最容易得手的方案了。什么是“双花”?顾名思义,就是一笔钱被重复花了两次。
我们可以举一个简单的例子,我们在餐厅吃饭,结账时刷卡付了 100 元,但这时银行系统出了问题,并没有记录这笔交易,这 100 元仍然在银行卡里。于是,我们就可以拿着本该付给餐厅的 100 元去做其他的事了。
一般来说,双花问题分为两种情况:一种是记账前双花,比如同一笔钱,因为银行同步延迟的问题,被多次使用,像我们刚才举的例子就是这种情况;另一种是记账后的双花,一笔钱花出去,银行已经记账,但如果你攻击银行,从银行账本上删除了这笔花费,就可以再花一次了。
本质上,双花是一种欺诈攻击,攻击形式也有很多种,包括芬妮攻击、51% 攻击、种族攻击等。

双花问题,区块链的信任杀手

芬妮攻击是主要通过控制区块的广播时间来实现双花,攻击对象针对的是接受 0 确认的商家。
假设攻击者挖到了区块,在区块中,包含了一笔交易信息,即地址 1 向地址 2 转了一定数量的 token,不过这两个地址都是攻击者的。但是攻击者并不广播这个区块,而是立即找到一个商家,用他的地址 1,把这些 token 发给商家的地址 3。

发给商家的交易广播出去后,如果这个商家接受 0 确认,攻击者就把他自己之前挖到的区块广播出去,这时候发给自己的交易就先于发给商家的交易。对于攻击者来说,通过控制区块的广播时间,就实现了同一笔 token 的“双花”。

一般来说,为了节省时间而接受 0 确认(指交易卖家不等待该笔交易被区块链网络节点确认,即确认交易成功),特别是对于大额交易而言,是非常不安全的,而且对于大额交易而言,多几次确认,将会降低交易被回滚的风险。

51% 攻击是指当有人掌握了一个区块链全网 51% 的算力时,他就能够将刚才花费出去的交易记录从全网的账单上改成没有花费的状态。在一个大型的区块链网络中,掌握 51% 算力需要很高的成本,但如果双花的收益足够大,攻击仍然是有可能的。

当然,这种方式可以通过等待更多交易确认来解决。51% 的算力要作废最新账页,其成功概率是 51%,但作废连续两个新账页的概率就是 51%*51%=26%,作废 3 个的概率是 13.3%,作废 6 个的概率只有 0.46% 了。如果攻击者没有掌握 51% 的算力,只掌握 20% 的算力,那么攻击成功的概率就只有 0.0064% 了。

种族攻击主要是通过控制矿工费来实现双花。
比如,攻击者把一定数量的 token 发给一个商家,我们命名为分支 A。如果商家接受 0 确认,那么攻击者就会再把这笔 token 发给自己的一个钱包,我们命名为分支 B。
不过,攻击者在发给自己的这笔交易中,加了较高的矿工费,从而大大提高被矿工打包的概率(也可以说间接提高了攻击成功的概率)。

如果攻击者发给自己的这笔交易被提前打包,这时候这笔交易就先于发给商家的交易,也就是分支 B 的长度超过分支 A 的长度,分支 A 上的交易就会被回滚。对于攻击者来说,通过控制矿工费,就实现了同一笔 token 的“双花”。

双花本质上还是区块链的信任问题,为了预防双花问题,区块链本身从技术方面,也在共识机制的基础上,引入了一些其他技术,比如时间戳和 UTXO 模型。通过它们,进一步提高区块链的记账安全性、以及双花的作恶成本。

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。