共识,英文叫 Consensus ,这个词在区块链的世界中是一个非常核心的概念,我们经常说”达成共识“,但是区块链条件下如何达成共识?区块链下的加密共识跟现实世界的共识有哪些相同点和不同点,实现了加密共识又能带来哪些实际意义呢?

什么是加密共识?

先来给出加密共识的定义:加密共识就是通过密码学手段在一个去中心化的计算机网络上达成的共识。

首先,加密共识是基于清晰的数学规则的共识。现实社会中,人们达成共识是往往是基于一些比较偏人文的模糊化的概念,例如法律,道德,风俗,这些方式达成的共识往往是不可靠的,每个人的道德观念都不太相同,每个国家的法律和风俗也都不同。而加密共识就非常简单,完全基于数学可以描述清楚的一套规则。举个例子,班上决定开联欢会,大家投票决定到底是周六还是周日开,最后少数服从多数,这就是一套非常清晰的规则。而所谓的共识,就是大家都统一接受了同一份数据,例如周日。

其次,加密共识达成的环境是去中心化网络。所谓去中心化,就是没有中心权威。还是以开联欢会为例,假如同学们的讨论只是作为参考,最后由班主任拍板决定,那班主任就是中心就是权威。而去中心化网络是无权威的,也可以说是 P2P 的网络,P2P 是”对等网络“的意思,网络上各个节点的地位是平等的,就好比班里的各个同学,谁都没有决策权,那么所有同学组成的就是一个去中心化的网络,这种网络上最大的问题就是公说公有理婆说婆有理。

最后,加密共识是通过密码学手段来达成共识的。正是因为在一个计算机网络上,大家肉身不能见面,所以如何确定一个投票者的身份就成了问题。你可能会说,那还不简单,弄一个投票网站,大家都注册一下不就行了。实际上这样是不行的,因为网站本身就是一个中心了,网站开发者要是搞些小动作,那么投票过程就不可信了。所以加密共识的投票过程是通过密码学方法来达成的,这就是加密共识这个词的由来。

以上,就是加密共识基本概念的详细介绍。

共识算法

共识机制,放到计算机语境下,就叫做共识算法了。例如一人一票就是一种机制,编程实现之后就成了一种算法。

流行的加密共识算法都是基于投票的,只不过在确定投票权的方式上有差异。来对比一下常见的几种共识算法。POW ,工作量证明 https://zhuanlan.zhihu.com/p/42694998 是用钞票来投票,谁的钞票多,谁的票就多,而且投票过程是要花大量的电费的,所以投票就是烧钱过程。POS ,权益证明,是谁持有的币多,谁就票多,类似于股东大会投票,大股东更有发言权,注意 POS 投票过程是不烧钱的。DPOS ,是 POS 的一种变体,大家先选出委员会来,由委员会代表大家投票。除此之外,还有其他的共识算法,例如瑞波共识和实用拜占庭容错共识。

评价共识算法的优劣是基于两个互相矛盾的标准:第一是性能,第二是去中心化程度。各种共识算法都有人支持,因为大家各自都有优缺点。类似 POW 就是性能特别差,但是去中心化程度高,而 DPOS 性能好,但是所有的权力都在委员会手里,去中心化程度弱,或者说就是共识的分散度不够。实用拜占庭容错机制,要求参与投票的节点中至少要有三分之二的人是诚实的,实际上要保证这一点就必须要设置准入门槛,不能让节点随意加入进来投票,所以这种算法去中心化程度也就低了。去中心化程度越低,共识度就越低,可信度也就越低了,而性能如果太低,就会影响实际应用。

通过上面的讨论,我们可以感觉到共识算法其实就是就是一些非常明确的投票规则,总体上没有什么神秘。

加密共识的意义

最后一部分我们要聊的是加密共识的实际意义。

首先,加密共识带来了不可篡改的数据。加密共识所在的是一个去中心化网络,具体来说就是一个区块链网络。很多人把区块链叫做”多节点同步数据库“,不是没有道理,这是因为一旦写入到区块链节点上的数据,就会迅速被其他节点拷贝到自己的机器上。数据不再被单一方私有把持,给数据的不可篡改带来了基本保证。但是注意,区块链是一个去中心化的网络,没有权威的条件下,如果数据出现了分歧,那么数据的安全也就丧失了。所以有了加密共识才真正保证了数据的不可篡改。

加密共识,带来了不可篡改的数据,于是区块链体系才能发挥作用。有人把区块链系统分成了一个六层的结构,分别是数据层,网络层,共识层,激励层,合约层,应用层。数据层和网络层都是共识层和其他层的基础,不说了。说到激励层,能够激励是因为区块链上有加密货币,而加密货币就是基于一个大账本的,作为账本最重要的当然是数据的不可篡改。同时也正是有了不可篡改的数据,才有可能安全的运行合约层的智能合约,也才能去支撑各种应用层的业务。

加密共识带来了良好的社会扩展性 https://zhuanlan.zhihu.com/p/50126046 。有人说区块链1.0是可编程货币,区块链2.0是可编程金融,区块链3.0是可编程社会。其实所有的一切都根源于我们现在有了不可篡改的达成了共识的数据,同时重要的是达成共识的过程是基于数学的,而数学是没有地域和文化限制的普世规范,所以可以保证让所有人都参与到游戏中来,也就是说有非常好的社会扩展性。

总之,加密共识的实际意义是非常让人浮想联翩的。我自己有一个比喻,没有加密共识之前,世界上都是一些数据孤岛,各个岛上的居民要想交流需要穿越汪洋,而加密共识带来了全社会共同接受的数据,世界从此变成了一个连到一起的大陆。人类的经济协作,会在全新的物质条件下重构,而这种新的经济,很多人叫他加密经济。

总结

关于加密共识就聊这么多了。最后总结一下:首先加密共识就是基于加密技术在一个去中心化的网络上达成的共识。加密共识的算法,不管是 POW 还是 POS ,其实都只是不同的投票规则,都是清晰的可以讨论和改进的,所以不应该有神秘感。加密共识的意义是让全球人以最基本的数学原理为纽带来达成共识形成合作,合作的根基是大家从此拥有了不可篡改的数据。

参考: