【区块链科普】4. 共识篇——区块链世界的法律
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。
——以上摘自百度百科
共识机制是区块链技术的核心。虽然百科里面说得很玄乎,但实际上共识机制并不神秘。
我们在《导读篇——区块链的What、Why、How》中为大家介绍过区块链的技术构架,共识机制就封装在共识层中。如果把区块链看作一个全民参与的大账本,如果所有人都抱着“我不要你觉得,我要我觉得”的心理来记账,那最终得到的账本必定千奇百怪、错漏百出。因此,区块链系统需要存在一个人人认可的机制来约束用户行为,这种机制我们就称之为“共识机制”。
目前最常见的共识机制为PoW和PoS,此外,其他的主流共识还包括诸如DPoS、NPoS、HPoS、PPoS等由PoS变种而来的机制,以及如PoC般被寄予厚望但仍未证明自己的新共识。
什么是 PoW?
工作量证明(Proof of Work,简称 PoW),顾名思义就是对工作量的证明,其核心思想是多劳多得。
工作量证明通过解决一个不容易解答但是容易验证的问题来争取记账权以达到共识目的。
例如,在比特币区块链中,是通过枚举法对得到的新字符串进行 SHA256 哈希运算,找出满足给定数量前导为 0 的哈希过程。前导 0 的个数越多,代表问题的难度越大。一旦某个节点找到符合要求的随机数,该节点就获得当前区块的记账权,并获得一定的奖励。
以上是关于比特币工作量证明机制实现方法的学术解释,下面我们降维到小学二年级水平。
举个例子,某所学校由于老师们工作繁忙,决定将考勤任务交给学生,并决定对当天进行记录的学生给予学分奖励。由于有学分激励,所有的学生都想获得记录的权利。为了避免所有学生一窝蜂都去考勤,学校决定每天出一道高难度的数学题,只有最快解出难题的同学才可以获得当天的考勤权。获得记账权的同学只要当天完成记录且没有出现差错,就可以获得学分。
这种系统(学校)出题,用户(学生)答题争夺记账权(考勤权)的模式,就是工作量证明机制。解题越努力,获得的记账权就越多,收获的奖励也越丰厚。
PoW机制简单易懂,代码层面上由于有比特币等珠玉在前,也不难实现。但是区块链系统为了保证每道题解出来的时间相近,往往会根据参与记账的人数调整题目难度,参与的人越多题目越难。随着题目难度的不断上升,人们逐渐开始使用一些非常先进的设备(矿机)并耗费大量的电力来解题,由此也产生了极大的资源浪费。
什么是 PoS?
权益证明(Proof of Stake,PoS),原理类似现实生活中的股份制,拥有股份越多,话语权就越强,获得记账权的概率就越大。
PoS 相对于 PoW 更好理解,我们仍以上述学校考勤为例。
经过之前一段时间的记录,学校已经发出去很多学分。此时老师觉得每天出一道题太麻烦了,干脆改成抽签决定考勤权,抽中概率依学生所持学分而定。假设学校现在已经发出去100个学分,小明同学获得了其中一个,那么在这个模式下,小明就有1%的可能获得当天的考勤权。如果小明觉得自己抽中概率低,也可以私底下向其他同学购买学分提高抽中概率。
权益证明算法不需要消耗大量资源,但也带来一些其他问题,其中最突出的就是贫富差距问题。持币越多的人获得记账权的概率越大,获得奖励的概率也就越大,长此以往,这种“富者愈富”的机制会使整个系统的资源集中在一小部分人手中,去中心化的原则也会受到极大冲击。
什么是 DPoS?
委托权益证明(Delegated Proof of Stake,DPoS),脱胎于权益证明。在委托权益证明中,节点们首先通过权益选举出若干个(具体几个由系统决定)记账节点,类似于现代企业的董事会制度,后续提案由这些被选中的节点轮流处理。
接着上例,抽签制度实施了一段时间,小李子同学发现由于自己持有的学分太少,总是陪跑,整整22天都没拿到考勤权。买学分是不可能买学分的,这辈子都不可能买学分。为了维持生活,小李子心生一计,联合汤姆、哈迪等几个学分低的同学,大家把学分凑到一起提高抽奖概率,并约定获得考勤权后平分奖励。
学校发现这一情况后干脆组织了一个学生会,规定由学生会的同学轮流考勤,学生会由全体同学通过学分投票产生。考勤所得的奖励由当天记账的学生会成员自己分配,为了稳固自己的票数,这些学生会成员一般都会在扣除小部分手续费后给自己的“选民”们平分奖励。
委托权益证明在现实中随处可见,大到政府部门,小到企业组织,“选举代表”的方式较好的兼顾了民主和效率。但这么照搬现实生活的模式,似乎有悖于区块链创立的初衷,因此委托权益证明最为人所诟病的一点就是去中心化程度不足,有违区块链精神。
什么是PoC?
随手百度一下,我们会看到许多种PoC共识,信用证明(Proof of Credit)、贡献证明(Proof of Contribution)、持币证明(Proof of Coin)等等,而我们今天要讲的是所有PoC中知名度最高的容量证明(Proof of Capacity)。注意,以下所说的PoC均代指容量证明。
容量证明共识采用了基于硬盘挖矿的模式,我们可以将其看作工作量证明(PoW)的魔改版。
依然是学校考勤的例子,这次我们接着PoW的例子讲。前面说到,学校每天出一道高难度的数学题,同学们根据这道难题去解题目,最快解出来的就可以获得记账权。
阿福同学数学是体育老师教的,因此在解题方面一向不太擅长,但阿福之所以叫阿福,就在于他自带欧皇体质,运气特别好。为了争取记账权,他取了个巧,在学校公布难题之前就准备了一大堆答案,等到题目公布后,再从自己准备的那些答案中一个个代入验算,找出正确答案。
我们也可以简单将其看作刮刮乐,只要你手中的彩票足够多,总有能够中奖的。在这种模式下,用户需要有足够的硬盘容量来存储足够多的随机数,以提高“蒙”对答案的概率,因此称之为容量证明。
尽管容量证明鼓吹者认为相比于其他共识,PoC具有人人可参与、减少资源浪费、抗ASIC、反垄断等优势,但其本质上依然是依靠堆积足够多的资源(PoW中的算力,PoC中的硬盘容量)来“暴力破解”难题。在参与人数较少的时候自然看起来很美,一旦形成规模效应,很难说会不会走上工作量证明的老路。