声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。
边肖:记得要集中注意力。
来源:Filecoin社区
对于任何区块链体系来说,共识机制都是基础。完整的共识机制可以保证安全和效率。共识机制的设计必须能够高效、公平、快速地达成共识;同时,共识机制的设计需要保护诚实的矿工,惩罚恶意的矿工,以达到维护生态的目的。近日,Filecoin团队发布了共识机制恶意攻击判定规则。我就此做一个简单的分析。
缺乏保护,屡遭袭击
什么是十字弓攻击?简单来说就是在你有爆块权的情况下,不顾共识设计,将多个块连接在同一块高。在没有惩罚机制的情况下,现行制度只考虑到这个矿工有权利依次封杀是合法的,而没有保护连续封杀。因此,所有的块将被认为是合法的。这种攻击矿工因此可以获得多次爆破机会,体重增加很多。达到全链条打击的目的。
共识攻击,判死刑
由于共识机制是一个链条的基石,对共识的保护就显得尤为重要。尤其是像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。