当前位置: 首页 > news >正文

深度解读波卡 2.0:多核、更有韧性、以应用为中心

在这里插入图片描述本文基于 Polkadot 生态研究院整理,有所删节

随着波卡 1.0 的正式实现,波卡于 6 月 28 日至 29 日在哥本哈根举办了年度最重要的会议 Polkadot Decoded 2023,吸引了来自全球的行业专家、开发者和爱好者,共同探讨和分享波卡生态的最新进展和未来展望。

会议上波卡创始人 Gavin Wood 在演讲中揭示了波卡 2.0 未来的发展方向,并提出了看待波卡的新角度:不再受限于原有的平行链、中继链,而是聚焦于区块链所需的更底层资源——计算核心(Core),将波卡看作一个多核计算机。此外,波卡在未来有可能取消现有的插槽竞拍方式,采用以核为中心的更加灵活的资源分配方式:Coretime(核时间)的购买,例如对 “核” 的按月 “大宗采购” 和 “即时采购”,而这将会对 DOT 带来全新的供需变动,以及经济模型的改进。

在这里插入图片描述

在此次分享的后半部分,Gavin 还提出了对于波卡的两个新展望:希望波卡以链为中心转变为以应用为中心,创建一个更有适应力的应用平台,并分享了 XCM 与 Accord、Project CAPI、Hermit Relay、Smoldot 轻客户端、Sassafras 共识、Internode Mixnet 等技术细节。

多核计算机

核时间:更灵活、短期、市场化的资源分配

波卡 2.0 最重要的部分,就是以全新的视角将波卡看作一个多核计算机。如何理解这一视角,我们需要先理解波卡的区块空间为什么重要。波卡的区块空间是指中继链的区块空间,它是波卡网络中用于存储和执行区块链的有限资源,包括处理器单元(核心)、内存、带宽等。区块空间需要存储平行链和平行线程的区块头,以及中继链自身的交易和数据。这些数据是跨链互操作性和共享安全性的基础,因为它们可以用来验证平行链和平行线程的状态和消息。因此,波卡的区块空间是波卡网络的核心资产,是非常重要和宝贵的资源,它决定了波卡网络能够支持多少个平行链和平行线程,以及它们能够实现多高的性能和吞吐量,需要合理分配和利用。

波卡现在的平行链插槽是其实就是一种对波卡中继链区块空间的一种“计划经济”式的分配方式,我们可以把波卡看作是一台计算机,拥有相应的计算机的资源比如处理器单元、内存、带宽等,现在是为了让一些程序能顺畅运行,就把这些计算机资源分成一小份,比如原有的百分之一,让这百分之一单独去运行这一个程序。而这百分之一的使用权限就是平行链插槽,一个插槽的空间大小就是固定的中继链区块空间的一部分使用权,可以通过插槽拍卖来竞拍获得使用权限,并且使用周期是2年。

在这里插入图片描述

而核时间是波卡未来可能采用的资源分配方式,它是一种灵活的、短期的、市场化的方式,让任何人都可以使用波卡的核。波卡的一个核就相当于之前一个平行链插槽所被分配的区块空间大小,而核时间就是对于一个核的使用权的时间长短。在之前,波卡还有一个平行线程的概念,平行线程可以理解为几个项目共同去使用一个插槽的资源,但它们不需要通过竞拍来获得固定期限的插槽,而是采用按需付费的方式根据区块个数来支付相应的费用获得即时的区块空间。

而最新的核时间就可以被分为大宗采购和即时采购两种方式,如果有稳定需求和预算的项目就可以选择对核时间进行大宗采购,而对于有灵活需求或者资金并不充裕的项目就可以选择即时采购的方式。对于核时间的灵活性,不仅体现在时间上,还体现在对核的多少的使用。以前是要么像平行链那样固定使用一个平行链插槽的区块空间,要么像平行线程那样按区块来算。现在则是,可以进一步细分。比如,如果有资金非常充裕的项目来说,它可以同时购买多个核的核时间,那么原本一个核的出块是 6s 一个块,那么现在这个项目同时拥有六个核的话,就相当于 6s 出了 6 个块,也就是 1s 一个块。相当于只要钱足够,就可以以成倍的方式提高一条平行链的性能。这拉高了波卡上平行链的性能上限。对于资金非常不充裕,但是又希望接入波卡,并享受波卡的互操作性和共享安全性的项目来说,他们就可以只购买一个核的一部分资源,并且是按需支付,所需要的成本会非常低。这会极大地降低进入波卡的门槛,并且波卡上平行链项目的性能变高,会让波卡更加具有吸引力。

如何理解波卡是一个多核计算机

计算机的核心部件是 CPU(中央处理器),它的性能决定了计算机的运行速度和能力,因此多核计算机可以提高并行性能,能够同时处理多个任务的能力。

我们可以把波卡比作一个分布式的多核计算机,它由许多独立的节点组成。每个节点都有自己的 CPU 和内存等资源。中继链就像是这个分布式多核计算机的主板,它负责连接各个节点,并保障整个网络的安全和处理跨链交易;平行链项目可以随意地根据自己的需要,通过支付 DOT 的方式来获得使用这个多核计算机的资源,不再局限于是一个平行链使用一个核,而是既可以使用多个核,也可以使用一部分核。我们需要打破“一个平行链只能使用一个核的固有观念”。

波卡 2.0 会带来什么影响?

这将会带来一种全新的波卡核时间的交易市场

正如我们刚刚解释到核时间,可以看做是“核”与“时间”两种资源的结合,核代表的是一个平行链插槽所被分配的区块空间大小,是一种网络资源,为方便大家理解,我们用同样是作为网络资源的“存储”来解释。核时间就相当于对于一个存储空间所能使用的时间周期,平行链项目要使用波卡的核时间,就相当于是我们想要使用一个网络存储,使用多少时间。

而区块链行业中比较知名的存储类项目 Filecoin 未来的想法就是希望构建一个存储市场,有人提供存储空间,有人需要购买存储空间,而 Filecoin 来维系存储网络,并为此构建一个撮合市场,供买卖双方进行去中心化存储资源的交易。同理,波卡的核时间,也将会在未来形成类似的一种资源市场,这意味着会围绕着这样的市场诞生许多市场化的第三方组织或机构。比如其中有一些组织通过购买的方式,拥有许多核时间的资源,那么它就可以在自己不使用这些资源的时候将其卖出。又比如由于核时间的采购价格会随着市场的波动而变化,那么就会出现一些围绕着“核时间”而构建的期货市场和一些组织机构,通过合理的手段以一个更稳定的价格卖给一些需要的团队,他们从中获得一部分收益。

改变 DOT 的经济模型与价值捕获

核时间的买卖作为一种官方的机制,相当于在经济模型上为 DOT 提供了一个长期的使用价值。并且此次的设计与平行链插槽拍卖不同,它是需要支付 DOT 而不是只是将 DOT 锁仓。并且,由于核时间的买卖是一个长期且持续的市场行为,因此对于 DOT 的需求也是长期且持续的。此外,最重要的一点是,这部分支付的 DOT 会如何分配,会是一个非常重要的决策方向。

虽然,目前还未有具体的文章进行详细的介绍,但是如果这部分支付的 DOT 会有一部分被销毁,那么当核时间的买卖越剧烈,意味着燃烧的 DOT 会更多,会让波卡的通胀缩小,甚至由通胀变成通缩也未尝不可能。又或者其中一部分的 DOT 进入国库,会让国库拥有更多生态建设的资金,进一步推动波卡生态的发展。

核时间的终极灵活运用

对于如何灵活使用核时间,Gavin 提出了异构调度(Exotic Scheduling)的资源分配方式,异构调度又包括两种方法:范围分割(Range Splitting)和范围分层(Range Layering)。可以进一步围绕一个核时间能够如何被运用做进一步的细分。

  • 范围分割就像是一个酒店的房间可以被不同的客人按照时间段预订,比如一个房间可以被早上的客人预订 6 小时,中午的客人预订 3 小时,晚上的客人预订 3 小时。这样,一个房间就可以满足多个客人的需求,提高了房间的利用率。
  • 范围分层就像是一个酒店的房间可以被不同的客人按照层级预订,比如一个房间可以被 A 客人预订整个房间,B 客人预订卧室,C 客人预订浴室。这样,一个房间就可以满足多个客人的需求,提高了房间的利用率。

而最终将这些利用核时间的方式综合起来,就得到了下面这个结果。

在这里插入图片描述

释放波卡的潜力,让波卡的生态更具吸引力

波卡如果实现了对核时间的综合运用,会极大地解决波卡的一些问题,比如大幅度降低进入波卡的门槛,按需支付,这解决了现在许多人诟病的“进入波卡的门槛过高”的问题。另一方面,也把原本的平行链的性能提高到一个更有想象力的空间,毕竟理论上可以把平行链缩减到 1s,甚至更低。

虽然,距离实现这一点还要许多时间,但是当下来说,波卡肯定优先实现的是平行线程,毕竟平行线程本就是属于要实现“核时间”机制的必经之路,并且平行线程一经推出,也算是可以将波卡的准入门槛降低到非常低的情况,也可以解决目前波卡准入门槛较高的问题。

会让波卡生态有更丰富的使用场景

波卡的核时间机制,也将区块空间的购买和使用分开了,这将会使波卡支持更多的使用场景。比如对于那些,还未发行通证的项目,又想要先运行项目来构建生态,可以先直接购买核时间,让自己的项目可以先运行起来,就类似于 Layer2 中的 OP 和 Arbitrum 之前的状态。之后时机成熟,再考虑用其他的方式发行通证,这可能会衍生出新的 Launchpad 的方式。

又比如,既然可以直接购买核时间,而可以不用发行通证,那么这也可以支持一些传统企业在波卡上构建一条无币平行链,这可以让那些想要进入 Web3 但是又担心如果发行了通证会有法律风险的公司,可以无后顾之忧地从波卡进入 Web3。一些技术公司可以在波卡上构建一条链而不用发行通证,然后以传统的互联网服务的方式为一些不想构建区块链基础设施的传统企业提供 Web3 服务。

随着如今传统金融机构也在构建自己的区块链基础设施,一些国家级的银行也在利用区块链技术尝试让不同国家的 CBDC 或者债券以 DeFi 的方式进行交互。传统企业进入 Web3 的现象,或许正在流行起来,而波卡会比其他公链在这方面的需求上更具吸引力。

平行链项目需要更加深入地考虑运行成本问题

核时间变成了更加市场化的运行方式后,这对于以后的平行链项目来说,需要在经济模型上或者是经济层面要更加深入地考虑运行成本问题。

具体来说,要么从经济模型上构建类似于波卡的国库机制,让项目运行的时候会有持续的资金进入国库,并且将国库的资金用于支付核时间的成本,从而能够让项目能持续地保证自身的运转。要么从资本层面上获得充足的资金,用于购买长期的核时间,来保证项目的长期运行。

目前看来,波卡多核计算机的愿景,确实会带来独特的 Layer1 生态,并且为更多的 Layer1 使用场景提供支持。不过有关核时间的介绍还比较少,我们对于其中的解读可能有错误或者解释不清的地方。因此,关于具体核时间的解读,仍然需要官方推出更加详细的说明才能解释的更清晰。

以链为中心转变为以应用为中心

Gavin 首先回顾了一下波卡 1.0 的情况:以链为中心的范式,它能够支持孤立的链互相交换消息,类似于主权链再用桥的方式连接起来,只不过在波卡里是通过中继链来实现的。这样做的结果就是带来了碎片化的用户体验,用户被分离到单条链上,是十分割裂的,毕竟平行链与平行链之间的交互还有一些隔阂,用户如果想要用另一条链的功能就必须跨链。所以,如果要释放波卡的潜力,应用必须无缝地跨越链。

在这里插入图片描述

如上图所示,早期波卡的架构就是围绕着中继链周围有许多平行链。但在波卡 1.0 中,由于为了快速上线波卡,而选择了把波卡的很多应用能力放到中继链上,比如 Staking、治理、身份系统、资产管理等等。

但这其实是权宜之计,因为这些额外的功能,占用了原本中继链的使用空间,中继链的本职工作是保障网络安全和确保消息传递。如果将上述的这些功能转移到系统平行链上,就可以最大限度地为中继链减负,从而提高整个波卡网络和波卡生态更高效地运转。但另一方面,许多功能被分散到了不同的系统平行链中,这意味着应用需要能够跨越这些链,才能实现更多的功能,但对于波卡的设计来说并不能因此让用户体验变得困难。

在这里插入图片描述

所以我们需要以另一种视角来看波卡。波卡其实并不是中继链在中间,平行链围绕在周边,至少对于来到波卡生态的人来说不应该是这样。事实上,波卡应该是一个集成系统,一个运行了很多应用的计算机。

图上的圆点是应用,分割圆点的虚线是 “paras”,尽管平行链之间是有边界的(如图中的虚线),但是对于应用来说(也就是图中的圆点)应该是在波卡上的所有圆点都能轻松地互相交流。尤其是,在不同平行链上的两个应用之间的交流至少也应该几乎像在同一个平行链中两个应用之间的交流那样轻松。(毕竟在使用 XCMP 的时候需要消耗一定的网络资源和计算资源,因此会增加一些额外的手续费。)而这样,对于应用来说就可以忽略掉不同的平行链之间的隔阂,而是把自己看做是波卡上的一个应用,并且能轻松地与波卡上的任意应用交互。

Gavin 所说的以链为中心转化为以应用为中心,可以理解为,此前波卡的许多功能都在中继链上,大家看待波卡以及波卡生态还是以链的角度来看待的。但是,这是因为当初波卡的许多基础设施还未实现,比如平行链插槽拍卖、跨链功能等还未实现,波卡需要一步一步实现了这些功能后,才能实现后续的将中继链的许多功能剥离并转移给系统平行链,并且有了 XCM 以及 XCMP/HRMP 等跨链技术的支持,才能够实现这些分配在不同系统平行链上的功能能够轻松地交互,进而实现波卡更有可能的样子。

如果把波卡比作欧盟,不同的平行链比作欧盟中的各个国家,而这些应用比作各个国家里的公司,那么现在的情况就好比是某个国家的公司现在可以与任意一个国家的另一个公司或者居民进行业务上的往来,公司们可以更加专注于做好自己的产品或者业务,他们可以面向欧盟境内的所有居民了。这也就是波卡的以应用为中心。不过,要实现这一目标,就不得不提到 XCM 和一个叫 Accord(协定)的新概念。

XCM 与 Accord

XCM,意思是跨共识消息格式,它是一种表达意图的语言,比如 “我准备去转账资产”“我准备去投票”。你可以理解为在使用不同语言的国家之间进行交流时,用了英语这一门国际通用语言,大家就可以互相理解了。但是在波卡中,如果在互相信任的系统链之间,这样的表达不成问题。因为他们是互相信任的。

但如果它们是在不同的治理流程、立法程序之间,就会有问题了。就好比,尽管各个平行链组成了一个欧盟,它其实是一个条约框架,让不同的主权国家遵守特定的条约。但是,它并不完美,因为虽然有共同的司法部门可以翻译每个国家的法律,保障它遵守了法律,但它无法阻止某个国家改变其法律,让其不与欧盟的要求一致。如果是在这样的一个不信任的环境下进行跨国贸易,肯定是非常难受的。

注:XCMP 则是跨链消息传输协议,它是一种传输方式,就好比物流或者打电话,这种都是传递东西的方式,而 XCM 则是传递的语言,比如你在不同国家之间的用英语打电话交流,就是用 XCM 这门语言并且用 XCMP 的方式进行传输了。两者英文相似,但实际意义区别很大。XCMP 只管消息能否送到,但是如果对方不接受就是另一回事了。

为了解决这种一致性问题,Gavin 提出了一个新的术语 Accord(协定),协定是跨多条链的自愿性条约。波卡保障该逻辑的忠实执行,协定会针对特定的函数。任何加入该协定的链都要遵守规则,这个规则会针对这个特定的函数。为了保证较低的进入门槛,提出协定是无需许可的。因为它是自愿加入的,所以在通过和注册之前都不会影响任何人。不过这里没有提到是否可以退出或者如果退出之后会怎样,这一点有待继续观察。

在这里插入图片描述

协定并不是在所有系统中都能存在的。波卡是唯一能够支持它的存在的系统,因为波卡是唯一一个拥有同强度安全层的系统,而且还能为每个分片提供特定的状态转换函数。这些特点让波卡可以做到在其他架构(如跨链桥)中不可能达到的合作模式。尽管近期有许多 Layer2 纷纷推出了自己的 Stack 工具,并且可以支持多链的交互,从而形成基于他们 Layer2 Stack 的多链生态,但是这些 Layer2 本质上的安全性是受制于其自身所在的 Layer1 的,因此是无法达到波卡同强度安全层的系统的条件。Cosmos 的生态项目,尽管有 Cosmos2.0 带来的新的共享安全性,但是这样的安全性依然达不到波卡同强度安全层的效果。因此,Accord 这样允许多个链上的合作模式,这在其他架构中是不可能的(或者更确切地说,是不安全的)。所以,协定(Accord)会是未来波卡生态十分具备竞争力的机制。

此前,波卡目前在推进的技术之一,其中有一个技术叫做 SPREE,它就是实现 Accord 的关键技术之一。SPREE 是一种共享保护运行时执行隔离区(Shared Protected Runtime Execution Enclaves)的技术,也被称为“可信虫洞”。它可以让不同的平行链之间通过中继链进行安全、高效和灵活的信息和价值的传递。它的原理是一种基于中继链的 Runtime 逻辑片段,它可以被平行链选择性地引入,从而获得一些特定的功能和服务。SPREE 可以保证 Accord 在所有平行链上有相同的逻辑,实现跨链协议的一致性和可信性,并且可以保证 Accord 的存储空间不能被平行链逻辑修改,从而防止数据篡改和滥用,确保 Accord 中传递的消息的真实性和完整性。

Accord 的核心思想是,通过使用智能合约和 XCMP,可以在多个区块链上定义和执行一些共同的规则和逻辑。这样,不同的区块链就可以形成一个协作网络,实现一些单个区块链无法完成的功能。

在这里插入图片描述

那么具体 Accord 会有哪些应用场景呢?Gavin 博士列举了三个案例:

  1. 资产枢纽:目前,如果两条链想要有资产的交互,必须通过第三条链,即资产枢纽链。如果其中一条链是本地资产的链,会稍有不同。但理论上,如果两条不相关的链想要交易第三方资产,你必须额外去打通一条路径。有了 Accord 就不需要这样做了。你可以把它看作一个大使馆,它存在于通用流程空间中,和平行链在同一时间在同一核上调度,但又不是平行链业务逻辑的一部分,而是另外存在的。这有点像大使馆有自己原本国家的法律,但它们的地理位置却在当地的国家。同样地,Accord 就像外部业务逻辑,但是又是大家认可的,而且存在于本地。

  2. 多播 XCM 路由器:它可以发送一条消息,但是跨越到多条链,还可以是以某种顺序进行。比如在这里做一个操作,在那里做另一个操作,但是永远是在我的允许下的。这也是目前做不到的。

  3. 去中心化交易所:它可以在多条不同的链上设置前哨站,好让兑换直接在本地发生,而不需要开启双向通道。(意思是现在两条平行链要进行互操作,还需要打开双向的 HRMP 通道。)

这些只是 Gavin 当下最直接的思考结果,Gavin 相信随着时间的推移,这项技术会被更多的使用,并让我们见识到它的全部潜力。

Project CAPI:以应用为中心的中间件

有了以应用为中心的新目标,还需要辅以相应的基础设施,帮助生态更迅速地朝这个方向发展。因此,推出相应的中间件加速发展是必要的。Project CAPI 便应运而生。

Project CAPI 可以帮助创建基于波卡的 DApp,并让其可以跨越多条链,拥有顺滑的、体验良好的用户界面,即使是在使用轻客户端的情况下也是如此。这可以解决当一个应用在多条链上时,它的体验是集合的且容易的,不会是以前比较割裂的状态。就好比是以后在体验层面,只会感知到这款应用的功能,而不会因为它部署在不同链上,而需要非常麻烦的切换与交互。那么,很自然的,我们就不会过多的关注这个应用是在哪条链上,而是会回归这个应用本身好不好用。这也自然而然的实现以链为中心转化为以应用为中心了。

Hermit Relay(隐士中继)

也就是将中继链中所有用户级功能,都转移到系统链中。例如:

  • 余额
  • 质押
  • 治理与身份
  • 核的租赁

最终让波卡的功能跨越多个平行链,释放中继链的空间。并且,最终是实现用户不会感知到我用了哪一项功能是必须要在这个链上,又用了哪一项功能在另外的链上,而是直接无感地体验到所有的功能,仿佛这些功能还是在中继链上一样。

打造有韧性的应用平台

最后,Gavin 重申了他们一直以来想要做的事情,就是希望把波卡打造成一个有韧性的应用平台。

现有的系统并不够有韧性,它们是用旧派的思维构建的。这样的系统在没有加密学、博弈论时,往往会造成我们个人信息的泄露等中心化问题,因此我们需要打造一个有韧性的平台,要实现它,首先当然是建造一个去中心化的、基于密码学的、经得起博弈论考验的系统了。虽然我们天天都在宣扬 “去中心化”,但是如果所有东西都要通过同一个 RPC 供应商,就算不上真正的去中心化。

韧性(Resilience)需要由多种因素结合而成:

使用轻客户端的优势

集中式 RPC 太容易受到影响,RPC的使用太普遍了。RPC 是一种远程过程调用的协议,它可以让一个程序在一个网络上的另一个计算机上执行一个过程(子程序),就像这个过程是在本地运行一样,而不需要程序员明确地编写远程交互的细节,因此 RPC 被广泛使用中。但是集中式的 RPC 又会带来许多中心化的问题,例如:如果中心服务器出现故障或被攻击,那么所有的远程过程调用都会受到影响,导致服务中断或数据丢失。所以,过于依赖 RPC 会让系统没有足够的韧性。

而波卡中有两种技术,可以让开发者和用户更方便地与波卡的多条链进行交互和协作,而不需要运行一个完整的节点或者依赖于第三方的服务。这两种技术分别是 Smoldot 和 CAPI。Smoldot 是一种为基于 Substrate 框架的链(如波卡/Kusama)构建的轻客户端。CAPI 是一种用于构建与 Substrate 链交互的框架,它提供了一个开发服务器和流畅的 API,可以实现多链交互而不影响性能或易用性。

在这里插入图片描述

Smoldot 和 CAPI 可以让开发者和用户更快速、更安全、更灵活地与波卡网络中的各种链进行通信和合作,而不需要下载大量的数据或者信任某个特定的节点。这样就可以实现高性能的基于轻客户端的用户界面(UI),可以让用户在不同的设备和平台上,轻松地访问和使用波卡网络中的各种应用程序和服务。

ZK 原语

构建一个功能丰富的、高性能的 ZK 原语库。波卡的开发者和一些生态中的研究人员已经开始正在构建一些 ZK 原语的库了,这些库将用于一些特定的用例中,即我们在构建应用时想要做的特定的事。第一个库已经快完成了,它能提供隐私功能,它将立即为链上集体(也就是 Fellowship)提供隐私保护,它将使我们能够将可重复用的模块用于零知识证明和隐私保护的世界中。

原语是指一种最基本的操作或函数,它可以用于构建更复杂的算法或协议。原语通常是经过严格的数学证明和安全分析的,因此可以被认为是可靠和安全的。上述的 ZK 原语,就是指一些用于实现零知识证明的原语,目前比较流行的 ZK 方案就包括 Layer2 领域里的 ZK-SNARKs、ZK-STARKs、ZK-Rollup 等。

注:ZK,也就是零知识证明,它可以让一个人向另一个人证明自己知道某个信息,而不需要透露这个信息的具体内容。零知识证明可以用于保护隐私、提高效率、防止欺诈等多种场景。

Sassafras 共识

Sassafras 共识是波卡新的无分叉出块共识算法,是一种扩展的 BABE 共识机制,它可以作为一个恒定时间的区块生产协议。这种方法试图解决 BABE 的一些缺点,比如确保每个区块只能在固定的时间间隔内产生。这个协议利用了 zk-SNARKs 来构造一个 ring-VRF,目前还在开发中。它将提高进一步波卡的安全性和随机性,具有高性能的交易路由,提高了平行链的性能和用户体验。此外,波卡将可以更有潜力做一些聪明的事情,比如加密的交易,这防止了 Front-Running,同时也开辟了一种有趣的途径来抵抗 MEV。

注:Front-Running,又叫抢跑交易,是指一些利用区块链网络中的信息不对称,通过观察或者干预交易的顺序,来获取不正当利益的人或者机器人。例如,抢跑交易者可以在看到一个有利可图的交易后,快速地插入一个自己的交易,来抢占这个机会。这样就会损害其他交易者的利益,也会影响区块链网络的公平性和效率。

MEV 是 Miner Extractable Value,指矿工/验证者可提取价值,意思是矿工或验证者从区块链中提取的超出了正常交易费用的价值。矿工在打包交易的时候可以做到将某些交易进行排序干预等,通过这些操作,矿工可能获取除了交易费用和区块奖励之外的额外利润,这些多出来的价值就被称为 MEV。Front-Running 就是最常见的 MEV 攻击之一。

Sassafras 论文下载链接,详情请参见:https://eprint.iacr.org/2023/031.pdf

Internode Mixnet 混合网络

Internode Mixnet 是一种加密的传输技术,它可以用于发送消息,避免泄露交易的 IP 信息。Internode Mixnet 也是一种通用的消息系统,可以在用户、链和链下工作机(Off Chain Workers)之间进行通信。要让系统更具有韧性,这一点也是非常重要的。

人的去中心化

只要我们依赖于去中心化,我们就需要让许多不同的参与者参与进来,以获得韧性。这就需要构建正确的结构以正确的方式引入很多的且足够多元的人参与到系统中。波卡通过治理、国库支出、工资、补助等方式激励大家的参与,并且吸取和维护集体的专业知识。

最后,Gavin 想要重申了初心。波卡并不是为了创建某个特定的应用而存在,而是去提供一个平台,在该环境中提供一个部署多种应用的方式,并且让应用可以互相利用对方的功能,来提高广大用户的福祉。并且我们要确保这个愿景能够尽快实现,这就是波卡的使命所在。如果波卡无法对世界上的变化保持一定的韧性,那么构建波卡将毫无意义。这些变化可以是达到同样目的的其他方式,或者已有的来自厌恶去信任世界的外部组织的威胁。

总结

综合来看,波卡 1.0 尽管在技术架构、设计理念等方面已经较为先进,但是由于它是与现有的公链架构不同的一种全新的 Layer0 与 Layer1 组成的多链系统架构,以前没有成功案例,所以,需要采取一些比较妥协的方式来一步一个脚印的摸索着发展。比如以链为中心的角度,并且许多功能都集中在中继链上。以此才能稳步地确保波卡能顺利落地。

在这里插入图片描述

所以,随着波卡 1.0 的完全交付,并且已经能确保中继链能够支撑众多平行链,那么波卡已经成熟到可以朝着它真正理想的方向发展了。而这就是波卡 2.0。

波卡 2.0 实现了几个目标:

  1. 解决以前为了快速上线波卡而妥协所造成的一些诟病的地方,以及波卡 1.0 运行期间发现的一些问题。把以前大家关心的和发展中不合理的地方都做个改进。这就包括可能取消插槽拍卖,并改为核时间的买卖。并且围绕着核时间的机制可以打破波卡生态进入门槛太高的问题。同时,核时间的机制也将改变波卡的经济模型,为 DOT 带来新的赋能。

  2. 充分展现波卡的潜力和波卡特有的优势。不论是核时间的机制能让平行链的性能成倍的提高,又或者是像 Accord 这样的协作协议,只有波卡能够实现波卡同强度安全层的系统,并且做到多条 Layer1 能在这样的系统中安全地进行链上合作,这些功能都只能在波卡上实现,会成为波卡的技术上的护城河。

  3. 波卡更能适应未来多变的世界。波卡能够吸收现有的流行技术,并将其做成原语,甚至是可重复用的模块,被广泛应用于波卡生态的其他项目中。其中也有许多是来自波卡生态的项目,这意味着波卡丰富的生态会在这个方向赋能其他波卡生态的项目,比如 ZK 原语,就可以让其他波卡生态的项目也可以获得隐私保护相关的功能。这一点,将会随着波卡生态的逐渐成熟,而形成一个能量巨大的网络效应,成为波卡未来具有竞争力的因素之一。

而这些解决方案中,也可以解决当下整个 Crypto 行业经常遇到的问题,比如隐私问题,MEV 问题等。让波卡与时俱进,不用担心落后。可以看出,波卡的潜力之一在于:“你没有的我有,你有的我也可以有。”让波卡面对更多变的未来,能更具适应力。

波卡 2.0 已经能够充分体现波卡优秀的进化能力,如果时局有变,波卡又可以推出波卡 3.0 来进一步迭代,因此,波卡会成为 Crypto 行业中的常青树。清风拂山岗,明月照大江,且看风云变幻,谁与争锋。

相关文章:

深度解读波卡 2.0:多核、更有韧性、以应用为中心

本文基于 Polkadot 生态研究院整理,有所删节 随着波卡 1.0 的正式实现,波卡于 6 月 28 日至 29 日在哥本哈根举办了年度最重要的会议 Polkadot Decoded 2023,吸引了来自全球的行业专家、开发者和爱好者,共同探讨和分享波卡生态的…...

微服务中间件--Eureka注册中心

Eureka注册中心 a.eureka原理分析b.搭建eureka服务c.服务注册d.服务发现 a.eureka原理分析 1.每个服务启动时,将自动在eureka中注册服务信息 (每个服务每隔30秒发送一次的心跳续约,当某个服务没有发送时,eurekaServer将自动剔除该服务&#x…...

积跬步至千里 || 矩阵可视化

矩阵可视化 矩阵可以很方面地展示事物两两之间的关系,这种关系可以通过矩阵可视化的方式进行简单监控。 定义一个通用类 from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pdclass matrix_monitor():def __init…...

zookeeper详细介绍

ZooKeeper是一个开源的分布式协调服务,具有以下一些关键特点: 数据模型 ZooKeeper的数据模型采用层次化的多叉树形结构,每个节点称为znode,类似于文件系统中的文件和目录。每个znode可以存储数据和控制信息。一致性保证 ZooKeeper通过ZAB协议,实现分布式环境下数据的强一致性,…...

面板市场趋势分析:价格上涨势头或将减缓 | 百能云芯

8月末,面板价格报价公布,市场研究机构TrendForce指出,电视面板今年以来已经上涨超过30%,虽然下游品牌商对于价格上涨提出了不同声音,但由于面板厂商采取了按需生产的策略,8月仍然出现了3~5%的价格上涨。Tre…...

JVM性能调优

java 如何跨平台,如何一次编译到处执行 是由于java在不同的jvm上编译,jvm在软件层面屏蔽不同操作系统在底层硬件与指令上的区别。 jvm 包括 new 的对象都是放在堆中 栈,给线程单独使用(线程私有),存储一个…...

【全链路追踪】XXL-JOB添加TraceID

文章目录 一、背景调用路径部署环境问题 二、方案三、Demo示例1、MDC2、RequestInterceptor3、HandlerInterceptor4、logback.xml 四、后续改进思路 一、背景 首先这个项目属于小型项目,由于人手以及时间限制,并未引入Skywalking等中间件来做调用链路追…...

[Unity]Lua本地时间、倒计时和正计时。

惯例,直接上代码: --正计时开始时的时间戳 self.begin_time os.time() --倒计时时长,01:30:00 self.countdown_time 5400 --是否开始计时 self.is_update_local_time true--Unity Update function time_transition:update_local_timer()i…...

探究HTTP API接口测试:工具、方法与自动化

本文将深入探讨HTTP API接口测试的重要性,并介绍了相关工具、方法以及自动化测试的实施,同时比较了HTTP和API接口测试的区别。从不同角度解析这一关键测试领域,帮助读者更好地理解和应用于实际项目中。 在如今数字化的世界中,软件…...

CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 …...

CSDN编程题-每日一练(2023-08-21)

CSDN编程题-每日一练(2023-08-21) 一、题目名称:贝博士的论文审阅统计二、题目名称:生命进化书三、题目名称:寻找宝藏山一、题目名称:贝博士的论文审阅统计 时间限制:1000ms内存限制:256M 题目描述: 贝博士经常收到申请他审阅论文的信函,每封信函的信封上面只有两个申…...

面试题-React(四):React中的事件绑定如何实现?有几种方式?

一、React事件绑定机制 在React中,事件绑定是通过JSX语法来实现的。你可以将事件处理函数直接绑定到元素的属性上,比如onClick、onMouseOver等。当触发相应事件时,绑定的事件处理函数将被调用。 React采用了一种合成事件(Synthe…...

Docker容器:docker镜像的创建及dockerfile案例

文章目录 一.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dockerfile结构及分层3.2 联合文件系统3.3 docker镜像加载原理及过程 4.dockerfile操作常用的指令4.…...

Java虚拟机(JVM):引用计数算法

一、引言 我们学习了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来就已知的…...

【AGC】Publishing api怎么上传绿色认证审核材料

【问题描述】 华为应用市场会对绿色应用标上特有的绿色标识,代表其通过华为终端开放实验室DevEco云测平台的兼容性、稳定性、安全、功耗和性能的检测和认证,是应用高品质的象征。想要自己的应用认证为绿色应用就需要在发布应用时提供绿色认证审核材料&a…...

改变住宅区空气质量,你一定要知道!

在现代城市生活中,住宅区的环境质量对居民的健康和舒适感起着至关重要的作用。扬尘颗粒和噪声不仅直接影响人们的日常生活,还可能对居民的健康和生活品质造成持续的影响。 在不断提升环保意识的同时,政府、社区和居民也将共同努力&#xff0c…...

【SpringCloud】Gateway使用

文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1…...

Spring之域对象共享数据

文章目录 前言一、requset域1.使用ServletAPI向request域对象共享数据2.使用ModelAndView向request域对象共享数据3.使用Model向request域对象共享数据4.使用map向request域对象共享数据5.使用ModelMap向request域对象共享数据6.Model、ModelMap、Map的关系 二、session域向ses…...

Redis巩固加强(帮助迅速梳理知识,同时适用初学者理解)

目录 Redis究竟是什么 Redis为什么能够做到这么快 Redis持久化机制 Redis如何实现过期的key的删除 Redis数据类型及应用场景 Redis的缓存穿透如何解决 什么是缓存穿透? 解决方案: 布隆过滤器 Redis如何解决缓存雪崩 什么是缓存雪崩 措施 Redis…...

Sui生态项目|集隐私通信、移动钱包、链上朋友圈和红包功能一体的社交应用ComingChat

ComingChat是在Sui网络上构建的去中心化社交平台,功能众多,其中加密聊天功能为用户提供了安全的沟通方式。该功能利用了Signal加密协议,这是一种在Signal、WhatsApp和Skype等应用中广受欢迎的开源软件协议。 ComingChat在Sui上提供了全面的…...

I2S/PCM board-level 约束及同步(latencyskewbitsync)

I2S/PCM是典型的低速串口,在两个方向上分别有两组信号,我们已soc为视角分为soc-adif和外设audio-codec。 那么adif输入: sclk_i, ws_i, sdi 当然并不是三个输入信号同时有效,只有adif RX slave时,三个输入都会有效…...

vue 富文本编辑器

安装 1、npm install wangeditor/editor --save 2、npm install wangeditor/editor-for-vue --save使用 .vue文件//展示<div style"border: 1px solid #ccc;width: 95%;"><!-- 工具栏 --><Toolbar style"border-bottom: 1px solid #ccc" …...

为什么说ChatGPT还不是搜索引擎的对手

一 前言 1950年&#xff0c;英国科学家图灵在一篇论文中预言&#xff0c;人类有可能创造出具有真正智能的机器。 著名的「图灵测试」就此诞生&#xff1a;如果一台机器能够与人类展开对话&#xff0c;而不被辨别出其机器身份&#xff0c;那么称这台机器具有智能。 也是从那时…...

2308C++协程流程

参考 #include <常用> #include <协程> #include "简异中.cpp" //用来中文定义的.元<类 T>构 同步{共针<T>值;同步(共针<T>p):值(p){输出<<"构建同步"<<行尾;//.8}同步(常 同步&s):值(s.值){输出<<&…...

C#实现稳定的ftp下载文件方法

当使用C#实现稳定的FTP下载文件的方法时&#xff0c;我们可以使用FtpWebRequest类来执行FTP操作&#xff0c;并根据需要添加错误处理和重试机制。下面是一个示例代码&#xff1a; using System; using System.IO; using System.Net;public class FTPDownloader {private const…...

八股文之计算机网络

TCP/IP 网络模型有哪几层 该模型用来解决不同设备间的进程通信&#xff0c;就需要网络通信&#xff0c;该模型就应运而生。首先是应用层&#xff0c;我们所接触的App都是在这一层实现的&#xff0c;当不同的设备需要通信时&#xff0c;就需要把数据发给传输层&#xff0c;传输…...

kotlin 比较 let apply

let 和 apply 是 Kotlin 标准库中的两个非常有用的函数&#xff0c;它们用于在代码中实现更简洁和可读的操作。它们通常在函数式编程和链式调用中使用&#xff0c;以简化代码并提高可维护性。下面是关于这两个函数的详细解释&#xff1a; let let 函数是一个作用域函数&#…...

springboot跨域踩坑笔记

事情是这样的&#xff0c;我在进行前后端联调的时候&#xff0c;发送了跨域拦截 马上在spring项目中创建一个CorsConfig类 package com.example.demo.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.an…...

基于STM32+FreeRTOS的四轴机械臂

目录 代码&#xff1a; 注释写的较少&#xff0c;但本文出现的代码都有注释&#xff0c;所以请直接在本文里看注释 项目概述&#xff1a; 一 准备阶段&#xff08;都是些废话&#xff09; 二 裸机测试功能 1.摇杆控制 接线&#xff1a; CubeMX配置&#xff1a; 代码 2…...

【C语言】三子棋游戏——超细教学

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 &#x1f525;该篇将结合之前的知识来实现 三子棋游戏。 目录&#xff1a; &#x1f31f;思路框架&#xff1a;测试游戏 &#x1f31f…...

redux的介绍、安装、三大核心与执行流程

redux的介绍、安装、三大核心与执行流程 一、redux的基本介绍二、redux的安装三、redux核心概念3.1 action3.2 reducer3.3 store 四、Redux代码执行流程五、加减案例练习 一、redux的基本介绍 redux中文官网Redux 是 React 中最常用的状态管理工具&#xff08;状态容器&#x…...

Redis 5环境搭建

一、环境搭建 如果是Centos8&#xff0c;yum 仓库中默认的 Redis版本就是5&#xff0c;直接yum install即可。如果是Centos7&#xff0c;yum 仓库中默认的 Redis版本是3系列&#xff0c;比较老~ 为了我们能在 Centos7中下载到 Redis5 首先要安装额外的软件源 sudo yum insta…...

stm32红绿灯源代码示例(附带Proteus电路图)

本代码不能直接用于红路灯&#xff0c;只是提供一个思路 #include "main.h" #include "gpio.h" void SystemClock_Config(void); void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOB_CLK_ENAB…...

Qt与电脑管家4

折线图&#xff1a; #ifndef LINE_CHART_H #define LINE_CHART_H#include <QWidget> #include <QPainter> #include "circle.h" class line_chart : public QWidget {Q_OBJECT public:explicit line_chart(QWidget *parent nullptr); protected:void pa…...

使用css美化gradio界面

基本方法 在默认的前端页面中使用检查工具确定要修改的部分的选择器名称&#xff0c;然后在block_css中对其修改&#xff0c;并在启动网页时传入参数&#xff1a;with gr.Blocks(cssblock_css, thememy_theme) as demo: 禁止修改下拉框文字 input.border-none.svelte-c0u3f0…...

Flink流批一体计算(13):PyFlink Tabel API之SQL DDL

1. TableEnvironment 创建 TableEnvironment from pyflink.table import Environmentsettings, TableEnvironment# create a streaming TableEnvironmentenv_settings Environmentsettings.in_streaming_mode()table_env TableEnvironment.create(env_settings)# or create…...

java笔试手写算法面试题大全含答案

1.统计一篇英文文章单词个数。 public class WordCounting { public static void main(String[] args) { try(FileReader fr new FileReader("a.txt")) { int counter 0; boolean state false; int currentChar; while((currentChar fr.read()) ! -1) { i…...

点云平面拟合和球面拟合

一、介绍 In this tutorial we learn how to use a RandomSampleConsensus with a plane model to obtain the cloud fitting to this model. 二、代码 #include <iostream> #include <thread> #include <pcl/point_types.h> #include <pcl/common/io.…...

部署问题集合(十九)linux设置Tomcat、Docker,以及使用脚本开机自启(亲测)

前言 因为不想每次启动虚拟机都要手动启动一遍这些东西&#xff0c;所以想要设置成开机自启的状态 设置Tomcat开机自启 创建service文件 vi /etc/systemd/system/tomcat.service添加如下内容&#xff0c;注意修改启动脚本和关闭脚本的地址 [Unit] DescriptionTomcat9068 A…...

视觉SLAM:一直在入门,如何能精通,CV领域的绝境长城,

目录 前言 福利&#xff1a;文末有chat-gpt纯分享&#xff0c;无魔法&#xff0c;无限制 1 什么是SLAM&#xff1f; 2 为什么用SLAM&#xff1f; 3 视觉SLAM怎么实现&#xff1f; 4 前端视觉里程计 5 后端优化 6 回环检测 7 地图构建 8 结语 前言 上周的组会上&…...

【报错】yarn --version Unrecognized option: --version Error...

文章目录 问题分析解决问题 在使用 npm install -g yarn 全局安装 yarn 后,查看yarn 的版本号,报错如下 PS D:\global-data-display> yarn --version Unrecognized option: --version Error: Could...

二叉搜索树的(查找、插入、删除)

一、二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 1、若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值&#xff1b; 2、若它的右子树不为空&#xff0c;则右子树上所有节点的值都…...

电力虚拟仿真 | 高压电气试验VR教学系统

在科技进步的推动下&#xff0c;我们的教育方式也在发生着翻天覆地的变化。其中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术的出现&#xff0c;为我们提供了一种全新的、富有沉浸感的学习和培训方式。特别是在电力行业领域&#xff0c;例如&#xff0c;电力系统的维护…...

innovus如何设置size only

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 给instance设置size only属性命令如下: dbset [dbGet top.inst.name aa/bb -p] .dontTouch sizeOk 给一个module设置size only需要foreach循环一下: foreach inst [dbGet top.…...

Java之继承详解二

3.7 方法重写 3.7.1 概念 方法重写 &#xff1a;子类中出现与父类一模一样的方法时&#xff08;返回值类型&#xff0c;方法名和参数列表都相同&#xff09;&#xff0c;会出现覆盖效果&#xff0c;也称为重写或者复写。声明不变&#xff0c;重新实现。 3.7.2 使用场景与案例…...

国内常见的几款可视化Web组态软件

组态软件是一种用于控制和监控各种设备的软件&#xff0c;也是指在自动控制系统监控层一级的软件平台和开发环境。这类软件实际上也是一种通过灵活的组态方式&#xff0c;为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。通常用于工业控制&#xff0c;自动…...

通过 git上传到 gitee 仓库

介绍 Git是目前世界上最先进的分布式版本控制系统&#xff0c;有这么几个特点&#xff1a; 分布式 &#xff1a;是用来保存工程源代码历史状态的命令行工具。保存点 &#xff1a;保存点可以追溯源码中的文件&#xff0c;并能得到某个时间点上的整个工程项目额状态&#xff1b;…...

设置Windows主机的浏览器为wls2的默认浏览器

1. 准备工作 wsl是可以使用Windows主机上安装的exe程序&#xff0c;出于安全考虑&#xff0c;默认情况下改功能是无法使用。要使用的话&#xff0c;终端需要以管理员权限启动。 我这里以Windows Terminal为例&#xff0c;介绍如何默认使用管理员权限打开终端&#xff0c;具体…...

森林生物量(蓄积量)估算全流程

python森林生物量&#xff08;蓄积量&#xff09;估算全流程 一.哨兵2号获取/去云处理/提取参数1.1 影像处理与下载1.2 导入2A级产品1.3导入我们在第1步生成的云掩膜文件1.4.SNAP掩膜操作1.5采用gdal计算各类植被指数1.6 纹理特征参数提取 二.哨兵1号获取/处理/提取数据2.1 纹理…...

MySQL数据库概述

MySQL数据库概述 1 SQL SQL语句大小写不敏感。 SQL语句末尾应该使用分号结束。 1.1 SQL语句及相关操作示例 DDL&#xff1a;数据定义语言&#xff0c;负责数据库定义、数据库对象定义&#xff0c;由CREATE、ALTER与DROP三个语法所组成DML&#xff1a;数据操作语言&#xff…...