编者按:本文来自36氪战略合作区块链媒体“Odaily星球日报”(公众号ID:o-daily,APP下载)
随着 “不可能的三角” 成为公链领域新的命题之后,一直以来围绕该悖论的讨论就十分热烈。
4 月 29 日,在创新工场区块链媒体见面会上,原为微软总部雷德蒙研究院主管研究员、现创新工场执行董事王嘉平博士针对这一问题,分享了其提出的 Monoxide 区块链扩容方案。
去年 12 月,计算机网络顶级学术会议 NSDI 宣布录用由王嘉平博士及汪浩博士撰写的区块链研究论文,该论文提出名为异步共识组 Monoxide 的区块链扩容方案,可以在由 4.8 万个全球节点组成的测试环境中,实现比比特币网络高出 1000 倍的每秒事务处理量,以及 2000 倍的状态内存容量,有望打破 “不可能三角” 这个长期困扰区块链性能的瓶颈。
王嘉平博士认为,当前云服务时代「规则」驱动了「服务」,区块链的意义在于突破了中心化与受人为因素影响的规则,构建了一个可以保证严格执行的规则,正因为这种技术的独特性,区块链会支撑未来新的业务和应用。
但早期的区块链网络在性能上难有突破,这里的性能不仅包括 TPS,但包括了状态容量,吞吐量跟状态容量具备相关性,仅仅把吞吐量提上去“没有太大的意义”。而早期区块链的单链形式是其性能难以提升的本质原因。
对此,在 Monoxide 的扩容方案中,一个并发的多链系统取代了单链 ,每一个链称为”共识组”,共识组是由多个同质的、功能上完全一致、地位上也完全平等,并逻辑上尽量隔离的独立共识系统的实例所构成,它们并行工作,分摊全网的吞吐、计算、存储的压力,分摊全网状态的维护工作。由于共识组之间完全并行、异步也无需锁定和同步,所以即便某一个共识组发生拥塞也不会干扰其它共识组的吞吐和出块。反应在性能上面,区块链的吞吐量和容量都得到了大幅提升。
王嘉平透露,2019 年 8 月,Monoxide 将上线测试网络,供开发者做技术评估。
此外,王嘉平也对区块链未来的业务场景做了新的畅想,例如,过去在金融支付领域,受到货币兑换、手续办理等因素的制约,跨国支付往往需要花费较高的时间成本,难以高效完成。而在具有公开、不可篡改属性的区块链技术的帮助下,交易双方的信用机制将得到保障,并且大幅提升系统的运转效率,降低业务成本,能够有效推动跨境支付在商业领域中的发展。
同理,区块链技术在银行清算、供应链管理、商品防伪溯源等领域也大有可为,甚至有机会带来颠覆式的改革。
另外,在以海量数据为支撑的人工智能领域,区块链技术的潜能也有极大的施展空间。
数据安全是人工智能行业内的热门话题和痛点之一,区块链技术凭借自身的去中心化、匿名化等特点,不仅能够确保领域内数据共享的安全性及私密性,还可以避免数据孤岛情况的发生。这种区块链技术与人工智能技术的有机结合,可以为智慧城市、医疗卫生、食品安全等领域提供更多可能性。
在星球日报之后对其的专访过程中,王嘉平博士也分享了其对于 Layer 1/Layer 2 以及当前市面涌现的分片技术的看法。
王嘉平:我是嘉平。我之前在中科院计算所读博,当时微软亚洲研究院的沈向洋院长是我的导师,同时也先后在微软亚洲研究院和微软总部工作,一直是做技术研究方向的事情。从微软离开以后,开始跟开复那边学习做投资的事情,也帮开复看一下 AI 领域当中投资需要评估投资者的技术、团队。这是我大概的背景。
我在微软亚洲研究院做的是跟 GPU 图形学相关的,到了美国就慢慢迁徙到为 AI 平台做一些计算基础设施的事情,那个时候就转到了分布式计算、并行计算这一块,跟区块链的技术非常相关。因为我本身是中科院计算所毕业的,我们跟中科院计算所那边有很多合作,那边对口的就是我的同学。这次的工作,我们跟计算所也有很多交流和沟通,后面会进一步跟他们一起合作,论文的另一位作者汪浩也是计算所的毕业生。
我先大体介绍一下。今天会从几个角度。一方面我们这边深挖区块链的技术,有来自于我们对区块链这个新技术的掌握,我们了解到它能够在未来不同的场景中有很多应用,这个应用未必是大家耳熟能详的。这篇论文发表在国际计算机网络顶会上,之前有很多互联网领域工作,比如大数据,spark,那是非常著名的大数据分析系统,都是在顶会上面发表。
我们先从区块链这件事情开始。
现在是一个云服务时代,在云服务体系当中,规则是计算里面最核心的部分。我们日常使用的很多服务,背后都是被这些所驱动。比如做网页上面的推荐或者信息流,比如你打个滴滴,是服务的撮合,你并不知道这些规则的背后是为我们服务,还是为服务的提供商谋取更多的利润,事实上这两点都有。这些规则对我们来讲并不透明,并且可以悄悄的发生改变,尤其是在线服务已经发生到这么大的规模,影响到所有的人,这件事情需要我们大家关注。
这件事情之所以可以这么做,它是有一个本质的原因。因为现在在线服务系统最初源自于这样一个基于服务器的计算范式,服务器的逻辑是说所有的计算都在我的数据中心发生,它隐含了两件事情,一是说这个计算过程完全由我控制,规则由我制定且可以随时改变。这个事情开始的非常早,从最初有 web 服务器时代就开始了,一直演化到现在,当时的服务器是一台计算机,现在大的在线服务商背后是几千几万台服务器在做计算,服务每个人,了解每个人的喜好,针对性的去优化他们的服务质量,或者是优化他们的业务流水。
二是说这个计算过程,我们用户完全没有办法掌握。当年全球最大的搜索引擎公司说我们不作恶,那是因为他可以作恶,这件事情才会成为他的 slogan。这些计算过程必须在服务商的计算机里面发生,导致了它有一个非常天然的理由,你们这个数据都要到我这边来,大量收集用户的公开数据和隐私数据,这是在这个计算范式下发生的事情。
大家看到区块链有数字货币,但是区块链的本质并不是数字货币这件事情,区块链提出一种全新的计算范式,这个计算范式是什么呢?它让这个系统里面的规则在全网公开透明,并且这个规则一旦布施以后没有办法偷偷的改变。如果大家约定好我们认可一种新的规则,那也是可以改变的。
从计算的架构来讲,在前面一个时代,计算是在这边完成,我只把结果告诉你。在区块链新的计算方式当中,首先每一个用户的节点上面,都有一份完整的规则,它知道这个计算应该怎么完成,这意味着当一个规则运行在这个网络里面的时候,规则一旦被部署,所有人参加进来,任何人都没有办法篡改规则,因为大家都知道这个规则,你改了,你做了这个计算,这个计算结果不会被大家承认。使得在这样一个新的计算范式下面,有一些独特的能力。
我们深入讲一下区块链之所以能够这件事情的原因,因为在区块链里面,它的计算过程不是停留在一台特定的计算机里面完成,而是一次一次是被全球不同的计算机接力完成。
这件事情从本质上就改变了原来的方式,原来的计算是在家我完成,硬盘都是我控制的,CPU 上应该装载什么样的代码,都是我控制了,意味着我对上面的计算过程,计算的结果都有绝对的控制。但是在区块链的技术下,首先计算过程不是在一个单独的、特定的计算机上面完成,就意味着我们没有办法通过掌握这些计算设备来掌握计算过程,这是区块链最本质的事情。在这个接力计算过程中,图中黄线,比如说第一步的计算可能是在这个节点,第二步就到另外一个节点,跳来跳去,在跳转的过程中,我们没有办法预测下一次计算会在哪个节点完成,但是它有基于 P2P 网络协议把数据或者计算的结果过程同步到整个网络上,大家都能看到。这是区块链技术的本质。
现在大家看到比特币,只是这个技术支撑的应用而已。一个新的技术出来,看它到底有没有价值,归根到底是说这个技术是不是有一些新的能力,是以前的计算技术没有办法做到的。如果你真的是做了以前没有办法做到的事情,你一定会有潜力,一定会能找到以前因为这些技术的缺失而没有达成的新的业务,没有被满足的需求。这部分前所未有的能力,是实实在在的技术突破。
在业务场景可以非常完备的数字化和形式化的前提下,计算可以构建一个不为人为因素所控制的,牢不可破的规则,并且可以使得这个规则被严格执行。在这个技术之前,我们人类制定了很多规则,花很多精力,监管也好,事后处罚也好,努力使得这个规则被严格行。但是这件事情很难得到完全保障,因为里面是人在参与其中。但是区块链至少在一定的限定范围内,这些相关的规则能够完全被数字化和形式化,有了这个前提,区块链就可以使得这个规则被严格执行,没有人能够篡改。正因为这种技术的独特性,区块链会支撑未来新的这些业务和应用。整个行业大家都在找区块链应用市场。
当下区块链这个技术有比较明显的一个技术层面的问题,它会有一个性能问题。在区块链系统当中,要求每一个参与的计算机都同步整个网络里面的状态和信息,这个架构相当于它企图用一台计算机装下整个世界的业务,就导致所有的区块链系统全网的性能实际上只有一台计算机的通讯能力和计算,包括储存,就是为什么比特币这么慢的本质原因。它的解决方案也是挺显而易见的,因为工作量很大,我们其实已经有那么多计算机,是不是可以把整个网络的工作量分一分,用不同组的计算机去参与分片的工作,这是一个大体上的思路。分而治之的思路,在互联网的发展历程当中,一次次地为互联网系统的性能提升做出了卓越的贡献。
比如分布式计算系统,这是(因为)当时大数据系统数据量非常大,一台机器根本没有办法去计算和存储所有的工作量,它有一个很好的方法:把所有的工作量、储存数据和其相应的计算切成好几块,比如切成一万块,让一万台电脑一起算,这个叫做伸缩性。伸缩性并不是把一件事情的工作量变小,工作量摆在那里不可能变小,但是伸缩性的意思是说我可以把这个工作的事情切分成好多块,让很多计算机参与进去,所以我不需要去打造一台非常巨大的计算机,把平时用普通标准 SKU 买到的计算机堆积到一起来工作,完成一个非常巨大的工作量,这是所谓的伸缩量。
我们的论文里就提出了(异步共识组)概念,把整个网络的共识和计算分成好几个组,分开执行,它们互相独立,并行工作,去分摊网络里一部分工作量,包括储存、通讯、内存里面的计算,全部分开来做。这个思路听起来挺直接的,但事实上在区块链系统里面,要完成这样一个设计,并且可以保证它的安全,同时保证原来公平开放的特性,是非常有挑战的。因为是相比原来互联网,互联网技术比较容易,都是在内部部署的,不需要考虑里面有恶意的节点,因为内部部署可能电脑会坏掉,但是不会捣乱,不会干坏事。互联网讲究容错,允许机器失效,突然宕机了。但是在区块链系统当中,因为它是公平开放的,任何人都可以参与进去,就意味着它不仅仅是需要容错,同时还要保证安全,这就意味着他有能力通过协议、密码学、共识技术阻挡得了少量的恶意节点的出现,这是在区块链系统当中实现分而治之设计思路比较挑战的地方。
我们做到了这个事情,论文里有更细节的资料,不展开论文的细节。我讲讲论文里边给出的结果,我们到底做了一些什么东西。
这张图是一个实验实测的结果,我们把我们的系统、算法实现出来,租用了一千多台计算机,这个计算机分布在世界各地,现在有云服务,我比较方便做这个事情,租一些机器,构造一些节点,然后把这个算法部署上去。测试这个算法需要给它一个很大的工作集,这个工作集里面都是一些交易,让它去做快速的处理,从而去测试它到底能够达到多高的吞吐量。
我们这个工作本质上是为了改善区块链性能,所以我们讲到性能这个事情,它有两个非常重要的指标。一是吞吐量,所谓的 TPS,但里面还有一个非常重要的事情,叫做状态容量。这个状态容量的意思是什么?因为区块链上面要存每个人的信息,不能放在硬盘里,放在硬盘里是历史交易记录;需要放在内存里面,让区块链验证交易的时候随时能够访问到,内存里面放的是每个人的用户状态,或者叫账簿。前面试图把整个世界放在一台电脑里,就意味着不仅仅是吞吐量被限制住了,状态容量也被限制住,因为一台电脑 16G 内存是正常,如果你要是一台电脑有一个 T 的内存,整个互联网没剩几台,这是一个状态容量的性能指标。
吞吐量在业务层面意味着流量,意味着用户的活跃度。跟以往很多区块链项目宣称的不一样,在我们的系统里面,这个吞吐量或者 TPS 从来不是一个定值,所谓的伸缩性的意思不是说给大家报告一个,我到达了一万 TPS,而是向大家展示一个能力。你只要给定足够多的计算资源,你把这些计算机放进来,那么我们整个网络的吞吐量就可以线性提升。当然我们做试验只做到了这个规模,做到了一千多台计算机上面部署四万多个节点。但是从这个线上看,这个线的横轴是说这个网络被切分成多少个片,最高切分到 2048 个点,但是在不断切分过程中,它的吞吐量一直在线性上升。这是所谓的伸缩性。很多项目就说我 1000TPS,然后就结束了,这个并不是伸缩性。它可能做了一些改善提高了一下,这个没问题,但是伸缩性的定义是说,我给它更多的电脑,它能够跑的更快,这是伸缩性。
另外一点是状态容量,这是非常关键的指标。它意味着这个区块链系统可以记录多少用户的状态,意味着这个系统用户量的天花板。我们现在看每一个真正有实际意义互联网业务,哪一个不是千万量级的用户量,但这个指标在以前的区块链项目当中很少被提到,因为以前所有的技术改造,大家都把目光关注在共识算法上,我用这个共识、那个共识,但事实上共识更多的是保证安全。如果我们要做性能,实际它是个分布式并行计算协议层的技术,包括里面的数据组织和结构上的数据。以前状态容量这个指标,几乎从来都没有得到过提升,一直就是一个单机容量。但是在我们现在这个系统里面,状态容量也可以随着更多的计算机参与而得到线性提升,这个线性提升不打任何折扣,比如我们分了四个组,就是 16G×4。整个线性提升是有天花板,现在论文当中动用了这么多电脑,至少我们现在还没有触碰到天花板。比如我们现在 2048 个分片,全网达到 10000 多的 TPS,整个状态容量是几个 T,这个天花板是存在的。当我们把它分片分到几十万的量级,应该会到达一个天花板,到达这个天花板的时候,它的吞吐量和状态容量,其实是没有办法容纳更多的机器参与进去,这是分片数,并不是说计算机,计算机可以多,一个分片内部可以有好多计算机参与。到了那个时候是一个千万 TPS 的量级,是几个 PB 数量级,这是一个理论上限。但是从现在互联网规模的业务量来看,这个体量足以满足比如支付宝整个业务量。
这是论文的一些信息。在信息特别不对称的领域当中,尤其是在区块链这个领域,我们评价一个技术,最好的是你把这个技术写成一个论文,拿出这个行业里面最懂的的专家让他们去评审,他们会告诉你,他们接受这个论文是最好的答案,他们认可这个技术,有创新性,并且这个技术是正确的。NSDI 在这个领域当中是蛮难投的,因为它收的少,一年收不到 50 篇的论文。AI 动辄都是收几千篇论文。据我所知,区块链的论文在计算机网络会议当中还是挺少见的,今年整个会议当中只有我们一篇是区块链的论文。
高性能、高容量的区块链技术支撑,是实现落地业务应用于各种业务场景的关键所在。区块链已经部署一段时间,但真要有一个切实的应用放在上面,根本撑不了。互联网已经是很高的标准,它把每个用户的预期、业务的预期已经拉到非常高。区块链体量和规模要跟互联网业务齐平,才有意义,这样使得区块链至少在技术层面——足够的性能和容量支撑这样的业务和规模,我们这边最关注它底层的基础设施。
接下来跟大家一起探讨聊一聊。就像互联网当初开始一样,区块链如果要去找切实落地的应用,不是一件那么快落地和可以着急的事情。
比如 VoIP,从当初的互联网来看,大家觉得这是一个特别脚踏实地的业务,但如果我们放到现在去看,这个业务有吗?有。但这个业务真的是互联网最有价值的业务吗?完全不是。我举这个例子来看区块链,区块链也能够从老世界里面找到一些业务,搬到区块链上面去,有些有价值吗?确实有价值。但是我相信这些事情很有可能并不是未来区块链真正能打造的新的数字世界里面最重要的业务。数字世界里面最重要的业务,很有可能是我们现在根本没有出现的。在当下这个阶段,我更相信、更多地关注基础设施。不管上面是什么业务,底下的吞吐量,存信息的需求一定会有,这是区块链底层在做的事情。
根据区块链现有的特性去猜测,我们能够有几个方向,或者有一个思路,未来区块链上面可能会支撑什么新的业务。
前面讲到区块链本质是规则不可篡改,那就意味着我可以用计算来构建信任,而不是去找背书,站台。用计算构建信任,这个方向上现在其实是有一些业务,比如工业链金融、食品安全,防卫溯源,这个事情从业务层面来讲,它是让这些信任关系可以传递,各个不同产业上下游的公司可以互相协作,这里最大的意义是什么?区块链干的不是业务本身的事情,而是给他们业务增加一个很好的湿润剂,比如我做溯源,我上面放的信息就是溯源相关的信息,我上面的计算就是跟溯源相关的计算,我不能任意部署别的计算,我也不能任意把你的数据拿去干别的事情,有了这么一个技术所保障的信任技术,这就使得大家更容易相信这件事情,大家更容易参与到这件事情,那么业务就比较容易开展。这个方向上已经蚂蚁金服和一些其他的联盟链的公司在做这件事情。从本质来看,倒不是说区块链本身在承载什么样的计算,而是说他给了大家一个可以去相信的支点,这个支点不是任何人可以去背书,我们相信的是这个技术本身所带来的能力,它的信任保证来自于密码学、共识技术。这是第一个方面。
第二件事情是用计算保证执行,免得后面扯皮,钻空子。现在几乎在所有的规则执行过程中,是有人的因素在里面,一旦有人的因素在里面,不可避免会有潜在的问题。像征信、税务方向上,保证执行这件事情会有很大的价值。如果区块链的业务更多的深入到社会的每个角落,那我们写一个借条,就在区块链上面写,放在区块链上,没有人能够篡改它,一直在那里,而且它可以用加密技术。区块链有一些隐私计算技术,可以被验证。但是它的信息内容不公开,有好多密码学的领域在做这个事情。比如我们要验证一件事情,我兜里的钱比你多。以前你报一个数字,我报一个数字,问题是这个数字就泄露了。现在密码学当中有这样的技术,你不用报,我也不用报,我们可以做一个计算,最终的计算结果可以给出一个结果你的钱多还是我的钱多。这件事情所有人都可以验证,但是大家不知道你的金额是多少。隐私计算这部分东西跟区块链技术是蛮天生的,这边也需要技术演进,很多隐私技术比较慢,这部分需要技术推演。像专利保护也是,如果计算机可以保证执行,可以使得专利保护这件事情变得特别廉价。
第三个方面,让业务自证清白。自证清白的好处,对于业务本身来讲,自证清白是规避风险,明晰责任。我已经自证清白,说明这个事我本来干不了,出了问题别找我们。但是也有一些人不想自证清白,想浑水摸鱼。如果整个行业当中,有些企业已经自证清白,将是一个良币驱逐劣币的过程,这是一个正向的循环。在这个事情上,我觉得有很大的想象空间。
我举几个具体的例子,比如医疗卫生、智慧城市,这类一部分是公共服务,一部分是跟个人相关。它都需要做一些公有数据跟私有数据相关的计算,做一些服务。比如医疗卫生跟保险有关,要评估你,但是不能把这些数据直接送给保险公司,这个不行。
比如智慧城市,一定是有好多公司参与,这些公司一定或多或少会触碰到这些敏感数据,这些公司能不能自证清白:数据我用了,但是我没有干不该干的事情。如果他能自证清白,大家就能信任这些公司,也更愿意去拥抱智慧城市这样的概念。因为它是有很多好处。但是我们要把参与在里面的企业潜在的风险规避掉。这是自证清白。
自证清白在互联网领域有非常多的业务,至少对我们用户是有着实的好处,但是它对公司现有的赢利模式会提出巨大的挑战。新的基础设施的更替,最终会导致整个赢利模式的变化。以前能够赚钱的方式,现在没法赚钱。相信从互联网到区块链的更替也会发生类似的变化。我从投资的角度去看这些事情,我们会看里面一些端倪的发生,虽然有点小,但是它是不是走在这个方向上,是我们判别这个事情是不是靠谱的关键点。
从业务自证清白来讲,并不仅仅是只有区块链这一个技术,还有其他的技术也包含在这个里面。当年苹果就提过这个概念,端到端加密,这是用来个人通讯。比如谷歌做一个邮件系统。这些系统都是端到端加密,就可以自证清白,你的数据我压根没有看,我也不会拿你的数据干别的事情。
说句实话,区块链这个行业信息不对称的很严重,有些人吹区块链是万能的,明显不是。没有一个技术是万能的。当然一开始大家对区块链有些误解,觉得区块链是一个不可篡改的数据库,这件事情是不对的。区块链的本质,它让这个计算规则不被改变。区块链上面计算所涉及的数据,建立的状态,可以是任何的数据结构,这件事情在以太坊里面已经体现出来。第二个事情是说,它真正不可篡改的不是这些数据。如果规则里面包含篡改,修改这些数据的规则,这个数据就可以被修改,没有问题。真正不能修改的是规则,这个规则本身不能修改,才导致了这个技术本身最独特的地方,这也是未来它去做新业务的支点。当然它不是万能的。
有两个很关键的地方,第一区块链上面所要的这个规则,这个规则要能够被非常完备的数字化和形式化。昨天有教授问我到底能不能用区块链来解决,也许未来可以,至少现在不可以。道德这件事情怎么形式化?毕竟我们是用计算机技术来支撑这个世界。前提是这个东西能被计算,要是不能被计算,计算机帮不了什么。但是这条线上,有很多的领域,把一些以前不可计算的东西、没法形式化的东西、没法很好数字化的东西数字化了。
有些甚至是物理层面的,比如说 GPS,以前你在哪里,这件事情没有办法数字化,没有办法量化。地名也是很难计算的,因为它需要有一层数字地图的映射才能知道你到底在哪里,然后有 GPS,有了整个全球的数字地图加上 GPS,才把位置这件事情映射到了互联网上,把它形式化,数字化。
比如社交网络做了那么多,整个社交图谱存在以后,我们才把社交关系影射到了互联网上。说白了,你是不是个名人,以前没法计算。现在你的社交关系被影射到网络上,我可以通过一些信号来算你是不是名人,是不是一个大 V。比如小微银行贷款也是一样的,我怎么知道你是一个有信用的人,信用怎么被计算,也是依赖于相关的数据信息被映射上来。区块链也是一样,区块链要达成这件事情,也是说区块链涉及到的规则要能够充分被形式化、数字化。区块链所涉及到的这些信息,这些信息影射上来以后才成为据,它得上到链上,或者以某种可靠的形式形式化,到网络当中来,那么它才有可能去触达一些新的业务。虽然区块链做的事情跟互联网做的事情是蛮不一样,但是对整个行业发展的推演过程有很多可预见的。
这也是第一次宣布一件事情,我们对区块链不仅仅是停留在学术研究的层面,我们会把论文的成果转化成产品级的实现,会有在线的区块链系统。我们计划在 8 月份会有测试网的上线,这是第一个里程碑,当然后面还会有。
Odaily星球日报:目前除了分片技术以外,Layer 1/Layer 2 也是一种扩容方案,请问王老师如何看待这种扩容技术?
王嘉平:现在有一类 Layer 2,它冲上来号称做跟 Layer 1 一样的技术,比如它也号称我要做高性能,我用 Layer 2 来做高性能,这件事情没道理。我们之所以把技术分成两个 Layer,就意味着它们一定有不同的任务要去解决。如果是同一个任务,它没有理由分开。
我具体讲讲 Layer 2 有什么东西是 Layer 1 比较难解决的。我们做高性能,要吞吐量非常大,容量非常大,但是所有的计算机系统,吞吐量和延迟是有矛盾的。我的吞吐量大,通常就是每一块都很大,我可能要攒攒足够的任务一把完成,就意味着你要攒的过程中,就有引入延迟。不仅 Layer 系统,包括网络传输系统都是这样:如果你要吞吐量大,你的延迟就大。这件事情很有可能是 Layer 1 解决不了,而依赖于 Layer 2 来解决这个延迟问题,这是一个技术站上的特异性。
为什么 Layer 2 有可能解决 Layer 1 不能解决的问题?那是因为 Layer 1 一旦架好,所有的(应用)都跑在它的上面,它就是一个单一技术,所以它上面的技术必须通用。但是 Layer 2 不一样,一个 Layer 1 上面可以部署好多 Layer 2,就意味着 Layer 2 可以针对特定的业务场景去做优化。比如闪电网络这个逻辑不通,但是假设这个东西成立,两个人之间会有频繁的交易发生,我们自己开一个通道交易,交易完了再送到主链上去,这是一个很好的想法。但这是一个垂直场景发生的事情,如果它成立的话,Layer 2 可以做,做完了以后不仅可以提高吞吐量,也可以降低延迟。
Odaily星球日报:为什么闪电网络逻辑不通呢?
对于闪电网络来讲,有个问题是这个前提是不是成立?前提是否成立可以验证。我们是不是世界上有那么多的交易结构,我们两个的交易结构相似吗?把以太坊历史交易拿来跑一遍,看看里面有没有这样的交易结构,但是没有人做这件事情,都没有分析过他们提出的这个假设是否成立。
我举一个正向的 Layer 2 的例子,比如 0x 是一个典型的 Layer 2,但是解决的是垂直业务问题:下单的撮合,这是非常有道理的 Layer 2,这是非常优秀的 Layer 2,它就是解决 Layer 1 没解决的问题。为什么 Layer 1 没解决呢?因为这是一个垂直场景的问题,不应该放到 Layer 1 里面去。Layer 2 去解决,而且把它解决的很好,节省了很多吞吐量,延迟也很低。这就是一个非非常优秀的 Layer 2 的例子。
Odaily星球日报:现在很多区块链都在做分片,这些分片技术会哪几块,你比较看好的是哪些分片方向?
王嘉平:分片没有太多的方向。区块链有通讯的工作量、计算的工作量、储存的工作量、内存的负载。
之前有些(区块链)工作没有做彻底,比如它做了交易分片,但状态没做分片,分片不完善。虽然不完善,还提了一个概念,把自己叫做交易分片;也有人说我做了状态分片,但如果交易没有分片,就会是瓶颈。
我们这边强调你肯定要全部分片掉,你从通讯、计算、交易的处理、交易的执行、到状态的维护,肯定是要全部分片掉,才能有一个整体的性能提升、容量的提升。全分片一定是唯一正确的方向,因为你不是全分片,这个分片根本没有意义。
Odaily星球日报:做成全分片有技术门槛吗?
王嘉平:有技术门槛。一旦全分片的话,就意味着每个分片内部计算的时候,信息不完备,不像以前以太坊一样可以非常容易的去访问这些数据,这些数据一旦分开以后,这个数据根本不在里面。
我们就提了一个接力计算的事情。涉及到你这个分片的计算,先在你这里算,算完了,你出一个证明说,我这里已经算完了,该改的状态已经改了,再到下一个分片,你这边接着算。这需要良好的设计,不仅仅是你要告诉别人我做了这件事情,在区块链系统里面还需要证明我前面已经做了。而且要保证安全、不能伪造,这是设计中很有挑战的地方。
还有一个问题,像挖矿系统,是通过算力来保证,一旦分片,每个片里面的算力就会下降,这是论文里面的第二大问题。分两片,一片是解最终原子性的问题,第二个我们起了一个名字叫连弩挖矿,我们当时讨论半天,后来起了一个中文的名字。