解释
女巫攻击(Sybil Attack), 是一种在线网路安全系统威胁,是指个人试图通过创建多个帐户身份,多个节点或电脑坐标从而控制网络。生活中常见的就是利用多个ip地址刷量、刷赞。
区块链中本质上是一个只写不删的分布式数据库,通过多个节点的冗余数据达到网络的安全和不可篡改。女巫攻击,即为单一节点具有多个身份标识,通过控制系统的大部分节点来削弱冗余备份的作用。
女巫攻击(Sybil Attack)是指利用社交网络中的少数节点控制多个虚假身份,从而利用这些身份控制或影响网络的大量正常节点的攻击方式
来源
“Sybil”一词是来自于一位被诊治为“多重人格障碍”的女性名为Sybil Dorsett的个案而来。
Sybil攻击类型
直接通信
进行sybil攻击的一种形式是sybil结点直接与合法结点进行通信。当合法结点发送一个无线消息给sybil结点时,sybil结点中的一个会监听这个消息。同样地,从所有sybil结点发送出的消息事实上也是从同一个恶意设备发出的。
间接通信
在这个版本的攻击中,没有一个合法的结点能够直接与sybil结点进行通信。相反,一个或多个恶意的结点宣称他们能够到达sybil结点。因此,发送给sybil结点的消息都是通过其中的一个恶意结点进行路由转发的,这个恶意结点假装把这个消息发送给sybil结点,而事实上就是这个恶意结点自己接收或者拦截了这个消息。
伪造身份
在某些情况下,一个攻击者可以产生任意的sybil身份。比如说如果一个结点的身份是一个32-位的整数,那么攻击者完全可以直接为每一个sybil结点分配一个32-位的值作为它的身份。
盗用身份
如果给定一种机制来识别结点的身份,那么攻击者就不能伪造身份了。举个例子来说,命名空间,由于命名空间本身就是有限的,根本不允许插入一个新的身份。在这种情况下,攻击者需要分配一个合法的身份给sybil结点。这种身份盗用在攻击者把原有结点摧毁或者使之失效的情况下是不好检测的。
同时攻击
攻击者将其所有的sybil身份一次性的同时参与到一次网络通信中。如果规定一个结点只能使用它的身份一次,那么这个恶意结点就可以循环的使用它的多个sybil身份让人看起来是多个结点。这就是同时性。
非同时攻击
如果攻击者只在一个特定的时间周期里使用一部分sybil身份,而在另外一个时间段里是这些身份消失而以另外的sybil身份出现,这看起来就像网络中正常的结点撤销和加入。
Sybil攻击会导致什么问题?
如果攻击者创建了足够的虚假身份(或Sybil身份),他们能以多数票击退网络上真实的节点。
然后在这情况下,他们可以拒绝接收或传输区块,从而有效地阻止其他用户进入网络。
在比较大规模的Sybil攻击中,前提是当攻击者已控制大部分电脑网络或哈希率,他们可以进行覆盖51%的系统攻击。在这种情况下,他们可以轻易更改交易的顺序,并防止交易被确认。他们甚至可以接控和逆转交易,导双重支出问题。
多年来,计算机科学家们奉献大量的时间研究如何检测和预防Sybil攻击,各研究具备不同程度性的有效性,但是至今仍没有完善的预防方案保证。
所以区块链如何减轻Sybil攻击呢?
许多区块链使用不同的“共识演算法”来帮助扺抗Sybil攻击,例如工作证明,股权证明和委托证明。这些共识演算法实际上并并没有效扺抗Sybil攻击,它们只是使攻击者试图执行成功有困难性,从而变得不切实际。
举个例子说,比特币的区块链应用了一组特定的规则用于新区块的生成。
其中一条规则是如果想拥有创建区块的能力, 你的总机制处理能力必须与提交工作证明能力成比例。这意味着你必须是拥有创建新区块所需有的电脑计算机能力才能创建,对于攻击者而言这成本非常的高昴和困难去做的。