1.1 概念理解
本节将从概念层面介绍区块链和分布式账本的关键知识点,方便非技术人员理解。
1.1.1 区块链的核心本质
对于区块链的核心本质,可以从两个方面来思考:
(1)用途方面:区块链的核心用途是记账,记录所有权益与权益归属,以及权益属性的使用。其开启了数字资产的开发和使用,能让资源配置实现更加精细化的管理。
(2)信任建立方面:在缺乏信任的情况下,区块链是一种展开交易的信任解决方案。
下面通过对几个关键问题的探讨进一步对上述内容进行阐述,以方便读者体会和理解区块链的本质。
区块链最显著的特征在于其记账的方法——点对点记账。传统的记账方法中,在涉及归属权交换的情况下,广泛使用的是委托第三方记账的方法,例如我们的存款记录在存款的银行中,这就是委托第三方进行记账。
区块链的记账方法是权益者自己记账,这就引出了另外一个问题:涉及权益的交割时,如何达成相关方的无异议,在区块链领域,不同的人各自记账,而保证形成一致结果的,是共识算法。
比特币和其使用的POW共识算法所带来的点对点记账、去中心化、所有节点共同持有一份相同的账本、交易不可篡改等特点,是大多数人对区块链的第一印象。随着对区块链研究的不断深入,人们对区块链的设计有了进一步的拓展,也有了新的疑惑,下面笔者将对相关问题简单阐述一下自己的理解和看法。
(1)由一堆已有技术组合起来的区块链,到底创新了什么?
区块链使用的P2P协议、数据库、各种加密算法、共识算法,单独讨论哪一样人们都觉得都是已有的技术,为什么组合在一起就被称为是从信息互联网发展到价值互联网的技术?区块链到底创新了什么?笔者认为,单从技术角度讲,区块链里面算得上创新的技术有两个:共识算法和节点数据库。这两点后面会单独讲。区块链主要的创新在于两个方面,一是解决了网络和计算机高度发展以后,进入人机协作、机机协作时代后人机社会协作问题。在此之前,计算机乃至极大的中心化计算机系统,都处于辅助工具的地位。二是通过区块链可以引入数字资产的开发,精细优化资源配置,可以对目前没有开发的人、物的各类主体的各项权益和属性优势都建立数字标的,然后使用。
(2)共识算法比分布式数据库同步多了什么?
现在大的中心化系统,比如像12306售火车票这样的系统,其拓扑结构的轮廓可以看成是一个沙漏形状,前面是海量的客户端访问,后台由受理、负载均衡、处理、分布式数据库来实现,安全问题由防火墙解决,中间是一个访问焦点,需要足够的带宽。后台采用分布式数据库,因为有安全防火墙,并且是系统内彼此可信,所以分布式数据库之间只需要考虑同步的问题。而区块链节点之间的账本同步,因为彼此都暴露在互联网空间,所以节点之间的共识算法,除了考虑记账的一致性同步以外,还需要考虑恶意记账攻击,此外还需要考虑治理的经济模型,所以公链的共识算法需要包括这三方面的考量。对于非公链来说,比如联盟链和私链,共同的特点是采用统一的PKI/CA身份许可入链,这由中心化的根证书系统进行管理。因为参与共识的验证记账节点之间身份可信,所以可以采用简化的同步算法,防恶意记账攻击和经济模型几乎不需要过多考虑。
(3)PKI/CA身份机制可能会阻碍联盟链的发展,DID身份机制更适合区块链。
从技术本质上讲,非对称密钥对中的公钥即身份,私钥即操作权,再往上就是实名制了,与之对应的是管理需求,所以比特币是匿名的。不论什么样的区块链系统,只要引入统一的PKI/CA证书体系,那么实际就在一定程度上中心化了这个系统。建立联盟链的联盟方,谁来管理和掌握数字证书的发行权?这可能会使处于市场竞争关系的多个联盟方又回到不采用区块链系统的中心化系统对接的局面,这么一来,开发者可能就会问自己,区块链的优势体现在哪里?所以在业务上可以采取分层的处理方式,初始匿名,若需要享受更高级的业务权益,则需要相关验证与对应的身份,这肯定是当前情况比较好的解决方案。再进一步,DID身份机制或是其他区块链身份机制进一步成熟以后,会有更好的解决方案。
(4)怎么理解去中心化?
去中心化,首先体现在技术架构上,这是一目了然的,在区块链中,没有任何一个节点像中心化系统的服务器那样重要。中心化系统的服务器宕机,整个系统停止服务,而在区块链里面,任何一个节点宕机都不会影响整个系统。对去中心化进行更深层次分析,可以从信任建立的方式上来进行。在中心化或是第三方服务的情况下,信任的建立是靠实力和口碑的,这是从现实世界多年发展而来的一种信任建立方式。而网络空间与现实世界最大的不同在于网络空间中的空间法则和时间法则得到了突破,你可以复制无数个你,并安置到无数个业务场景系统中,你可以在过去、现在、未来任意时间点产生或修改数据,在这种情况下,要想人机协作、机机协作,只能通过节点共识这种横向的锁定方法来建立信任。区块链技术实际上不是建立了信任,而是建立了一个信任基础,或者说是管理信任的方式。
(5)用中心化系统的负载指标TPS衡量区块链系统并不合适,分布式账本是重要延伸。
中心化系统因为所有访问都聚集在中心化的服务器上,所以存在一个TPS指标的问题。在比特币、以太坊推出以后,人们认为它们还不能大规模应用的一个最主要原因是TPS太低。笔者认为这是用中心化系统的眼光和角度去衡量区块链系统。这就好比最早的汽车发明出来的时候,能坐2~3人,时速不超过100公里,若人们把客车、货车、跑车的需求都堆到它的身上,就会发现它什么都不行。实际情况是,汽车已经发明出来了,随着时间的推移,汽车会朝着不同的方向进行优化。另外,卖钻石的交易和卖铁钉的交易显然不是一个重要程度,没有必要将所有交易都堆到一个链上处理,否则必然就会出现现在常说的比特币块容量不够、要扩容的问题。一个每天现金往来几十万的出纳需要配一个保险柜,而一个每天现金往来只有几千块的人,配个文件柜就够了。从这个点上来说,不同的交易,视重要程度,可以选择不同的记账层次。在金融财税场景下,还会涉及商业隐私的问题,这时只需要相关方接触敏感信息即可,这就有了分布式账本的需求。分布式账本就是不是所有的节点都持有一份相同的账本,而是不同的节点持有不同的账本,区块链可以看成是分布式账本的一个特例,即所有的节点持有一份相同的账本。这样一来,区块链系统中与TPS相关的指标应该更宽泛,例如一个区块链生态里面的共识圈数量、最大共识节点数、最大TPS共识圈、最小TPS共识圈、共识算法种类等。如果需要一个总的TPS,那也是所有共识圈TPS之和,这样衡量才比较全面。如此一来,对于所有的节点而言,不同业务场景下不同的节点参与不同的共识圈,与其他节点无关。对于确实需要全局共识的交易,可再发起全局共识,而对于庞大数量的节点共识,随机记账权的分配是兼顾效率、安全、经济模型的最佳方式。
1.1.2 区块链与分布式账本的异同点
区块链与分布式账本的相同点是都是点对点记账。
区块链的概念由比特币引申而出,比特币提出的是一种点对点的电子现金系统,这里最关键的概念就是“点对点”,也就是人们常说的去中心化。准确的说法是,在区块链中无单一全功能中心,无突出的不可缺的全局中心,在实际生活中,应该是不同的业务、不同的领域、不同的生态,具有不同的价值权益。对于某一个个体,也许对于A业务来说,他是用户,但对于B业务来说,他就是共识参与节点。实际上区块链技术是扁平化技术的进一步应用。
区块链与分布式账本的不同点是持有账本的节点数不同。
区块链的账本是所有参与共识的节点记录的账本,只有一份完全相同的账本。这种账本的优点是账本记录范围大,无法全面攻击和篡改,而面向单一节点的攻击和篡改因为得不到其他节点的认可而无效。但这种账本并非与所有的交易和所有人相关,也并非所有的交易都是金额很大的交易,其上的交易没有差异化,这样一来就会出现隐私保护的问题。对于比特币而言,采取的是单纯的密钥即身份的匿名机制。这种全局账本的另外一个不足是,随着参与节点数的增多,记录交易也会增多,达成全局共识的耗时会越来越大,那么记账效率就会不断下降,这就导致其只适合记录重要的且涉及全局的交易。
分布式账本的思想是:不必全局共享账本,根据业务的重要程度和交易额的大小,在一定范围内实现共识,或者只在交易相关方实现共识,这样对于不同的业务场景,适应性更广。也就是说,在各种不同的主体之间,不同的生态内,会有很多面向不同业务的共识账本,存在于有意参与共识的节点上。如此看来,区块链就是分布式账本的一种极端特例,是全局所有节点参与共识的全局账本。
这样我们在概念上就分清楚了区块链和分布式账本的相同和不同之处。在一般场合中,在中心化和第三方记账方面,区块链和分布式账本是一回事,而在分布式记账的概念里,区块链和分布式账本是两个不同的概念,不能混淆。