【Filecoin】一不小心,FIL就被没收了 -- 浅谈Filecoin的抵押机制
Filecoin的抵押分为两种:承诺质押(Pledge Collateral) 和 存储质押(Storage Collateral)
如果发现有矿工攻击网络的行为,质押物会被全部没收
不能提供全部或部分存储的证明的情况,没收全部或部分质押物
仅部分质押物用于奖励系统维护者,即矿工可以通过惩罚欺诈者或未履行义务者来获取利益
部分质押物会被网络销毁,从而导致通货紧缩,相当于给现有网络的FIL增值
我在前文《Filecoin挖矿远比Bitcoin复杂》中对Filecoin矿工的收益模式做了介绍,同时也对一个矿工如何能最大化收益和减少损失做了浅析。本文主要就Filecoin的质押机制和如何通过质押维护网络进行分析。通俗一点讲,就是一个矿工需要做哪些质押,什么情况下,你的币就可能没有了。
质押是Filecoin的奖惩机制设计中一个重要基石。Filecoin通过区块奖励和服务收费来为诚实矿工带来收益,同时,也通过质押和罚没机制来激励矿工提供优质服务。在这个奖惩机制中,奖励(即矿工收益)来自于以下方面:
- 区块奖励:按照一定的算法进行全网线形递减释放
- 存储收费:为用户存储数据的收益(来自于用户付费)
- 检索收费:为用户检索数据的收益(来自于用户付费)
- 交易费用:交易收费,燃料费用
Filecoin与其他公链系统的最大的不同在于,这是一个去中心化的存储网络,在这个网络中,矿工必须首先提供好数据服务,才能获得收益。如果不能提供优质的数据存储和检索服务,则对整个网络来说是一个伤害。如何保证矿工提供优质的数据服务呢?简而言之,通过质押来进行承诺,如果不能完成承诺,则罚没质押金,通过这样的经济模型来进行管理。当然,在这个网络之上,还可以建设信用机制等服务,来为用户提供矿工选择,从而实现良性循环,促进整个网络往好的方向发展。
整个Filecoin网络的质押系统和执行层面的算法还没有完全定型。本文所依据的主要是目前的讨论稿和部分实现,这些讨论已经基本建立起了一套体系,对Filecoin网络的积极参与者,可以作为参考,但同时希望积极跟进进展,以适应变化。
Filecoin网络中质押分为两类:
- Pledge Collateral (承诺质押):即矿工在挖矿时承诺给网络的可用空间时提供的质押,比如说提供 8T空间,质押1000FIL。
- Storage Collateral(存储质押):即矿工在存储用户数据时,为保证用户数据在规定的时间内被存储而提供的质押,比如接受用户1G数据存1年,质押100FIL
以上质押,在矿工不能兑现承诺的情况下,则可能被没收。
另外,对矿工的惩罚不仅仅来自于对质押的没收,还有更强大的手段,比如说,扣除矿机当前的算力,对矿工进行除名等。
简而言之,当一个矿工行为不当或没能完成自己应尽的义务时,通常会受到惩罚。惩罚的机制在代码中会详细实现,通过去中心化的机制进行,无需权威的中心化机构干预。矿工的不当行为或未尽义务,主要反映在两个方面:
1)共识失当: 主要是指在区块链的维护中有不当行为
2)存储市场失当:主要是指未能或未及时提供存储证明,或未能旅行与用户的合约。
下面就各种处罚分别进行简要描述,其中(01)为共识适当,其他部分为市场失当行为。
01
共识失当当前所设计的共识失当行为主要是指可能危害Filecoin区块链共识的攻击行为。
当一个矿工在一个出块周期内发布两个或以上区块,且满足预期共识所定义的处罚条件时。(严格地说,一个获得出块资格的矿工只能产生一个区块)
当这种情况发生时,任何其他矿工都可以报告,网络通过检验属实后,会罚没涉嫌攻击网络的矿工的所有抵押,并且扣除所有现有算力,因为对网络的攻击行为被视为不可接受的。这基本上是最严重的处罚了。
02
迟交时空证明(PoSt)每一个矿工需要在每一个证明周期(Proving Period)内提交证明,否则,就会被罚。这里所说的迟交,不是没交,而是提交时间超过了一个证明周期,但仍然在一个生成攻击阈值(Generation Attack Threshold,超过这个时间,则可能不能鉴别生成攻击)范围内提交了。
在这种情况下,矿工应当知晓自己未在规定的时间内提交证明,此时仍可按照常规提交时空证明(PoSt),但此时要主动附上迟交罚金。
罚金的计算与延迟的时间长度相关,矿工可以自行计算。
03
未能提交时空证明(PoSt)那么,如果情况比迟交更加严重,也就是说,如果一个矿工不仅没有在一个证明周期内提交证明,而其延迟的时间甚至超过了生成攻击阈值。这种情况下,就被视为没有提交时空证明。
在这种情况下,任何其他矿工都可以报告这种情况,网络通过检查属实后,采取严厉的惩罚措施。目前计划的实现是:罚没所有质押物;算力清零。
粗暴,很粗暴。这对一些网络中断时间可能较长的用户非常不利。一个可能的改进是软件将来可能提供一定的容忍度,允许用户在一个VDF(Verifiable Delay Function)攻击的范围内进行补救。但即便如此,那些可能较长时间断网的用户也会无能为力。
04
存储错误这种情况应该也会比较普遍。这就是说,当一个矿工所存储的数据出现错误时,当然应该接受一定的惩罚。
这种情况需要矿工主动报告丢失(或着说发生错误)的扇区(Sectors)给网络,这可以在时空证明中进行,协议中有定义,包含在“Missing Sectors”字段即可。 作为一个矿工,需要周期性地检测数据,这也是时空证明过程的一部分工作。
网络通过检测矿工提供的证明,验证属实,将根据丢失(错误的)扇区数量来罚没相应的质押物(FIL),同时罚没此矿工相应的算力。
注意,当一个矿工发现磁盘损坏或数据丢失,他/她可以想办法恢复数据,也就是说重新构造时空证明,然后重新向网络申明拥有数据和算力。但是,这是补救措施,本次罚没的抵押物还是没了(否则就为生成攻击打开大门了)。此补救措施的一个好处就是其合约用户可能不追究其责任。
05
违背合约如果一个矿工未能按照合约在规定的时间内存储用户数据。比如用户要求存储半年,而矿工存储3月就把数据删了。
这种情况下,用户可以马上报告给网络,附上当初签订的合约,在网络确认属实(即矿工在其证明中不再包含此数据所在扇区)后,将对矿工进行处罚。处罚来自矿工的承诺质押,同时用户的未支付费用将被返还,矿工的相应存储质押将被自然地没收掉。
这里有一点需要注意:在当前正在进行的代码实现中,用户必须在矿工删除数据后一个证明周期(Proving Period)内向网络提出报告。这一点对客户而言是一个负担。是否之后会有更完善的实现,需要持续跟进。
真是一不小心就质押的 FIL 就没了。而且,我相信,在Filecoin网络的初期,由于矿工经验不足,这种质押被罚没的情况会屡见不鲜。这都是白花花的银子,一个自然而然大家都会关心的问题,这些罚款都去哪儿了?
尽管目前这一块的实现还不完善,但一些基本的考虑已经形成。被罚没的质押将分为两个部分:1)直接销毁;2)奖励给报告者和执行者。FIL的销毁会使网络中的FIL总量减少,在需求不变的情况下,会使得网络的FIL增值。从价值的角度而言,销毁和按比例分发给所有用户是一样的。
再次提醒 Filecoin 是一个去中心化的网络,一切的功能都需要个人来发起和执行,这些发起人可以是出区块的矿工,也可以是其他人。由于系统中交易和数据的存储是海量的,不可能让出块矿工检查每一个部分,因此,需要发动大家的力量。在这个生态中,可以有一些节点主动来检测和维护网络,对一些失当的行为提出质疑,并通过报告,验证后网络执行获取奖励。
那么对每一笔罚款奖励和销毁比例分配怎样合适呢?这个有点难。总的原则是:
奖励要足够吸引人来维护网络,对于网络维护者来说,至少要覆盖成本,有盈利空间
奖励部分也不能太高,太高的话,大家就会把注意力转移到这上面来,竞争将十分激烈,会反过来带来过大的网络压力,可能得不偿失
销毁部分比例要足够大,大到攻击者感到肉痛。注意作为一个网络失当者而言,他是可以通过举报自己拿回一部分奖励的,如果销毁部分比例不足够大,他就可以挽回大部分损失,从而可能有持无恐
那么到底多大比例合适呢?不知道。一个可行的办法就是逐步增加奖励的比例,比如说对与最近的失当者举报奖励从0.1%开始,然后逐步增高,也就是说失当发生行为的时间约长,奖励越高。举报者可以根据情况,觉得能够盈利就立即举报。
再说一遍,Filecoin挖矿要比现有几乎所有区块链项目的挖矿都要复杂。这是因为,Filecoin网络首先是一个存储网络,在这个网络中,首先需要维护的是一个有价值的去中心化的通用存储系统。矿工首先必须能够提供有价值的数据存储和检索服务,才能真正获得收益。
存储网络本身涉及到很多专业技术知识,前面提到的各种处罚场景几乎每个人都会遇到,或多或少而已。在这个网络中,你完全有可能慢慢获取收益,也有可能一夜丢失所有质押。
温馨提示
FIL 很专业,挖矿需谨慎;踩坑丢了币,亲人两行泪!
如果你看到这里,是不是感觉心头一紧,这个币到底还挖不挖了?我的一个建议就是:挖是当然可以挖的,不过你可能需要把专业的事交给专业的人来做。少踩坑,稳盈利。
另外,细心的小伙伴看到这里,是否还看到一个矿工的盈利点?也就是说除了我们前文提到的 4 点之外,还有一种办法可以盈利,那是什么呢?欢迎留言或发消息给我,多多交流。如果各位需要更多的专业支持,也可以直接给我发消息联系。
Fault and penalties: https://github.com/filecoin-project/specs/blob/master/faults.md
Separate storage collateral and pledge collateral: https://github.com/filecoin-project/specs/issues/60
Filecoin White Paper: https://filecoin.io/filecoin.pdf
Expected Consensus: https://github.com/filecoin-project/specs/blob/master/expected-consensus.md