题目:联盟链fabric的共识机制
报告人:李爽
在区块链里面,共识主要是多个节点对某个数据和多个数据的顺序达成一致。异常是导致共识无法达成的情况,主要分为故障节点和恶意节点。共识要解决的问题——对异常情况进行容错(拜占庭容错)。
而PBFT是在联盟链共识节点较少的情况下BFT的一种解决方案,在fabric 0.6版本内使用。该算法的容错率是1/3,基本流程分为四步,包括核心三阶段、视图更改等内容。fabric1.0版本之后的共识机制包括背书和排序服务。其中,排序服务分为solo、kafka、raft模式。尽管pbft可以容错恶意节点,但是因为效率问题等被弃用。solo无法容错、kafka和raft仅能容错故障节点。
所以,fabric对于拜占庭容错类型的共识服务还未很好的解决。之后可以研究的内容主要包括:fabric的共识过程存在的攻击模式、背书及排序和验证过程中的容错措施、自定义的背书策略的需求、设计、实现等。
老师意见要点:
①在算法容错率部分的推导可以换种更容易理解的方式去表述。
②在fabric架构的变化和各种算法的对比时要多考虑考虑,想一想它们为什么要换成新的架构和特定的算法等。
③关于raft和kafka排序模式等的问题,报告人在平时学习和汇报的时候要多做一些相关知识的储备。
相关资料:
[1] M. Castro and B. Liskov, "Practical Byzantine fault tolerance," in Symposium on Operat- ing Systems Design and Implementation, 1999, pp. 173--186.
[2] https://www.hyperledger.org/hyperledger_fabric_whitepaper.pdf
[3] Ongaro D, Ousterhout J. In search of an understandable consensus algorithm[C]//2014{USENIX} Annual Technical Conference ({USENIX}{ATC} 14). 2014: 305-319.