区块链具有去中心化,以及防篡改等特点,但是也是能被攻击的,很多人由于相关知识的薄弱以及安全意识的匮乏,所以频频被黑客攻击。其中有一种攻击方式能将区块链系统弄至瘫痪,这就叫女巫攻击。
区块链具有去中心化,以及防篡改等特点,但是也是能被攻击的,很多人由于相关知识的薄弱以及安全意识的匮乏,所以频频被黑客攻击。其中有一种攻击方式能将区块链系统弄至瘫痪,这就叫女巫攻击。

什么是女巫攻击?
女巫攻击也叫Sybil Attack,在区块链世界中,女巫攻击(Sybil Attack)是针对服务器节点的攻击。攻击发生时候,通过某种方式,某个恶意节点可以伪装成多个节点,对被攻击节点发出链接请求,达到节点的最大链接请求,导致节点没办法接受其他节点的请求,造成节点拒绝服务攻击。
如果一个恶意的设备或结点违法地以多个身份出现,我们通常把这个设备或节点的这些多余的身份称为女巫设备或女巫节点。
通俗地说:女巫节点就像孙悟空一样拥有七十二变的能力,能够变出72个和孙悟空一模一样的猴子出来,那么孙悟空就违法地以多个身份出现了。

你可以把白骨精理解为一个区块链,白骨精分不清哪个是真正的孙悟空本尊,72拥有统一身份的孙悟空就大大削弱了白骨精的的辨识能力,最后妖怪只能束手就擒。
如何防范女巫攻击?
1、身份认证
女巫攻击的方法就是伪造网络ID,那么我要做的是对每一个进入的节点做身份认证,只要伪造的节点通过不了认证就能防止女巫攻击了。
2、特征向量
做数据的时候,我们可以通过很多特征向量来判断是不是同一个用户。在P2P网络中,我们也可以通过这种特征向量来区分这个节点是不是伪造的节点。虽然不能避免女巫攻击,但是能够有效的减少女巫攻击。

3、提高伪造难度
女巫攻击的本质就是伪造节点,所以只要提高伪造节点的难度,相信想要攻击区块链就会变得相当难了。最常见的就是POW了,工作量证明,让节点通过运算去解决问题,解决了才认可你是一个有效的节点,也也证明了这个节点是有效的而不是伪造的。
4、Model 0
在Model 0中,有两种节点:Known 和 unknown, 并且会保存所有请求者的请求历史。如果一个请求者他历史记录里面有3-5个成功交易,那么这个请求者就是Known节点,其他的没有发生过交易的就是unknown节点。当节点跟Unknown节点进行交互的过程中,如果出现错误或者失败,那么节点可以暂时拒绝和Unknown节点的请求,只接收Known节点的请求。在未来的某个时间再去接收Unknown节点的请求,这样就保证了系统在整体上是可用的,不会出现大面积服务拒绝的情况。