摘要:Filecoin网络每个版本都不断被攻击,靠攻击占领计算能力的高地?Filecoin团队对共识机制恶意攻击的判定规则已经下发。本文带你分析其中的规律.本文由军区李(胡)原创。
对于任何区块链体系来说,共识机制都是基础。完整的共识机制可以保证安全和效率。共识机制的设计必须能够高效、公平、快速地达成共识;同时,共识机制的设计需要保护诚实的矿工,惩罚恶意的矿工,以达到维护生态的目的。近日,Filecoin团队发布了共识机制恶意攻击判定规则。本文对此进行了简单的分析。
缺乏保护,屡遭袭击
go-filecoin的0.5.7和0.5.8 devnet在运行过程中,系统遭受了多次攻击。一些具体情况在我的两篇文章里有详细描述:【Filecoin相关】近期重力攻击技术分析第三卷和【Filecoin相关】Filecoin可以称重。不过提到了弩攻,但没有详细说明。我在上一篇文章中提到,这种攻击并不完全是基于权重计算设计的缺陷,也是基于共识机制的不完善。这个不完善就是惩罚机制还没有实现。
什么是十字弓攻击?简单来说就是在你有爆块权的情况下,不顾共识设计,将多个块连接在同一块高。在没有惩罚机制的情况下,现行制度只考虑到这个矿工有权利依次封杀是合法的,而没有保护连续封杀。因此,所有的块将被认为是合法的。这种攻击矿工因此可以获得多次爆破机会,体重增加很多。达到全链条打击的目的。有关更多信息,请参阅go-filecoin的问题#3523:
共识攻击,判死刑
由于共识机制是一个链条的基石,对共识的保护就显得尤为重要。尤其是像Filecoin这样率先采用POS的连锁店,这些设计也为整个区块链世界打下了坚实的基础。
在一个去中心化的世界里,保护意味着惩恶扬善。奖励诚实的矿工,对恶意的矿工给予必要的惩罚。其中对共识机制的攻击,因为涉及到根子,处罚相当严重。具体处罚措施如下:
所有矿工的抵押和他们的权力都被不可逆转地削减了。这个矿工再也不能生产砖块了,即使他们试图重新提交他们的抵押品。
翻译如下:
这个攻击矿工的所有抵押都被没收了,所有计算能力都被清零,再也没有恢复。同时,矿工将不能再参与采矿,即使抵押被重新发送到网络。
你什么意思?简单来说就是判死刑,所有财产没收,不能再参与采矿。
不要贪心,要诚实。
那么,哪些具体行为是对共识的攻击呢?最近的讨论基本结束了,最近刚刚发布了共识错误的判定规则。主要有三项,直接列举如下:
1.双重挖掘错误:同一个矿工在同一高度生产两个区块。
如下图:B4 B4,B5这两个区块都是矿工C生产的,但是住的高度一样,所以违规。
2.块跳过错误:基于相同的tipset生成两个块。
如下图所示,B3和B4都是在B2的基础上生产的。虽然不在一个高度,但还是违规了。
3.藏块错误:生成一个块时,故意在上一轮丢弃自己的块。
如下图:矿工B上一轮生产了B3区块,下一轮生产了B4区块,但B4区块本应在B2 B3的基础上生产,但B4放弃了B3,因此违反了规则。
基于这三条规则,我们来看看弩攻违反了哪些地方。在这里,它违反了规则1和规则2。当这些规则实施后,弓弩攻击者将受到最严厉的惩罚。所以不可能对网络构成威胁。
社区贡献,机制完善
在这个规则完善的过程中,还有一些小插曲。相信很多人都看过Spec,一开始就很难理解共识错误。一开始很隐晦。但基本意思是大致反映了上面提到的第一条和第三条。
但是前一段时间,团队急于改进设计,听取了社区的意见,并明确了这些规则。但可能是疏忽,上面提到的第二条和第三条还停留在机制设计上。这里要注意的是,虽然十字弓攻击发生在同一高度,但也违反了第二条。因此,这样的规定可以防止弩的攻击。但是,这里有一个很大的问题,允许矿工在同一高度开采。
社区成员史蒂文(Steven)对此提出质疑,最初的回答是:如果限制在同一高度采矿,一些回合可能会陷入僵局。非常吓人。但这是真的吗?
其实并不是,因为矿工总是可以向前挖的,当轮子出现故障时,他们会进入下一轮,所以不会出现抱死的情况。首先;其次,如果允许同轮挖矿,必然会给分叉的收敛带来很大的麻烦。我认为这次调整遗漏了这一点是疏忽而不是设计。
很快,最新版发布,三个方面都规定得很好。因为这些定义非常重要,所以在进一步确认的过程中,Juan建议用dotGraph来解释,让它们更容易理解。以上图片来源于此。
至此,我认为判断共识错误(也是共识攻击的认定)的规则基本成熟。未来是否会进一步改变。这是可能的,但在一个分散的网络中,识别恶意矿工和保护诚实矿工并不容易。比如第三个错误的定义,最好的是你不能把看到的合法区块全部丢弃,但这个很难判断。好在基于最重链原理,大家在生成块的时候都会自发的基于最终的tipset去做,从而增强了被网络识别的概率。这个机制本身也起到了很好的保护作用。基于这些考虑,我认为进一步提升的空间不大。
同时,在测试上线前将基本实现对共识的保护。所以在测试网络中,这些基于未实现功能的明显攻击应该会少很多。更多的应该是发现代码中的一些bug。
[IPFS部队区]
价值观:建立价值和分享荣耀
总部位于上海,聚集了众多基于分布式网络存储的技术大咖和爱好者,深耕基于IPFS的商业生态建设和社区发展。
(作者:IPFS力地带,内容来自外链的内容开放平台“得好”;本文仅代表作者观点,不代表链家官方立场)