作者:宇星 / 来源:白话区块链
区块链都会面临什么样的攻击呢?今天大白就来和大家聊聊。
01
交易延展性攻击
交易延展性攻击,也叫交易可塑性攻击。在现实生活中,我们把一块金子敲变形之后,虽然形状有所改变,但质量却没有发生变化,也就是说金子外观发生了变化但是仍然被认可,这种特性呢被称为“可锻性”。
在比特币系统中,也有一个类似的名词,“ Transaction Malleability ”。这个词通常翻译为“交易延展性”,也叫做“交易可锻性”,利用交易延展性而造成的攻击就叫交易延展性攻击。
具体指的是比特币交易 A 发出之后,在还没有被确认之前,攻击者通过修改某些交易数据,使得一笔交易的唯一标识——交易哈希发生了改变,就形成了新的交易 B ,假如交易 B 先被记录到比特币账本中,那么交易 A 会因为双重支付问题,被验证为不合法,从而拒绝。
一个现实的例子就是:小黑从交易平台发起提币,然后他提币这个交易就被广播出去了,在他这笔交易还没有被节点验证之前,小黑进行了延展性攻击,恰好攻击产生的新交易先被确认,而新交易照样会让他获得币(就像金子外观变了一样被认可),但是贪心的小黑却向交易平台申诉自己并没有收到币,交易平台一看,之前给小黑转币的那笔交易确实被拒绝了,因此又给小黑汇了一笔币,小黑心里美滋滋。贪心的小黑还不满足,他又以同样的攻击方式继续多次攻击,这样就导致了交易平台的资金大量流失。
所以,当遇到交易无法确认时,需要立即停止,应当根据区块链上的交易报错信息以及查看是否在短时间内已经发起了这样的交易,再进行手动处理。
02
粉尘攻击
“粉尘”的意思是少量的币,一百聪以内的 BCH 一般都可以视为粉尘。一般来说,这个金额的币不会用于交易,因为交易费甚至就已经超过他们本身价值。
许多比特币用户并不会太在意钱包中所出现那些极小的金额,所以诈骗者们利用用户这个心理漏洞向用户的钱包地址发送“粉尘”,一旦用户使用这些“粉尘”,这些微小金额就和用户未花费的的交易输出( UTXO )混合在一起,诈骗者们就可以追踪用户的钱包地址,以获得用户的身份。
然后和被追踪的用户说:“我知道你的身份,给我钱,否则我暴露你的身份”。一些不想被别人知道自己有币的用户可能就会中套。这种攻击就是粉尘攻击,这种攻击一开始是针对比特币进行的,但后来也慢慢侵染到其他流行区块链上的加密货币。
为了避免这种攻击,一些钱包商已经提供服务,允许你在随机发送几“聪” BCH 中添加描述或“ 标记 ”,你可以选择不去理会这些粉尘,这样粉尘攻击就与未受污染的金额隔离开来。
03
女巫攻击
女巫攻击又叫 Sybil 攻击,名字来源于电影《女巫》(Sybli),讲的是一个有 16 种人格的女人心理治疗的故事。在区块链中,女巫攻击指的是一个恶意的节点非法地对外呈现多个身份。
这就有点像小时候我们玩的“手拉手”游戏,当新的小朋友加入我们这个游戏圈的时候,他会去牵旁边人的手,进而对旁边的人有了进一步的认识。在区块链中也是这样,任何网络节点是可以发送请求加入的消息,收到请求消息的其他节点会立即做出响应,回复其邻居节点信息。
可是有些小朋友为了认识更多的小伙伴,就每次换一个面具,这样就可以到不同的位置去牵别的小朋友。恶意节点就像这个恶搞的小朋友,它对外伪装成多个身份,这样就可以获取大量的区块链网络节点信息,以便进一步的攻击和破坏。
解决女巫攻击的一种方法是工作量证明机制,即用计算能力去证明你是一个节点,这样极大地增加了攻击的成本。
另一个方法是身份认证,可以是基于第三方可靠节点的认证。就像在所有参加游戏的小伙伴中选出眼睛最亮的那个,这样来避免大家被搞怪小朋友的面具蒙骗。身份认证也可以是全节点制的认证,这就相当于每个小朋友都要对恶搞小朋友进行身份审核,这样就大大降低了恶搞小朋友成功伪装多个身份的几率。
04
小结
了解各种类型的攻击可以使我们更好地防御它们,从而保障自己的财产安全。今天就先聊到这儿,后期还会有日蚀攻击和DDoS攻击等别的类型的科普。
你还知道哪些攻击,或者你还知道哪些区块链诈骗的“套路”?