说到区块链,我们必然会谈及它的共识机制。今天我们就来聊聊什么是共识机制,何为区块链的共识机制,以及为什么说不了解区块链的共识机制,就无法理解区块链的真正意义。
什么是共识?
什么是共识?直取它的字面意思,就是“共同的认识”。
人与人是不同的,这种不同不仅体现在身材、长相、能力,更体现在文化、观点、想法、利益诉求等等方面。
共识,简而言之,就是一个群体的成员在某一方面达成的一致意见。
在哪方面的一致意见呢?规则。
当然,当我们谈到共识的时候,还可以是价值观、道德、观点,等等方面的共识。但是,本文讨论的共识仅指规则,后文将解释原因。
为什么需要共识?
为什么需要共识?因为人类需要协作,而共识是人类达成协作的前提。
18世纪的英国著名小说《鲁滨孙漂流记》讲述了一个落难荒岛的英国男子的传奇经历。主人公鲁滨孙在荒岛上建造房屋,制造家具,甚至还种植粮食,驯养山羊,他在那独自生活了24年。
想象一下,鲁滨孙在岛上独自生活需要共识吗?不需要,他自己想种什么就种什么,想养什么就养什么,所有的劳动成果都是他的。
可后来,他救了一个野人,并给他起名“星期五”,这个野人成了鲁滨孙的仆人,这时候情况就变了。为什么?因为他们要协作,如何分工,如何分配劳动成果,就必须达成一致。
你可能会说,不都鲁滨孙一个人说了算吗?是的,但试想,如果星期五不认可鲁滨孙的规则,他们能达成合作吗?当然不行。认可意味着共识,有了共识协作才能完成。至于规则公不公平,如何达成共识,这并不重要。
即使鲁滨孙一个人制定规则,星期五只能服从,这也是共识。
这之所以是个传奇故事,是因为鲁滨孙不是人类生活的常态。人是群居动物,是社会性动物,人类社会需要大规模的协作。
一个群体,如何进行分工,成果如何分配,奖惩如何进行,谁负责领导和实施奖惩,等等,必须有一个所有成员都认可的规则。
对规则的一致认可,就是我们说的共识。
共识机制和组织的关系
不同成员在一起分工、合作,就形成了群体或组织。
一个群体采用的达成和维护共识的方式,就是共识机制。
一个群体要完成协作,它需要在规则上达成共识,所以就要有一个形成共识的方式,按照正常的逻辑,我们会认为,组织选择了共识机制。 事实上,恰恰相反,不是组织选择了共识机制,而是共识机制决定了组织。
什么意思呢? 科学家研究人类的近亲黑猩猩就发现,黑猩猩群体由靠暴力获得领导地位的雄性统治,它们极度喜欢暴力,而且等级森严。不过,任何一个成年雄性黑猩猩都有可能是统治者的竟争对手,一旦有黑猩猩对统治者发起挑战,就意味着血腥和暴力。新统治一旦确立,秩序就会恢复。
人类的DNA和黑猩猩只有1.6%的差异,可以说人类社会的很多行为跟黑猩猩是极为相似的。你看,人是群居动物,大家要分工协作,协作就得有规则,那谁来制定规则?力气大的那个,人类群体最初的部落头领一定是最能打的那个。他有了权威,他就成了中心,这个群体就是中心化的群体。
1399年,燕王朱棣发动“靖难”之役,3年后,他攻下明朝国都南京,皇宫起火,建文帝朱允炆不知所踪。1402年,造反成功的朱棣登皇帝位。随后,他杀建文旧臣,将建文时期的一些成法和官制废掉,并迁都北京。
朱棣抹掉建文帝的印记,制定新的规则,就是要让朝野上下达成新的共识。而且,他成功了,想要参与新的协作体系,你就必须承认新的共识,否则,你就会被杀掉,当然,你可以选择置身事外(如果有可能)。
诉诸武力和权威,是人类组织达成共识、维护共识的普遍方式,正是因为这种共识机制,决定了人类组织的中心化。
当然,随着人类社会的文明进程,直接依靠武力达成共识的组织越来越少,我们有了法律、有了选举,有了协商,有了各种制度,有了仲裁,它们成为许多组织达成共识、解决争端的方式。这些组织包括一些政府、企业、学校、协会、社会团体,等等。
虽然这些组织不直接依靠武力达成共识,但是,它们仍得依赖某个机构来制定规则、维护规则,它们的组织形式依然是中心化的。
我们知道,现代社会除了规则(强制性的,比如法律、公司规章、组织规则等等)之外,还有道德、习俗或者社会规范等方面的共识,但为什么我们仅仅谈及关于规则的共识呢?
很简单,其他方面的共识,比如道德、习俗、文化,在形成群体认同方面有重要作用,但仅仅依靠它们,是不可能真正促成协作的,尤其是高效的协作。
组织为了协作必须要有规则,对规则的一致认可就是共识,达成共识、保护共识的方式决定了组织的形式。
共识机制和去中心化
我们需要问一个问题,是什么决定了人类普遍采用导致中心化组织的共识机制呢?
原因有以下几个:第一,人类发展早期,武力和权威是最容易形成共识的方式;第二,依靠中心化权威形成共识可以满足组织协作高效的要求;第三,必须有中心化权威的存在以保证共识不被破坏。
这样看起来,没有中心化的权威,共识是不是就无法达成了呢?
我们想一下,共识是目标,权威是方式,虽然它是靠谱、高效的方式,但并不代表它就是唯一的方式。反过来,如果我们找到一种不同于源于权威的共识机制,我们就可能获得一种新型的组织形式。
现在,区块链就提供了这样一种可能。
我们说区块链使得去中心化的自组织成为可能,这背后的逻辑是:
区块链提供了一种新的达成共识的方式,而这种新的共识机制使得不依靠中心化的权威,大规模的高效协作依然能够完成。
按照这个逻辑,我们就知道,不是去中心化的组织,需要找到形成共识的方式,而是不同于以往的共识机制的存在,促成了去中心化组织的产生。 而这个不同以往的共识机制,就源于区块链。理清这个关系,我们再来谈区块链的共识机制,就能够理解它真正的意义了。
区块链的共识机制
区块链是一个公共账本、公开的数据库,同时也是一个点对点的协作网络。协作方(节点)共同维护数据,每个节点都有一份完整的数据备份,所有节点的数据内容必须完全一致,每个节点都可以在本地查找交易记录,每个节点也可以在本地添加交易。
没有一个中心来指挥、协调,要完成这个协作,区块链就必须有一个共识机制,这个机制必须解决两个基本问题:
1. 谁有权写入数据——一次只有一个人可以记账; 2. 其他人如何同步数据——因为要保持账本的一致性。
数据写入(区块添加)的过程是这样的:有权打包交易的节点,将打包的交易(区块)放在既有的数据库(区块链)上,并向全网广播,其他节点收到信息,验证区块无误,就会同步这个新打包的交易。每个打包的交易叫作一个区块,区块不断叠加,延长区块链。
同步数据有一个问题,就是如何对在一定时间段内发生的交易的先后顺序达成一致?
由于各个节点都在自发地记账或者同步,在点对点相互通信下的情况下存在较高的网络延迟,因此各个节点收到数据的先后顺序是不一致的。你记你的,我记我的,如何保证每个节点副本数据的一致性?
区块链的共识是:以最长链作为主链,即每个节点总是选择并尝试延长主链,也就是各节点都以区块最多的那条链作为自己添加、更新区块的选择,这样多节点就能同步一个权威的公共账本了。
那么,区块链共识机制重点要解决第一个问题:谁有权写入数据?
随着区块链的发展,已经有多种方法解决这个问题了。下面介绍一下三个主要的:POW, POS和 DPOS。
POW (Proof of Work) 工作量证明
这里的工作量,指的是计算机计算Nonce(随机数)的过程。每个节点都去计算一个随机数,一定时间段内,找到随机数的难度是一定的,这就意味着,得到这个随机数必然要经过一定的工作量。最先得到这个随机数的节点,将打包的交易区块添加到既有的区块链上,并向全网广播,其他节点验证、同步。
POS (Proof of Stake) 权益证明
POW以计算随机数的工作量作为获得数据写入权的考量,而POS,则是系统根据节点持有的Token(代币)的数量及时间的乘积(币天数)分配相应的记账权,拥有的越多,获得记账权的概率越大。Token就相当于区块链系统的权益(Stake),因此被称为基于权益的证明。
DPOS (Delegated Proof of Stake) 权益授权证明
POS是拥有Token就拥有获得记账的权利,而DPOS是指拥有Token的人投票给固定的节点,这些节点作为权益人的代理去行使记账的权利。这些获得投票认可的代表根据一定的算法依次获得记账权。不同于POW和POS理论上全网都可以的参与记账竞争,DPOS的记账节点在一定时间段内是确定的。
这些证明机制的底层是代码、加密算法,它们提供了“谁来记账”这个问题的答案。总的来讲,它们都要在效率和去中心化这两个维度上做出平衡。本文不讨论这三种方式的利弊比较,而是继续讨论关于协作的几个问题。
第一,如何吸引人参与协作?
这和中心化组织是一样的,依靠激励。只是中心组织依靠中心发放的奖励,而区块链靠分配Token 激励各方参与协作。
第二,不守规则的人如何处理?
想参与协作就必须遵守设定的规则,不愿意接受共识,自然无法成为协作组织的一员。
第三,如果有人参与协作,却试图破坏共识怎么办?
因为区块链的共识是每个节点都尝试延长主链,而主链是区块最多,大多数节点共同维护认可的数据库,所以,少数节点的破坏不会有任何影响。就像一帮人走路,大部队走的路才是正路,现在有少数人走到岔道去了,那能有啥影响呢?
那么,多数节点试图破坏呢?这就是所谓的51%攻击,理论上可能,但实践中几乎不可能,这一方面是因为代价太高,另一方面协作各方基于利益考量甚至会主动规避这种可能性。
于是,基于代码、加密算法和博弈形成的共识机制,提供了一种全新的协作方式:
各方按照既定规则参与协作,代码代替权威,Token产生激励,博弈驱逐破坏者,协作自然达成。
分布式自组织
作为区块链的第一个应用,比特币自2009年诞生以来,在没有中心管理机构的情况已经运行多年,且没有出现宕机、转账错误等任何问题。这说明了什么?
我们拥有了不依靠央行发行的货币?我们拥有了对抗权威的武器?我觉得都不是,因为这其实低估了比特币,确切地说,是低估了比特币背后的区块链带来的真正意义。
在我看来,它的意义不在于,未来会不会将有一个颠覆央行的虚拟货币存在。而是,它证明了源于代码和加密算法的共识机制的可行性,宣告了世界级的去中心化的大规模协作体的诞生。
在中心化组织里,不守规则,或者恶意破坏的成员一定会受到惩罚,因为破坏者没有惩罚,这就是对共识的破坏,对权威的损害。 所以,传统的中心化组织像一个倒金字塔结构,表面上是中心领导一切,但实际上是中心承载一切,中心遭到破坏,组织就有可能处于瘫痪和瓦解状态。
而区块链没有中心,共识机制促成分布在世界各地的节点自由协作。这就使得这个协作体非常稳固。它甚至有可能改变现有组织的形态。
想象一下,一个分布式自组织的成员,他参与协作,获得Token的奖励,又可以消费组织提供的服务,相当于他既是员工,又是股东,又是消费者,这样的正反馈将使得组织的生产力获得极大释放。
区块链使得价值可以高效、自由地流动,你可以自由地选择协作、退出,或者作为一个简单的投资者。分布式的自组织将真正实现“自由人的自由联合”。
区块链带来的是什么?
一种新型的共识机制,使得去中心化的大范围高效协作成为可能。区块链技术的发展和迭代,将极大地促进各种自组织的产生。实际上,当大多数人在质疑区块链有没有价值,少数人只关注币价涨跌的时候,各种分布式自组织已在酝酿。
未来已来,只是尚未流行。