Quorum 既没有采用PoW也没有采用PoS,因为PoW和PoS都属于Nakamoto Consensus,任何人都可以随时加入和退出节点,这种共识机制通过节点之间某种公平的“投票”选择记账人。由于节点没有身份,可以自由地创造,相互不信任,因此投票资源必须是稀缺的。在PoW机制下,缺资源是物理算力,而在PoS下,这种资源是经济权益。无需准入带来了去中心化的制衡,但节点之间的“竞争”记账不可避免地牺牲了速度与效率。
而且对于一个联盟链或者私有平台、金融机构来说,是不允许任何人都可以到公链作为一个节点来记账的,所以 Quorum 不会使用 Nakamoto Consensus 全局共识机制。
为了解决这些问题,Quorum 尝试采用高性能的容错分布式系统 Byzantine Fault Tolerant (BFT),如 PoA 和 IBFT; 和容故障分布式系统 Crash Fault Tolerant (CFT),如 RAFT。
PoA 的全称是Proof of Authority (权威证明)。PoA 基于一组有身份的节点,轮流进行记账。换句话说,每个节点在用自己的 身份和权威作为担保。
每个区块只要一个签名确认就可以,因为只有这几个节点,不需要与其他节点产生时间竞争,和中心化服务器的效率不相上下。可能会产生一个节点权力太大的问题,为了解决这样的单个节点权力过大的问题,每个节点必须间隔记账。比如说这边有四个节点,必须在间隔两个节点之后,才能进行下一次记账,这个方式就是去限制单个节点的权利。Quorum最初使用的是 PoA,后来因为最终性(可以进行分叉)而不再使用PoA。摩根大通每天处理6万亿美金,如果进行了分叉,参考比特币现金的分叉对整个系统的影响,大家就能理解摩根大通为什么不允许分叉的产生了,因为这会导致很多交易无效。
相对而言,Quorum支持的另外两种共识机制RAFT和IBFT都是抗分叉的。RAFT 其实是一种已经广为使用的传统分布式一致性协议,应用在包括 Kubernetes, Docker Swarm等容器集群管理系统。RAFT 对于容故障、可信节点,需要更快出块时间和最终性的封闭联盟非常有效。 与以太坊相比,RAFT 也有自己的节点。相对于以太坊任何节点都可以出块, RAFT 的节点分为 Leader 、Follower 以及暂时的 Candidate。Leader 是负责生产区块的唯一节点,Follower 监听 Leader 的“心跳”,并收取 Leader 传递过来的区块。接受心跳的目的是为了抗系统故障,如果 Follower 在其周期内没有收到 Leader 发来的心跳,新的节点作为 Leader 继续出块。
当新的交易产生后, Leader并不会马上记录到链上,而是等收到所有 Follower的确认回执后,记录并广播一个执行的消息,之后所有收到执行消息的 Follower才会将区块记录在本地的链上,避免分叉,确保最终性。RAFT 机制下的默认出块时间间隔是 50 ms,而且只有在有交易发生时才会出块, 大大节省了储存空间。但 RAFT 机制也有不足之处,要使其得以运转的前提是全部节点是诚实的。 RAFT虽然可以容单点故障,但是不具备容错,无法防止节点作恶和篡改历史数据。
如何防止节点作恶同时又能保证效率和最终性呢?Quorum 支持了伊斯坦布尔拜占庭容错机制。
与 RAFT完全相信 Leader 不同,IBFT 的前提是包容 1/3 不诚实节点,通过验证者多轮投票,达到彼此一致后出块。由于在每个区块高度只有一个节点负责出块,不会有分叉的风险。 账本不可改,试图修改历史纪录需要获取所有备份节点和主节点的私钥。与 PoW 相比,IBFT 没有竞争机制,出块速度更快。不过,IBFT 的劣势也很明显,多个验证阶段的结构下让消息数量与节点数量成指数级增长,因此 IBFT 的节点数不能太多,通常用作企业级和政府的网络。
摩根币到底使用的是哪一种共识机制呢?虽然摩根大通对 Quorum 网络的信息十分公开, 但是并没有公布关于摩根币的共识机制。
从上文推断来看,摩根币不会选择PoA机制,因为没法实现最终性,那么只会在IBFT的跟RAFT中进行一个选择。如果所有的节点都是摩根大通信任的伙伴,那么RAFT是不二的选择;如果只是信任部分成员银行,IBFT则是可行的试点。
此文由
中国比特币交易钱包 编辑,未经允许不得转载!:首页 > 比特币行情 » 潘超:摩根大通背后的清算体系与区块链网络