区块链的自信任主要体现于分布于区块链中的用户无须信任交易的另一方,也无须信任一个中心化的机构,只需要信任区块链协议下的软件系统即可实现交易。
这种自信任的前提是区块链的共识机制(consensus)。
即在一个互不信任的市场中,要想使各节点达成一致的充分必要条件是,每个节点出于对自身利益最大化的考虑,都会自发、诚实地遵守协议中预先设定的规则,判断每一笔记录的真实性,最终将判断为真的记录记入区块链之中。
换句话说,如果各节点具有各自独立的利益并互相竞争,则这些节点几乎不可能合谋欺骗你,而当节点们在网络中拥有公共信誉时,这一点体现得尤为明显。区块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。
共识可简单理解为,不同群体所寻求的共同的认识、价值、想法等,在某一方面达成的一致意见。共识机制就是确定达成某种共识和维护共识的方式。
如果说共识是区块链的基础,那么,共识机制就是区块链的灵魂。
对共识机制的探索,Filecoin无疑更具有前瞻性和突破性。
Filecoin创新的采用了一种混合共识机制——复制证明(PoRep)+时空证明(PoSt)+ 预期共识(EC),其中复制证明是共识机制中的核心因素,尽管Filecoin的网络协议、共识、其他算法都基本定型,但是复制证明仍然处于不断完善的方案中。
复制证明(PoRep)是一个交互式证明系统。在这个系统中,存储的提供者需要提供可公开验证的证明,来表明其为一个数据文件副本分配了独有的空间资源,而且所存储的数据是可检索的。
复制证明是新的 PoS存储证明(Proof-of-Storage),PoRep必须能够防范以下三种常见的攻击方式:女巫攻击,外源攻击和生成攻击,他们的共同特点是攻击矿工实际存储的数据大小要比声称存储的数据小,这样攻击矿工就能获得本不该他获得的报酬。
女巫攻击(Sybil Attack):利用n个身份,承诺存储n份数据D,而实际上存储小于n份(比如1份),但是却提供了n份存储证明,攻击成功。
外部数据源攻击(Outsourcing Attack):当攻击者矿工收到检验者要求提供数据D的证明的时候,攻击者矿工从别的矿工那里生成证明,证明自己一直存储了数据D,而实际上没有存储,攻击成功。
生成攻击(Generation Attack):攻击者A可以使用某种方式生成数据D,当检验者验证的时候,攻击者A就可以重新生成数据D来完成存储证明,攻击成功。
防范生成攻击比较困难,所有的PoS协议都会遇到这样的问题,如何保证矿工真正的存储了这些数据,PoRep需要解决这个问题。
因此,Filecoin协议采用一种叫做 RepGame 的游戏来一起解决这三种攻击方式,PoRes还在此基础上引入了时限性(Time Bounded),PoRes协议的实现可能有很多种方式,不管哪种实现方式都必须能够防止上面的三种攻击方式,并且要能够通过RepGame游戏的测试。
时空证明(PoSt)提出了证明链(proof-chain)的数据结构,证明链把一些的挑战(challenge)和证明(proof)链接起来形成。在证明链的基础上添加上时间段,这样就得到了一段时间内的矿工存储数据的证明,这就是时空证明(Proof of Spacetime,PoSt)。
PoSt可以证明在该段时间内矿工存储了特定的数据,并且利用时间戳锚定这些证明链,这样即使验证者(verifier)不在线,也可以在未来的某个时间内利用时空证明去验证该矿工生成了证明链,PoSt会被提交到链上用来产生新的Block。
预期共识(Expected Consensus,EC)是在每一轮里面选举出来一名或者多名矿工来创建新的区块,矿工赢得选举的可能性跟矿工当前的有效存储(算力)成正比。Filecoin把矿工在网络中的当前存储数据相对于整个网络的存储比例转化为矿工投票权(voting power of the miner)。
无论在该周期里,选举出来的是一名还是多名矿工,被选举出来的矿工都需要创建新的区块,并把新的区块对网络进行广播。
尽管链中的区块是线性的,但是Filecoin的区块数据结构采用的DAG(有向无环图),可以在同一时间产生多个区块,所以Filecoin的交易要比BTC的有效的多,这也是为什么把Filecoin叫做“可能的blockchain 3.0”的原因。
Filecoin首创的混合共识机制,从根本上定义了Filecoin是一个合理高效、去中心化的系统,并体现出Filecoin的公平性、保密性和公开可验证性。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。