我在上一篇札记《这可能是对区块链最清晰的解读》中谈到,区块链在本质上是个共识社区,公有链和该链所发行的token(币)是共生关系;有了链才会有币,有了币,链才会有活力。因为有token的激励,才有很多人去记账,分布式记账的存在使得链上的活动都是不可篡改、真实可信的,于是会有更多的人愿意到这条链上来活动,上来的人越多,token就会越有价值,这样就形成正向循环。
这个链-币共生体就是个共识社区,决定这条链/共识社区生死的底层基础,是该链/共识社区的价值观,链上的一系列具体算法,只不过是对其价值观的某种数学化表达而已。
01如何进行分布式记账?
要说清楚这个问题,得先简单说一下分布式记账是怎么操作的,因为价值观是在记账过程中被具体表达的。分布式记账行为是和所谓的挖币(挖矿)行为是并行的,对该过程的极粗略勾勒如下。
首先,区块链上每个连入的设备都是一个节点,节点分两种,一种是记账的节点(矿工),一种是想要让人记账的节点(普通节点);之所以会有普通节点,就在于这些人希望有第三方帮助记一份不可篡改的账,以便让交易的对手方可以信任自己。任何人都可以随意选择想要做什么节点,也可以随意转换,还可以同时选择自己做两个身份,只要你愿意。
普通节点完成一笔交易后,想要把交易记录上链,或者他想要把自己的一个随便什么东西储存到区块链上,就会把那个记录或文档对应的哈希值发到链上。所谓哈希值,是指通过哈希算法,可以给任意一个电子文档生成一个独一无二的字符串,如果有人对文档内容作了一丁点改动,再算出来的哈希值就会不一样了;如果有人复制了某电子文档,新文档与原文档哪怕内容完全一样,但是由于文档特征值(比如创建日期、创建地址之类)不一样,算出来的哈希值也不一样了。所以哈希值是确保电子文档真实性、唯一性的可靠凭证。
图 丨 哈希算法(Hash Algorithm)
普通节点在链上发布一个哈希值,这将在整个链上全网广播,请求矿工帮忙记账。记账节点(也就是矿工)在记账的时候同时要做两件事情,一是记录那些账目(各种哈希值),一是同时要做一道非常难的数学题。题的来源是由该链的算法自动生成的,一道题解出来了,链会自动生成下一道题。
矿工们做题的目的是为了争夺记账的资格,谁先把题做出来了,就会把答案在链上全网广播,其他矿工看到了马上就会来验算。这道题解出来特别难,但验算很容易,只要有51%的矿工确认这个答案是对的,也就是达成“51%共识”,那么率先解出来的人就获得了这个token(这个币),其他矿工则赶快去做下一道题。而率先解出来题的那个人,他所记的账打成了一个包,其中的账目也就被大家所公认了,打成的这个包,就是一个区块。每个区块也都会生成一个哈希值,下一个区块的开头记录的就是上一个区块的哈希值,区块彼此之间是一个一个前后相继的,形成一个链条,这就是区块链。
区块链账本会在所有矿工的服务器上都留存一份,普通节点如果愿意,也可以随时下载完整账本,不想下载的话,也可以在该链的网址上随时查阅所有账本。除非有51%的矿工同意,否则账本不可更改。只要矿工数量够多,并且其物理所在高度分散,那么要更改账本,就要搞定51%的矿工,这在操作上几乎就是不可能的。也就是说,只要一个东西上链了,它的真实性、唯一性虽然理论上仍然存在被篡改的可能性,但在实际操作上几乎可以保证无法被篡改。
图 丨 分布式的结构区块链可以实现“去中心化”,非对称加密算法可以保证链上的信息安全。
但要注意了,这里说的是“几乎”,也就是说,在实操上也不能百分百确保。关键就是,要保证不会有超过51%的矿工被同一个力量控制,只要分布性能够保证,那么这条链就是可信的。
02 共识机制设计与价值观
新的问题是,以什么为标准来计算“51%”呢?这就涉及到该链上共识机制的设计了。根本上来说,具体一条区块链上的共识机制的设计,决定了该链的可信性;这个机制设计就与计算机技术、密码学技术没有关系了,是个纯粹的政治学和法学问题;而在底层引导机制设计的基础思路的,则是这条链上的价值观。
下面具体展开来解释下。
目前的主流共识机制设计,从大的角度来分,有两种,一种是POW(proof of work),另一种是POS(proof of stake)。
POW就是比拼算力,基于算力标准来确定那51%,这种机制设计,会导致矿工大规模上设备,变成设备军备竞赛,矿工间比拼的是资本实力。
作量证明定义了一种昂贵的计算机运算,也称为挖矿。
军备竞赛的结果,有可能是这条链的算力被掌握在三到四家寡头的手里,正常情况下不会少于三家,这又与公有链的一个独特机理有关。人们之所以愿意到链上来活动,是因为这条链上的账本无法更改,活动是可信的,一旦有人控制了51%的算力,就可以随意更改账本了,人们很快就会发现这条链上的活动不再可信,于是一哄而散,辛苦积累到51%算力的那位,手里的token价值瞬间清零;因为token是否有价值,是由有多少人愿意信任这条链决定的,人们如果对该链的可信性不再有共识,都走掉了,token价值也就清零了。
这种机理决定了,公有链天然具有一种分布式、反控制机制,如果有人花了很大成本控制了一条链,成功之日就是失败之时,因为这条链已经变得一文不值了。所以寡头可能会努力去控制到49%的算力,但它不会再去多搞两个点到51%,否则之前的所有努力都白费了。
虽然POW机制不会导向一家独大的集中式控制,但寡头机制也还是让人对这种链的分布式状态心存疑虑,万一寡头们联起手来搞点动作呢?这对区块链的分布式初衷而言是个风险。
于是,又发展出POS机制,这种共识机制是基于矿工所掌握的权益(stake),来确定投票权的标准,来识别那51%。目前越来越多区块链是采用POS机制的。
POS机制中一个很核心的问题就是,究竟什么才是stake?这背后有一系列衍生问题,是否这个链上只有一种stake?凭什么以这种方式设定stake?矿工们要达成共识的时候,stake的投票权重怎么规定?投票程序如何展开?等等,可以列出很多值得追问的问题。
对这些问题的回应,就构成了这条链上的共识机制设计。这些共识机制设计的背后,都是纯粹的政治学、法学和哲学问题,反映的是这个链/共识社区的价值观。基于前面所说,可以看到链上的共识机制至少分为三个层次。
1、操作层。矿工们在解题过程中,对于某个矿工解出来的答案要达成51%的共识。
2、治理层。以什么为stake来设定那51%?这也需要共识,具体是百分之多少,取决于共识机制的设计;在这个共识达成之后,链上的人就会去积累相应stake。
3、价值层。凭什么可以基于那些为stake?凭什么是那种百分比?这背后涉及到价值观的取向,对于该价值观不认同的人,很可能也就不到这条链上来了,在这条链上活动的人,可以默认为他们都认同该价值观。在某链初起之际,还没太多人上来活动,该链的价值观取向是由一个相对较小的群体、也就是最初的发起者设定的,该价值观取向在相当程度上决定着,这条链在日后会吸引多少人上来活动。该链要想确保有长期活力,在其共识机制进行后续迭代的时候,就需要尽可能扩展在价值层上参与共识投票的人群范围,确保链上共识机制的分布式,才能确保链的可信性,从而确保活力。
治理层和价值层的共识,在诸多节点投票的时候,应该基于基于简单多数还是绝对多数?是单次表决还是多次表决?提案机制如何生成?节点的投票资格如何设立?等等等等,所有这一系列问题,全都是纯粹的共识机制设计问题,与技术本身没有关系。
一旦这些设计完成,一条区块链就可以开始运作了。理想状态下,区块链的起点首先是个价值层的共识社区;有了价值层的共识,会再落实为治理层的机制设计;有了治理层的共识,会再进入到矿工在操作层挖矿时的51%共识。当然,现在真实的区块链当中,很多并不符合这个理想状态,但是未来有生命力的区块链大概会越来越向理想状态靠拢。
价值层本身不是算法决定的,但在治理层和操作层中,会把价值层的各种价值取向转化为具体的算法;算法中对于各种参数的设定,背后所反映的都是价值观。
打个比方,一个链上的POS共识机制,可能是设定为,链上有101个矿工节点,它们是从1001个备选节点当中选出来的。依据什么原则来选出那101个矿工节点呢?其中有一部分矿工节点是基于各备选节点手中持有的token多少排序而选出,比如1001个备选节点中的前50个token持有者,就可以成为矿工节点,这就相当于是资本是stake;还要再选出51个矿工节点,就在剩下的951个备选节点当中随机选出,此时就相当于人头是stake。那么,这条链在其初始参数设定中,到底是规定多大比例的矿工节点基于资本选出,多大比例的矿工节点是基于人头选出,这些参数的设定,背后反映的就是链的最初发起者的价值观,反映着他对于自由、平等之类不同价值的优先级排序。
具体一条区块链是否能存活,取决于它的共识机制设计是否能聚拢足够多的有共识的人,并且这些人还可以在区块链的运行过程中,不断地通过达成新的共识,来动态调整各种共识机制。新共识该如何达成,也需要有一整套的程序机制来保证。所有这些机制的设计,背后都是价值观在支撑与引导。
区块链/“部落城”因此就是一群达成了共识的人,共同建设起来的一个自组织、自驱动、自演化的部落、城邦。它穿透国界,无影无形,无所在又无所不在。
一条链开始运行后,它需要尽可能快地脱离于其最初开发者的控制之外,进入所有参与者共享共治的一个状态。如果它不能脱离于最初开发者的控制,这个链上的活动的可信性就存疑,也就没多少人愿意上来活动,这个链也就死了。因此,链的活力甚至是其存活,与链的分布式治理机制,是共生关系。只要它不再分布式,链就很容易死掉。而能够存活的链,初始开发者仅仅是共识社区的最初倡议者,他可能手上有着比别人更多一些的token,仅此而已,其他的一切都要受制于这个链上的共享共治体系。
在区块链的运作过程中,需要往前迭代治理机制或者软件系统。有可能在某一个迭代点上,人们无法达成共识,比如有58%的人同意用A方案迭代,26%的人同意用B方案迭代,16%的人同意用C方案;那么少数地位的人有两个选项,或者放弃自己的想法,加入多数派,或者觉得自己这个方案聚拢起来的人也足够多,大家都想坚持,那么就在这个点上按照自己的方案往前走,跟多数派分道扬镳。
这就是区块链上的分叉,颇为类似于基督徒在1054年分叉成东正教、天主教,1517年又分叉出新教。大家对于何为原始经典有共识,但是对于如何释经不再有共识,那就分叉好了。
链上经常会出现分叉,如果分出来的那个叉上面能够聚拢足够多的人形成共识,就会是一个新的共识社区/一条新链如火如荼运转下去。如果分的叉上人气凋敝,也就自生自灭了。
03 数字货币
链和它上面发行的数字货币是共生关系。数字货币仅仅是一堆字符串,本身并没有任何实体依托。但是在共识社区中,人们会接受以数字货币作为信用载体,或者说,作为人们共识的载体符号。只要有共识,载体符号是啥根本无所谓,黄金、纸币、贝壳、玻璃球、数字符号,都行。
区别在于,不同的载体符号,其共识的来源不一样。纸币背后的共识,来自国家机器的强力担保,自上而下强制接受,以主权国家对疆域内的有效统治为基础。数字货币背后的共识,则来自区块链共识社区的自我演化、自我认同,是自下而上的自演化机制,以分布式参与者的共识为基础。
比特币属于第一代区块链,仅仅有记账功能。以太坊属于第二代区块链,它本身已经是个操作系统,在操作系统上可以开发各种智能合约;对应着理解就是,以太坊相当于安卓,那些智能合约就相当于安卓系统上在运行的各种手机APP。
由于区块链上的交易记录的不可篡改性,越来越多的人愿意在区块链上来完成交易。这大致可以想象成,我们今天有越来越多的活动都是通过手机APP完成的,手机APP成了我们与真实世界之间的连接通道,同时手机也自演化出一个数字世界。如果区块链上的活动越来越多,也就会有越来越多的支付是通过数字货币来完成的;就像今天的年轻人在游戏社区内会用各种游戏代币来交易、支付一样,对他们来说,只要是在游戏社区内活动,游戏代币和法币没有什么区别。
所有这些都意味着一种全新的秩序逻辑正在浮现,也就是我在前一篇札记里所说的即将到来的“空间大发现”。这种新的秩序逻辑是好是坏,我们现在并没有把握。正因为此,亟需我们马上发动起来,思考、研究这个秩序背后的一系列政治学、法学、哲学问题,并将其落实为一系列具体的区块链共识机制的原则,未来才会走向一个更加可欲的方向。