11月24日–25日,由中国计算机学会主办的首届中国区块链技术大会在杭州未来科技城举行。11月25日下午,东南大学计算机科学与工程学院副教授刘肖凡发表了题为“借天领地:广播网络能否破解区块链的‘三元悖论’?”的演讲。
以下为现场演讲内容,由整理发布:
谢谢主持人的介绍,也非常感谢各位能坐到最后一天的晚上。我今天要讲的内容是我和我们学院的李幼平院士讨论了近半年的结果,并且相关的试验正在进行中。如果思路是正确的话,那么区块链网络的效率将得到大幅度的提升。大家可以一年后到成都,或两年后到海南,去验证一下我今天讲的内容有没有实现。
首先讲一下我眼中的区块链技术。区块链的技术本质,是使用一系列加密技术和数据同步技术,通过将数据分散在互不信任的多个节点中进行存储和固化,保证被存储数据的可靠性。通过让区块链网络中的节点同时对代码进行计算,并将交叉验证后的计算结果储存回网络中去,区块链网络的功能从可信存储扩展到了可信计算。
由于存储和计算是计算机的两大核心功能,并且区块链网络如今已经具备了这两个功能,因此它又被称为“可信世界计算机”,或简称“世界计算机”。但是目前,这台“世界计算机”的最大问题是,与传统的云计算服务相比,其存储和计算的效率实在是太低下。
以太坊创始人Vitalik Buterin曾在Sharding-FAQs上将区块链技术的性能瓶颈问题解构为“三元悖论”模型:
大概的意思是,区块链系统最多只能拥有以下三种属性的其中两种:
Decentralization—去中心化:定义了一个系统能以如下场景运行,每一个参与者可以访问 O(c) 资源,例如笔记本或小型 VPS。
Scalability—高效/可扩展性:能够处理 O(n) > O(c) 的交易量(就是当网络负载超过当前节点资源的承载量时,依然能够从容应对)。
Security—安全:能够应付最大到 O(n)资源量的攻击。
假设区块链网络中每个节点的(计算、带宽、存储等)能力以及能够对应的任务处理能力为O(c),网络的目标处理能力为O(n)。如果O(n) ≤ O(c),那么网络中的每个任务都会有足够多的节点同时运行、交叉验证,从而保证了任务的可靠性(例如比特币、以太坊网络)。
但是,如果想增加网络的吞吐量(O(n)),那么有两种方案:
第一种方案:
网络中的全部或部分任务只需要得到有限的节点进行交叉验证,从而能够将网络中节点的处理能力分配给不同的任务,提高整个网络的吞吐量。但是这个方案降低了网络的安全性,经受不住大规模的攻击(攻击力量达到O(n))。
第二种方案:
增强网络中每个节点的能力(O(c)),使得即使在保证安全(O(n) ≤ O(c))的情况下,O(n)也会随之变大。但是这种方案在实际情况下也许会导致只有少量能力足够强的节点能够进入到网络中来,从而违背每个人都能参与的公平性原则。
三元悖论仅是Buterin用来解构区块链性能问题的方式,理论上并不严谨和完整,但还是给区块链的研究者们提供了一个问题的切入口。
“破解”三元悖论
三元悖论理论上是不可能被“破解”的。未来的理论研究和工程技术所要做的努力,其实是在保证安全性的前提下,尽量提高区块链网络的吞吐量(scalability, O(n))。
思路一:拆分全网任务
Sharding是以太坊网络中提出的一种网络吞吐量的方式,它的基本思路是将网络任务分为K = O(n / c)份,分别由网络中的一部分节点完成工作,并最终通过一些机制将K个任务组合起来形成最终结果。
这种解决思路其实是将O(n)变小,从而在保证安全性的前提下确保大众用户可以参与到任务的解决中来。这种思路的难点是如何解构任务和如何保证网络的总体安全性。
思路二:提高单个节点的能力O(c)
提高单个节点的能力O(c),网络中的所有任务依然让所有人来处理。
从计算机网络的角度来看,一个节点的能力包含了储存空间、计算能力和网络资源。虽然区块链网络节点的储存空间和计算能力都可以通过在本地扩容来解决,但是在互联网中,网络资源并不仅仅意味着简单扩容,即增加区块链网络节点接入互联网的带宽来获得。
互联网是一个由多种类型的路由器和交换机组成的通讯网络,网络终端通过本地路由节点向互联网中心路由节点连接,以触达互联网的各个角落。互联网中的IP路由结构是一个无标度的随机连接网络,平均路径长度约为12跳(AS层中约4跳),即一条消息在互联网里的成功传递平均需要经过12次转发。
因此,仅仅增加节点接入互联网的第一跳的带宽,并不能够减少整个消息传播过程的跳数,抑或显著提升互联网传递消息的效率。区块链技术中,数据需要被周期性的实时扩散到网络中的所有节点中去,这实际上是一个信息的广播过程。
互联网作为一个地址驱动的转发网络,天生并不具备这样的功能:
互联网中所谓的“广播(broadcast)”,实际上并不是对未知IP地址的广泛消息输送,而是对已知多个地址的分别传送,即由“单播(unicast)”简单重复而成的“多播(multicast)”。
即使考虑互联网的带宽是无限的,由于互联网结构复杂、网络环境不稳定,因此导致了任何一个区块链技术在互联网中的通讯开销都是巨大的。在互联网这个通讯环境里,提升节点的个体通讯能力O(c)几乎不可能。提高节点的接入带宽也并不能提高网络的效率。
因此,我们认为,想要真正提高节点的个体能力O(c),除了对储存空间和计算能力进行本地扩容,还必须大幅改造区块链技术赖以生存的网络环境,寻找一个不同于传统互联网结构的、新的、适合区块链应用场景的信息通路。它就是基于卫星的全球广播网络。
基于卫星的全球广播网络
卫星广播网络由地面上/下行基站和太空中的广播卫星组成。地面上行基站通过Ka波段向卫星传输信息,此波段极窄,可以认为地面与卫星形成了一个点对点通讯线路;卫星接收到信息后,通过Ku或C波段下行,这些波段很宽,可以对地面进行大范围的覆盖。以亚太6C卫星为例,如下图:
亚太6C通信卫星是中国航天科技集团公司所属中国长城工业集团有限公司与香港亚太通信卫星有限公司签约的一颗卫星。其配备了C、Ku、Ka频段共45路转发器,设计寿命15年,范围覆盖了整个亚太地区和中国南海、中南半岛地区。
广播通讯网络的路由结构及其简单,信息发送者通过无线电发射塔或卫星等广播节点直接向其他所有信息接收者传递信息,形成了一个以广播设施为中心的星形网络,所有的信息均仅需通过一跳即可传达。
由于卫星广播在下行时不限制接收基站的数量,实际上相当于上行节点获得了无限的通讯带宽,节点的网络资源O(c)可以理解为已经是无限大。
除此之外,由于广播设施在一个瞬间只能广播一条信息,因此所有通过广播设施传输的数据的顺序已经被排定。这就完全解决了互联网中由于多个路由器同时对不同数据包转发时造成的传输时延不确定问题。
结合以上两个特点,目前在互联网中通过使用较为复杂或高耗能的数据一致性保障方法实现的区块链网络,都可以利用卫星广播网络来简单的实现。并且,在这个环境中,所有节点所拥有的网络资源都是相等的。
因此我们认为,利用广播卫星线路替代互联网,区块链网络提升效率的核心瓶颈(网络资源)就被顺利破解了。
当然,卫星广播网络也有其问题,例如卫星在绝对空间的漂移、云层遮挡卫星信号问题、卫星覆盖范围问题(覆盖全球至少需要三颗卫星)等,但是这些问题都可以通过卫星设备的调整手段或相对简单的算法来解决。在这里我就不多讲了。
另外,广播网络也有利于“解决”分布式系统CAP问题。分布式系统的CAP理论首先把分布式系统中的三个特性进行了如下归纳:
一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值。
可用性(Availability):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。
分区容忍性(Partition tolerance):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
我们来看P的定义:
In order to model partition tolerance, the network will be allowed to lose arbitrarily many messages sent from one node to another.
分布式系统实现中 P 是一个必须项,而不是可选项。高可用、数据一致性是很多系统设计的目标,但是分区是不可避免的事情。
区块链网络是一个典型的分布式系统,能够提供开放的读写和计算服务。比特币基于PoW的区块链技术在保证节点可用性(A)的前提下,达到数据“最终一致性”(不完美的C)。无论是PoS,还是PBFT等算法,都是在CAP的C和A之间进行取舍。
利用广播网络,实际上可以大幅度降低解决CAP问题的难度。由于数据仅通过广播卫星进行单跳传输,所有被传输的数据由卫星自然排序,那么不同节点先后送出的数据到达各个接收节点的时间顺序就是一致的。
因此,互联网中不可预测的消息延迟问题在卫星广播网络中就不存在了。
由此,目前在互联网环境中,需要使用复杂数据共识算法,才能完成的分布式数据一致性条件,在卫星广播网络环境里仅需要考虑丢包现象。在这个通讯环境里,一个兼顾一致性和可用性的分布式系统,有可能被更加简单的设计所实现。
数理互证提供广义可信数据
区块链技术具有其不完备性。比如在区块链的溯源场景中,区块链能保证链上的数据是正确的,但是无法保证最初输入的数据是正确的。我们和专家讨论过这件事,目前来看,还无法用技术手段来解决。
另外就是资产上链,人们试图将资产的权益(股权、债券、所有权、使用权等)在链上进行映射,并通过映射标的(通常以token的形式表示)在账户间的转移表示实际交易的完成。在这个场景中,如何保证链下资产具有唯一的链上映射,也还没有成熟的解决方案。
我们试图利用“数理互证”来解读这个问题,所谓“数”即存在区块链上的数据,“理”即物理世界中的真实的东西。数理互证就是实体世界与网络空间的唯一映射,或称为一条“真实性-唯一性-可信性”的“数理互证”的数据链条。这一目标目前尚未得到广泛实现。
在工业研究领域,这一映射被称为“数字孪生”(digital twin),即在工厂生产的环节中,所有的零部件数量、位置,甚至3D建模的信息,都通过物联网以数字化的形式上传并存储在计算机中,以供跟踪和计算。
在这一环节中,上线数据的真实性由工厂负责自我审查。在智能工厂之外的广义世界中,线上线下数据的映射往往缺乏这一审查机制。因此,我们必须找到一种可靠的标注事件的方法,并且保证标注数据的真实性和唯一性。
由东南大学李幼平院士和杨鹏博士牵头制定的中国国家标准《统一内容标签格式规范》(UCL,GB/T35304-2017)规定了一种数据结构,要求用可靠的手段对任一事件的“人、事、物、时、地”要素进行标注,并支持数据签名以保证数据可靠。
这一国家标准目前正在寻求法律支持,以期能够作为一种公证手段,为线上数据和线下实体的映射提供坚实的依据和事后的审计手段。
最后,我想说的是,比特币这场伟大的社会实验证明了人类仅凭对信息技术的信任感就能够产生巨大的社会财富,而这一切仅仅是建立在“数学互证”的基础上。
想象一下,如果线上和线下、虚拟空间和实体空间可以通过“数理公证”的数据链条建立起一一映射,那么整个人类社会将会变为一个互信的共同体。基于这个互信共同体,人类的国家治理、商业活动、人际交往都会变得更加透明,人类将会真正形成一个共同体,走向未来社会。
谢谢大家。