对话QuarkChain:被“扩容”带歪后,公链应该怎么走?

公链这条赛道注定要用钱和血铸成,最后的赢家可能只有一两个,需要尝试和探索的方向却还有很多。

对话QuarkChain:被“扩容”带歪后,公链应该怎么走?

和周期的谈话从去年就开始了,断断续续聊了很长的时间。从 QuarkChain 最早做分片,到后面转向异构分片的路线,再到他们自己做了新的共识算法,这期间,每过一段时间,周期总会来北京的书店找我们聊聊,说说他们最近的一些新想法。

周期是 QuarkChain 的创始人和 CEO,长期 base 在硅谷,在创业之前他是 Google 和 Facebook 的软件工程师,主要研究高性能系统。之前我们介绍过很多公链,QuarkChain 的思路也挺有意思,他们之前是做分片的,后面依托于根链+分片链的双层结构,希望在分片上接入许多不同的异构链,也就是共识算法、账本模型、虚拟机、代币经济学都可自由配置的链。

通过一条根链向许多分片链收税的形式,QuarkChain 想解决的问题是,让现有的区块链联合起来组成一个大联盟,达到“算力复用”+“协同挖矿”的效果,从而使每个参与者从中享受到更好的安全性保护和更好的去中心化特性。

这背后代表的,其实是周期自己对整个行业现状的一个比较非主流的思考:他认为当前整个产业界最关键的问题,并不是大家炒了两三年的扩容故事,而是随着项目越来越多,整个区块链世界的崩裂与被稀释所带来的危机。这种危机带来的是零和游戏,而我们需要另一场正和游戏。

公链这条赛道注定要用钱和血铸成,最后的赢家可能只有一两个,需要尝试和探索的方向却还有很多。尽管最近有了官方的支持,可以预见政策上对很多国产项目会有利好,特别是主打技术创新的联盟链与公链等基础设施项目,但我们不能忘了,整个公链赛道仍然处于非常痛苦的摸索阶段。在技术成熟、能产生大规模应用之前,公链怎么继续走下去是个大问题。

QuarkChain 的想法是,在目前这种山寨币的行情下,做散户社区不一定会有很大的意义,而像其他技术型的公链项目去频繁做开发者社区、举办黑客松活动,吸引开发者来做应用,效果其实也很难衡量,因为 DAPP 目前属于疲软的状态,可预见性的爆发遥遥无期,并且不同公链同质化严重,DAPP 在不同平台都可以运行。

换句话说,以前大家理解的公链生态就是「主网上线」 + 「找尽可能多的 DAPP 在上面开发」,现在这套思路已经不行了。Polkadot 和 Cosmos 因为一键发链有了新的故事和玩法,QuarkChain 对于主网后的生态建设也有不同的理解,他们希望能通过「根链+分片链」与其他社区组成大联盟的方式,去建立另一种生态。

这篇文章是橙皮书对 QuarkChain 创始人周期的访谈记录。对于这套有点另类的技术方案最终能否取得成功,尤其是异构分片这种技术思路的选择对错,我们现在还无法做出判断。但周期的思路,可能是我们接触到的最 Bold 的一个了。我们希望把公链玩家这些不同的思路和观点都呈现出来,或许对行业的探索能有所启发。

对话QuarkChain:被“扩容”带歪后,公链应该怎么走?

 1. 关于行业的现状

橙皮书:其实最近几个月来我们一直是比较悲观的。一方面看不到公链赛道里太多破局的希望,另一方面 DeFi、DAO 这些故事还属于圈地自语。你怎么看现在整个行业的状态?

周期:我个人的判断是,整个行业从 17 年那波 hype 之后,其实被带歪了一个主要的方向,就是“扩容”。扩容是一个重要的问题,但是还达不到一个致命性的问题。虽然区块链是很慢,但现有的用户还是用得挺好的,可能偶尔出现一个加密猫堵住了,但大部分应用并没有触达到扩容的瓶颈。整个行业在公链这波投资上砸了很多钱,里面很多项目其实是以太坊 2.0 的变种,等这波项目上线后,真的能产生扩容所带来的价值吗?这是要打一个问号的。

橙皮书:很有意思,你觉得扩容并不是最关键的命题。

周期:我认为真正关键的问题是,区块链的价值是由社区和共识组成的,同时它被算力保护,但现在,社区、共识和算力这些资源都在不断被稀释。

比如一开始这个圈子里只有比特币,大家只用比特币,也只挖比特币,后面慢慢又有了新的币,区块链的社区开始慢慢分化,挖莱特币和挖比特币的成了两拨人,持币用户可能有重叠,但社区和共识被稀释了。

而比稀释更严重的是割裂,比如以太坊社区和比特币社区,不管是矿池还是开发者都是完全不同的群体。后来冒出越来越多的新项目,甚至出现像 BSV 和 BCH 这样的分叉,不仅分裂了社群,还分走了算力。

原来比特币可能很值钱,但按这种方法分下去,你不知道整个蛋糕是变大还是变小,最终这个游戏是零和、正和还是负和游戏。不断有新的币出现,而且越来越多。

橙皮书:我同意 BSV 和 BCH 这种分叉对整个行业是有伤害的,它分割的是存量市场,但新的这些项目应该是增量的?

周期:取决于增量的定义,我定义的增量是必须带来新用户。以太坊肯定是带来了新的用户,但其他的公链项目我觉得要打个问号。但其实你可以看到,对比特币社区来说,他们肯定还是起了稀释的作用。

橙皮书:有点像军阀割据,各方都在抢占土地和面积。但这种阶段会不会是行业必须经历的过程?

周期:也许是,但这种稀释和割裂的确在产生危险的影响。整个盘子目前就这么大,很多项目挤进来,各自为战,互不相通,实际上把共识,社群,甚至算力都分散了,各条链的安全性因此非常脆弱。很多人都在谈怎么解决“不可能三角”的问题,但实际上,不可能三角并没有被解决——甚至从每一个维度来看,我们任何一角都没有很好的解决。也就是说,除了安全性,去中心化这个区块链的基础特性也并没有达到。

安全性方面,基本上可以认为,除了比特币和以太坊,绝大多数链都是不安全的。比特黄金(BTG)去年被攻击了,一千多万美金被双花,随后就被一些交易所下架了,这些交易所要求 BTG 要赔偿,但是 BTG 团队拒绝赔偿。ETC在今年年初也被攻击了,一百多万美金被双花。

值得注意的是,这两个项目都是在 CoinMarketCap 上市值排名前三十的链,他们的算力应该也算不错的,其他比 BTG 和 ETC 小的 PoW 币,理论上被攻击的概率是很高的。

为什么会这样呢?这跟大家平常想象的安全性好像有很大的出入。其实是因为这里面存在一些严重的误区,比如 51% 攻击的问题。

如果分母指的是当前这条链上所有在挖矿的算力,那的确需要 51% 算力才能完成双花攻击,但如果分母指的是同一类型算法或者同一类型机器在挖矿的算力,那么你只需要 5.2% 的 ETH 算力,就可以攻击 ETC。

因为很多算力是通用的,各个链都可以挖,尤其是算力还可以被租赁,这种情况会更严重。我们算过,如果租赁算力来攻击,可能一个小时只需要四千美元就可以对 ETC 发动攻击。所以很多区块链网络的安全性是存在潜在危机的。

橙皮书:如果安全性这么差的话,为什么其他链还没有被攻击呢?

周期:第一,没有被攻击不代表不会被攻击。第二,因为黑客攻击也是有一些社会成本的。黑客需要考虑攻击能获得的收益。比如,如果你对一条中型的链进行攻击,可能成本会比较高,但潜在收益也高。如果攻击的是小链的话,可能很难通过流动性完成套现,那他可能就不会这样做了。

橙皮书:所以理论上,现在对 ETC 和 BTG 进行攻击的经济动力是很强的?但这两条链为什么后续没有继续被攻击?

周期:一个原因是交易所给 ETC 和 BTG 网络增加了出块确认的时间,本来可能是 20 块的 Finality,后面改成了 100 多块的确认时间。另外一方面,主流交易所的风控也做的更完善了。当然,延长 100 多块的确认时间,对用户来说体验肯定是受到损害了。

橙皮书:后面新出的项目大部分用的是 PoS,你觉得他们会有这个问题吗?

周期:PoW 的安全性大家算认识比较多的,它的攻击成本很好算,就是双花攻击的成本,但 PoS 还没有证明自己,我们对 PoS 的认识也很不足,攻击成本的定义并太清晰。它可能遭受到更多类型的攻击,我觉得并不乐观。

橙皮书:有人认为 51% 攻击是强者胜出、弱者死亡的自然淘汰规律,它对链进行主动选择,不够强壮的就倒下了,这是一种特性,而不是一个漏洞。你怎么看待这种观点?

周期:作为一条公链,需要帮用户承载很多的资金,如果一条链很容易被双花攻击,作为用户,我肯定是不会把自己的资产放在上面的。但很多小链他们一开始出现的时候体量就是很小的,自然淘汰这种说法,我认为对小链来说是不太公平的。如果有办法能让很多链在初步成长期获得更好的安全性,解决 bootstrap 冷启动的问题,为什么不这么做呢?

橙皮书:如果能降低新链的启动门槛肯定是有意义的。你刚才提到,很多项目除了安全性,还要面临去中心化的挑战,这个挑战在哪?

周期:去中心化的定义方法比较常见的是测量运行一个节点的成本是多少。但我认为还有另一个非常值得关注的数据,其实是矿工单独出块的成本。单独出块指的是不需要加入矿池就能自己挖矿。

运行节点的成本很好算,现在只要有单核或者多核的 CPU,几个 G 的内存,几个 T 的硬盘存储空间,换句话说,一台好一点的电脑就能跑起来。但是如果是要单独出一个块的话,首先要问的问题是,在什么样的情况下,矿工更愿意自己去挖矿出块而不是选择加入矿池?我们问过一些矿工,得到的数据大概是,在自己占有千分之一的算力的情况下。

这个数据意味着什么呢,换算成比特币网络,差不多等于一个星期能出一个块。也就是说,如果一个矿工能做到一个星期出一个比特币区块,那么他就会更愿意自己挖矿而不是选择加入矿池。这个数值应该算偏低一些,更多情况可能会是千分之几。

如果用以太坊网络来算的话,千分之一算力的成本,差不多相当于一百万美金,比特币网络应该更贵。所以,运行节点很容易,但是能单独有效出块的成本还是很高的。而我们认为,单独出块的成本是衡量一个网络去中心化问题的重要指标。如果过多的把注意力放在运行节点的成本上,而忽略了单独出块的成本,那我们解决的不是去中心化的关键问题。现在单独出块的成本太高了,这也是我们想要解决的问题。

当然还有扩容,这个大家谈得很多了,很多团队致力于解决这个问题,但就像我前面说的,我不认为扩容是里面最急迫最关键的问题。

2.解决方案:异构分片,根链收税,算力复用,共享安全性

橙皮书:这些看起来是更基础的问题,但在市场上,大家可能还是更想听新的故事?

周期:解决的是现实的基础问题,但我们的解决方案应该是比较有新意的。在整个社区比较割裂的情况下,我们希望的是能不能探索出双赢的机会。算力被稀释的问题,会导致很多链很容易被攻击,去中心化程度也不高。QuarkChain 本来是做分片的,我们想通过增加分片的方式,让不同的链接入到我们的分片里,在分片的整个体系内享受到一些更好的保障,比如更好的安全性和去中心化。

在整个系统中,会有一条唯一的根链,根链上有很多不同的分片。已有的链可以作为 QuarkChain 上不同的分片链,根链会为他们提供共享的算力,做安全性保护。

而且,我们分片上的链可以支持非常灵活的定制化。一条链主要有四方面的属性:共识算法、账本模型、虚拟机和代币经济学。很多不同的链会在这四个属性上做不同的选择和取舍,而在 QuarkChain 的分片上,分片的共识算法可以是 PoS、PoW 或者 dPoS 等等,账本模型可以是 account-based 也可以是 UTXO,他们都共享根链的算力。并且加入分片的链越多,理论上根链总的算力也会越高。同时,各个分片上的子链又能保持相对独立的生态,只要持续给根链交税就可以了,因为根链要对你进行安全保护,所以要收税。

更重要的是,这些独立的生态是可以互相打通的,彼此具备互操作性。比如分片上可以有比特币、另外一个分片有隐私币,这样你就可以用比特币完成隐私币的功能,只要把比特币打到支持隐私币的分片上,然后由隐私币来做专门的操作,操作完之后出现一个新地址,就可以用这些新的隐私币了。这样一来,没人能知道你的比特币用到了哪个地方。

橙皮书:可不可以理解成,你们想做一个所有链的基础平台?

周期:这是个很大的目标,我们肯定没法一上来就这么做。一开始肯定还是我们自己来开发一些功能性的链加到自己的分片上,后面如果这个系统有吸引力的话,其他的链可以通过社区进行投票,看是否愿意接入到我们的分片上。

橙皮书:一条链要接入到你们的分片上,具体是怎么接入的?

周期:有两种模式,一种是这条链完全是条新链,那就从新开发,接到分片上,从创世区块开始挖。我们自己会去开发一些新的链,比如隐私币的链,做dPoS的链。另一种是这条链是老链,那么可以把原本链上已有的区块数据拷贝过来,复制到我们的分片上。相当于我们对老链的社区用户进行了一次空投,这样用户就有了两份币,而在分片上的新币,相比于原本的币,还可以享受到其他所有分片上已有的功能——分叉后比特币可以跑智能合约,分叉后的EOS 可以有隐私币的功能,等等。用一句话来表述,就是“老币赋新能”。

比如,莱特币现在能干嘛?其实除了交易,做不了什么事。但通过接入分片的方式,莱特币就可以有更多的功能。但原来那套东西(包括挖矿,账本模型)又不用变。我们认为这种方案才会是个正和游戏。

橙皮书:那我在分片链上挖的币是什么币?

周期:就是你原本链上分叉了的币。我们支持“多原生代币”,分片挖出了自己的代币,可以用这个币去做手续费、Gas费,根链并不在乎。最终想要的效果是所有分片联合起来成为一个更大的生态。就像国家收税去统一保护各个地方的安全,提供基础设施建设那样,各地方各行业可以有自己的小生态,想怎么搞就怎么搞,只要给国家交税就行。

橙皮书:根链的算力是怎么保证的?

周期:分片上出的块的奖励,有一部分会收到根链上去,这就是一种税收的机制,就像企业所得税,根链上出的块会获得下面所有分片代币的一部分奖励。算力跟奖励是成正比关系,如果根链的激励更高,它的算力也就会更高。根链算力会占超过全网60%。

除了奖励,分片上的少量最新状态数据也会提交到根链上,相当于根链会去监听分片的状态。这样相当于,一个新的分片加入时对根链说,大哥我交点手续费,你要保护我的安全。

当然,如果分片上出现了双花攻击怎么抵御分叉、选出正确的那条?我们自己做了一个 Boson Consensus 框架,在这套框架下,根链可以知道下层分片链上的共识情况(注意分片可以运行各种不同的共识算法)。根链通过将分片块的块头(哈希值)放在根块中的方式,通过块头信息来描述每个分片的规范(canonical)链,所有的分片都要遵循根链定义的规范链,因为这些分片都正在运行根链优先的分叉选择规则(root-chain-first fork-choice rule)。随着根链和分片之间达成共识,如果有人要对已经包含在根链中的分片块发起双花攻击,那么它也必须攻击根链上面的块,这就需要调用根链的 51%哈希算力。

此外,为了激励根链的矿工将分片(头)打包到根块中,分片块的部分矿工奖励将贡献到根块中,从而由根链矿工获得,也就是刚才说的税收。如果税率是 50% 的话,那么意味着分片矿工将获得生产该区块一半的奖励,而根链上的矿工将获得该分片产生的奖励的另外一半,他会努力打包尽量多的分片块(记录最长的分叉)以使其税收最大化。因此,我们预计根链上算力会很高,因为矿工的奖励也更多。

橙皮书:原来那条链的矿工,在接入你们的分片后,他们要去挖矿是怎么挖?

周期:还是像以前那样挖。只不过矿工可以自由选择,是要挖分片上的块,还是挖根链上的块。因为在这种情况下,分片上的币有一部分会作为税收交给根链,所以分片上的算力会下降,根链上的算力会更高。一个小矿工在分片内单独出块的几率的要求会更低,而根链上可能需要参与大矿池来挖。当然这二者随时都可以切换,分片的矿工也可以随时切换去其他分片上挖矿。

重点是通过这种代币经济学机制,让很多小矿主可以在分片内参与独立出块,大矿主则在根链上挖矿给下面所有的分片提供安全性。根据我们之前的分析,如果把分片单独出块的成本降低了,对促进分片链本身的去中心化程度是有好处的。原来单独出块的成本要 100 万美金,现在只需要 5 万,可以降 20 倍。但是不要忘了一个很重要的前提,我们所有分片的安全还是被根链保护的。

最终,通过这种根链 + 分片链的方案,我们希望能解决前面所说的整个区块链世界被稀释甚至割裂的问题,从而提高每条链的安全性和去中心化程度。

橙皮书:这个思路挺不一样的。你们最早是做分片的,分片的思想是什么?

周期:分片其实是计算机系统里一种水平扩容的方法。之前在中心化的系统里就有很多扩容的不同方案。2000 年之前,大家主要使用扩容的思想,比如 SUN、Oracle公司提供的方案,如果用户想要扩容,就去市场上买更贵的 CPU、买更大的磁盘。到了 2000 年之后,Google 想出的办法是水平扩容:与其购买更多更昂贵的设备,不如去买很多便宜的机器,想办法用软件把这些便宜的机器全部连接起来做成集群。这套方法出来之后,扩容一下子有了很大的进步。

去中心化世界里也有类似的发展。最早很多公链使用垂直扩容,比如修改出块的速度、出块的大小,试图通过调参数来扩容。而我们觉得分片这样的水平扩容是未来解决扩容的关键方案。分片本质上就是把很多数据或者流量,即需要扩容的东西,给分割成不同的碎片放在不同的地方并行处理。

分片有两个很重要的特性:1、状态分割(State partition) 2、状态本地化(Locality)。这两个特性指的是一个资源可以被分割执行,并且分割时能够根据本地的特性,放在本地处理,使得速度会更快。分片可能跟分层的思想比较接近,分层是把不同的职责进行区分,分片则是把同质化的工作分给不同的节点并行处理。

互联网本身的思想,也借鉴了很多分片分层的方案。几乎所有的扩容系统都需要这样做。比如在 TCP/IP 协议里, OSI 就是 7 层结构,Google 三架马车的扩容方案也是既分层又分片:底层是 GFS 文件系统,中间是 Google Big Table,上面是 MapReduce,各自负责不同的职责。同时,GFS 这层负责存文件存储的功能又是分片的,它会把不同的文件分割成不同的碎块,存到不同的服务器或者主机上。

橙皮书:除了计算机系统,其他行业有分片这样的例子吗?

周期:去大使馆办签证就是一个例子。一种方法是让全国所有人都去同一个地方办,这样很可能要排队,非常拥堵。另一种分片的方法,是让用户在自己所在的省市去当地的领事馆大使馆办签证,这样的话相当于分流了,可以降低拥堵,提升办事的效率。Locality 在这里体现的就是本地操作的便利性,你肯定不能让新疆人跑到广东去办签证,北京人跑到东北去办。

其实整个国家的治理也是这样的,可能先分层,然后再分片。首先政治板块涉及到省、市、县、乡镇的分层,然后全国又要分 30 个省,每个省又要分 20 个市,这里就是分片。整个经济和政治体系就是一个分层和分片的结构。再拿全国电信银行系统做例子,他们可能每个省都单独有一个账本,但这个账本并不会把账实时跟总部同步,只会按每个季度、每个年份去同步,这也是分片的思路。另一个例子,全国人口普查统计,也是根据分片的做法让每个省单独做调查,最后再把结果汇总起来。

橙皮书:为什么做了分片之后,会想要做异构分片这套方案,把很多不同的链接到分片上?

周期:因为我们看到有社群和应用需要异构链这样的特性。很多企业可能在共识、账本模型这些方面都有定制化的需求,我们希望可以给他们高度的灵活性。所以我们每个分片上都支持有自己的账本模型、共识算法、虚拟机和经济模型,他们可以通过跨片交易的方式有效结合起来。

拿隐私币做例子,大部分人可能想要的是一个“稳定币的隐私币”,能在很多地方用到,但如果要求用户先去买 Zcash,然后再去做兑换,这个过程中会产生很多价值的波动,对用户体验是很不方便的。另一方面,把隐私作为一条单链的重点功能又很难推起来,因为对很多人来说这并不是强需求。如果我们能通过分片的方式,让用户需要隐私的时候可以通过分片的互操作性去享受隐私分片的功能,不需要的时候可以享受其他分片(比如支持智能合约)的功能,那这样是最方便的。

而且,现在我们的跨片交易支持不需要确认 Finality 也可以运行。核心的方案是通过 类似DAG 的方式,借助一个比较特殊的结构来确定跨片交易的先后执行顺序。Vitalik 最近也有在提这一点,以太坊最初在设计分片的时候需要跨片修改两个分片时,先修改一个状态,达到Finality之后,再去修改另一个。这过程需要先通过信标链确定第一个状态已经被修改并finalized了,但这样信标链的确认要很长的时间,大概六七分钟,我们不需要 Finality 可以做到一分钟左右。以太坊现在也在向不需要Finality 就可以做跨片交易转。我认为 Vitalik 也想到了类似的方法。

3. 思路的大一统:与波卡、Cosmos 的比较

橙皮书:这个思路的构想确实很不一样,但是我有一个核心的问题是,你怎么去保证其他社区的人、别的链、别的开发者愿意和你一起玩?怎么把用户和矿工吸引到你们分片上?

周期:矿工相对是比较简单的,因为接入分片之后,原本的链并没有改变,挖矿算法和机器都不需要变。而每增加一个分片,根据它们和根链的代币经济学设计,整个网络总的安全性会增加,根链会收到相应的更高的收益,挖矿的人就会因为激励投入更多的算力去获得收益。假设根链的算力不提高,那么就会出现一个市场的套利空间,其他矿工会切换过来补上。现在比特币、ET

H等等矿工都可以直接过来,零迁移成本。

对持币用户来说,则相当于我们对他做了一次空投,同时还能给他们手里的币做升级,多一些功能。否则像莱特币,现在除了HOLD着几乎没什么用,但在我们分片上分叉后的莱特币,用户能拿着它去玩 DAPP,去做 DeFi 等等,这样对他们来说有很多功能性的提升。

橙皮书:所以持币用户是有动力去做这件事的?但是分叉后新币的价格是怎么来的?

周期:跟 BSV 和 BCH 的分叉所产生的价格是相同的,靠的是社区的共识。这个肯定需要时间来积累。但我们希望,我们在分片上复制老链的账本数据过来,跟 BSV 和 BCH 这种分叉会比较不同,他们是完全同质化的分叉,我们的是老币赋予多个新功能的升级。

橙皮书:矿工、持币用户可能会愿意过来,但是分叉这件事怎么说呢,老链肯定还是不想被你们分叉的?

周期:这个肯定要得到社区的认可才行。理论上,莱特币所有的持币者应该会比原来更加乐意去做这件事,因为分叉前,莱特币会因为未来新功能的赋予而价值会提高。我们肯定不会贸然就去复制老链到自己分片上,还是要看时机的成熟度。

橙皮书:或者换一种更直接的说法,如果现在是军阀割据的战国时代,而你们想做的是让大家联盟起来组成一个更高效的系统,这个前提是不是需要 QuarkChain 本身具备有盟主的号召力?

周期:蛇吞象这种路径早期我们肯定是做不到的。但我觉得现在需要有人去告诉大家可以往这个方向走。当然,前期的时候,大家会观望你这个系统到底能不能跑起来,到底安不安全,因此我们一定是需要自己先开发一些项目加入到分片上的。比如我们自己会花一年时间开发一条隐私币,放到分片上,让大家能感受到这个系统。

其实出了这么多新的链,稍微好一点的项目能在账本模型、共识算法、虚拟机或者代币经济学上做一些创新,其他的无非只是这四种属性的排列组合。而且主网上线后,大家往往就处于不知道该做什么的状态。我们做生态的方式可能会跟大家以往理解的公链不太一样。我们希望其他链能加入我们的分片,这样一来原本的链不需要做改动就能享受到更好的安全性,在保持生态独立的情况下,又能享受其他分片互操作性提供的功能。

橙皮书:这个跨片的互操作性,可以认为是跨链吗?

周期:是的,但是是效率更高的跨链。因为我们是支持多原生代币的,所以用户可以把原生代币从一个分片链上直接转到另一个分片链上,而不需要通过双向抵押(two-way pegged)的方式。一个分链可以管理多个原生代币在智能合约或者 DEX 的交易,这个跨链可以是非常高效的。

橙皮书:从这个角度来看,你们其实和波卡想做的事情有点像?波卡其实就做两件事:发链 + 提供共享安全性。只不过你们是通过根链找分片收税的方式共享安全性?

周期:我们想把账本模型、共识算法、代币经济学这些属性做了高度抽象,让大家可以自由选择配置,然后一条链就可以跑起来了,而且不只适用于公链,也可以用于联盟链,只要把根链共识改成 PoA 就行了。波卡和以太坊2.0主要依赖于 PoS,而且波卡的跨链主要传递消息,但是还没有看到支持不同并行链的多原生资产转移的协议。总体而言,我们希望不局限于某个特定的共识,能更开放,把应用场景完全打开。

橙皮书:你们是不是缺一个发链的工具?

周期:Edgeware 之前用波卡的工具尝试发链然后失败了,这件事其实告诉我们,一键发链并没有想象中那么容易。

橙皮书:或者说未来你们会想往一键发链这个方向走吗?比如成为继波卡、Cosmos之外第三个发链的选择?

周期:这肯定是我们未来想做的方向。包括我之前提到过的共识描述语言(Consensues Description Language),通过 WebAssembly 去描述一条链里面的代币经济学、账本模型,共识算法应该是什么样子的,然后只要编译好之后就可以在链上进一步部署执行,一条链就可以自我进化,自己编译自己运行,通过部署工具把这些排列组合设置好,或者写成配置文件的形式,自己实现自己的链。这是我们比较长远的长期想法,但这个想法肯定是要4-5年的时间才有可能完成。我们希望比波卡更加友好,因为所有东西都可以定制。

但在早期,鉴于我们自己有的资源和人力,还是要先把自己的公链做好,证明我们能解决不可能三角中安全性、去中心化这些基本的问题。

橙皮书:所以你们做公链的思路是,认为安全性、去中心化这些基本问题解决得不太好,所以你们就去解决这些问题,然后想出这套异构分片的方案。其他一些团队,像波卡、Cosmos 他们可能觉得跨链是一个更重要的问题,为了解决跨链的问题得出了另一套解决方案——你们出发点看起来不太一样,但最后的解决方案和思路好像有类似的地方?

周期:我觉得哪怕是跨链,也仍然是需要解决去中心化和安全性问题。我们更看重的是现实中已有的问题,而不是为了扩容去扩容。我认为他们很多的解决方案还没有在去中心化和安全性上得到验证。包括我们为什么要用 PoW 而不用 PoS,就是要去对比现在已有的 PoW 系统,看我们能不能做得比他们更好,更直接的比较能更清楚看到结果。

当然,很多项目觉得要扩容、要高 TPS、要跨链,所以做了很多东西。但安全性与去中心化是我们能观察到的、真正有数据可测的问题。我觉得我们更务实。这个行业在讨论很多事情的时候,忽略了已有的链在现实世界中的很多数据、可能被攻击的概率。我希望大家能把注意力转移到这方面,因为数据实打实的摆在那。

橙皮书:大家都想做一个非常宏大的系统,但各自采取的路径不太一样。大系统怎么能完成冷启动,吸引更多的人加入生态,解决 bootstrap 的问题,会是个挺关键的点。

我的感觉是,Cosmos 和波卡更多面向的其实是开发者,他们做了一套链的开发工具,开发者用这套工具就能够更快、更简单的做出一条自己的链,不管这些链到底有没有存在的意义,但它们确实满足了开发者的需求,所以他们的生态就有新的力量加入。你们看起来更想直接给持币者这个用户级别带来一些功能性的改变,通过跨片的互操作性给老币赋新能。你会担心这个生态起量的速度比他们慢吗?

周期:我觉得0-1会很慢,后面1-10应该就会很快了。Cosmos 和波卡使用工具去做一键发链,我们还是一个比较独立的链,不太一样。而且,我对为什么大家都要发一条新链还是保持怀疑的。如果作为开发者,我想要一个更好的生态,有一个更好的代币价值发现,那么当我在分片上可以直接享受原生代币的功能,比如可以用自己的原生代币作为手续费支付,可以在左右的分片流通,那么为什么还会想要一个新链呢?毕竟发单独的链有很多风险,运营成本也高。

橙皮书:所以你认为一些原本想要发链的项目,其实在你们的分片上就能享受到链的价值了?新的项目在你们分片上只要是个币就行了?

周期:对,这个意义我觉得是更好的。像 Aragon 自己发链,这个选择我其实是不太赞同的。这其实还是在继续造成整个社区的割裂。

我们设想的异构分片系统,每个小生态是独立的,但合起来又是互通的,这样比较像互联网。互联网每个子网都有自己的生态,但同时又能互通。我觉得这可能也是合久必分、分久必合的一个发展趋势。但是我们现在做的“合”,不是像以前互联网巨头那种兼并的“合”,它是以去中心化的方式在“合”,这会是一个更好的改变。

橙皮书:这个行业真的需要一个这样的公用平台吗?

周期:可以看到互联网为什么这么蓬勃,因为协议只有一个 TCP/IP 层,这层之上的应用层可以有很多不同的协议,但用的 IP 层都是一样的;这层之下,也可以有很多不同的物理网络,wifi、3G、4G网络等等,但他们用的 IP 层也是一样的。

类似的,区块链未来十年如果也会产生一个这样的协议,安全性和去中心化能达到非常好的效果,其他的需要改进的需要补充的可以在其他层在做。而不希望用户去浏览互联网的时候,要去切换成不同的网络,切换不同的代币,那用户体验实在太糟糕了。

橙皮书:IP 协议其实也是个非常早的协议。为什么区块链时代没有在早期就出现这么一个互通的协议?

周期:有几个方面的原因吧。

第一,互联网也有早期协议的竞争,比如ATM。只是因为一些成本和其他技术因素的原因,TCP/IP 成了最后的赢家。但这并不代表一路过来就是顺风顺水的状态。

第二,互联网更多是一个无状态的协议,其实它也有一些状态,但数据量非常小。而区块链需要很多额外的开销。比如互联网上传输是可以随时丢包的,没关系,丢包之后再重传就好了。但在区块链里面,如果一笔交易不知道有没有发送成功,让用户再打一笔,那就容易出问题了。所以设计的复杂度更高。

第三,我们还处在更早期的阶段,可能在 IP 协议之前有局域网,好多局域网自己搞自己的标准,类比的话,我们可能还处于类似的更早期的局域网阶段,还在等互联网的出现。只是我们预期区块链的发展速度可能会更快。

这也是让我们非常激动的地方。毕竟大家错过了互联网早期那波设计协议的机会,现在有机会站在历史的门口亲自充当创造者,这个机遇是非常难得的。

(完)

本文不作为任何投资建议。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年11月5日 下午4:49
下一篇 2019年11月5日 下午5:49

相关推荐

对话QuarkChain:被“扩容”带歪后,公链应该怎么走?

星期二 2019-11-05 17:49:14

对话QuarkChain:被“扩容”带歪后,公链应该怎么走?

和周期的谈话从去年就开始了,断断续续聊了很长的时间。从 QuarkChain 最早做分片,到后面转向异构分片的路线,再到他们自己做了新的共识算法,这期间,每过一段时间,周期总会来北京的书店找我们聊聊,说说他们最近的一些新想法。

周期是 QuarkChain 的创始人和 CEO,长期 base 在硅谷,在创业之前他是 Google 和 Facebook 的软件工程师,主要研究高性能系统。之前我们介绍过很多公链,QuarkChain 的思路也挺有意思,他们之前是做分片的,后面依托于根链+分片链的双层结构,希望在分片上接入许多不同的异构链,也就是共识算法、账本模型、虚拟机、代币经济学都可自由配置的链。

通过一条根链向许多分片链收税的形式,QuarkChain 想解决的问题是,让现有的区块链联合起来组成一个大联盟,达到“算力复用”+“协同挖矿”的效果,从而使每个参与者从中享受到更好的安全性保护和更好的去中心化特性。

这背后代表的,其实是周期自己对整个行业现状的一个比较非主流的思考:他认为当前整个产业界最关键的问题,并不是大家炒了两三年的扩容故事,而是随着项目越来越多,整个区块链世界的崩裂与被稀释所带来的危机。这种危机带来的是零和游戏,而我们需要另一场正和游戏。

公链这条赛道注定要用钱和血铸成,最后的赢家可能只有一两个,需要尝试和探索的方向却还有很多。尽管最近有了官方的支持,可以预见政策上对很多国产项目会有利好,特别是主打技术创新的联盟链与公链等基础设施项目,但我们不能忘了,整个公链赛道仍然处于非常痛苦的摸索阶段。在技术成熟、能产生大规模应用之前,公链怎么继续走下去是个大问题。

QuarkChain 的想法是,在目前这种山寨币的行情下,做散户社区不一定会有很大的意义,而像其他技术型的公链项目去频繁做开发者社区、举办黑客松活动,吸引开发者来做应用,效果其实也很难衡量,因为 DAPP 目前属于疲软的状态,可预见性的爆发遥遥无期,并且不同公链同质化严重,DAPP 在不同平台都可以运行。

换句话说,以前大家理解的公链生态就是「主网上线」 + 「找尽可能多的 DAPP 在上面开发」,现在这套思路已经不行了。Polkadot 和 Cosmos 因为一键发链有了新的故事和玩法,QuarkChain 对于主网后的生态建设也有不同的理解,他们希望能通过「根链+分片链」与其他社区组成大联盟的方式,去建立另一种生态。

这篇文章是橙皮书对 QuarkChain 创始人周期的访谈记录。对于这套有点另类的技术方案最终能否取得成功,尤其是异构分片这种技术思路的选择对错,我们现在还无法做出判断。但周期的思路,可能是我们接触到的最 Bold 的一个了。我们希望把公链玩家这些不同的思路和观点都呈现出来,或许对行业的探索能有所启发。

对话QuarkChain:被“扩容”带歪后,公链应该怎么走?

 1. 关于行业的现状

橙皮书:其实最近几个月来我们一直是比较悲观的。一方面看不到公链赛道里太多破局的希望,另一方面 DeFi、DAO 这些故事还属于圈地自语。你怎么看现在整个行业的状态?

周期:我个人的判断是,整个行业从 17 年那波 hype 之后,其实被带歪了一个主要的方向,就是“扩容”。扩容是一个重要的问题,但是还达不到一个致命性的问题。虽然区块链是很慢,但现有的用户还是用得挺好的,可能偶尔出现一个加密猫堵住了,但大部分应用并没有触达到扩容的瓶颈。整个行业在公链这波投资上砸了很多钱,里面很多项目其实是以太坊 2.0 的变种,等这波项目上线后,真的能产生扩容所带来的价值吗?这是要打一个问号的。

橙皮书:很有意思,你觉得扩容并不是最关键的命题。

周期:我认为真正关键的问题是,区块链的价值是由社区和共识组成的,同时它被算力保护,但现在,社区、共识和算力这些资源都在不断被稀释。

比如一开始这个圈子里只有比特币,大家只用比特币,也只挖比特币,后面慢慢又有了新的币,区块链的社区开始慢慢分化,挖莱特币和挖比特币的成了两拨人,持币用户可能有重叠,但社区和共识被稀释了。

而比稀释更严重的是割裂,比如以太坊社区和比特币社区,不管是矿池还是开发者都是完全不同的群体。后来冒出越来越多的新项目,甚至出现像 BSV 和 BCH 这样的分叉,不仅分裂了社群,还分走了算力。

原来比特币可能很值钱,但按这种方法分下去,你不知道整个蛋糕是变大还是变小,最终这个游戏是零和、正和还是负和游戏。不断有新的币出现,而且越来越多。

橙皮书:我同意 BSV 和 BCH 这种分叉对整个行业是有伤害的,它分割的是存量市场,但新的这些项目应该是增量的?

周期:取决于增量的定义,我定义的增量是必须带来新用户。以太坊肯定是带来了新的用户,但其他的公链项目我觉得要打个问号。但其实你可以看到,对比特币社区来说,他们肯定还是起了稀释的作用。

橙皮书:有点像军阀割据,各方都在抢占土地和面积。但这种阶段会不会是行业必须经历的过程?

周期:也许是,但这种稀释和割裂的确在产生危险的影响。整个盘子目前就这么大,很多项目挤进来,各自为战,互不相通,实际上把共识,社群,甚至算力都分散了,各条链的安全性因此非常脆弱。很多人都在谈怎么解决“不可能三角”的问题,但实际上,不可能三角并没有被解决——甚至从每一个维度来看,我们任何一角都没有很好的解决。也就是说,除了安全性,去中心化这个区块链的基础特性也并没有达到。

安全性方面,基本上可以认为,除了比特币和以太坊,绝大多数链都是不安全的。比特黄金(BTG)去年被攻击了,一千多万美金被双花,随后就被一些交易所下架了,这些交易所要求 BTG 要赔偿,但是 BTG 团队拒绝赔偿。ETC在今年年初也被攻击了,一百多万美金被双花。

值得注意的是,这两个项目都是在 CoinMarketCap 上市值排名前三十的链,他们的算力应该也算不错的,其他比 BTG 和 ETC 小的 PoW 币,理论上被攻击的概率是很高的。

为什么会这样呢?这跟大家平常想象的安全性好像有很大的出入。其实是因为这里面存在一些严重的误区,比如 51% 攻击的问题。

如果分母指的是当前这条链上所有在挖矿的算力,那的确需要 51% 算力才能完成双花攻击,但如果分母指的是同一类型算法或者同一类型机器在挖矿的算力,那么你只需要 5.2% 的 ETH 算力,就可以攻击 ETC。

因为很多算力是通用的,各个链都可以挖,尤其是算力还可以被租赁,这种情况会更严重。我们算过,如果租赁算力来攻击,可能一个小时只需要四千美元就可以对 ETC 发动攻击。所以很多区块链网络的安全性是存在潜在危机的。

橙皮书:如果安全性这么差的话,为什么其他链还没有被攻击呢?

周期:第一,没有被攻击不代表不会被攻击。第二,因为黑客攻击也是有一些社会成本的。黑客需要考虑攻击能获得的收益。比如,如果你对一条中型的链进行攻击,可能成本会比较高,但潜在收益也高。如果攻击的是小链的话,可能很难通过流动性完成套现,那他可能就不会这样做了。

橙皮书:所以理论上,现在对 ETC 和 BTG 进行攻击的经济动力是很强的?但这两条链为什么后续没有继续被攻击?

周期:一个原因是交易所给 ETC 和 BTG 网络增加了出块确认的时间,本来可能是 20 块的 Finality,后面改成了 100 多块的确认时间。另外一方面,主流交易所的风控也做的更完善了。当然,延长 100 多块的确认时间,对用户来说体验肯定是受到损害了。

橙皮书:后面新出的项目大部分用的是 PoS,你觉得他们会有这个问题吗?

周期:PoW 的安全性大家算认识比较多的,它的攻击成本很好算,就是双花攻击的成本,但 PoS 还没有证明自己,我们对 PoS 的认识也很不足,攻击成本的定义并太清晰。它可能遭受到更多类型的攻击,我觉得并不乐观。

橙皮书:有人认为 51% 攻击是强者胜出、弱者死亡的自然淘汰规律,它对链进行主动选择,不够强壮的就倒下了,这是一种特性,而不是一个漏洞。你怎么看待这种观点?

周期:作为一条公链,需要帮用户承载很多的资金,如果一条链很容易被双花攻击,作为用户,我肯定是不会把自己的资产放在上面的。但很多小链他们一开始出现的时候体量就是很小的,自然淘汰这种说法,我认为对小链来说是不太公平的。如果有办法能让很多链在初步成长期获得更好的安全性,解决 bootstrap 冷启动的问题,为什么不这么做呢?

橙皮书:如果能降低新链的启动门槛肯定是有意义的。你刚才提到,很多项目除了安全性,还要面临去中心化的挑战,这个挑战在哪?

周期:去中心化的定义方法比较常见的是测量运行一个节点的成本是多少。但我认为还有另一个非常值得关注的数据,其实是矿工单独出块的成本。单独出块指的是不需要加入矿池就能自己挖矿。

运行节点的成本很好算,现在只要有单核或者多核的 CPU,几个 G 的内存,几个 T 的硬盘存储空间,换句话说,一台好一点的电脑就能跑起来。但是如果是要单独出一个块的话,首先要问的问题是,在什么样的情况下,矿工更愿意自己去挖矿出块而不是选择加入矿池?我们问过一些矿工,得到的数据大概是,在自己占有千分之一的算力的情况下。

这个数据意味着什么呢,换算成比特币网络,差不多等于一个星期能出一个块。也就是说,如果一个矿工能做到一个星期出一个比特币区块,那么他就会更愿意自己挖矿而不是选择加入矿池。这个数值应该算偏低一些,更多情况可能会是千分之几。

如果用以太坊网络来算的话,千分之一算力的成本,差不多相当于一百万美金,比特币网络应该更贵。所以,运行节点很容易,但是能单独有效出块的成本还是很高的。而我们认为,单独出块的成本是衡量一个网络去中心化问题的重要指标。如果过多的把注意力放在运行节点的成本上,而忽略了单独出块的成本,那我们解决的不是去中心化的关键问题。现在单独出块的成本太高了,这也是我们想要解决的问题。

当然还有扩容,这个大家谈得很多了,很多团队致力于解决这个问题,但就像我前面说的,我不认为扩容是里面最急迫最关键的问题。

2.解决方案:异构分片,根链收税,算力复用,共享安全性

橙皮书:这些看起来是更基础的问题,但在市场上,大家可能还是更想听新的故事?

周期:解决的是现实的基础问题,但我们的解决方案应该是比较有新意的。在整个社区比较割裂的情况下,我们希望的是能不能探索出双赢的机会。算力被稀释的问题,会导致很多链很容易被攻击,去中心化程度也不高。QuarkChain 本来是做分片的,我们想通过增加分片的方式,让不同的链接入到我们的分片里,在分片的整个体系内享受到一些更好的保障,比如更好的安全性和去中心化。

在整个系统中,会有一条唯一的根链,根链上有很多不同的分片。已有的链可以作为 QuarkChain 上不同的分片链,根链会为他们提供共享的算力,做安全性保护。

而且,我们分片上的链可以支持非常灵活的定制化。一条链主要有四方面的属性:共识算法、账本模型、虚拟机和代币经济学。很多不同的链会在这四个属性上做不同的选择和取舍,而在 QuarkChain 的分片上,分片的共识算法可以是 PoS、PoW 或者 dPoS 等等,账本模型可以是 account-based 也可以是 UTXO,他们都共享根链的算力。并且加入分片的链越多,理论上根链总的算力也会越高。同时,各个分片上的子链又能保持相对独立的生态,只要持续给根链交税就可以了,因为根链要对你进行安全保护,所以要收税。

更重要的是,这些独立的生态是可以互相打通的,彼此具备互操作性。比如分片上可以有比特币、另外一个分片有隐私币,这样你就可以用比特币完成隐私币的功能,只要把比特币打到支持隐私币的分片上,然后由隐私币来做专门的操作,操作完之后出现一个新地址,就可以用这些新的隐私币了。这样一来,没人能知道你的比特币用到了哪个地方。

橙皮书:可不可以理解成,你们想做一个所有链的基础平台?

周期:这是个很大的目标,我们肯定没法一上来就这么做。一开始肯定还是我们自己来开发一些功能性的链加到自己的分片上,后面如果这个系统有吸引力的话,其他的链可以通过社区进行投票,看是否愿意接入到我们的分片上。

橙皮书:一条链要接入到你们的分片上,具体是怎么接入的?

周期:有两种模式,一种是这条链完全是条新链,那就从新开发,接到分片上,从创世区块开始挖。我们自己会去开发一些新的链,比如隐私币的链,做dPoS的链。另一种是这条链是老链,那么可以把原本链上已有的区块数据拷贝过来,复制到我们的分片上。相当于我们对老链的社区用户进行了一次空投,这样用户就有了两份币,而在分片上的新币,相比于原本的币,还可以享受到其他所有分片上已有的功能——分叉后比特币可以跑智能合约,分叉后的EOS 可以有隐私币的功能,等等。用一句话来表述,就是“老币赋新能”。

比如,莱特币现在能干嘛?其实除了交易,做不了什么事。但通过接入分片的方式,莱特币就可以有更多的功能。但原来那套东西(包括挖矿,账本模型)又不用变。我们认为这种方案才会是个正和游戏。

橙皮书:那我在分片链上挖的币是什么币?

周期:就是你原本链上分叉了的币。我们支持“多原生代币”,分片挖出了自己的代币,可以用这个币去做手续费、Gas费,根链并不在乎。最终想要的效果是所有分片联合起来成为一个更大的生态。就像国家收税去统一保护各个地方的安全,提供基础设施建设那样,各地方各行业可以有自己的小生态,想怎么搞就怎么搞,只要给国家交税就行。

橙皮书:根链的算力是怎么保证的?

周期:分片上出的块的奖励,有一部分会收到根链上去,这就是一种税收的机制,就像企业所得税,根链上出的块会获得下面所有分片代币的一部分奖励。算力跟奖励是成正比关系,如果根链的激励更高,它的算力也就会更高。根链算力会占超过全网60%。

除了奖励,分片上的少量最新状态数据也会提交到根链上,相当于根链会去监听分片的状态。这样相当于,一个新的分片加入时对根链说,大哥我交点手续费,你要保护我的安全。

当然,如果分片上出现了双花攻击怎么抵御分叉、选出正确的那条?我们自己做了一个 Boson Consensus 框架,在这套框架下,根链可以知道下层分片链上的共识情况(注意分片可以运行各种不同的共识算法)。根链通过将分片块的块头(哈希值)放在根块中的方式,通过块头信息来描述每个分片的规范(canonical)链,所有的分片都要遵循根链定义的规范链,因为这些分片都正在运行根链优先的分叉选择规则(root-chain-first fork-choice rule)。随着根链和分片之间达成共识,如果有人要对已经包含在根链中的分片块发起双花攻击,那么它也必须攻击根链上面的块,这就需要调用根链的 51%哈希算力。

此外,为了激励根链的矿工将分片(头)打包到根块中,分片块的部分矿工奖励将贡献到根块中,从而由根链矿工获得,也就是刚才说的税收。如果税率是 50% 的话,那么意味着分片矿工将获得生产该区块一半的奖励,而根链上的矿工将获得该分片产生的奖励的另外一半,他会努力打包尽量多的分片块(记录最长的分叉)以使其税收最大化。因此,我们预计根链上算力会很高,因为矿工的奖励也更多。

橙皮书:原来那条链的矿工,在接入你们的分片后,他们要去挖矿是怎么挖?

周期:还是像以前那样挖。只不过矿工可以自由选择,是要挖分片上的块,还是挖根链上的块。因为在这种情况下,分片上的币有一部分会作为税收交给根链,所以分片上的算力会下降,根链上的算力会更高。一个小矿工在分片内单独出块的几率的要求会更低,而根链上可能需要参与大矿池来挖。当然这二者随时都可以切换,分片的矿工也可以随时切换去其他分片上挖矿。

重点是通过这种代币经济学机制,让很多小矿主可以在分片内参与独立出块,大矿主则在根链上挖矿给下面所有的分片提供安全性。根据我们之前的分析,如果把分片单独出块的成本降低了,对促进分片链本身的去中心化程度是有好处的。原来单独出块的成本要 100 万美金,现在只需要 5 万,可以降 20 倍。但是不要忘了一个很重要的前提,我们所有分片的安全还是被根链保护的。

最终,通过这种根链 + 分片链的方案,我们希望能解决前面所说的整个区块链世界被稀释甚至割裂的问题,从而提高每条链的安全性和去中心化程度。

橙皮书:这个思路挺不一样的。你们最早是做分片的,分片的思想是什么?

周期:分片其实是计算机系统里一种水平扩容的方法。之前在中心化的系统里就有很多扩容的不同方案。2000 年之前,大家主要使用扩容的思想,比如 SUN、Oracle公司提供的方案,如果用户想要扩容,就去市场上买更贵的 CPU、买更大的磁盘。到了 2000 年之后,Google 想出的办法是水平扩容:与其购买更多更昂贵的设备,不如去买很多便宜的机器,想办法用软件把这些便宜的机器全部连接起来做成集群。这套方法出来之后,扩容一下子有了很大的进步。

去中心化世界里也有类似的发展。最早很多公链使用垂直扩容,比如修改出块的速度、出块的大小,试图通过调参数来扩容。而我们觉得分片这样的水平扩容是未来解决扩容的关键方案。分片本质上就是把很多数据或者流量,即需要扩容的东西,给分割成不同的碎片放在不同的地方并行处理。

分片有两个很重要的特性:1、状态分割(State partition) 2、状态本地化(Locality)。这两个特性指的是一个资源可以被分割执行,并且分割时能够根据本地的特性,放在本地处理,使得速度会更快。分片可能跟分层的思想比较接近,分层是把不同的职责进行区分,分片则是把同质化的工作分给不同的节点并行处理。

互联网本身的思想,也借鉴了很多分片分层的方案。几乎所有的扩容系统都需要这样做。比如在 TCP/IP 协议里, OSI 就是 7 层结构,Google 三架马车的扩容方案也是既分层又分片:底层是 GFS 文件系统,中间是 Google Big Table,上面是 MapReduce,各自负责不同的职责。同时,GFS 这层负责存文件存储的功能又是分片的,它会把不同的文件分割成不同的碎块,存到不同的服务器或者主机上。

橙皮书:除了计算机系统,其他行业有分片这样的例子吗?

周期:去大使馆办签证就是一个例子。一种方法是让全国所有人都去同一个地方办,这样很可能要排队,非常拥堵。另一种分片的方法,是让用户在自己所在的省市去当地的领事馆大使馆办签证,这样的话相当于分流了,可以降低拥堵,提升办事的效率。Locality 在这里体现的就是本地操作的便利性,你肯定不能让新疆人跑到广东去办签证,北京人跑到东北去办。

其实整个国家的治理也是这样的,可能先分层,然后再分片。首先政治板块涉及到省、市、县、乡镇的分层,然后全国又要分 30 个省,每个省又要分 20 个市,这里就是分片。整个经济和政治体系就是一个分层和分片的结构。再拿全国电信银行系统做例子,他们可能每个省都单独有一个账本,但这个账本并不会把账实时跟总部同步,只会按每个季度、每个年份去同步,这也是分片的思路。另一个例子,全国人口普查统计,也是根据分片的做法让每个省单独做调查,最后再把结果汇总起来。

橙皮书:为什么做了分片之后,会想要做异构分片这套方案,把很多不同的链接到分片上?

周期:因为我们看到有社群和应用需要异构链这样的特性。很多企业可能在共识、账本模型这些方面都有定制化的需求,我们希望可以给他们高度的灵活性。所以我们每个分片上都支持有自己的账本模型、共识算法、虚拟机和经济模型,他们可以通过跨片交易的方式有效结合起来。

拿隐私币做例子,大部分人可能想要的是一个“稳定币的隐私币”,能在很多地方用到,但如果要求用户先去买 Zcash,然后再去做兑换,这个过程中会产生很多价值的波动,对用户体验是很不方便的。另一方面,把隐私作为一条单链的重点功能又很难推起来,因为对很多人来说这并不是强需求。如果我们能通过分片的方式,让用户需要隐私的时候可以通过分片的互操作性去享受隐私分片的功能,不需要的时候可以享受其他分片(比如支持智能合约)的功能,那这样是最方便的。

而且,现在我们的跨片交易支持不需要确认 Finality 也可以运行。核心的方案是通过 类似DAG 的方式,借助一个比较特殊的结构来确定跨片交易的先后执行顺序。Vitalik 最近也有在提这一点,以太坊最初在设计分片的时候需要跨片修改两个分片时,先修改一个状态,达到Finality之后,再去修改另一个。这过程需要先通过信标链确定第一个状态已经被修改并finalized了,但这样信标链的确认要很长的时间,大概六七分钟,我们不需要 Finality 可以做到一分钟左右。以太坊现在也在向不需要Finality 就可以做跨片交易转。我认为 Vitalik 也想到了类似的方法。

3. 思路的大一统:与波卡、Cosmos 的比较

橙皮书:这个思路的构想确实很不一样,但是我有一个核心的问题是,你怎么去保证其他社区的人、别的链、别的开发者愿意和你一起玩?怎么把用户和矿工吸引到你们分片上?

周期:矿工相对是比较简单的,因为接入分片之后,原本的链并没有改变,挖矿算法和机器都不需要变。而每增加一个分片,根据它们和根链的代币经济学设计,整个网络总的安全性会增加,根链会收到相应的更高的收益,挖矿的人就会因为激励投入更多的算力去获得收益。假设根链的算力不提高,那么就会出现一个市场的套利空间,其他矿工会切换过来补上。现在比特币、ET

H等等矿工都可以直接过来,零迁移成本。

对持币用户来说,则相当于我们对他做了一次空投,同时还能给他们手里的币做升级,多一些功能。否则像莱特币,现在除了HOLD着几乎没什么用,但在我们分片上分叉后的莱特币,用户能拿着它去玩 DAPP,去做 DeFi 等等,这样对他们来说有很多功能性的提升。

橙皮书:所以持币用户是有动力去做这件事的?但是分叉后新币的价格是怎么来的?

周期:跟 BSV 和 BCH 的分叉所产生的价格是相同的,靠的是社区的共识。这个肯定需要时间来积累。但我们希望,我们在分片上复制老链的账本数据过来,跟 BSV 和 BCH 这种分叉会比较不同,他们是完全同质化的分叉,我们的是老币赋予多个新功能的升级。

橙皮书:矿工、持币用户可能会愿意过来,但是分叉这件事怎么说呢,老链肯定还是不想被你们分叉的?

周期:这个肯定要得到社区的认可才行。理论上,莱特币所有的持币者应该会比原来更加乐意去做这件事,因为分叉前,莱特币会因为未来新功能的赋予而价值会提高。我们肯定不会贸然就去复制老链到自己分片上,还是要看时机的成熟度。

橙皮书:或者换一种更直接的说法,如果现在是军阀割据的战国时代,而你们想做的是让大家联盟起来组成一个更高效的系统,这个前提是不是需要 QuarkChain 本身具备有盟主的号召力?

周期:蛇吞象这种路径早期我们肯定是做不到的。但我觉得现在需要有人去告诉大家可以往这个方向走。当然,前期的时候,大家会观望你这个系统到底能不能跑起来,到底安不安全,因此我们一定是需要自己先开发一些项目加入到分片上的。比如我们自己会花一年时间开发一条隐私币,放到分片上,让大家能感受到这个系统。

其实出了这么多新的链,稍微好一点的项目能在账本模型、共识算法、虚拟机或者代币经济学上做一些创新,其他的无非只是这四种属性的排列组合。而且主网上线后,大家往往就处于不知道该做什么的状态。我们做生态的方式可能会跟大家以往理解的公链不太一样。我们希望其他链能加入我们的分片,这样一来原本的链不需要做改动就能享受到更好的安全性,在保持生态独立的情况下,又能享受其他分片互操作性提供的功能。

橙皮书:这个跨片的互操作性,可以认为是跨链吗?

周期:是的,但是是效率更高的跨链。因为我们是支持多原生代币的,所以用户可以把原生代币从一个分片链上直接转到另一个分片链上,而不需要通过双向抵押(two-way pegged)的方式。一个分链可以管理多个原生代币在智能合约或者 DEX 的交易,这个跨链可以是非常高效的。

橙皮书:从这个角度来看,你们其实和波卡想做的事情有点像?波卡其实就做两件事:发链 + 提供共享安全性。只不过你们是通过根链找分片收税的方式共享安全性?

周期:我们想把账本模型、共识算法、代币经济学这些属性做了高度抽象,让大家可以自由选择配置,然后一条链就可以跑起来了,而且不只适用于公链,也可以用于联盟链,只要把根链共识改成 PoA 就行了。波卡和以太坊2.0主要依赖于 PoS,而且波卡的跨链主要传递消息,但是还没有看到支持不同并行链的多原生资产转移的协议。总体而言,我们希望不局限于某个特定的共识,能更开放,把应用场景完全打开。

橙皮书:你们是不是缺一个发链的工具?

周期:Edgeware 之前用波卡的工具尝试发链然后失败了,这件事其实告诉我们,一键发链并没有想象中那么容易。

橙皮书:或者说未来你们会想往一键发链这个方向走吗?比如成为继波卡、Cosmos之外第三个发链的选择?

周期:这肯定是我们未来想做的方向。包括我之前提到过的共识描述语言(Consensues Description Language),通过 WebAssembly 去描述一条链里面的代币经济学、账本模型,共识算法应该是什么样子的,然后只要编译好之后就可以在链上进一步部署执行,一条链就可以自我进化,自己编译自己运行,通过部署工具把这些排列组合设置好,或者写成配置文件的形式,自己实现自己的链。这是我们比较长远的长期想法,但这个想法肯定是要4-5年的时间才有可能完成。我们希望比波卡更加友好,因为所有东西都可以定制。

但在早期,鉴于我们自己有的资源和人力,还是要先把自己的公链做好,证明我们能解决不可能三角中安全性、去中心化这些基本的问题。

橙皮书:所以你们做公链的思路是,认为安全性、去中心化这些基本问题解决得不太好,所以你们就去解决这些问题,然后想出这套异构分片的方案。其他一些团队,像波卡、Cosmos 他们可能觉得跨链是一个更重要的问题,为了解决跨链的问题得出了另一套解决方案——你们出发点看起来不太一样,但最后的解决方案和思路好像有类似的地方?

周期:我觉得哪怕是跨链,也仍然是需要解决去中心化和安全性问题。我们更看重的是现实中已有的问题,而不是为了扩容去扩容。我认为他们很多的解决方案还没有在去中心化和安全性上得到验证。包括我们为什么要用 PoW 而不用 PoS,就是要去对比现在已有的 PoW 系统,看我们能不能做得比他们更好,更直接的比较能更清楚看到结果。

当然,很多项目觉得要扩容、要高 TPS、要跨链,所以做了很多东西。但安全性与去中心化是我们能观察到的、真正有数据可测的问题。我觉得我们更务实。这个行业在讨论很多事情的时候,忽略了已有的链在现实世界中的很多数据、可能被攻击的概率。我希望大家能把注意力转移到这方面,因为数据实打实的摆在那。

橙皮书:大家都想做一个非常宏大的系统,但各自采取的路径不太一样。大系统怎么能完成冷启动,吸引更多的人加入生态,解决 bootstrap 的问题,会是个挺关键的点。

我的感觉是,Cosmos 和波卡更多面向的其实是开发者,他们做了一套链的开发工具,开发者用这套工具就能够更快、更简单的做出一条自己的链,不管这些链到底有没有存在的意义,但它们确实满足了开发者的需求,所以他们的生态就有新的力量加入。你们看起来更想直接给持币者这个用户级别带来一些功能性的改变,通过跨片的互操作性给老币赋新能。你会担心这个生态起量的速度比他们慢吗?

周期:我觉得0-1会很慢,后面1-10应该就会很快了。Cosmos 和波卡使用工具去做一键发链,我们还是一个比较独立的链,不太一样。而且,我对为什么大家都要发一条新链还是保持怀疑的。如果作为开发者,我想要一个更好的生态,有一个更好的代币价值发现,那么当我在分片上可以直接享受原生代币的功能,比如可以用自己的原生代币作为手续费支付,可以在左右的分片流通,那么为什么还会想要一个新链呢?毕竟发单独的链有很多风险,运营成本也高。

橙皮书:所以你认为一些原本想要发链的项目,其实在你们的分片上就能享受到链的价值了?新的项目在你们分片上只要是个币就行了?

周期:对,这个意义我觉得是更好的。像 Aragon 自己发链,这个选择我其实是不太赞同的。这其实还是在继续造成整个社区的割裂。

我们设想的异构分片系统,每个小生态是独立的,但合起来又是互通的,这样比较像互联网。互联网每个子网都有自己的生态,但同时又能互通。我觉得这可能也是合久必分、分久必合的一个发展趋势。但是我们现在做的“合”,不是像以前互联网巨头那种兼并的“合”,它是以去中心化的方式在“合”,这会是一个更好的改变。

橙皮书:这个行业真的需要一个这样的公用平台吗?

周期:可以看到互联网为什么这么蓬勃,因为协议只有一个 TCP/IP 层,这层之上的应用层可以有很多不同的协议,但用的 IP 层都是一样的;这层之下,也可以有很多不同的物理网络,wifi、3G、4G网络等等,但他们用的 IP 层也是一样的。

类似的,区块链未来十年如果也会产生一个这样的协议,安全性和去中心化能达到非常好的效果,其他的需要改进的需要补充的可以在其他层在做。而不希望用户去浏览互联网的时候,要去切换成不同的网络,切换不同的代币,那用户体验实在太糟糕了。

橙皮书:IP 协议其实也是个非常早的协议。为什么区块链时代没有在早期就出现这么一个互通的协议?

周期:有几个方面的原因吧。

第一,互联网也有早期协议的竞争,比如ATM。只是因为一些成本和其他技术因素的原因,TCP/IP 成了最后的赢家。但这并不代表一路过来就是顺风顺水的状态。

第二,互联网更多是一个无状态的协议,其实它也有一些状态,但数据量非常小。而区块链需要很多额外的开销。比如互联网上传输是可以随时丢包的,没关系,丢包之后再重传就好了。但在区块链里面,如果一笔交易不知道有没有发送成功,让用户再打一笔,那就容易出问题了。所以设计的复杂度更高。

第三,我们还处在更早期的阶段,可能在 IP 协议之前有局域网,好多局域网自己搞自己的标准,类比的话,我们可能还处于类似的更早期的局域网阶段,还在等互联网的出现。只是我们预期区块链的发展速度可能会更快。

这也是让我们非常激动的地方。毕竟大家错过了互联网早期那波设计协议的机会,现在有机会站在历史的门口亲自充当创造者,这个机遇是非常难得的。

(完)

本文不作为任何投资建议。