Filecoin整个挖矿过程总结为:"2个环境、3个证明":
一、2个环境
两个环境指的是Filecoin主链环境和去中心化存储市场环境。这是和绝大部分公链所不同之处,市面上所有的公链只有一个环境——主链环境,为了链而链,近年来流行的所谓“侧链”也仍然只停留在传说中,区块链除了记账、转账干不了其他事,因此可以说目前的所有公链都遇到了天花板。在我们日常生活中,手机上用的支付宝或各大银行APP,可以记录自己的每一笔开销,可以转账,但没法用银行APP购买生活用品,要买东西还只能上购物APP,付款时则通过购物APP调用支付宝或银行账本进行转账。这就是为什么淘宝是淘宝,支付宝是支付宝,两者分立的原因。Filecoin也是如此,主链环境类似支付宝,存储市场环境类似淘宝,两者相辅相成,缺一不可。存储市场环境的整个运行过程将被记录在主链账本上,主链按照运行情况完成矿工承诺抵押、客户付款锁定和支付矿工费用等工作。
二、3个证明
1、第一是交易证明。矿工通过优势报价与客户撮合,达成交易。此时主链要进行交易证明的两项操作。一是双向锁定:客户的钱(FIL)要锁定在主链上,矿工的承诺抵押(FIL)要锁定在主链上。二是记录交易:麦噶德注意到,官方对实施存储的矿工标记为mine,对实施交易记录的矿工标记为New
Mine,那么在主链实施记录交易的矿工(记账)与实施存储行为(存储)的矿工有可能不是同一人,以下我们把存储矿工设为A矿工,记录矿工设为B矿工。
需要打包记录在主链上交易证明包括:实施存储行为矿工的硬盘扇区信息、承诺抵押信息、成交价格、存储截止时间、Gas Price和Gas
Limit。由于A矿工和B矿工有可能不是同一人,那么Gas Price和Gas Limit就好解释了,类似于ETH,Gas
price是矿工A愿意在每个Gas上花费的FIL数量,Gas
Limit是矿工A愿意为执行交易支付的Wei的最大值。矿工A将交易证明交给矿工B在主链上打包记录,矿工A将支付矿工B手续费,手续费公式如下:
2、第二个证明是复制证明。矿工将客户上传的原始数据进行封装,所谓封装,按照Filecoin白皮书(2018年第二版)第3.4.2叙述,需要将一个完整的文件分割封装成若干个256KB的小文件副本。而且这些256KB的小文件副本,应该在分布存储在不同的硬盘中,以保证数据永不丢失,这与传统存储不同,如果说传统存储将1G的完整文件存在同一个硬盘中,IPFS-Filecoin则是将1G完整文件分割封装后,放置在不同节点硬盘中。
基于IPFS文件的分割特征,这就涉及到一个问题,接到存储订单,并实施存储行为的矿工A只可能多个矿工的集合,而绝不可能是单个矿工。如果是多个矿工的集合,那就好解释了,情况有可能是这样:客户的大文件在IPFS网络中只有唯一的哈希值,去中心化存储市场将这一笔存储订单按标准(合同存储大小/256KB)分拆成多份,接到订单的这些矿工们(矿工A)就像切蛋糕一样把客户的大文件分割封装,每个拿到相应部分副本的矿工提交复制证明给主链。比如:一个武汉客户的1M存储订单被同在武汉的4个矿工接到,那么IPFS系统就将1M文件生成4个256KB的封装序列信息,这4个矿工按IPFS系统给予的序列信息,每人各切1块走,至于这1M的文件到底是什么玩意,这4个矿工都不知道。
3、第三个证明是时空证明。矿工A作为一个矿工集合,每个拿到存储订单份额的矿工都要提交时空证明,当初记录在交易证明、复制证明中分配给你的那部分文件,你要向主链证明在存储过程中的某个时间点、对应扇区上仍然保存着该文件未丢失。这个很好理解——假设客户1G的文件,订单合同上写存3个月,某个小矿工拿到订单的1/10.24,也就是100M,400个256KB的存储基块,存储在编号为#6666的扇区上(以上信息体现在该文件的交易证明和复制证明中,主链上写的清清楚楚)。存储周期开始后,IPFS系统会进行存储倒计时,如果你在北京时间每周五下午5:00生成时空证明并提交到主链上,表明你在#6666扇区老老实实存着客户文件,没瞎胡闹,说白了就是白领上下班的时候指纹打卡。主链凭借你提交的时空证明,通过智能合约把这周的酬劳给你,直到3个月结束。如果你没维护好造成该扇区数据丢失,那对不起,你抵押的Fil被没收。一般来讲,为了避免数据丢失,矿工都会多做一个备份,当#6666扇区的数据丢失,他们可以将备份数据恢复到该扇区,这样才能及时提交时空证明。