在 1 月 2 日的 Near Protocol 的北京见面会上,ASResearch 就“公有链 vs 联盟链“的话题进行了分享,从公链和联盟链的角度分别回答了“区块链到底能干什么?”
“区块链并不适用于所有行业; 无法完全用科技来替代制度和信任,去中心化和中心化各有适用场景“_—— 中国人民银行工作论文《区块链能做什么、不能做什么? 》_

1. 什么是区块链?

在工信部 2016 年《区块链发展白皮书》里面将区块链定义为: 一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术在互联网时代的创新应用模式。
从技术角度来看, 区块链仍然属于典型的分布式系统(distributed system),所以关于区块链的定义可以转化成: ”区块链和传统的分布式系统有什么区别? ” 相同点: *数据共享在分布式系统的经典教材 Distributed Computing:Principles, Algorithms, and Systems 里面有写到,分布式系统一个非常重要的作用就是资源共享(Resources sharing)。广义上的资源包括了计算、存储资源和数据等等。目前我们暂时不考虑未来区块链是否能演变成计算资源共享的技术(毕竟现阶段以太坊也只是高度冗余的图灵完备计算机),但数据共享这一点确实是区块链和传统分布式系统的相同之处。如果仅仅是为了数据共享,尤其是单个业务主体内部的数据共享,大可不必采用区块链,传统分布式架构的实现有更好的性能更低的开销。至于数据安全问题,也可以用一些灾备技术去解决。曾经有联盟链的客户问过:“把自己部门的业务数 据全部用区块链存储,能不能变得更快或者更省钱。”,现实的回答是:都不能。 不同点 1:* 多方维护 首先,传统数据库仍然存在一个管理员的概念,无论是分布式架构还是集中式架构。而区块链中对数据的操作则不由单一主体控制,理论上来说区块链就是一个任何节点都能写入的数据库(这里我们先忽略联盟链中的 CA),至于写入能否成功当然也受共识机制的影响(不管能不能成功,至少它有写入的权限了)。
从每个节点的写入操作来看,不同于传统数据库具有增加、删除、更改和查找四个操作,
区块链放弃了“删改”,仅保留了“增查”两个操作(实际上删和改是通过增来实现的),这样的好处是除了查找之外的所有操作都能留下记录,并且通过哈希函数保证了所有历史数据严格按照时间顺序记录(多节点数据写入的时序由共识机制保证),这就是我们经常提到的可溯源特性。
说到共识,由于多方写入操作的存在,整个系统的共识机制也变得更为复杂。同时多个节点操作变得更加难以控制,类似于 Raft (Paxos)这样的经典共识机制并不能满足拜占庭容错(Byzantine-Fault Tolerant )。
一些区块链(主要是联盟链)受到传统共识机制的启发,采用了基于领袖的策略(Leader-based):先选出一个领袖,再由领袖来提出区块,剩下的人达成一致,这类算法以 PBFT 为代表;而比特币的做法则另辟蹊径:干脆不要领袖,所有人都能出块,也别指望马上就能达成一致,最后最长的那个链就算是大家达成一致的结果。实际上这种机制是放弃了强一致性,仅仅保证最终一致性(听起来好像很弱的样子,但可怕的是这个系统已经运行了十一年还没出过什么大问题)。关于共识机制,这里就不做过多展开。这里只是想强调由于多方维护的原因,区块链在共识机制和传统分布式系统的区别。
简单地总结一下,多方维护的意思是,区块链中所有的参与方(或者叫节点,注意这里我们还将节点和参与方等价)都能查找和写入数据,并且写入操作只能以增加新记录的方式进行,这样的特性传统分布式系统并不能完全满足(或者需要一些改动)。
如果存在这么一个分布式系统,每个节点都可以执行写入查询操作,并且所有的历史数据都会记录下来(可以不采用区块+链的形式),那么它是不是就等同于区块链了? 不同点 2: 多智能体系统我们来看这样一个问题:假设区块链系统中有五个节点,一个人一口气租了五台服务器当做节点”和 " 五个人各自用自己的服务器当节点有什么不同 ?从纯技术的角度看,似乎没什么区别。但是从博弈论的角度看,就不一样了。博弈论里面有一个概念:Multi-Agent Systems (多智能体系统)。MAS 从定义上看比区块链还要抽象 :“由在一个环境中交互的多个智能体组成的计算系统”。但是看了下具体的 MAS 例子后,会发现多智能体系统(MAS)其实也是一种分布式系统:很多 MAS 在底层就是一个 P2P 网络,比如传感器网络或者车联网,但 Multi-Agent System 和传统的 Multi-Node System 最大的不同就是这个 Agent (或者叫智能体),后者是指具有自治性、社会性、反应性和预动性的基本特性的实体(人或者机器等),换句话说每个智能体都能管理自身的行为并做到自主的合作或者竞争。所以再回过来看上面那个问题,对于“一个人同时管理所有服务器”这种情况,我们可以说这些服务器组成了一个分布式系统,但所有服务器实际上都只属于一个智能体,因此不能算作是多智能体系统。而一个理想的区块链网络,则应该是一个多智能体系统。

区块链有什么用

1. 多智能体之间的合作和竞争

如何让多智能体之间进行合作和竞争?答案很简单: 激励(Incentives)
我们很容易想到比特币中的挖矿,所有人参与到记账的过程中,竞争获取出块奖励,同时也共同维护了系统的安全和稳定性,类似地还有 PoS 机制下的质押金没收惩罚机制(slashing),这些都是激励机制,也解释了为什么比特币是目前最成功的区块链应用,因为这套激励机制完美地让整个网络成为了一个多智能体系统。
2. 联盟链和无币区块链是否可以实现激励?
博弈论里面还有一个概念叫做“激励相容”,用简单地话来说就是:没有人可以通过损害集体利益去实现自己利益的最大化。如果设计者设计了一种机制,能够让参与者理性实现个体利益最大化的策略,与机制设计者所期望的策略一致,从而使参与者自愿按照机制设计者所期望的策略采取行动,那么这种机制就具有“激励相容”的特性。
由于我们前面谈到区块链能够提供多方参与共建的可能,在这个基础上,如果我们能设计一个业务场景,让所有参与者为了整个集体的利益奋斗,而不是让一部分人受益、损害另一部分人的利益。或者说不损害任何利益相关方的利益,至少让一方受益(帕累托改善),那么它看起来就应该是一个可行的区块链应用,不管是基于联盟链还是公链。
一个特定商品的供应链从原材料采购,到制成中间及最终产品,最后由销售网络把产品送到消费者手中,将供应商、制造商、分销商、零售商、直到最终用户连成一个整体。在这个供应链中,竞争力较强、规模较大的核心企业因其强势地位,往往在交货、价格、账期等贸易条件方面对上下游配套企业要求苛刻,从而给这些企业造成了巨大的压力。而上下游配套企业恰恰大多是中小企业,难以从银行融资,结果最后造成资金链十分紧张,整个供应链出现失衡。
如果这个时候,我们设计了一个区块链平台,可以让银行、核心企业、上下游配套企业一起参与进来维护,这个平台就只做一件事,让所有参与方上传自己的物流、交易、资金流和随之产生的其他信息,并且保证数据的真实性(或者说就算不能保证真实性也能提供一套溯源机制来追溯数据变动的每个节点),那么这个平台能带来什么好处呢?

对于上下游的小企业来说,哪怕只是螺丝钉生产商,他们也可以拿着可追溯的订单和交易记录去找银行申请贷款或者融资。对银行等金融机构来说,他们也能更好地找到稳定优质的客户,减少坏账率,提升投资收益。对于核心企业而言,看似没有任何额外收益(目前至少已经是帕累托最优),但由于整个上下游生态带来经济效益和社会效益的提升,也将会受益。

这就是供应链金融的场景,在这样一个无币的场景中,可以通过“激励相容“的机制,让参与者都乐于参与其中,并且互相合作。

不过实际应用中,基于区块链的供应链金融还有许多问题尚待解决,比如隐私保护问题、链上-链下数据协同的问题,这个也是我们认为近期主要技术发展方向之一。

总结来说,区块链除了基本的数据共享功能之外,与传统分布式系统相比,提供了多方参与共建维护的功能,并且适合于具有激励相容特性的业务场景

至于区块链的应用未来会更多在“去中心化”还是“多中心化”的场景中,就留给时间来回答吧。

作者:ASResearch.ioASResearch 是一个以学术研究和技术驱动的区块链技术咨询机构。由多位从事区块链行业多年的博士和硕士组成,致力于通过研究驱动创新和发展Step Voices:区块链到底能干什么?关于 DAOStep:DAOStep 是分布式协作爱好者的聚集地,专注区块链技术、治理和经济体设计相关的调研、分享,活动和实验,希望共享非守恒的有价值信息,用集体智慧使个体受益。
选择天上的 DAO,还是深陷脚下的泥,是行业的普遍焦虑,资产网络的涨落中总有噪声,探索者并不真的在意,因为我们深信,云泥之别其实只缺一场雨 ......

来源链接:mp.weixin.qq.com