AICoin小课堂丨“双花”问题及防范之道

1年前
标签:双花015638
文章来源: AICoin信息君

在加密市场中,数字货币交易所是黑客们最主要的攻击目标,其中,双花攻击可以说是黑客采用的众多攻击手段中最容易得手的方案。所谓“双花”,是指一笔钱被重复花了两次。

 

举个例子,小A去饭店用餐,结账时通过线上支付了 20 美元,但因支付系统出问题,这一笔钱并没有被银行同步,所以这笔钱仍然留在他的电子钱包里。于是小A就可以拿着这笔本该付给饭店的20美元去看场电影,同一笔钱花费两次,这就属于双花问题。

 

一般来说,双花问题分为两种情况:一种是记账前双花,比如同一笔钱,因为银行同步延迟的问题,被多次使用,就好比上面举的例子;另一种是记账后的双花,一笔钱花出去,银行已经记账,但如果你攻击了银行,从银行账本上删除了这笔花费,就可以再花一次了。

 

本质上,双花是一种欺诈攻击,攻击形式也有很多种,包括芬妮攻击(Finney attacks)、51% 攻击、种族攻击(Race attacks)等。

 

1、芬妮攻击:主要通过控制区块的广播时间来实现双花。攻击者将一个交易预挖为一个区块,但并没有立即将其广播到网络中,而是将相同的代币花费在另一笔交易中,然后才广播他之前所预挖的区块,会使之前的支付无效,实现了同一笔代币的“双花”。芬妮攻击需要发生一系列相关联的事情,并且还取决于接收者能够接受未经确认的交易。

 

2、51% 攻击:主要是通过控制全网算力来实现双花。比如攻击者掌握了一个区块链全网 51% 的算力时,他就可以删除或修改交易的顺序,将花费出去的交易记录从全网的账单上改成没有花费的状态。不过在庞大的区块链系统中,掌握 51% 算力需要很高的成本,但如果双花的收益足够大,仍是有可能存攻击的。

 

3、种族攻击:主要是通过控制矿工费来实现双花。攻击者同时向网络中发送两笔交易,一笔交易发给自己,一笔交易发给商家。为了提高攻击成功率,他给发给自己的那笔交易增加足够的矿工费。由于发送给自己的交易中含有较高的费,会被矿工打包成区块的概率比较高,也就是间接提高了攻击成功的概率。如果攻击者发给自己的这笔交易被提前打包,这时候这笔交易就先于发给商家的交易,而发给上架的交易就会被回滚。对于攻击者来说,通过控制矿工费,就实现了同一笔代币的“双花”。

 

防范双花问题的措施:

 

1、先记账再交易。比如商店老板,不以付款者的交易记录为依据,而是在确认钱到账之后才交付商品。在区块链应用中,大额交易一般都是走这种路径。不过,如果金额很小,交易双方又相识,交易是可以不记入区块链的,即没有记账的情况下,也可以完成支付。只不过这种方式(称为“零确认支付”),收款方是要承担被双花的风险。

 

2、等待更多确认。这个方案主要针对 51%攻击。51%的算力要作废最新账页,成功概率是51%,但作废连续两个新账页的概率是51%×51%=26.01%,作废3个的概率则是51%×51%×51%=13.27%,作废6个的概率只有0.46%。如果攻击者没有掌握51%的算力,只掌握20%的算力,那么攻击成功的概率就只有0.0064%(0.2的六次方)了。

 

比如某个区块链是每10分钟确认一次,全网51%的算力每10分钟的成本是10万元。小A在该区块链上发起100万的NFT收藏品交易,那他至少要10个确认以上才能交付收藏品,也就意味着攻击者要至少花费100万的成本才能获得该商品,且攻击成功的概率远低于51%,成本>商品价值,攻击者很大概率会放弃采取双花攻击。

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

评论

暂时没有评论,赶紧抢沙发吧!