6 月 28 日,波卡的年度旗舰活动Polkadot Decoded 大会在丹麦哥本哈根举行,来自全球的 Web3 爱好者、Builder、投资人共同探讨波卡生态的最新进展。这次大会最令人惊喜的环节,应该就是波卡创始人 Gavin Wood作为神秘嘉宾出席,并且带来了非常重磅的观点。Gavin 分享了波卡未来的发展方向,并提出了一个新的看待波卡的角度:不再受限于原有的平行链、中继链,而是聚焦于区块链所需的更底层资源 —— 计算核心(核),将波卡看作一个多核计算机。并且 Gavin 提出,波卡在未来有可能取
6 月 28 日,波卡的年度旗舰活动Polkadot Decoded 大会在丹麦哥本哈根举行,来自全球的 Web3 爱好者、Builder、投资人共同探讨波卡生态的最新进展。
这次大会最令人惊喜的环节,应该就是波卡创始人 Gavin Wood作为神秘嘉宾出席,并且带来了非常重磅的观点。
Gavin 分享了波卡未来的发展方向,并提出了一个新的看待波卡的角度:不再受限于原有的平行链、中继链,而是聚焦于区块链所需的更底层资源 —— 计算核心(核),将波卡看作一个多核计算机。
并且 Gavin 提出,波卡在未来有可能取消现有的插槽竞拍方式,而是采用以核为中心的更加灵活的资源分配方式,例如对 “核” 的按月 “大宗采购” 和 “即时采购”。
以下文字由 PolkaWorld 整理自 Gavin 的本次演讲内容。
波卡 1.0
现阶段波卡可以叫做波卡 1.0 版本。
在这个阶段,波卡的功能已经完备,已经实现了 7 年前在白皮书中提到的所有功能,并且即将发布波卡 1.0 的代码库。
那么波卡 1.0 是什么呢?在最初的白皮书中,我写道 “波卡是可扩展的异构多链”。也就是说它是一条区块链,但它有一个独特的共识机制 “BABE”,它可以为其他区块链(平行链)提供安全性。
艺术化地概括一下,它大概是这样的。
中间就是中继链,它负责 Crowdloan、Auction、管理余额、质押、治理等,是功能很多的中继链。边上的小点是平行链,中继链还要保障平行链的安全。而且这些平行链可以互相通信。
那么波卡提供的产品形式是什么呢?是以插槽的形式,6 个月一个租期,最长可以提前获取两年的插槽使用期,再加上 Crowdloan 的机制。但除此之外,没有其他方式可以利用波卡了。在波卡 1.0 中仅有的产品就是平行链插槽。
看待波卡的新角度:多核计算机
这句名言说了这样一个道理:一个人想要真正了解这个世界,那么视角的转变是至关重要的,甚至比去到更广大的世界更重要。
因此在这里我们将转变视角,重新认识波卡是什么。
平行链、中继链这些概念都很好,也是我和很多人早期理解波卡的方式,是我们努力在构建的对象。
但随着时间的推移,我们发现自己在做的东西其实和原本设想的不太一样。有时候如果你比较幸运,或者你的团队很强,可能会做出比你最初想做的更牛逼的东西。
在计算机科学里,抽象化和通用化是很重要的。后来我们发现,我们对波卡进行的抽象化和通用化程度,远比我们之前想象的要高。
那么看待波卡的新角度到底是什么样的?
波卡是一个多核计算机
首先,我们所做的东西其实不是关于链,而是关于空间,关于链所需的底层资源。
其次,波卡是让构建者去创造应用,让用户去使用应用的平台。从本质上说,它不是托管区块链的平台。链刚好是让波卡变得有用的方式之一,但可能不是唯一的方式。
最后,它的韧性(Resilience)也很强。我觉得这是比 Unstoppable 更加中性的词,意思是可以抵御任何想要让它做它本来无意去做的事情,也就是说可以抵御对原有意图的扭曲。
所以总的来说,波卡是一个很有韧性的、通用的、连续计算的提供商。连续计算的意思是 —— 并不是你有一个工作,你把它做完了,这事儿就结束了;我们想做的是长期进行的任务,就算中间暂停了,但是可以继续持续做。有点类似在 2015、2016 年所说的 “世界计算机” 的愿景。
那么从这个角度看波卡是什么呢?它是一个多核计算机,多个核可以同时运行,做不同的事情。那么我们会发现,在一个核上运行的区块链就是平行链,平行链就是在一个预留好的核上持续不断地运行。现在我们用这种新的范式来理解了平行链。
“波卡超级计算机” 是什么样的
那么我们来更深入地了解一下这个 “波卡计算机”。
“波卡超级计算机” 是多核的,比普通的计算机更强大。它有大概 50 个核,在持续不断地运行,并且是并行的。
根据我们的预测模型,再过几年,当它经过大量的基准测试、优化之后,后期核的数量可以增加到 500-1000 个。
每个 “核” 的性能
再来看看每一个 “核”。
这些核和 CPU 核差不多。它有很多特征、属性,你可以描述它,本质上它就是一个做计算的东西,和 CPU 核很像。
随着时间的推移和硬件的进步,这些指标还会有一定的提升。
在过去,这些核能够发挥用处的唯一方式是通过平行链。但其实,还有其他的使用核的方式,让它更普惠,让人人都可以使用。
波卡需要更灵活的分配方式
这些意味着什么呢?
核其实是很灵活的。它不是仅能永远处理一个固定任务,它可以轻松地切换它做的事情,就像一个 CPU 可以切换任务一样。既然核很灵活,那么核的采购也应该是灵活的。
而插槽拍卖模型不够灵活,它是基于波卡原有的范式——长期运行的单链而设计的。不过后来我们又有了平行线程作为补充,但也仅仅是朝向正确范式的一小步而已。
而这个模型给波卡生态设置了很高的进入门槛。如果你像我一样,是一个喜欢自己捣鼓各种技术的人,以我自己为例,我可不想去搞些募资、营销的东西,我只想部署一下代码,然后看看能不能跑起来。但在当前的模型下,我想我们错过了很多这样的潜在合作者。
一种可能的未来 —— 灵活版波卡
下面我将提出一种可能的未来方案,可以叫它 “灵活版波卡”。
我们可以抛弃掉租期、插槽模型,而是将波卡视为一些 “核”。这些核上的时间,我们现在叫做 “核时间(Core Time)”,但之前也被称为 “区块空间(Block Space)”。这些时间可以被定期出售,即大家可以购买并使用核时间。
我的建议是这样。对于波卡原生的核时间出售(一级市场),可以分为大宗采购和即时采购两种方式。
大宗采购每个月进行一次,买一次可以使用 4 周。
即时采购有点像平行线程的即用即付模型,是按需采购。使用波卡的费用,准确来说是使用波卡的核的费用,会根据市场情况来定。可能市场上有多个核可用,也可能没有,市场就是这样的。对于即时的使用,它会是核时间的连续性出售。
也就是说,我们把灵活性做到最大化,剩下的交给市场。
大宗采购
让我们更进一步地了解一下大宗采购怎么运作。不过这不是最终的提案,而是一个提出来供大家讨论的版本。
它的售卖每四周进行一次,每次以固定价格卖出四周的核时间。所有人都会付一样的价钱。
即时采购
再说说即时采购。本质上就是在需要使用时再去采购的核。
它采用链上做市商或者经纪人模式,有规定好的价格,目标是 100% 的使用。
可以从大宗市场拿出核时间,分成小块,然后分别拿到即时采购市场来出售。
即时采购获得的总销售收益会由核时间提供商(包括波卡自己)均分。
即时采购的本质
由链通过收集人来采购
可以用于增加交易吞吐量(当你有额外的调用时,可以增加到双倍的处理能力)
可以用于降低延迟(链本来是 12-18 秒出一个块,新增一个额外的核之后,就可以是 6 秒出一个块)
可以支持 “核合约” 等新形式
大宗采购的本质
它是非同质化的资产。核本来是同质化的,但当它们被分成很多份不同的时间,就成了非同质化资产。这种非同质化资产理论上可以由 XCM 来展示。经纪人可以展示这些核时间给其他链,这些链可能会想去交易这些时间。
这个经纪人链(系统链)可以让这些四周的时间段切分开,分成很多个 NFT。
这些时间段可以由经纪人平行链来消费,让所有者可以将计算分配给波卡的核。
大宗采购的使用方式
那么你获得这些时间之后,要如何去使用呢?
可以把它们都指定给某条平行链,这就是目前的情况,只不过不是一个月一个月地进行,但都是一条链独占一个核。
可以指定给多条平行链来共享,轮流使用一个核。
可以放到即时市场上去。
还可以瓜分之后分开售卖,可能可以通过一个单独的平行链用 NFT XCM 的方式来做到。
大宗采购中的租金控制
那么如果你想要长时间锁定一个核呢?那你当然需要去预测价格的走势。
我建议设置这样一个规则。当分配一个新的月份的大宗核时间时,经纪人记录价格和分配给了谁作为备用。在下个月,这个人可以用限价购买到(会设置一个涨价上限)。
这对现有的平行链意味着什么?
另外,平行链将拥有更灵活的出块时间。
目前平行链都是固定的出块时间,大概是 12 秒,等进一步优化之后大概是 6 秒。在未来,我觉得平行链的出块时间会更灵活。
平行链会有一个 “基础速度”。比如一条平行链与其他一条或几条平行链共享一个核,每隔 12 或 18 秒出一个块。但如果需要更高的吞吐量时,可以去即时市场或者在一些企业链上通过 OTC 购买更多的核时间。
核时间还可以压缩(通过牺牲带宽来降低延迟)。把多个平行链区块压缩为一个中继链的核,这会降低延迟,但会增加一些带宽的成本,因为你得为一个区块的开启和结束来付费。
核时间还可以结合(通过增加额外的核来提高性能从而降低延迟)。你可以搞两个同一时段的核,来获得两个完整的平行链区块。这样就可以把出块时间从 12 秒降低到 6 秒甚至再降到 3 秒。
以上所有这些东西,对于现有平行链的意义就是:
那么核可以怎样使用呢。核的时间可以拆分开然后重组。
核的傻瓜式用法
这张图是目前情况,对核时间的傻瓜式用法。从左至右,时间逐渐向后。每一行相当于波卡上的一个核。目前 5 条平行链每条占据一个核。
但实际上每条链分配给哪一个核不重要,都无所谓。即平行链可以在任何可用的核上运行,而不会影响性能,这些核并不会对某一条链有特殊的亲和力。
核的灵活式用法
灵活的核用法,又叫做新型调度(exotic scheduling)。
可以分割区间
区间可以分割,区间的所有者可以分割区间并交易。一条平行链可以运行一段时间,然后停止自己的交易处理,让另一条平行链来运行。
我们看到浅蓝色的这条平行链,它停止了一段时间,然后又继续了。绿色的链也是一样。
可以跨越区间
多条链可以轮流在一个核心上运行,以分摊成本。可能你占 2/3 的时间,另一条链占 1/3,例如图中浅蓝色和黄色的链。
可以将核压缩
同一个核在同一个时间可以处理多个区块。在一个核心上验证多个区块,以实现更高的区块速率和更低的表现延迟。
可以将核组合
使用多个核心获得更强大的计算能力,这些核可以是瞬时的或长期的。
同一个 paraID,同一个 “任务”,可以在同一时间分配给多个核。它可以运用两个核,从而在这一时段里处理两个区块。比如这里的橙色有一个固定使用的核,但还有另一个间歇性使用的核。
未来可能的方向:多链共享一个核
两至三条链可以在同一时间共享同一个核,以降低成本,而不降低延迟。这是一种比较投机的用法啦。
未来可能的方向:把上面的用法混搭
理论上说上述所有的用法都是可组合的,把它们混搭起来用,就会得到一个极致灵活的普适计算资源。
在上面这部分的内容中,我们用一个新的视角去看待波卡要做的事情。从以链为中心,转变为以真正的资源 ——“核” 为中心。
以链为中心 → 以应用为中心
波卡 1.0 是以链为中心的范式:让孤立的链可以互相发送消息,这种方式本质上和单链加跨链桥很相似,只不过平行链都连接到中继链而已。
这导致了碎片化的用户体验。用户可能在一条链上使用某应用,但他在另一条链上也想使用这个应用,也就是用多链的方式来使用应用。
但如果我们拥有以链为中心的范式,那么也会拥有以链为中心的用户体验。而如果某个应用不是以链为中心,那么所有事情都会变得很难。
在现实中,如果我们想充分利用波卡的潜力,那么应用就需要跨链部署,而且需要是无缝跨链,至少对于用户来说要如此,更理想的情况是对于开发者来说也是如此。
这是一个 “波卡是什么样子” 的艺术化示意图:
我们为了快速上线波卡,而选择了把波卡的很多应用能力放到中继链上。但这其实是一种权衡取舍。
好处是,这我们可以在技术基础完全完成前,在较短的时间内交付很多功能,例如很棒的质押、治理、代币、身份系统。
但它也有代价。如果我们把很多东西都绑在一条链上,就会出现一些问题。比如中继链不能一直把它的资源用在自己的本职工作 —— 保障网络安全和确保消息传递上。并且它诱导大家形成一种以链为中心的思维模式。
在过去,我们可以只关注一条链,在上线时把波卡所有的功能都放在中继链上,我们最早的目标就是这样。但不巧的是,相关的工具还没有跟上这个应用和用户都在跨链的时代。
现在,系统级功能正在转向跨链部署的范式。系统链更加普遍,中继链处理的东西越来越少。应用需要能够跨越这些链,并且不能因此让用户体验变得困难。
这是我半小时前刚画的示意图,这是我认为理解 “波卡是什么” 的更好的观察角度。
波卡其实并不是中继链在中间,平行链围绕在周边,至少对于来到波卡生态的人来说不应该是这样。事实上,波卡应该是一个集成系统,一个运行了很多应用的计算机。
没错,不同链的业务逻辑组件(即平行链)之间是有边界的,但这对用户来说可能没有我们以为的那么重要。更重要的是,用户能做到他们想做的事情,并且是轻松地、清楚地、快速地做到。
图上的圆点是应用,分割圆点的虚线是 “paras”,我不想说成平行链,因为那会引诱我们掉入 “每条平行链对应一个核” 的思维陷阱。这是波卡到目前为止的模式,但并不是唯一的选择。
这些圆点在正常情况下应该可以互相交流,并且几乎与在虚线范围内的空间交流一样轻松。
XCM
要怎样做到这一点呢?这就说到 XCM 了。
XCM 是一种语言,而真正传递消息的传输层叫 XCMP,我承认这两个名字有点容易混淆。
XCM 是做什么的呢?它的作用是抽象出链中常见的功能,它创造了一种描述性的语言,来描述你想要做什么或者想要什么事情发生。
只要链诚实地翻译这个消息,那么一切都好。但不幸的是,无法保证链会诚实地翻译你的 XCM 消息。在去信任的环境中,XCM 并不理想。
打个比方。在贸易中,我们会说 XCMP 这种运输手段给了我们一条安全贸易通道,我们不会在中途被打劫。发出的东西能确保被收到。然而,它没有给我们一个在不同贸易主体间创建有约束力条款的框架。
举一个更直观的例子 —— 欧盟。它是什么呢?本质上它是一个联盟,你可以加入它,它是一个条约框架,让不同的主权国家遵守特定的条约。但是,它并不完美,因为虽然有共同的司法部门可以翻译每个国家的法律,保障它遵守了法律,但它无法阻止某个国家改变其法律,让其不与欧盟的要求一致。
在波卡中,我们也面临类似的问题。XCM 是一种表达意图的语言,WebAssembly 是表达平行链在波卡中要遵守的法律,可以把它想象成欧洲法院(ECJ),保证平行链遵守了自己提出的逻辑,但这并不意味着这个逻辑无法被平行链合法地更改,从而去拒不遵守 XCM 语言。
XCM 是一种表达意图的语言,比如 “我准备去转账资产”、“我准备去投票”。在互相信任的系统链之间,这不成问题。但如果它们是在不同的治理流程、立法程序之间,就会有问题了。在波卡生态中我们可以做得更好。
Accord(协定)
这里我提出了一个新的术语叫 Accord(协定)。协定是跨多条链的自愿性条约。有点像说 “我自愿遵守这一个业务逻辑,并且我做的任何事情都不会改变这一点”。链自己不能破坏条约的逻辑。
波卡保障该逻辑的忠实执行。协定会针对特定的函数。任何加入该协定的链都要遵守规则,这个规则会针对这个特定的函数。
为了保证较低的进入门槛,提出协定是无需许可的。因为它是自愿加入的,所以在通过和注册之前都不会影响任何人。
这个示意图不是最精确的,但大概意思是这样。外圈是波卡,里面有一些小圆点,我们把这个图水平放置。那么 Accord 就是一个统治其本地的主权性的单独的机制。
Accord 并不是在所有系统中都能存在的。据我所知,波卡是唯一能够支持它的存在的系统,因为波卡是唯一一个拥有同强度安全层的系统,而且还能为每个分片提供特定的状态转换函数。这些特点让波卡可以做到在其他架构(如跨链桥)中不可能达到的合作模式。
对波卡比较熟悉的人可能听过 “SPREE”,SPREE 就是可以实现 Accord 的技术。
一些 Accord 的使用场景
我们来看一些 Accord 的可能案例。
其中一个就是资产枢纽。
目前,如果两条链想要有资产的交互,必须通过第三条链,即资产枢纽链。如果其中一条链是本地资产的链,会稍有不同。但理论上,如果两条不相关的链想要交易第三方资产,你必须额外去打通一条路径。
有了 Accord 就不需要这样做了。你可以把它看作一个大使馆,它存在于通用流程空间中,和平行链在同一时间在同一核上调度,但又不是平行链业务逻辑的一部分,而是另外存在的。这有点像大使馆有自己原本国家的法律,但它们的地理位置却在当地的国家。同样地,Accord 就像外部业务逻辑,但是又是大家认可的,而且存在于本地。
另一个案例是多播 XCM 路由器。它可以发送一条消息,但是跨越到多条链,还可以是以某种顺序进行。比如在这里做一个操作,在那里做另一个操作,但是永远是在我的允许下的。这也是目前做不到的。
还有一个案例是去中心化交易所,它可以在多条不同的链上设置前哨站,好让兑换直接在本地发生,而不需要开启双向通道。
这只是我暂时能想到的几个例子,相信在之后这个技术的潜力会被进一步发挥出来。
Project CAPI
简单讲讲用户界面 —— Project CAPI。它的作用是让跨越多条链的波卡应用可以拥有顺滑的、体验良好的用户界面,即使是在使用轻客户端的情况下也是如此。
隐士中继(Hermit Relay)
也就是将中继链中所有用户级功能,都转移到系统链中。例如:
最终让波卡的功能跨越多个平行链,释放中继链的空间。
打造有韧性的应用平台
最后一个部分,我想重申一下我们在做的事情,以及为什么要做。一切都是关于韧性。
世界总在变化,但如果大家有明确的意向,那么让这些意向能够被尊重是很重要的。我们现在所用的系统不够有韧性,它们是基于很老派的思想而建立的。
当你的系统没有加密学、博弈论时,就会发生一些糟糕的情况。例如在这条新闻中提到的大型网络攻击,让 600 万人的信息遭到泄露,也就是世界上千分之一的人啊。而且这些事情经常发生。
那么怎样打造一个不受到这些威胁的系统呢。首先当然是建造一个去中心化的、基于密码学的、经得起博弈论考验的系统了。但我们具体要做什么呢?
虽然我们天天都在宣扬 “去中心化”,但是如果所有东西都要通过同一个 RPC 供应商,就算不上真正的去中心化。
去中心化需要由多种因素共同提供:
牢记初心
最后,我想要重申一下我们的初心。波卡并不是为了创建某个特定的应用而存在,而是去提供一个平台,在该环境中提供一个部署多种应用的方式,并且让应用可以互相利用对方的功能,来提高广大用户的福祉。并且我们要确保这个愿景能够尽快实现,这就是波卡的使命所在。
如果波卡无法对世界上的变化保持一定的韧性,那么构建波卡将毫无意义。这些变化可以是达到同样目的的其他方式,或者已有的来自厌恶去信任世界的外部组织的威胁。