TOKEN:波卡币Polkadot跨链,会如何改变区块链技术的进步?_区块链存证平台法院

Polkadot跨链方案剖析

伴随着web3.0的发展,区块链技术也进入到了下一个阶段。为了能打破各个区块链之间的壁垒,更好地拓展区块链的边界,跨链技术得到了大家的重视,也有了较好的发展。PolkaDot就是其中一个备受期待的跨链解决方案,目前它由前以太坊CTOGavinWood率领团队开发。那么在互联网科技的新一轮变革悄然开始的背景下,Polkadot到底是什么?它的出现到底解决了什么问题?以及它又是如何解决的呢?我们会在这篇文章中尝试给出答案。

Polkadot概览

基本介绍

Polkadot是一种异构多链技术,主要由中继链、平行链和转接桥组成。它的建立是为了连接公有链、联盟链、私有链以及未来可能出现在web3.0生态系统中的所有技术。它希望使各个独立的区块链网络都能够通过Polkadot的中继链实现信息的交换和无需信任的交易。旨在实现区块链一直在努力实现的3个目标:互操作性、可扩展性、共享安全性。

Polkadot也是一个协议,它允许独立的区块链之间互相交换信息。Polkadot是一种链间区块链协议,它与传统互联网的消息传输协议不同,Polkadot还会验证各个链之间在进行消息传输时的消息顺序以及消息的有效性。

愿景

Polkadot希望能够连接各个区块链网络,主要关注在解决以下三个层面的问题:

互操作性当前区块链的生态中,各个区块链网络之间是孤立存在的,它们之间没有任何通信以及互操作的可能性。在未来区块链的世界中也将会存在各种为了满足于某些特定需求的区块链,但若它们仍然彼此孤立将会非常不利于区块链生态的发展。为了能够打破这个壁垒,拓展区块链网络之间的边界,区块链之间的互操作性是一个必须要解决的问题。而Polkadot的设计目的之一就是让区块链上的DApp和智能合约可以无缝地与其他链上的数据或资产进行交易。可拓展性在当前大多数区块链中,交易都是在节点中一个一个的处理,因此当交易量逐渐增多的时候,由于网络的限制很容易遇到性能上的瓶颈。而Polkadot提供了可以运行多个平行链的能力,每个平行链可以并行处理多笔交易,在这种情况下Polkadot网络就相当于获得无限的可拓展性。在测试中,Polkadot网络中的一条平行链每秒大约可以处理1000笔交易,通过平行链的创建,就可以成倍的增加每秒交易的数量,从而使Polkadot网络具有较高的性能。

共享安全性基于PoW共识的区块链之间存在算力竞争,这样不仅会造成算力等资源的浪费,且一些算力较少的区块链还会非常容易受到攻击,因此各个区块链具有的安全性是不相同的。且若各个区块链之间想要互相通信的话,还会由于各个区块链之间的算力不同导致了各个区块链之间不能平等的信任对方,这就比较不利于资产等信息的跨链通信。在Polkadot网络中,将由中继链整体负责整个网络的安全,每个加入Polkadot网络中的平行链之间都具有同等程度的安全性,因此它们之间在进行跨链通信时可以充分信任对方的平行链。且由于Polkadot将网络的安全都集中在中继链上,因此,要想攻击整个Polkadot网络的难度是非常大的。

架构解析

如图1所示为Polkadot网络的整体架构,从中我们可以看到中继链处于网络的中心位置,它会处理网络中整体的共识和安全性;还有许多平行链通过连接中继链以接入Polkadot网络中;同时还可以看到在该图的下方有一个转接桥,这也是Polkadot网络中连接了独立区块链的方式。此外还可以看到许多的参与者,例如:收集人、验证人、钓鱼人等。那么接下来我们就分别介绍一下在Polkadot网络中的主要链角色和不同的参与者。

主要的链角色

中继链中继链是Polkadot网络的中心链,它为整个网络提供了统一的共识和安全性保障。Polkadot网络中所有的验证人都会在中继链上质押DOT代币,从而参与Polkadot网络治理。由于在Polkadot网络中大多数业务相关的操作都会由各个平行链来实现,那么在中继链上就只会发生和网络治理、平行链拍卖等少量的交易类型,因此中继链上的交易手续费通常会高于平行链上的交易手续费。平行链整个Polkadot网络中大部分计算工作都将委托给各个平行链进行处理,平行链会负责具体业务场景的实现。Polkadot对平行链的功能不作任何限制,平行链可以作为应用链实现任何应用场景,但它们自身却不具备区块的共识能力,它们将共识的职责渡让给了中继链,所有平行链会共享来自中继链的安全保障。平行链之间可以通过ICMP(InterchainMessagePassing)进行彼此通信,同时它们还会由分配给它的验证人进行区块验证。但平行链有可能不是一条具体的链,Polkadot中对其定义是:平行链是特定于某些应用程序的数据结构,它在全局上是一致的,并且可以由Polkadot中继链的验证人进行验证。一些平行链可能是某些Dapp特定的链,也可能是专注于诸如隐私或可拓展性等特定功能的平行链,可能还会存在一些实验性质的平行链,总之平行链在本质上不一定必须是区块链。

转接桥桥在区块链的链间通信中有着重要作用。在Polkadot中关于转接桥的具体实现还有许多待确定的地方,后续官方应该还会有更具体的更新,截止目前在Polkadot中转接桥主要由三种不同的含义:转接桥合约(BridgeContracts):通过在Polkadot的平行链和外部的区块链上部署智能合约来达到桥的效果,以实现跨链的价值转移。跨链通信(Cross-ParachainCommunication):由于平行链之间是可以通过ICMP进行链间通信的,而无需智能合约承担桥接的功能。且基于ICMP的链间通信将是Polkadot原生支持的方案。内置桥接模块(In-builtBridgingModules):在Polkadot网络中,从非平行链中接收平行链上的消息很可能会在Polkadot的内置模块中完成。这样的话就不需要在非平行链中部署智能合约扮演“虚拟平行链”了,收集人就可以直接收集整理该区块链上的交易,并提交给中继链了,就像对平行链所做的那样。当前内置的桥接模块可能会考虑基于特定的链进行开发,这就意味着只要是内置交接模块支持的区块链就都可以直接桥接到Polkadot网络中了,而无需通过智能合约进行桥接。但对于内置桥接暂不支持的区块链,就还要采用转接桥合约的方法实现了。主要参与者

由图2中可知在Polkadot网络中,共存在4种主要的参与者,分别为验证人、收集人、钓鱼人和提名人。简单来看他们的职责是这样的:收集人会从各个平行链中收集交易信息并打包为待验证的区块,接下来一组验证人会对平行链上的区块进行验证;同时网络中的钓鱼人会监控验证人的行为,若钓鱼人发现非法行为就会向其他的验证人进行举报;而提名人会通过向自己信任的验证人质押token来参与网络治理。那么他们之间的异同如下分析:

验证人验证人会负责Polkadot网络的出块,它会运行一个中继链节点,在每一轮区块产生中对其提名的平行链出的块进行验证。当平行链出的块都被他们的验证人集合确定好之后,验证人集合会将所有平行链的区块头组装到中继链的区块中并进行共识。在Polkadot网络中,验证人是以组的形式存在的,它们不是来自于平行链,而是由中继链统一管理的验证人池,通过随机分组指定给平行链的。收集人收集人会帮助验证者收集、验证和提交备选的平行链区块,它会维护一个平行链的全节点。钓鱼人钓鱼人主要靠举报非法交易或者区块以获取收益。在Polkadot中钓鱼人是一个软件进程,它会监控Polkadot网络中的非法行为,一旦发现就会向Polkadot网络举报非法交易。钓鱼人在举报非法交易的时候也需要先质押token才行,且举报的交易也要经过共识的过程,只要通过2/3及以上其他验证人的验证,就会被打包进区块,若举报的交易是有效的,钓鱼人就会获得相应奖励,若发现钓鱼人进行了虚假的举报,就会没收它质押的token作为惩罚。同样对钓鱼人的惩罚和奖励也都是区块链交易。提名人提名人是拥有token的相关方,且他希望能通过质押token获益。但是它要么是由于token份额较少,或者是缺乏维护中继链节点的专业技能,因此他并没有直接作为验证人。但是系统还提供了另一种参与网络治理的途径,它不必维护一个中继链节点,但是它可以选择至多16个他信任的验证人,并将自己的stake通过那个验证人来质押,以此来分享验证人的收益。

链间通信-ICMP

在Polkadot网络的平行链之间,它们通过ICMP进行彼此通信。ICMP意为Inter-ChainMessagePassing,即链间消息传递。以平行链A向平行链B发送一笔交易为例,简要说明该过程如下:

平行链A将需跨链的交易放到自己的消息输出队列中。平行链A的收集人在收集交易时会同时拿到这笔跨链交易,并提交给平行链A的一组验证人。若平行链A的这一组验证人验证成功后,会将本次平行链A的区块头信息以及平行链A中的egress队列内的信息提交到中继链上。中继链会运行共识算法进行区块的确认以及跨链交易路由,中继链上的验证人会将平行链A的相应交易从平行链A的egress队列中移动到平行链B的消息输入队列中。平行链B会执行该区块,将ingress队列中的相应交易执行并修改自身的账本。

以上便是Polkadot中基于ICMP进行跨链交易的主要步骤。

ICMP是Polkadot网络中的一个协议,它定义了在平行链和/或中继链之间无需额外信任的消息传递的方式。它非常依赖Polkadot网络中的中继链存在,若没有了中继链ICMP也就无任何意义了。同样,ICMP并不是一种消息或者格式的标准。

就Polkadot网络中的共识机制而言,ICMP协议包含了对消息进行队列处理、转发和排序的机制。通过和Polkadot网络中继链的结合,它可以实现数据的可用性。通过和Polkadot网络中平行链的结合,它也实现了消息的输入和输出。但ICMP协议并不包含较底层的网络,以及消息语义自身。

总之,ICMP并不是也不太可是传统意义上的“标准”,它将会是一个依赖于Polkadot的专有技术领域。

共识

在Polkadot网络中,同样需要所有的节点达成共识后才能使区块链上的所有状态继续构建并演进,这是一种在共享状态上达成协议的方法。通过共识机制可以使Polkadot网络中的节点状态保持彼此同步,它旨在为网络的参与者提供所有状态的客观事实,而针对这个客观事实每个网络参与者又都有自己的主观判断,通过他们之间的沟通并最终达成协议,以此来构建一个新的区块。

什么是概率确定性和可证明的确定性?一个运行了PoW共识的纯中本聪共识区块链,它只能实现概率上的确定性并最终达到确定性的状态。概率确定性意味着在网络中的某些参与者之下,我们看到了多个区块都连接在了某个区块后,即最长链原则,那么我们就认为它是确定的了。这时最终确定的共识就意味着在将来的某个时刻,网络中所有的节点都将对一组数据的真实性达成共识。而达到这个最终确定的共识可能需要很长时间,并且我们根本无法估算这个时间是多久。但是,诸如GRANDPA或以太坊的CasperFFG之类的确定性工具,它们旨在为区块的确定性提供更强大、更快速的保证。并且在经过拜占庭协议的某些过程之后,它们将永远无法被还原。这种不可逆共识的概念又被称为可证明的确定性。

在Polkadot网络中共有两种不同的共识,分别为GRANDPA和BABE。之所以会有两种不同的共识是由于Polkadot采用了混合共识的方式。这里混合共识将区块的产生和区块的最终确定分离开来,其中BABE共识用于区块的产生,GRANDPA共识用于区块的确定。

混合共识是在Polkadot网络中获得概率确定性和可证明的确定性好处的一种方式。通过采用这样的混合共识机制,Polkadot可以快速生成区块,而速度较慢的确定性机制可以在一个独立的进程中运行以完成区块的确认,而整体不会导致网络交易速度的减慢或阻塞。那么BABE和GRANDPA到底是什么样的共识机制呢?

图3BABE共识中的出块时间间隔

BABEBABE(BlindAssignmentforBlockchainExtension)是一个基于PoS的共识协议。它在验证人节点之间运行,并确定由哪个验证人产生新的区块。BABE和OuroborosPraos算法是比较类似的,只是在“链的选择规则”和“slot时间”上有所更改。以创世区块为起始,我们将创建区块的后续时间划分为不同的epoch,再将不同的epoch划分为更小时间间隔的slot,如图3所示。BABE共识协议中的要点就在于挑选不同的验证人,在每一个slot内生成一个区块。BABE会根据验证人质押的token总量,并在每个epoch周期内随机为验证人分配slot进行区块的生成。在每个slot中,Polkadot中的验证人都会参加一次“抽奖”,抽奖的结果将会告诉验证人他是否是该slot中生成区块的候选人。在Polkadot中,一个slot有6秒钟的时间。由于在每个epoch的周期内验证人的选择具有随机性,由此就可能导致一个slot中存在多个验证人,也有可能导致某些slot中一个验证人都没有,这就可能导致出块时间的不一致,如图4所示,有些slot中有两个甚至三个验证人,但某些slot中却没有验证人。那么要如何处理这两种不同的情况呢。

slot有多个验证人在一个slot中有多个验证人作为生成区块的候选人的时候,每个验证人都会产生一个区块并将其广播到网络中。这时就像是一场比赛一样,谁的块先传播到网络中更多的节点谁就会取得胜利。由于网络的拓扑和网络延迟的影响,可能多条链都会持续向后生成区块,直到最终被确定为止。如图5所示,可能会有多条链在同时向后生成区块,而其中最长的链最终可能会被确认。

slot中没有验证人当一个slot中没有任何验证人在一次抽奖中获胜时,这个slot看起来就不能生成区块了。这时Polkadot会在后台通过round-robin方法选择一个验证人,让他生成一个次级区块。但是一个slot中如果已经有了在抽奖中获胜的验证人的话,那么他就会生成一个主要区块,就不会再有次级区块了。因此,我们会看到每一个slot中必定会有一个区块,它要么是主要区块,要么是次级区块。如图6所示,在临时分叉的链中可能既有主要区块也有次级区块。

激励与惩罚

在每个区块链生态中都会有一个经济系统,以使所有的网络参与者能够更好的参与网络的贡献。那么在Polkadot中这个经济系统是什么样呢。

DOT代币

DOT是Polkadot网络中的原生代币。DOT也是持有人在进行投票、验证或委托给其他验证人的许可证明,同样它也可以用来进行交易时支付交易费用。DOT在Polkadot中主要有四个用途:

Governance/治理DOT的持有者一定程度上决定着Polkadot网络的未来。类似的在其他平台中矿工拥有的特权都将给予中继链的参与者,也即DOT的持有者。他们可以管理网络中出现的重要事件,例如:协议的升级和修复。Operation/运营博弈论会激励DOT持有者在网络中做好事。没有作恶的参与者将会通过这种机制获得相应的回报,而在网络中作恶的参与者就会失去他们的DOT。这样也可以一定程度上保证网络的安全。Inter-operability/互操作性对于要从一条区块链发送到下一条区块链的消息,发送者可以支付一定的DOT作为交易费用,但这并不是必须的。Bonding/质押新的平行链需要通过绑定DOT来加入网络中。且无人维护的和无用的平行链也可以通过解除绑定DOT以从网络中删除。这也是PoS的一种形式。DOTtoken将会在主网上线之后才能使用。

平行链的插槽拍卖

根据目前的估算,平行链的数量上限为100条,不过未来有可能减少或增加。

Polkadot网络通过拍卖机制来竞拍平行链的使用权——出价最高的人需要在PoS系统中锁定一定数量的DOT,才可以在一定时间段内拥有所拍得平行链的使用权。

这意味着要想使用Polkadot上的平行链,需要购买并锁定大量DOT,直到不想再使用这条平行链为止。

参与者激励和惩罚

验证人激励验证人通过质押token在中继链上进行区块的确认,当区块被确认时,它会收到对应的奖励。如果作恶,被钓鱼人举报并且验证为真实作恶的话,就会对该验证人进行惩罚。收集人激励收集人会收集平行链中的交易,这些交易中的手续费会作为收集人的奖励。钓鱼人激励钓鱼人对Polkadot网络中的验证人进行监控,若发现非法的交易,它就会通过质押token来举报给其他组的验证人进行验证,若其他验证人证明了举报是真实的,钓鱼人就会获得相应的奖励,反之,若为虚假举报,钓鱼人就会受到相应惩罚,他所质押的token也会被没收。提名人激励提名人最多可以支持16个他们信任的验证人候选人,并将自己的token通过自己所信任的验证人进行质押,这样就可以和验证人共享其收益。在Polkadot的质押机制中,所有验证人将会获得相同的奖励,而所有参与质押的提名人将会等验证人减去所设置的佣金后,再按他们的抵押比例分配奖励。生态

概述

如图8所示是PolkaProject发布的关于Polkadot生态中的所有项目,可以看到Polkadot生态中的项目还是蛮多的,其中钱包、区块链浏览器、基础设施项目,还有一些论坛等。其中的优秀项目还是比较多的,比如:ChainX、Edgeware、Darwinia、Cdot等。稍候我们会对这些优秀的项目做一些简要的介绍。在这之前,我们先来看下Polkadot的开发者生态如何。

Polkadot整体评估

Polkadot作为一个跨链的技术解决方案,它同样会面临跨链本身所需要解决的问题,包含跨链交易的原子性、可验证性、数据一致性以及安全性问题。在Polkadot中,主要通过中继链、平行链以及ICMP机制解决这些问题。Polkadot网络中所有的平行链会通过中继链共享网络整体的安全,通过ICMP协议由验证人实现不同消息在不同平行链间的转移。且在Polkadot网络中还有相应的激励和惩罚措施,以提高验证人作恶的成本,保证网络的安全。

以上我们分别介绍了Polkadot网络的基本结构,包含所有的链角色和网络中参与者的角色,以及它的共识机制和激励惩罚措施等,那么总体上来看Polkadot怎么样,又有什么优劣势呢。

优势

Polkadot网络由中继链统一管理网络的共识,所有平行链共享安全,且所有平行链都具有同等级别的安全,在共享安全性模型下的跨链通信更容易解决数据可用性问题。由于Polkadot中的共享安全性,应用链的开发就不需要自己维护区块链的安全,能够降低区块链的开发成本。Polkadot将区块生成的共识和区块确认的共识分离开来,采用BABE和GRANDPA的混合共识模式,能够加快网络中的共识效率。开发者可基于Substrate区块链开发框架构建一条应用链,该区块链将原生支持Polkadot生态内的跨链功能,且其中包括各种开箱即用的模块,例如治理模块、质押模块和认证模块等,可以用来快速搭建一条区块链,并接入Polkadot网络。在Polkadot网络中,由中继链维护着网络整体的worldstate,平行链之间通过ICMP实现跨链通信。且平行链之间不仅仅可以进行跨链转账,还可以进行任意信息的通信。这就意味着一个平行链可以对另外一个平行链发起智能合约调用。但还未实现。劣势

平行链的加入成本较高。根据web3foundation(Polkadot背后的基金会,它们会对Polkadot生态做技术研究和营销)对平行链租赁的解释来看,平行链上的资源是有限的,所以一开始的平行链会以拍卖的形式做,后续会以租赁的形式继续维护。而要想拍卖或者租赁平行链是需要用DOT进行质押的,这样就可能导致平行链的维护成本太高,只有拥有大量DOT的链才能进入Polkadot网络中。同样是由于Polkadot网络的共享安全性,导致了整个网络具有一定的“连坐性”,若Polkadot网络中继链遭受攻击,就会导致整个网络受到伤害。ICMP协议还未实现,且截至目前主网还未上线,因此许多想法还未得到验证。总结

综上,Polkadot是一个创新型的跨链项目,提出了中继链、平行链等概念,并将区块的产生和确定共识区分开来,同时发布了Substrate框架用来构建区块链平台,以及通过ICMP来实现平行链间的跨链通信。通过我们在这段时间对Polkadot的学习和研究,我们发现对于跨链机制ICMP来说,它还处在一个较为前期的阶段,最近在社区中刚刚得知,官方接下来才准备发布关于ICMP相关的paper,从实现上来看也是同样还处于暂未完成的状态。但同时我们也看到有许多项目在向Substrate框架迁移,比如:Shift。

在GitHub中可以看到Substrate的代码库每天都有巨量的代码更新,且Substrate还拥有较为活跃的开发者社区。因此,我们相信Substrate是一个具有前景的区块链开发框架。对于Polkadot生态中跨链方案ICMP前景的看法,我们目前是比较保守的,但我们会持续关注它的发展动态。

互联互通是大势所趋,任何一个生态如果选择孤立发展,就会被区块链互联网产生巨大的网络效应所挤压,最终遭受淘汰。总体上,Polkadot大大降低了应用链的开发成本,共识等模块都不需要自己实现,可以直接依赖中继链,且只要平行链在Polkadot网络中上线就可以和所有的平行链享受平等级别的安全等级,看起来这会是一个很吸引人的点。

但Polkadot中有限的平行链资源以及拍卖入场的方式,又未免会让DOT持有量少的参与者望而却步,这就加大了Polkadot网络的入场门槛。总之,我们应当保持一个开放的心态,在跨链解决方案百家争鸣的时代什么都有可能发生,我们更应该对技术本身进行深入了解,了解其优劣,架构方式等。

Glossary

ICMP:Inter-chainMessagePassage,是Polkadot中用于解决跨链通信的协议。中继链:Polkadot网络中的一条链,主要负责Polkadot网络的共识和平行链之间的通信。平行链:在Polkadot网络中运行的一条区块链,它实现了某些具体的应用场景,但不具备共识能力,是一条应用链。转接桥:在Polkadot网络中充当中继链和外部区块链之间的中介,通过转接桥,可以使外部区块链作为一个“虚拟平行链”接入中继链,以使外部区块链和Polkadot网络中的链进行网络通信。Collator:它是一个节点,通过收集平行链上的交易并为验证者生成状态转换证明来维护平行链的节点。Validator:它是一个节点,通过质押DOT来验证平行链上的来自于收集人的状态转换证明并与其他验证人一起确定共识来维护中继链。钓鱼人(Fisherman):它们负责监视网络中的验证人和收集人,只要他们作恶,钓鱼人就可以通过质押少量的DOT来进行举报,但是如果他们真的发现了作恶行为,就可以得到大量的收益回报。Epoch:epoch是BABE协议中的一段用于出块的时间,它又被划分为不同的slot,每个slot是一个更小的时间间隔,在Polkadot中默认为6秒,且在一个slot中会有一个区块的产生。Ewasm:WebAssemblyforEthereum,是以太坊下一代虚拟机。绑定:是一个将token“冻结”的过程,通过“冻结”token,才可以使平行链接入到中继链中。

文:巴比特

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:642ms