对话Celer:太多人挤破头都要做公链,却忽视了公链之外的巨大机会
1969年12月,美国四所大学里的四台计算机,第一次通过协议连接在了一起。
这是最早互联网的雏形,当时的网速只有 50Kbps。
回顾这段历史,我们很难知道当时的人们对互联网的看法究竟是什么。
在后人眼里,技术的发展是一本编年史。但对身处历史中的人来说,其实很难想象,当下的某一秒,日后会成为某个特别的时代切片。
历史充满了偶然性。
假如没有冷战,美国国防部认为有必要设计出一种分散的指挥系统,那么互联网的研究便不会开始;
假如1972年没有人提出了开放式网络框架,如今我们所熟知的 TCP/IP 协议也许也不会出现。
Celer Network 是橙皮书最近采访的一个硅谷项目。他们希望像当时的 IP 层协议一样,成为底层公链扩容的开放式网络框架,把不同的公链都连接起来。
声称要自己做一条公链的项目至少有一千家,像 Celer 这样说“我们不做公链”的,也许十家不到。
在这次访谈中,我们与 Celer Network 的CEO 董沫、CTO 刘俊达聊了挺长的时间,按照往常的风格,这篇文章仍然是本次对话内容的纪实稿。
在聊天过程中,俊达说:从技术上来看,互联网很多地方的解空间已经全部被人探索过了。但现在区块链又重新开始探索了另一个未知领域的边界。
技术好像刚刚走过了一个轮回。
现在站在区块链大门前的我们,身处在另一片历史的迷雾中。
每个人都后知后觉,很难看清前面的路到底是什么。
在这样的时刻,橙皮书希望通过一系列的采访,把——这个行业里正经的创业者每天在做什么、在想什么——这些东西,传达给更多关心这个行业的人看。
促进那些在小圈子内、甚至是存在人们脑海里的信息的流动。
打游戏的时候,如果你的地图还没全开,很多地方都是黑的。
这个时候是最艰难的,但这个时候往往也是最有意思的。
对话Celer:太多人挤破头都要做公链,却忽视了公链之外的巨大机会
(以下为完整版对话内容)
我们处于历史的哪个阶段?我们需要做什么?
橙皮书:区块链走到现在,行业内有一种狂奔之后停下来反思蓄力的感觉。目前比较清晰的基础设施建设就是公链,也就是 layer1,同时很多人也达成共识要用layer2和分层的方法来解决扩容的问题。你们是怎么理解 layer2 这一层概念的呢?
董沫:从历史来看,layer1 和 layer2 的关系,有点像个人电脑时代里的 CPU 硬件和操作系统。layer1 是不同架构的 CPU,layer2 是操作系统。从 80 年代以来,硬件和操作系统互相做选择的过程是不断收敛、最终 merge 到最后一套结构上去的。比如 CPU 最终就是有 x86 架构和 ARM 架构,操作系统有 Linux 和 Windows 。中间其实还出现过很多不同架构的硬件,也有不同的操作系统。大家现在都在做公链,可能更多是做 IBM 的事情,但还没有人去做最早期微软干的事情。Celer想做后者。
刘俊达:我觉得现在区块链到了一个需要IP层的阶段。就好像互联网的 IP 层把以太网、Wi-Fi、3G都统一了一样,Celer 的定位是 layer2,让 layer2 统一底下不同的公链。我们认为,底层一定会出现许多不同的公链,但上面去真正支持应用大规模开发、满足大量用户需求,还是要用 layer2 这层服务来做。
公链一定有存在的价值,它有自己的生态系统。但是公链到底负责解决什么层次的问题?这是行业需要思考的。我们认为公链很重要,但 layer2 也很重要。前者是红海,后者是蓝海。Celer 做的是 layer2 的事情。
橙皮书:很有意思,刚才俊达更多地把 layer1 和 layer2 的关系,类比为物理网络和 IP 层之间的关系,但董沫更多是从硬件和操作系统出发?
董沫:这其实要看我们拿来类比的计算机互联网的历史究竟有多久远了。
橙皮书:如果从网络这个角度来看,为什么当初 IP 层可以一统江湖呢?
董沫:IP 层其实是一个马六甲海峡那样的位置,下面所有的以太网、Wi-Fi、3G 这些东西都和它连接,上面http这些东西也都和它连接。它是一个必不可少的咽喉。本质上,我们相当于把整个网络最核心的功能——也就是“多跳网络中,谁和谁连接、怎么去连接”——把这个东西存在了 IP 层。我们也希望 Celer 能在区块链里达到这样的效果。
IP 是一个路由层。但从网络路由来讲,IP 并不是网络惟一的路由方法。网络中有很大一部分用的是大家不知道的协议,很多运营商他们大量采用的是 MPLS (多协议标记交换)这样的路由协议。所以其实 TCP/IP 并没有一统江湖。当然对于开发者来说,它是做到了大一统。
Celer 希望做到下接公链、上接应用,成为区块链里面的一个咽喉。但这个咽喉不是那么容易做的,因为你要把最核心的功能承接起来。现在大家认为区块链最核心的功能是什么?是价值的传递,是交易。这些都是有可能的。价值传递、状态传递、交易,如果都是区块链核心的功能,那我们认为,这样一个类似 IP 层的咽喉,确实是有可能形成的。
刘俊达:大家可能没有意识到一点,layer2 可能天生就是要去扮演这个“咽喉”角色的。因为技术实现的方式,layer2 原生就是“可跨链”的。但现在很多扩容方案出来的时候会说,“我是 xx 公链的 layer2” ——这个思路其实是不对的。你天生就是要去做跨链的事情,为什么要把自己限制在某一条公链里面呢?而且现在越来越多人认为,公链可能不是一个入口。就像现在人们上网不会关心底层的电脑硬件到底是什么。
从设计上来说,我们要做 IP 层,把这套扩容的协议既做到解耦,同时又抽象得刚刚好够用。 Celer 的核心就是一个 layer 2 的扩展方案。我们会去帮不同的公链扩容,提升底层性能。在相对理想化的未来里,会有不同的公链去针对不同场景做不同处理,用户在不同公链里切换。上层的应用会百花齐放,下层的公链也会百花齐放。
橙皮书:但 layer2 不会百花齐放?
刘俊达:开始会,最后不会。因为 layer 2 扩容就只有两条路可以走,一个是链下(offchain),一个侧链(sidechain)。当你说 layer2 的时候,你已经默认自己不做底层共识了。共识由 layer1 来做,layer2 只负责扩容、提升性能。而提性能的技术发展到最后,一定会出现网络效应。就像互联网刚出现时,也有很多其他的竞争协议,但因为这些协议都是开放系统,开源竞争中,最终最好的那一个就会留下来。
董沫:这个过程可能分几个阶段。首先是技术差异化导致社区差异化。社区差异化会逐渐带来项目的价值。有对比大家就会知道哪个项目更好,最终都去选最优的那条路,结果就是技术同质化。而当技术同质化后,社区就不太可能再变化了。
怎么为区块链重新设计一套“ IP 层协议”?
橙皮书:如果围绕“咽喉”这个定位,Celer 想做区块链的 IP 层、区块链的操作系统,那整套东西应该怎么去设计?
刘俊达:这个“ IP 层”目前需要解决的最核心的问题是“扩容”,也就是提升区块链的性能。
现在有三条路摆在我们面前,每条路都可以提升性能,但都需要牺牲一些东西。
一种牺牲是公链的去中心化,修改共识,把同步机器从 1000 台变成 100 台,甚至 3 台。
另一种像分片,牺牲的是 finality,也就是“最后一致性”的确认。在分片里做完最后同步到根链上时,你无法确定它到底是不是一个 final 的状态。分片可能与另一个分片里有冲突,或者在根链上被抹掉。
我们走了第三条路,叫off-chain,也就是“链下扩容”。
链下扩容要用到状态通道,状态通道就像是在需要交易的人中间开一条链下的高速公路,让他们自己完成交易,以此来提升效率。它的核心理念是“只要参与交易的人互相商量好,就 ok 了”。
比如,我们两个人在链下自己来交易,我给你一个写有我的签名的收据,上面写着“我要付给你两块钱”,那你就相当于拿着我的一个白条了。这种交易就立即确认了,因为我没法抵赖。从性能和安全各方面来讲都是比较优的。但它的牺牲是什么呢?流动性。为什么你愿意收我的白条,因为你知道我在链上的智能合约里已经存了一笔钱,一旦我抵赖,那你就可以拿着白条直接去找智能合约兑换。机器是不会跑路的,因此你可以信任我的白条。
就好像我们去星巴克买咖啡,每去一次都会花费三四十块钱。那么,每一次买咖啡的交易,都要走一遍后端整个计算的流程,这样性能就会很慢。但如果你换一种方式,你用一张两百块钱的星巴克礼品卡,那之后买咖啡的交易就都是你和星巴克之间的交易了,后端系统就不需要管了,效率就很高。但这个代价就是你的两百块钱只能用来买星巴克了,你不能拿去用其他的。
橙皮书:这种性能优化,其实是建立在交易双方愿意彼此合作的基础上?
刘俊达:这是一种“乐观优化”。同样一万笔交易,如果只有一笔出现了纠纷,需要去链上仲裁,那我们就间接把区块链的效率提升了一万倍,因为剩下的 9999 笔交易都是 ok 的。
这个思想如果你把它往高一点的层次来看,就是不把区块链当作一个记账的账本来用,而把它当作一个法院来用。在现实生活中,我们每个人合作,如果都遵守规则,就没有人需要去法院打官司。所以,现实生活中的效率很高,因为大家知道法院打官司的效率很慢。区块链可以实现一个百分百公正无私的法院,它只认签名的证据。
橙皮书:这一点其实跟 Nervos 的思路有殊途同归的地方。都是要让区块链做更少、但更必要的事情。
刘俊达:对。这种方式提升性能也不是免费的。但我们认为,流动性的牺牲可以用经济模型来补偿。假设在整个生态里,任何一个参与的节点,如果牺牲流动性的收益大于不作为的收益,那他就有动力进行合作,牺牲自己的流动性。基于这个假设,Celer 想做一套经济系统,让质押流动性能获得收益。
对用户来说,牺牲流动性有点像“你把钱从银行取出来存到支付宝里,再用支付宝去消费”。这对用户来说没有太大问题。但对状态通道运营商(OSP,Off-chain Service Providers)来说,每来一个用户,运营商就要帮忙存一笔钱,这就不太好接受。
之前有人攻击闪电网络,说它会出现集中化的问题。为什么呢?大多数情况下我们不需要与每一个商家或者个人建立通道,我们会去寻找一些公共节点间接地与这些商家建立通道,通过这些节点来进行互联。而在闪电网络的设计中,手里持有大量比特币的人才能成为节点,建立支付通道。这样一来就可能成为中心化的网络。
这个问题本身是无法通过技术解决的。至少在技术这个空间里,它是无解的。但如果引入另一个维度,也就是经济激励和博弈论,用 token 模型也许就能解决这个问题。在 Celer 的 token 设计里,运营商就可以利用 Celer token 去融资,筹备足够的资金成为建立通道的节点,为用户提供服务。
橙皮书:运营商通过融资运营一个自己的状态通道,就好像贷款修一条公路。
刘俊达:对。整个系统中除了状态通道运营商,其实还有其他的服务商。token 的激励就像催化剂一样,会让生态培育出不同的角色。有的角色运营状态通道,有的做融资的贷款,有的做用户下线后的状态守护等等。
Celer 跟其他很多项目不同,它的 token 并不是拿来做手续费的。在 Celer Network 里面就没有“手续费”这样的概念。开发者的应用如果需要,可以直接用底层公链的代币进行交易。比如你是搭在以太坊上的,就用 ether。Celer token 在整个 layer2 的系统里,用于状态守护者网络、通道运营商这些场景。就好像你和某个公司合作,签了一份合同,后来双方起了纠纷,你又暂时不在国内,或者不想自己去处理这个纠纷,那你就可以用 Celer token 去找律师事务所、找证人、找代理人,帮你向法院提交证据打官司。
橙皮书:这一整套设计逻辑是怎么得出来的?
刘俊达:我们其实是这么思考的:围绕“扩容”这个核心问题,到底面前有哪些选择,每条选择又需要牺牲什么样的东西?权衡之后,我们选择了我们认为最优的链下方案。而链下扩容牺牲的是流动性。这一点在技术上无解。所以我们又尝试从其他解空间里引入经济系统和博弈机制,试图从另一个维度来解决流动性问题。这是一步步推导出来的设计结构。
橙皮书:之前闪电网络接比特币,一直接了五六年还没接上去。你们是一个通用的链下扩容框架,要把不同的公链都统一起来,而闪电网络相比你们功能要简单得多,就是单纯做支付。那么我有一个问题:为什么别人很难接上没有为 layer2 做适配的公链,但你们就能接上?
董沫:这个问题得分两个层面来回答。一方面,我们现在很多验证签名的东西是写在链上智能合约里的,如果 layer1 原生就能做支持,那肯定很好。在公链里面有很多 precompile(预编译)的东西,就是一些常用的功能,公链为了减少麻烦会把它直接写成一个操作符,或者写成汇编语言的代码。从长远发展来看,如果公链能有意识为 layer2 做更多预编译的支持,那肯定是最好的。这方面我们也跟以太坊、Nervos 和 Dfinity 这些公链聊过。
另一方面,对于当下而言,layer1 其实也支持得不错。我们可以想想 layer2 什么时候要和 layer1 发生关系?当链下交易两方有争执的时候、或者状态通道要断掉的时候。在这些情况下,我们就要在我们的系统上做补充。一是从代码方面来补,二是从设计上来补。设计上,比如采用类似 Truebit 那样的理念也能提高效率。其实总结下来,无非是谁做的工作更多一点而已。
闪电网络为什么接了这么久呢?我跟闪电网络的团队也挺熟的,我觉得可能有这么几个原因。第一,闪电网络团队在很长一段时间内总共就 4 个人,人力是很大的问题;第二,比特币社区里,比较原教旨主义的人其实是不那么 care 闪电网络这件事的;第三,也是最重要的一点——流动性的问题没有解决。
在所有链下扩容方案里,流动性一直没人解决。状态通道的运营商要去跟用户接起来,需要很多钱存在链上。他自己要变得巨富,才能去帮用户做 relay。这样整个网络其实是很难 work 的。这是一整个系统设计的问题,不是单纯的接入技术的问题。而 Celer 的经济激励机制就是为了解决这样的难题。
未来你的手机是数字世界的代理,它用你的数据为你赚钱
橙皮书:layer2 如果搭好,上面哪些领域可能会长出比较大的果实?
刘俊达:我觉得有很多。我自己比较看好互联网世界里原生的数字资产,我觉得这块会有很大的想象空间。
橙皮书:我们现在已有的互联网原生的数字资产,好像并不算太多?
刘俊达:你想到的数字资产是哪些?
橙皮书:互联网原生的...比如表情包、游戏资产?
刘俊达:我想到的数字资产其实是“数据”。你看 Google 和 Facebook 是怎么赚钱的?其实它们本质上只是把用户的数据集中起来再打包出去卖给广告主。比如我想知道 25 岁到 40 岁的男性的消费特征,这个数据谁能告诉我?没人可以,除了 Google 和 Facebook。但其实这个信息已经分布式地存在了每个人自己的手机里。
也就是说,数据的所有权和收益权是不统一的。虽然现在用户享受着很多互联网公司的免费服务,但他背后其实牺牲了个人数据的收益。从稍微技术乌托邦一点的角度来讲,这种以数据为核心的数字资产可能也是财富不均衡的一个调整。哪怕对许多处于社会收入以下水平的人来说,他们的数据依然是很有价值的。
橙皮书: 如果真的有这么一套去中心化的网络系统,能够 Google 和 Facebook 来做用户个人数据的价值变现,这套系统本身能盈亏平衡么?
刘俊达:成本其实就三方面,计算、存储和网络的开销。你去考虑这样的“去中心化的 Data Market”,数据的计算和存储成本其实分散到了每个用户手里。在数据之上所进行的经济活动是可以 cover 这些成本的。现在很多中心化的互联网公司愿意去做这事,因为它看到收益远比成本大得多。Google 可能每个季度几十亿美元的投入,要为数据盖楼、买服务器,花这么多钱它是一点都不眨眼的,对它来说,这些数据可以产生远远超出这些硬件成本的收益。
只不过之前我们没有很好的技术手段,去对一亿台手机做 query 查询。所以广告商只能去问 Google 这个中心服务器。但现在我们能慢慢地去用技术做这件事,可能做得还不够好,但是够用。比如,广告商可能去问一亿台手机查询数据,只要有 1% 的回复就够用了。
数字世界在未来会占越来越多的比重。在 90 年代亚马逊刚出来时,大家会说在网上卖书、卖鞋子怎么可能呢?但现在我们都不需要思考这个问题了。现在的手机是你进入数字世界的一个入口,但以后手机可能会成为你在数字世界里的一个代理。它能代表你去做一些事,在去中心化的数据市场里,用你的数据为你赚钱。
以平台出发的公司,最后都必须靠垄断才能收取巨额的财富。而在一个 p2p 的网络里是没有垄断的概念的。你的代理可以在一个相对更公平的网络里竞争。从技术本身来说,是用隐私计算这样的方式,从应用场景出发,在保护隐私的前提下,把你的个人数据价值完全发挥出来。
橙皮书:这个未来的确非常有趣。
刘俊达:其实我们在对比中心化系统和去中心化系统时,常常有一个判断指标是“效率”。但在效率的计算上有时候我们容易犯错误。
很多人拿银行和区块链做对比,说银行转账最快,区块链的效率太慢了。但他们忽略了今天银行之所以能用这么高的效率为你服务,是因为在此之前它经历了一个效率更低的信任积累的时期。举个例子,现在随便一家新出现的乡镇小银行让你把钱放在里面,你肯定是有顾虑的。他们需要花费大量的时间,一点点地建立起今天这样的信任,才能有高效率。而区块链从一开始就不需要这样的积累过程。所以这种比较是不公平的。
区块链让你不用信任任何一个实体或个人,只需要信任最小化的数学和代码。没有其他东西的效率能比这种方式更高。因为到最后,这个世界归根结底是数学和代码。这可能牵涉到世界观的话题——用张首晟教授的话来说,数学是上帝的语言。数学可以描绘这个世界。那么,在价值建立的过程中,什么是最小化的信任?数学和代码是这个世界的最小公约数,所以它的效率肯定是更高的。
支付宝和微信做起来不合算的事情,区块链可能有机会
橙皮书:哪些领域能够给区块链技术一定的发挥空间呢?
刘俊达:支付宝和微信支付去做一个事情时,如果他们觉得投入和收益不合算,那这件事区块链可能有机会。走一条农村包围城市的路,我觉得是比较说得通的。比如说,智能家电和电网之间互相结算,这个价格一般在 1/10000 分钱左右,如果走支付宝和微信支付的系统肯定是不合算的。但其实这种结算,智能家电和电网彼此商量好就 ok 了。先从已有系统中特别高成本、低收益的领域入手,或者是现有市场里的统治者看不上的领域。
支付宝其实是一个封闭系统。处于封闭系统的内部时,你感受不到这个系统的边界。国外的移动支付则是一个碎片化的市场。很多时候一起出去吃个饭,大家要先协商好是用 paypal 还是 venmo,用起来非常很分裂。国内的人感受不到这样的碎片化。只有当你出国的时候,你才能察觉到边界的存在,觉得货币兑换很麻烦。封闭生态里每跨一次边界,用户就会感受到一次不便。
在地球上绝大部分国家里,这种移动支付的边界是很明显的。这些封闭系统都很小,很容易就需要跨出边界。假设我们有一个相对民主的 p2p 网络, 一旦接入网络就在封闭系统里,这个网络就可以利用 n^2 的网络效应。接入越多的人,带来的系统就越大、边界越模糊。区块链的边界是不受限制的,用户不用像以前那样关心自己用的是支付宝还是微信,因为你的手机就是你的数字代理,它负责帮你去 handle 底层不同的链。
橙皮书:区块链为什么可以解决封闭系统的边界问题?这个地方我没太听明白。
刘俊达:你想象下中心化系统和开源系统有什么不同,第三方又分别是怎么接入的。在中心化的系统里,如果我有 5 家不同的支付公司,那我需要做 5 个版本的对接。但开源系统不需要。互联网以前是因为 IP 层起来的,因为这是一层足够用的抽象层。开放生态能激发更多的开发者实现更多的东西,最终生态一起分享收益。这种网络效应和一个创业公司去做市场推广吸引用户,效果是完全不一样的。公司有地域限制,但网络天生没有国界。
橙皮书:我知道你之前在 Google 负责 Project Fi。我特别好奇一个问题:过去的互联网发展,网速的提升到底是一个怎么样的过程?网速能无限提升吗?区块链扩容的提升会类似吗?
刘俊达:在通信里面,网速跟频率有关。一个频率能容纳多少比特,这是有上限的,但频谱是无限的。我们之前其实只用了很小一段的频谱。在不同的地区会把一些频谱预留给军方、政府这些机构,所以剩下可用的商业频谱会比较少,现在美国就是把传统的老式模拟电视信号的频谱给淘汰掉了,放出来作为商用,100Mhz 好像拍卖了几十个亿吧。其实 100Mhz 还是很小的。
从另外一个方面来说,网速的提升还跟应用的需求相关。如果没有高清视频直播的需求,网络带宽是不会提升的。技术不会自己发展,它背后需要有商业需求作推力。反过来说,我们不能相信技术发展会有瓶颈。技术会不会发展到某一天就不发展了?这是没办法证明或者证伪的。你只能选择“相信”,相信技术会一直发展下去。这可能又绕回来说到世界观了。
对我们来说,区块链的扩容也是这样。改变共识算法、分片、链下扩容,这几条路都是可以互补的。并不是说做了某一种就不能做另一种。所以 Celer 会很开放,跟各种类型的技术进行合作。因为我们现在根本没办法确定未来的区块链到底需要多大的可扩展性才足够。需求是未知的,所以能尽量做高就尽量做高。当年比尔盖茨说 64kb 的内存就够用了,后来的事情我们也都知道了。如果以后人们所有的信息都要同步到区块链上,那 tps 也许就需要 10 亿。
区块链的未来:social、支付,与金融系统的冲突
橙皮书:V神之前“拷问”过区块链行业七个问题,其中有两个我印象很深——为什么十年过去了,区块链依然没有一个让用户真正使用起来的落地应用?为什么十年过去了,开发者依然不知道要用区块链来开发什么样的东西?我特别想知道你对第二个问题的看法。
董沫:开发者不是不知道要开发什么,而是觉得,开发完应用之后,用户是没法用的。很多有意思的应用,预测市场的augur、p2p lending等等,这些东西都限制于区块链基础设施的完善程度,它没有用户体验。
橙皮书:所以你觉得,其实这些方向都是区块链应用去做的事情,只是现阶段的用户体验还不够好?
董沫:对。比如微支付从互联网开始出现就已经在谈了,快 30 年了依然没有实现。这个事情之前做不成,是因为金融基础设施没有这么高的效率;有了区块链还没做成,是因为没有 scability(可扩展性)。就算可以使用微服务,但payment 依然跟不上。
橙皮书:微支付这个事情,在国内市场是不是可以用微信支付来做?
董沫:对。但在国外不行。
橙皮书:我觉得区块链的 killer app 还是得要一些大众更容易理解的东西。比如像互联网刚出现时的 msn、聊天室?邮箱可能都不算。
董沫:你说的没错。social 在技术领域一直都是原动力。电话、计算机,这些东西能让你产生无国界的 social。在区块链里面,我们现在看到的是游戏,带金钱属性的游戏。比如通过区块链来下一盘棋,谁赢了就可以拿走对方五块钱。区块链可以把这件事做得很好,做成去中心化的信任。这样整个世界的人都可以来玩下棋赢钱的游戏。这个游戏赢钱的过程可能本身不是那么 powerful,但一旦有了这种价值交换的载体,价值交互和 social 的渠道如果紧跟上来就是一个很有意思的尝试。具体要怎么把信息和价值的交互结合得再紧密一些,会是一个系统工程问题。
橙皮书:如果我能跟朋友在微信小程序上打一个赌,把打赌的钱都放在智能合约里,不能耍赖,感觉对用户来说确实是个有意思的场景。
董沫:对,我们后面也会探索这些场景。对我们来说,这种应用的探索是必要的。就像你买一个苹果手机,上面总自带一些计算器、电话簿这样的小东西。发一个新的操作系统,上面不能啥都没有。
橙皮书:就好像 window 系统会自带一个扫雷小游戏。
董沫:对。这个是我们自己要研发的。
橙皮书:除了social,还有什么样的应用有这类特质?
董沫:可能最终还是支付吧。但支付的问题就不在于技术本身了。它的困境其实是来自现有金融系统的阻碍。因为这是金融行业巨头的蛋糕。要动这块蛋糕还是比较难的。在我看来,这也是整个行业最大的系统性风险。
这一点和当年互联网的发展还不太一样。当年互联网是既得利益者的延伸,AT&T本来就是搞电话网络的,后面出现互联网也没有影响。但现在的结构不一样了,区块链是要打破现有的金融机构系统。
橙皮书:当时互联网是不是也动了很多已有的媒体和广告业务的蛋糕?
董沫:对。但从底层的基础设施来看,互联网并没有打破太多东西。对底层基础设施提供方来说,它是不care 的。AT&T以前通过打电话来发广告,现在无非是通过互联网发广告。从修桥修路的人来看,没有区别。但现在区块链动的是整个金融基础设施的蛋糕。这里面会有一些冲突性。
分层架构:让每一层都可以根据未来的情况去做不同的进化
橙皮书:链下做分层架构设计的目的是什么?
董沫:分层架构其实是为了让每一层都能独立去进化。总的来说有两个目的:第一,在其他层还没做好的时候,一层做好了,它能更快地去做 go-to-market;第二,在发布之后,只要我们把层与层之间、包括另外底层的接口,都定义清楚,拆得足够干净,那么整个系统未来就能非常快地进化。就像互联网的分层架构,让每一层都能单独去做新的扩展和创新,最终带来了现在技术的繁荣发展。
Celer 是很简单的三层架构。
最底层是cChannel ,负责去做各个公链的对接。同时这里面定义了一个抽象模型,不仅能实现链下支付,还能把智能合约也搬到链下。除此之外,我们在 cChannel 上把状态通道和侧链集成在了一起,这样给了用户一种能力,当你使用应用时会产生一些 pattern,我们通过 pattern 能够帮你自动检测,判断哪些操作更适用于状态通道,哪些操作更适用于侧链,以此来提升更多的性能。
第二层 cRoute 的功能,主要是为上面提供高性能的 performance。状态通道可以让你和别人间接地互联,就好像有很多条路都可以到达罗马,但到底走哪一条路速度最快?需要状态路由算法帮你选择最佳路径。所谓的“性能”其实就是状态路由算法的效率。而状态路由算法的难点在于,状态通道网络的模型跟传统互联网的链路模型是完全不一样的。互联网的带宽是 100m 就是 100m,它不会变,但状态通道会受到之前交易的影响,所以所有要设计的东西都变了。Celer 自己提出了一套可证明最优的状态路由算法。
第三层是 cOS,它负责真正去接触开发者和用户。这一层有两个目的:一,让开发者能够很容易地利用以前区块链的链上开发经验,减少链下开发的成本;二、让用户能使用这些应用。我们做了很多编译器和虚拟机的创新,让开发者能在 solidity 语言中直接写一些off-chain 的接口。这样可以很快做出链下的智能合约。链上和链下的开发经验还是很不一样的。链上很简单,你就是把链当作后端来用,定义好前端怎么和链上的合约做交互;但链下开发你要自己做很多事情,比如保存状态,自己来 handle 数据等等,这块我们会用 cOS 来帮助开发者。
橙皮书:底层公链目前还在摸索中发展,仍然处在很快的变化中。Celer 要怎么在一个不稳定的变化上面搭建另一套东西?
刘俊达:其实还是我刚才说的,我们要把二层扩展这套东西做得像早期互联网的 IP 层那样,“既解耦,又够用”。每一层的协议之间拆得足够干净,承担起核心功能并且定义好接口,这样每一层都能具备很好的灵活性。我们在 TCP/IP 协议刚出现的时候看不到今天像直播这样的应用,再聪明的设计者也看不到。所以你需要把协议做到“既解耦,又够用”,让未来不会受限于今天的设计结构。分层架构的目的就是让每一层都可以根据未来的情况去做不同的进化。
经济系统设计:解决技术无法解决的经济学挑战
橙皮书:刚才我们聊到,闪电网络这些状态通道解决方案一直没能得到大规模应用,有一个原因是它没有解决流动性问题。那么,你们为了解决这个问题,是怎么用经济激励和博弈论去考虑整个系统的设计的?
董沫:既然 layer2 缺流动性,那么一定要有某个地方产生流动性来作为补充。我们总是需要有某个外部的流动性来作为供给输入。所以我们在经济系统里有一个“锁仓即挖矿”的设计,用户可以把自己的剩余流动性(比如ETH)存进一个合约里锁起来,比如存一笔钱,一次存 5 天,这样能获得挖矿的奖励,新的 Celer token 产生时会按照用户锁仓的比例来分配。
那么问题来了,用户为什么要把自己的加密货币锁起来,牺牲自己的流动性呢?因为 Celer token 可以拿去参与流动性拍卖和参与状态守卫者网络。
流动性拍卖的场景是这样:我是一个状态通道运营商,需要借一笔资金才能运营状态通道。假设我需要借 1000 个 eth,利率是 1%,那我就把这个借钱的需求在网络里发布出来,这个需求会自动变成一个拍卖功能的智能合约,锁仓的人就可以参与竞拍。最终竞拍选择的对象,首先要优先考虑低利率的借款方,其次,系统会选择那些拥有更多 Celer token 的人,有点像 pos 机制。在这个用途里,Celer token 其实类似于航空里程,你过去锁定了流动性为系统做了贡献,得到了CELR token,现在通过使用这个token来得到更高的借款优先级,也就是更高的借款收入。
第二个场景是在状态守卫者网络里面。这时锁仓的 Celer token 可以作为参与这个网络的一种工作权利的凭证。
状态通道有一个常见问题,参与交易的双方,两个人通过通道连着,假如其中一方突然下线了怎么办?不太可能有用户会一直在线。那么在你下线之后,状态通道的法官只认可最新提交的状态,假设对方变成坏人,有可能趁你不在线时向法官提交一个老的状态,以此完成欺诈。
解决这个问题的办法是,当你要下线的时候可以在网络中雇佣一个人来帮你看守自己的状态。但这个人不能是网络自己规定的某个权威机构,这样就成了中心化的网络。这个看守状态的节点又必须是可信的,怎么做到这一点呢?很简单,让他也放一笔同样的钱在链上,如果他没帮你看守,那你就可以拿走他的钱。但这种做法有一个很大的问题,它需要消耗双倍的流动性。这对原本就缺少流动性的网络来说是不可接受的。而且很多时候,作为一个广义的状态通道,在设计上你不希望运营商知道用户的 state 数据。
Celer 采用状态守护网络来解决这些问题。状态守护网络是一种特殊的侧链,有点像 plasma,又有很大的不同。首先,你需要把 Celer token 抵押在侧链上才能成为守护者,以 token 作为工作的权利。当用户下线时,他把自己的状态和支付的 income flow 交给守护者网络,就好比用户说:守护者同志,你帮我看一下我的状态,我付给你 1 块钱/小时的费用。
接下来系统会随机选择守护者进行看守。守护者 1 号、2 号、3 号,如果谁收了费用却没帮用户干活、看守用户的状态,那么其他干了活的守护者就可以把对方的奖励拿走,同时把对方的 Celer token 也一块拿走。
那么,怎么确定有多少人在帮你看守状态?
假设你愿意支付 1 块钱/小时,而现在网络中平均的收入是 10 块钱/小时,那么整个网络平均会有 10% 的人在帮你看守。这样一来就会变得非常灵活了,因为你可以自己决定自己的状态需要多大的安全性。比如你是在做类似改头像这类操作的时候,不需要太高的安全性,那出的钱可以少一点,如果你是在做一笔大额的转账,那可以把报酬设高一些,让更多人帮你看守。
这样一来,其实我们创造了一个新的博弈模型。你可以仔细想想,现在你在状态守卫者网络里保险的东西到底是什么?你保险的不是一个固定的财产,而是在保险一个 现金流。Celer token 在整个状态守卫者网络中代表的本质,就是现金流。一个 Celer token 就代表着“ x 块钱/小时”。因此,当你选择用多少 token 去保护自己的状态时,你其实是在选择:假如出现了纠纷欺诈,你要花多长的时间才能恢复自己的损失。
整个 Celer Network 的经济制度就是用这种第一原理性设计出来的。我们思考这套经济制度时,核心的出发点是要让 token 能够去 承载整个网络的价值。也就是说,当这个网络有更多人使用,在守护者网络或者状态通道运营这些场景里支付、获得更多服务,每个人的现金流就越高,它的锚定价值也就越高。让 token 的价值和整个网络的使用成正比,这是我们设计经济模型的核心要义。
橙皮书:这个经济系统很有意思。这套系统看起来,好像所有板块都齐了。
刘俊达:我们内部习惯用一个词,叫 coherence,系统本身的一致性。我们定位在 layer2 这一层,其实也是一个新的赛道。这个赛道我们去考虑的时候,系统本身思考的完整度还是比较全的。
业内有一些投资人会觉得,现在公链的投资窗口其实已经过去了。我们自己去思考整个区块链的技术栈时,链下扩容这一层,其实会面临很多“有挑战的新问题”。有些人会因为这种问题很兴奋,因为这事之前没有人搞过。
从技术层面来说,互联网可能很多地方的解空间已经全部被人探索过了。但链下扩容是在探索一个未知领域的边界。就好像打游戏的时候,你的地图还没全开,很多地方是黑的。这个时候是最有意思的。