【Filecoin】 关于质押
Filecoin存储矿工承诺书
我志愿加入Filecoin网络,成为一个存储矿工,郑重承诺:遵守网络共识,履行存储义务,保障存储数据完整,按时提供证明,绝不在所有存储空间过期之前退出网络。为表示我的决心,我愿意持续抵押代币,并在违反以上任一承诺时,接受惩罚。
质押的意义?
Filecoin是第一个真正把质押系统放入共识的区块链!这是一个创新,也是发展的需要。为什么 Filecoin 要引入质押系统?原因很简单:
传统的区块链激励方式不能满足Filecoin的需要
第一代(BTC)和第二代(ETH)区块链的全节点会保留所有的数据(账本),那么,只要网络中有节点存在,数据就不会丢失
Filecoin除了链数据(账本)之外,更多的是用户的存储数据,这些数据对于每一个矿工而言都是不同的,任何一个矿工离开都会给用户数据造成损失
有用共识机制需要质押的支持
完全依靠工作量证明(PoW)的共识机制对用户的进出不太敏感,在一定范围内做调整就可以了
Filecoin创造性地采用有用共识,共识选举的运算转化为算力,而算力成为选举的基础。网络算力的不稳定会给链的稳定性带来更大的影响
质押能够提升整个网络的服务质量,同样可以很好地弥补用户损失(类似一个保险系统)
我们之前常说:Filecoin 是 IPFS 之上的激励层(Incentive Layer)。这种说法现在看来不是很准确,因为Filecoin不仅仅包含激励(主要是区块奖励,存储和检索收益),同时Filecoin构建了一个保障机制。因此,更合适的说法是一个保障层(Ensurance Layer),或者说两者兼备。
Filecoin质押体系
Filecoin的设计在逐步完善之中,关于质押的设计基本框架没有改变,尽管最终方案还没有定稿,但目前已经可以看到一些端倪。目前的质押系统有如下两个部分:
承诺质押:仅仅针对存储矿工;表示存储矿工对网络的承诺。
存储交易质押:存储矿工和存储用户都需要支付,用于对一个交易的保障。
这两部分抵押的设计机制不同,因此算法也不一样。本文先就承诺质押进行讨论。
承诺质押
顾名思义,承诺质押是用来保证承诺的执行的。那这个承诺是什么呢?用通俗的话讲,Filecoin网络的承诺书看起来可以是这样的:
我志愿加入Filecoin网络,成为一个存储矿工,我郑重承诺:遵守网络共识,履行存储义务,保障存储数据完整,按时提供证明,绝不在所有存储空间过期之前退出网络。为表示我的决心,我愿意持续抵押代币,并在违反以上任一承诺时,接受惩罚。
这里有多层含义,我们来分解解释一下:
承诺质押仅仅针对存储矿工:其他网络参与者无需承诺质押
承诺质押对存储矿工都需要支付,算法一致。存储量越大需要支付的越多
承诺质押是对共识的保证:当一个矿工违反共识时,其存储质押可能会被全部或部分没收。比如当一个矿工在同一个高度出两个区块时,就会被罚没全部质押
承诺质押也是对存储空间和质量的保证:当你持续为网络提供更多的存储空间的时候,你会被要求与空间相匹配的质押,当有存储扇区(sectors)丢失或损坏的时候,你会损失存储质押
承诺质押也是矿工对持续服务的保证:作为矿工,如果还有未过期的用户数据存储在你的矿机上,你就不应该下线。如果下线,不再提供服务,那么承诺质押就会被没收。
承诺质押的计算
关于承诺质押,我们知道,几个月前就有一个草稿。可以相信,最终的方案几乎就是在这个框架之中。这部分质押可以分为两个部分:
矿工注册费:每一个矿工都是一样的
服务承诺费:与矿工提供存储的数量相关
但是,因为这个话题比较敏感,Filecoin团队对此一直在研究中,未宣布最新进展。据了解,现在有一个很强的团队(数个PhD)在加班加点地做最后的工作。尽管还要再等,但一些初步的考虑已经有了,我们可以简单梳理一下这里面有哪些东西要考虑,算法可能如何。
首先,这两部分费用都不会是一个定值,或者是一个简单的线性函数。道理很简单,因为代币释放机制基本敲定,但网络规模和矿工数量是不确定的,这样就不可能按照固定规模来设计。因此,算法中必然要矿工的数量和网络的规模。分别来讲:
矿工注册费:
有两种可能:1)不需要矿工注册费;2)矿工报名费占已分配代币的一个比例(如5% - 乱说的,千万别参考)
我倾向于收注册费并不返还,注册费的抵押很简单,就在创建矿工时一次性收取,放入系统代币池。这样可以鼓励矿工长期服务,鼓励矿工加入,而不鼓励矿工退出,有利于网络的稳定。当有矿工退出时,会让现存矿工获益(一点点)。
最理想的情况是在矿工注册时一次性收取,计算量很小,实现相对简单。假设矿工报名费是现存代币的 5%, 如下算法可以保证大约 5% 的可用代币被抵押:
这个算法并不能保证完全的公平性。但在没有大量矿工进出的情况下,基本公平,同时,由于矿工离线,会给系统内的矿工带来收益上的增加,增加一点质押也是合理的。
服务承诺费:
这部分费用可以在每一次向网络发送一个新的 Sector 复制证明完成时收取的。为了体现一个公平性,这部分费用与以下因素相关:
扇区大小(ssize:字节数)
扇区的有效期(Duration:按照区块轮数计算,如,区块时间为30秒时,一天就是2880)
网络总算力 (TotalPower:字节数)
当前已释放代币 AvialbleFil
常数:
质押比例 (PledgeRatio,按所有sector的有效期为一年计算)
一年的区块轮数(RoundsIn1Year:1051020)
例如,质押比例为10%。那么,公式大概长这样:
注:事实上需要考虑的问题要复杂的多,比如多高的比例比较合适?固定的比例对网络的影响如何?上述算法和方案只是简化后初步的设想,可能成为众多的考虑因素之一,并不代表最终的方案。主网最终方案还敬请等一段时间。
质押代币来自哪里?
这个问题被问了无数次了,一直没有明确的答案。涉及到钱的部分需要慎重。因此,此问题短期内还是不会有最终答案。但是一定会有答案,而且这个答案早知道晚知道关系不大。按照协议实验室的一贯作风来看,他们一定会设计一个公平的对网络有利的方案来。
这个方案的设计只有两个方向:
预先释放一些代币到市场上:这个很难实现公平,而且对币价的把握非常困难;
赊账:也就是当一个新矿工入场的时候,如果还没有钱,就先欠着,等你挖到矿的时候再还。
我猜想很可能会是第二种方案。其实现简单,对矿工没有门槛,对网络更有利。
存储交易质押
(待续)