对比集中式的系统上,分布式系统规则更为复杂、隐性维护成本更高、效率更低,更重要的是,系统是由个体组成的,而对于个体,或者背后的使用者来说,分布式系统的心智负担明显更大。
我们现在使用的各类系统基本都是集中式系统,我们生活的社会、社区也是一样的。我习惯于从真实的社会生活去反推一些技术的哲学意义,于是很自然地想到,社会生活中这套机制的历史发展是怎样的?
从奴隶社会,到封建社会,最终走向现在民主社会(资本主义和社会主义先不论),看似,人类是在朝着分布式系统的道路越走越远。但是我们能看到,当今社会的返祖现象也层出不穷,寡头的产生、霸权的产生。分布式和集中式似乎正在进行着激烈的博弈。
我的看法是,分布式和集中式,其实反映的是个体意志的变迁和博弈。
首先,我想区分的是,分布式系统究竟能够解决什么问题?第一,它能解决客观的故障问题;第二,它能解决主观的恶意问题。由此衍生出来的两套模型,一套可以说是故障模型,另一套是拜占庭模型。
当今大多数互联网公司,大型应用的后端,基本都是采用的分布式的故障模型,只是为了应对突发的网络故障、地质灾害、硬件损坏。其实我不喜欢把故障模型,看成是纯正意义上的分布式系统,我甚至觉得它只是集中式系统的冗余加安全升级版,它弥补的不是集中式系统内在的缺点,只是为了规避外部条件对系统的侵害而已。试想一下,如果我有一个超级强大的服务器,我保证它是永远不会宕机、永远不会被人为攻击或环境影响的、速度超级快的,那我还有必要弄一个集群出来吗?
注意到了吗?我前面的表述里面,说的是,如果“我“有一个超级强大的“服务器”。在这个语句里面,服务器不存在个人意志,而我,是唯一的个人意志。也就是,如果我说“我“有一堆超级强大的”服务器“,我依然是唯一的个人意志。那前者和后者有本质区别吗?我觉得没有。
一个系统,即使有诸多个体,但只要他们是同质的,或者意志相同,我觉得也是集中式系统。
只有当一个系统中的个体出现意志差异,导致目的不同,才算得上分布式系统,或者说是拜占庭系统。
那回到题目的问题,我们真的需要分布式系统吗?
如果系统本质上只有一个意志或一个目标,那为了所谓安全性、稳定性而采用故障系统,我觉得是需要斟酌的。将采用故障系统多付出的精力、时间和那牺牲的效率,用来巩固和提升单一权威的能力,可能会更划算。
如果系统存在分散的意志,那为了能让这个系统能够正常延续,就需要诸多规则来凝聚散乱的共识。
其实在存在分散意志的情况下,集中式系统也并非不能使用的,只要大家的意志倾向高度一致,那一个强有力的中心权威,我觉得是有助于系统效率的。
无论从历史经验还是现代工业来看,人们似乎都对集中式系统产生过批评。但我觉得本质原因只有一个,中心权威不够强而有力。
个体不会排斥被领导,前提是领导足够强,且方向与个体意志基本重合。就是因为心怀鬼胎,所以拜占庭系统才需要非常多的规则和资源,去排除恶意节点的影响。
我们也能看到,现如今很多公链,虽然名义上说是去中心化,但隐隐有中心化的趋势,无论是验证者节点日益集中,还是共识机制中越来越多类似以太坊委员会之类的中心化概念出现。尽管有批评的声音,但大家似乎都没有觉得有什么大问题。因为人们不排斥被强有力的人领导。在区块链的世界,你的质押、你的算力,就是你实力的证明,人们不会对这个产生怀疑。而且更重要的是,有惩罚机制。中心权威并不是有恃无恐,不像历史上诸多君王。在区块链的世界,惩罚是必然的、即时的。
所以,我们真的需要分布式系统吗
虽然我无法系统总结,但我的回答是:需要的,而且去中心化是必须的。
因为在短暂又瑰丽的一生中,个人意志的觉醒,让我们的灵魂的自由不再诉诸于无关权威。我们的价值因为我们的独特而存在,而不是为了单一的效率而存在。