作者简介:董天一 ,IPFS/Filecoin中国区技术布道人 ,《IPFS指南》作者
毕业于北京大学软件与微电子学院
曾担任甲骨文亚洲研发中心(中国)数据库开发工程师
资深区块链技术开发者,现致力于IPFS/Filecoin在中国的技术推广
注意:文章中部分链接需要 科学上网 才能访问下载
名字翻译:Power Fault Tolerance-影响力容错
关于这个名字翻译,小编思考了大约2周时间,期间也跟各路技术牛人进行了交流。
The Power Fault Tolerance model (PFT) unifies all these classes of protocols by modeling the influence participants have over the output of the protocol as power
这是filecoin协议里面对 PFT的解释,power概念就是矿工的影响力(influence),“Power”是filecoin系统的投票权力的大小度量,根据矿工贡献的Power来计算矿工的投票权有多大,根据信达雅的基本要求,所以称为“影响力容错”。之前曾经考虑过“权利容错”和“权益容错”,“权利”这个词本身表达不了大小的概念,而“权益”又跟Proof of Stake(权益证明:EC共识是在这个基础上进行的,有必要区分)有冲突,于是小编把这个词翻译成影响力容错。或许有更贴切的表达方式,欢迎讨论!
共识(Consensus):拜占庭共识
共识---一个区块链领域领域里面经常谈起的一个概念,任何区块链都无法绕开的一个问题。在我们的日常生活中,绝大多数机构都是中心化的,一家银行,快递公司,电商网站等等。共识是在参与者之间达成一致。由于中心化的机构由中心化的机构本身来维护共识,比如:银行,帮我们所有人记账,由国家权力保障,我们信任银行,这是我们的经济得以发展的基础。
在区块链领域里面,所有节点都是对等节点,就是说没有任何一个节点有超越其他节点的权限。那么想在这么一个一盘散沙的节点中维护一个共识是一件非常难的事情,试想一下,大广场上有1000个平等的互相不信任的人,要让他们对一件事情做出共同的决策,其难度有多高?
起源
在学术界里面这个问题起源于1982年Leslie Lamport(图灵奖获得者)在他的论文里面提出的“拜占庭将军问题”(Byzantine Generals Problem),目的是解决分布式对等网络的通信容错问题。
拜占庭将军问题描述:
简单的描述:假设有9个拜占庭将军共同围困一座城市,将军之间都是平等的,他们的对于城市的策略只有两种:进攻和撤退。如果一部分进攻一部分撤退,将会造成灾难性的后果。9个将军分布在城市的不同方向,只能通过信使进行通信。那么他们要达成一致,就需要进行投票,每位将军根据收到的情报来决定进攻还是撤退。
问题是将军里面会有叛徒,比如:当将军的投票达到4个进攻4个撤退的时候,叛徒将军可以采取对4个进攻的将军投进攻票,对4个撤退的将军投撤退票。决策的最终结果就会崩溃,一部分将军选择了进攻,一部分将军选择了撤退。
围观一下牛人:Leslie Lamport
在这个问题中,将军投票达成一致协议,就叫做拜占庭共识,在有将军叛变的情况下仍然能够达成正确的共识就做拜占庭容错,当然这是一个很简化版的描述。(小编在巴比特上面找到一个讲的比较全面的,大家可以参考一下:http://www.8btc.com/bitcoin-and-the-byzantine-generals-problem)。
将这个问题转换到计算机里面,对等节点之间的通讯是通过电信号进行的,电信号是会出现各种干扰(例如磁场),0和1最终可能会发生错误。
这个难题困扰了学术界很久很久,直到1999年Miguel Castro和Barbara Liskov提出了实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance),提供了(n-1)/3节点的容错。这是一个非常了不起的成就(算法的具体过程不属于本文的讨论范围,有兴趣的读者可以自行Google一下)。
2009年中本聪使用工作量证明(Proof of Work)解决了这一问题,使得BTC能够成为现实。
那么具体到Filecoin上,Filecoin是如何解决拜占庭容错的呢?
Filecon在拜占庭容错BTF的基础上提出了改进版的拜占庭容错,这就是 影响力容错(Power Fault Tolerance)和预期共识(Expected Consensus),用来替代能源和计算资源严重浪费的工作量证明(Proof-of-Work)机制。
Filecoin的分布式网络协议可以使用任何共识协议来实现,完全可以使用BTC的机制(Proof-of-Work)。但是BTC的工作量证明带来的问题是能源和计算资源的巨大浪费,于是Filecoin协议抛弃这个共识机制,使用Proof-of-Spacetime(PoSt)来替代工作量证明,PoSt是filecoin在验证矿工存储用户数据的时候产生的,Filecoin把矿工在网络中的当前存储数据相对于整个网络的存储比例转化为矿工投票权(voting power of the miner),重用PoSt来产生共识,太环保了,不用像BTC那样浪费计算资源和能源,并且能激励矿工投入更多的硬盘而不是计算资源和能源,为网络做贡献-----完美!!!
预期共识(Expected Consensus,EC):
Filecoin的共识协议是基于权益共识(Proof-of-Stake)构建的,将权益共识里面的权益(stake)换成了存储,这就是Filecoin的预期共识(Expected Consensus),策略是每一轮里面选举出来一名或者多名矿工来创建新的block,矿工赢得选举的可能性跟矿工已分配的存储成比例。
在每一个周期里面,预期选举出来的领导矿工(Leader)是1个,但是在某些情况下也会选举出来多个领导矿工。被选举出来的矿工创建新的block,并把新的block对网络进行广播。尽管链中的block是线性的,但是filecoin的block数据结构采用的DAG(有向无环图),可以在同一时间产生多个block(所以Filecoin的交易要比BTC的有效的多,这也是为什么把filecoin叫做“可能的blockchain 3.0”)。
共识是一个区块链领域的核心,区块链天生就是对等的分布式网络,这就是所谓的去中心化。去中心化现在被吹的有点过了,去中心化不是万物的灵药,只是在自己领域里面有独特的作用,中心化的效率还是非常高的。所以不应一味的强调去中心化,而是应该根据实际的应用场景来决定使用范围。相信区块链的共识协议会随着区块链的发展进化出更加美好的共识协议,区块链也会逐步进化,成长!
End
相关文章和视频推荐
圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。
许晓笛老师的CSDN学院视频专栏 https://edu.csdn.net/lecturer/2008
郭金宏老师的csdn学院视频专栏:https://edu.csdn.net/lecturer/2214
圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/345101?flowToken=1007330