汉武帝时期,虽然饱学多才的齐国人主父偃懂得圈子的重要,经常出入豪门游历于诸侯之间,但无人相识予以重用。在他入不敷出难以为继时,只好上书汉武帝,终得赏识。一天,汉武帝召集主父偃与徐乐、严安三人议事,那种相见恨晚、惺惺相惜之感油然而生。后来,正是主父偃推行推恩的建言,让汉武帝的政权得以稳固。
相见恨晚出自《史记平津侯主父列传》:“天子召见三人,谓曰:‘公等皆安在?何相见之晚也。’”该成语形容一见如故,意气极其相投。
在区块链技术发展中,区块链与共识算法颇有点相见恨晚的味道。
当人们梦寐以求“在不可信信道上传输可信信息、价值转移”时,区块链让这个梦想成真;当人们绞尽脑汁“如何在分布式场景下达成一致性”时,共识机制让这个想法变得可行。共识机制是事务达成分布式共识的算法,意在去中心化的思想上解决节点间互相信任的问题。也正是因为共识机制,让区块链能在众多节点达成一种平衡。
尽管密码学占据了区块链的半壁江山,但却是共识机制为区块链系统运行保驾护航。区块链与共识算法可谓相见恨晚,共同构建了区块链技术的无与伦比。
区块链是一种去中心化的分布式账本系统,可以用它来登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等特点,并且不依赖于任何可信的第三方。
由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序就不可能完全一致。因此,区块链系统需要设计一种机制,对在差不多时间内发生的事务的先后顺序进行共识。
这种对一个时间窗口内的事务的先后顺序达成共识的算法,被称为“共识机制”。新西兰有一个叫“地球之歌”的共享社区,住的都是环保主义者。加入这个社区的人,必须是认同彼此理念,遵守社区共治的机制。这就是共识机制的作用。
从科学理论的角度看,在分布式场景下达成完全一致性几乎不可能,但从技术应用的角度看,完全可以通过牺牲一部分代价来换取分布式场景的一致性。基于此,区块链上设计的各种共识机制,都可以看作牺牲那一部分代价来换取多适合的一致性,在这种思想上进行一个灵活的变换,即在适当的时间空间牺牲一部分代价,换取适应于当时场景的一致性,可以实现灵活的区块链系统,即可插拔式的区块链系统。
比较经典的是,在分布式系统中有无作恶节点,分为拜占庭容错和非拜占庭容错机制。在区块链这种分布式的架构中,有三种部署模式:公共链、联盟链、私有链;相对应的也有:去中心化分布式系统、部分去中心化分布式系统和弱中心分布式系统。在分布式系统中,多个主机通过异步通信方式组成网络集群。在这个异步系统中,需要主机之间进行状态复制,以保证每个主机达成一致的状态共识。
然而在异步系统中,可能出现无法通信的故障主机,而主机的性能可能下降,网络可能拥堵,这些可能导致错误信息在系统内传播。因此,需要在默认不可靠的异步网络中定义容错协议,以确保各主机达成安全可靠的状态共识。
为实现分布式思想,人们根据FLP定理(不可能性)和CAP定理(数据一致性、服务可用性、分区容错性)设计共识算法。于是,理想的分布式系统的一致性需满足:
1.可终止性(Termination):一致性的结果可在有限时间内完成;
2.共识性(Consensus):不同节点最终完成决策的结果应该相同;
3.合法性(Validity):决策的结果必须是其他进程提出的提案。
但在实际的计算机集群中,可能存在以下问题:1.节点处理事务的能力不同,网络节点数据的吞吐量有差异;2.节点间通讯的信道可能不安全;3.可能会有作恶节点出现;4.当异步处理能力达到高度一致时,系统的可扩展性就会变差(容不下新节点的加入)。为了应对不同的假设条件,针对不同的应用场景和目标,人们设计了许多不同的共识算法。比如,基于非拜占庭故障/拜占庭故障、同步/异步、节点间直连数、实名/匿名、通道可靠/不可靠、认证消息/非认证消息等的不同假设条件。
在私有链和联盟链情况下,一般对一致性和正确性要求有较高,大多采用强一致性的共识算法;在公有链情况下,对一致性和正确性难以要求太高,只能采用最终一致性(Eventual Consistency)的共识算法。
在 20 世纪 80 年代出现了很多分布式系统共识算法,其中PBFT最为经典。PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥堵或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。
于是,拜占庭将军问题的可以描述为:一个发送命令的将军要发送一个命令给其余 n-1 个将军,使得:IC1.所有忠诚的接收命令的将军遵守相同的命令;IC2.如果发送命令的将军是忠诚的,那么所有忠诚的接收命令的将军遵守所接收的命令。
PBFT算法要求至少要4个参与者,有人对PBFT算法打了一个形象比喻。比如一支卫戍部队有1个将军和3个师长,总统向该将军下达命令,要求部队离开卫戍区“向前行军500公里”。接到总统命令,该将军分别给3个师长下达离开卫戍区的命令:“向前行军500公里”。接到将军命令后,3个师长立即执行,并汇报结果。
A师长报告他的部队位于卫戍区以东500公里,B师长报告他的部队位于卫戍区以东500公里,C师长报告他的部队位于卫戍区以东300公里。接到报告,该将军发现“卫戍区以东500公里”占多数(2票>1票),于是忽略C师长的汇报结果,给总统报告:“部队已奉命到达指定地点:‘卫戍区以东500公里。’”
试想,如果没有容错的共识算法,那将是一场纠结,不仅发布命令的人担忧,更让执行命令的下属左右为难,进退维谷。一旦延误战机,甚至还会导致一场万劫不复的灾难。注意,共识还不是信用,利用区块链技术只能保证共识,离真正的信用还相差很远。另外,因为读链(READ CHAIN)属于私链与联盟链,对一致性和正确性要求比较高,如何建立合适的共识机制,的确给读链带来了挑战。
量子管理学奠基人丹娜•左哈尔(Danah Zohar)说,你的思维必须适应量子时代,别无选择。她认为,传统的管理理念来源于牛顿理论,在量子时代我们必须接受万物互联、没有边界的开放思想。在这个充满不确定的时代,量子领导和量子理论讲的就是,我们不能害怕这一点,读链正好需要利用这一点,恰恰就是这个时候才有创新的可能。
沉溺于过去会让我们走向灭亡,因此我们必须做出选择,即读链必须走向量子的未来。中国有着乐观开放的心态,朝气蓬勃地走向未来。联系才会构建现实。在量子物理中,一加一不再等于二,而是三。即两个东西结合之后,不是两个结合体,中西方文化相结合就是量子文化。不同知识的交互和碰撞一定会产生智慧的火花,这会不会也是一种量子纠缠?
2018年4月中,教育部颁布了《教育信息化2.0行动计划》。文件指出,人工智能、大数据、区块链等技术迅猛发展,将深刻改变人才需求和教育形态。智能环境不仅改变了教与学的方式,而且已经开始深入影响到教育的理念、文化和生态。主要发达国家均已意识到新形势下教育变革势在必行,从国家层面发布教育创新战略,设计教育改革发展蓝图,积极探索新模式、开发新产品、推进新技术支持下的教育教学创新。
教育部“构建网络化、数字化、智能化、个性化、终身化的教育体系,建设人人皆学、处处能学、时时可学的学习型社会”的指导思想,关于“人人有空间”的网络学习空间覆盖行动、建设国家学分银行和终身电子学习档案的规划与读链的设计不谋而合,真是相见恨晚。
類別: 9.其他類別