Polkadot跨链方案剖析
伴随着web3.0的发展,区块链技术也进入到了下一个阶段。为了能打破各个区块链之间的壁垒,更好的拓展区块链的边界,跨链技术得到了大家的重视,也有了较好的发展。PolkaDot就是其中一个备受期待的跨链解决方案,目前它由前以太坊CTOGavinWood率领团队开发。那么在互联网科技的新一轮变革悄然开始的背景下,Polkadot到底是什么?它的出现到底解决了什么问题?以及它又是如何解决的呢?我们会在这篇文章中尝试给出答案。
Polkadot概览
基本介绍
Polkadot是一种异构多链技术,主要由中继链、平行链和转接桥组成。它的建立是为了连接公有链、联盟链、私有链以及未来可能出现在web3.0生态系统中的所有技术。它希望使各个独立的区块链网络都能够通过Polkadot的中继链实现信息的交换和无需信任的交易。旨在实现区块链一直在努力实现的3个目标:互操作性、可扩展性、共享安全性。
Polkadot也是一个协议,它允许独立的区块链之间互相交换信息。Polkadot是一种链间区块链协议,它与传统互联网的消息传输协议不同,Polkadot还会验证各个链之间在进行消息传输时的消息顺序以及消息的有效性。
愿景
Polkadot希望能够连接各个区块链网络,主要关注在解决以下三个层面的问题:
互操作性
当前区块链的生态中,各个区块链网络之间是孤立存在的,它们之间没有任何通信以及互操作的可能性。在未来区块链的世界中也将会存在各种为了满足于某些特定需求的区块链,但若它们仍然彼此孤立将会非常不利于区块链生态的发展。为了能够打破这个壁垒,拓展区块链网络之间的边界,区块链之间的互操作性是一个必须要解决的问题。
而Polkadot的设计目的之一就是让区块链上的DApp和智能合约可以无缝地与其他链上的数据或资产进行交易。
可拓展性
在当前大多数区块链中,交易都是在节点中一个一个的处理,因此当交易量逐渐增多的时候,由于网络的限制很容易遇到性能上的瓶颈。
而Polkadot提供了可以运行多个平行链的能力,每个平行链可以并行处理多笔交易,在这种情况下Polkadot网络就相当于获得无限的可拓展性。在测试中,Polkadot网络中的一条平行链每秒大约可以处理1000笔交易,通过平行链的创建,就可以成倍的增加每秒交易的数量,从而使Polkadot网络具有较高的性能。
图片来源于:https://polkadot.network/Polkadot-lightpaper.pdf
共享安全性
基于PoW共识的区块链之间存在算力竞争,这样不仅会造成算力等资源的浪费,且一些算力较少的区块链还会非常容易受到攻击,因此各个区块链具有的安全性是不相同的。
且若各个区块链之间想要互相通信的话,还会由于各个区块链之间的算力不同导致了各个区块链之间不能平等的信任对方,这就比较不利于资产等信息的跨链通信。
在Polkadot网络中,将由中继链整体负责整个网络的安全,每个加入Polkadot网络中的平行链之间都具有同等程度的安全性,因此它们之间在进行跨链通信时可以充分信任对方的平行链。且由于Polkadot将网络的安全都集中在中继链上,因此,要想攻击整个Polkadot网络的难度是非常大的。
图片来源于:https://polkadot.network/Polkadot-lightpaper.pdf
架构解析
图1(图片来源于:https://polkadot.network/PolkaDotPaper.pdf)
如图1所示为Polkadot网络的整体架构,从中我们可以看到中继链处于网络的中心位置,它会处理网络中整体的共识和安全性;还有许多平行链通过连接中继链以接入Polkadot网络中;同时还可以看到在该图的下方有一个转接桥,这也是Polkadot网络中连接了独立区块链的方式。此外还可以看到许多的参与者,例如:收集人、验证人、钓鱼人等。那么接下来我们就分别介绍一下在Polkadot网络中的主要链角色和不同的参与者。
以太坊隐私技术解决方案Aztec宣布将开源:官方消息,以太坊隐私技术解决方案Aztec宣布,未来所有代码版本都将在Apache2.0许可证下,任何与发布到以太坊主网的代码相连接的软件都是公开、开源的。[2021/6/10 23:28:32]
主要的链角色
中继链
中继链是Polkadot网络的中心链,它为整个网络提供了统一的共识和安全性保障。
Polkadot网络中所有的验证人都会在中继链上质押DOT代币,从而参与Polkadot网络治理。
由于在Polkadot网络中大多数业务相关的操作都会由各个平行链来实现,那么在中继链上就只会发生和网络治理、平行链拍卖等少量的交易类型,因此中继链上的交易手续费通常会高于平行链上的交易手续费。
平行链
整个Polkadot网络中大部分计算工作都将委托给各个平行链进行处理,平行链会负责具体业务场景的实现。Polkadot对平行链的功能不作任何限制,平行链可以作为应用链实现任何应用场景,但它们自身却不具备区块的共识能力,它们将共识的职责渡让给了中继链,所有平行链会共享来自中继链的安全保障。平行链之间可以通过ICMP(InterchainMessagePassing)进行彼此通信,同时它们还会由分配给它的验证人进行区块验证。
但平行链有可能不是一条具体的链,Polkadot中对其定义是:平行链是特定于某些应用程序的数据结构,它在全局上是一致的,并且可以由Polkadot中继链的验证人进行验证。一些平行链可能是某些Dapp特定的链,也可能是专注于诸如隐私或可拓展性等特定功能的平行链,可能还会存在一些实验性质的平行链,总之平行链在本质上不一定必须是区块链。
图片来源于:https://wiki.polkadot.network/docs/assets/network/one_parachain.png
转接桥
桥在区块链的链间通信中有着重要作用。在Polkadot中关于转接桥的具体实现还有许多待确定的地方,后续官方应该还会有更具体的更新,截止目前在Polkadot中转接桥主要由三种不同的含义:
转接桥合约(BridgeContracts):通过在Polkadot的平行链和外部的区块链上部署智能合约来达到桥的效果,以实现跨链的价值转移。
跨链通信(Cross-ParachainCommunication):由于平行链之间是可以通过ICMP进行链间通信的,而无需智能合约承担桥接的功能。且基于ICMP的链间通信将是Polkadot原生支持的方案。
内置桥接模块(In-builtBridgingModules):在Polkadot网络中,从非平行链中接收平行链上的消息很可能会在Polkadot的内置模块中完成。这样的话就不需要在非平行链中部署智能合约扮演“虚拟平行链”了,收集人就可以直接收集整理该区块链上的交易,并提交给中继链了,就像对平行链所做的那样。当前内置的桥接模块可能会考虑基于特定的链进行开发,这就意味着只要是内置交接模块支持的区块链就都可以直接桥接到Polkadot网络中了,而无需通过智能合约进行桥接。但对于内置桥接暂不支持的区块链,就还要采用转接桥合约的方法实现了。
主要参与者
图2(图片来源于:https://polkadot.network/PolkaDotPaper.pdf)
由图2中可知在Polkadot网络中,共存在4种主要的参与者,分别为验证人、收集人、钓鱼人和提名人。简单来看他们的职责是这样的:收集人会从各个平行链中收集交易信息并打包为待验证的区块,接下来一组验证人会对平行链上的区块进行验证;同时网络中的钓鱼人会监控验证人的行为,若钓鱼人发现非法行为就会向其他的验证人进行举报;而提名人会通过向自己信任的验证人质押token来参与网络治理。那么他们之间的异同如下分析:
验证人
验证人会负责Polkadot网络的出块,它会运行一个中继链节点,在每一轮区块产生中对其提名的平行链出的块进行验证。当平行链出的块都被他们的验证人集合确定好之后,验证人集合会将所有平行链的区块头组装到中继链的区块中并进行共识。
在Polkadot网络中,验证人是以组的形式存在的,它们不是来自于平行链,而是由中继链统一管理的验证人池,通过随机分组指定给平行链的。
动态 | 支付宝使用区块链技术解决商家原创图片被盗纠纷:金色财经报道,作为阿里爸爸原创保护计划的行动之一,支付宝的区块链技术首次应用在淘宝商家服务平台上,上线了商家可信数字存取证工具——鹊凿。该工具为商家提供电子数据存证、侵权取证和电子数据证据核验的一站式线上自助服务。使用这项服务的淘宝店主,如果发现自己的原创图片被盗,在产生纠纷之后可以一键要求对方删图。[2019/11/8]
收集人
收集人会帮助验证者收集、验证和提交备选的平行链区块,它会维护一个平行链的全节点。
钓鱼人
钓鱼人主要靠举报非法交易或者区块以获取收益。在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共识用于区块的确定。
政策 | 国常会通过专利法修正案草案 区块链技术解决版权权属或被肯定:据财联社消息,国务院总理李克强12月5日主持召开国务院常务会议,通过《中华人民共和国专利法修正案(草案)》,有效保护产权,有力打击侵权。
公司方面,安妮股份:率先在版权服务领域应用区块链技术,公司旗下数字版权服务平台“版权家”利用区块链技术解决了海量版权权属确认问题,化解互联网时代版权侵权乱象。[2018/12/5]
混合共识是在Polkadot网络中获得概率确定性和可证明的确定性好处的一种方式。通过采用这样的混合共识机制,Polkadot可以快速生成区块,而速度较慢的确定性机制可以在一个独立的进程中运行以完成区块的确认,而整体不会导致网络交易速度的减慢或阻塞。那么BABE和GRANDPA到底是什么样的共识机制呢?
图3BABE共识中的出块时间间隔
BABE
BABE(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中却没有验证人。那么要如何处理这两种不同的情况呢。
图4
slot有多个验证人
在一个slot中有多个验证人作为生成区块的候选人的时候,每个验证人都会产生一个区块并将其广播到网络中。这时就像是一场比赛一样,谁的块先传播到网络中更多的节点谁就会取得胜利。由于网络的拓扑和网络延迟的影响,可能多条链都会持续向后生成区块,直到最终被确定为止。如图5所示,可能会有多条链在同时向后生成区块,而其中最长的链最终可能会被确认。
图5
slot中没有验证人
当一个slot中没有任何验证人在一次抽奖中获胜时,这个slot看起来就不能生成区块了。这时Polkadot会在后台通过round-robin方法选择一个验证人,让他生成一个次级区块。但是一个slot中如果已经有了在抽奖中获胜的验证人的话,那么他就会生成一个主要区块,就不会再有次级区块了。因此,我们会看到每一个slot中必定会有一个区块,它要么是主要区块,要么是次级区块。如图6所示,在临时分叉的链中可能既有主要区块也有次级区块。
图6
GRANDPA
GRANDPA(GHOST-basedRecursiveANcestorDerivingPrefixAgreement)是为Polkadot中继链实现的用来最终确定区块的方法。
只要有2/3的节点是诚实的,并且可以在异步的情况下应付1/5的拜占庭节点,那么它就可以在部分同步的网络模型中工作。其中有一个显著的区别就是,即使在长期的网络分区中或者其他的网络故障之后,GRANDPA协议仍然会就某一条链达成共识,而非对某一个区块达成共识,这就极大的加快了区块最终确定的过程。在GRANDPA协议中,所有的节点会为他们所能看到的所有父节点投票,在这种情况下,链上所有的区块就都有了一个票数,如果某个区块所得的票数超过了全网2/3的节点,那么就可以最终确定这个区块在最终链上。
动态 | 中农网欲利用区块链技术解决茧丝产业难题:据亿邦动力网消息,中农网将利用区块链可验证、可追溯的、可信任的技术,覆盖茧丝溯源全链条,打通资金方与资产方的数据化传递,将多级资产纳入区块链范畴,实现覆盖下单、生产、加工、仓储、结算、出口等茧丝产业链的闭环链路,解决因三农企业信用认证及信息透明度难题所导致的融资难、融资贵、融资乱等困难。[2018/10/16]
换句话说,只要有超过2/3的验证人证明了某条链包含了某个确定的区块,就可以立即最终确定该区块所在的那条链为最终确定的链。
分叉选择
通过将BABE共识和GRANDPA共识结合在一起,在面临分叉时Polkadot的选择就变得很明确了。BABE共识会始终在GRANDPA最终确定的链上生成区块。在最后确定的区块后面可能会有分叉,BABE共识会通过在具有最多主要区块的链上创建区块以提供概率确定性。
如图7所示,其中黑色的区块是已经被最终确定的区块。图中标有1的区块代表主要区块,标有2的区块代表次级区块。在该图中,即使最上面的一条链是最长链,但是它的主要区块确是最少的,因此它就不符合条件。而第二条链中它的区块总数虽然短,但其主要区块数确是最多的,因此应该选择第二条链。
图7
激励与惩罚
在每个区块链生态中都会有一个经济系统,以使所有的网络参与者能够更好的参与网络的贡献。那么在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的开发者生态如何。
动态 | IBM利用区块链技术解决海洋塑料和贫困问题:据btcmanager消息,IBM于近日播出了名为Plastic Bank的广告,旨在通过区块链技术解决海洋塑料和贫困问题。Plastic Bank由IBM Technology 提供支持,该技术使用LinuxOne区块链来鼓励世界上最贫困社区的企业家清理塑料以换取数字信用。[2018/9/19]
图8
从Polkadot在GitHub中的开源项目来看,几乎每天都有代码相关的更新,且大多数更新都是Gavin的commit。而同样由其开发的区块链开发框架Substrate更是每天都有足量的代码更新。如下面两张图所示,我们有理由相信Polkadot生态中的核心项目目前均是处于正常的维护中的。且在Riot聊天软件中,有「SubstrateTechnical」和「PolkadotWatercooler」两个聊天室,且在Telegram中也有「PolkadotNetwork(Official)」聊天室,该聊天室中差不多有五千人,每天都会有不少小伙伴在里面提问技术问题和Polkadot相关的问题,且都能得到及时的回应。因此,Polkadot还是有一个比较活跃的开发者生态的。
Substrate
提到Polkadot生态,就不得不提Substrate了。Substrate是Parity公司在开发Polkadot过程中的抽象出来的区块链开发框架。他们在开发Polkadot的过程中慢慢发现,有许多机制可能是每一个区块链都应该具有的,比如:共识、质押、账户等等,他们就逐渐将这些模块抽象出来,直到最终抽象出了Substrate这个下一代区块链开发框架。
Substrate由Rust语言开发,我们可以通过Substrate框架创建一条完整的、可配置的区块链。通过Substrate,我们可以获得许多开箱即用的功能,同样还可以添加自定义功能:
一条基于PoS的区块链
可升级的运行时环境
可插拔的共识(PoS,PoW,PoA)
P2P网络层
内置的基本加密工具
支持轻客户端
目前,Substrate已经是独立于Polkadot的项目了,现在由单独的团队进行开发维护。尽管Polkadot是一个基于Substrate构建的项目,且任何基于Substrate其他的项目都接入Polkadot网络运行。我们现在就可以使用Substrate构建一条新的区块链,而不用等待Polkadot开发完成,就可以开始使用此框架开发区块链了。
ChainX
ChainX是Polkadot生态中的一款明星项目,它的愿景是打破链间资产壁垒,以实现多币种融合的公链生态。ChainX的系统架构中主要包含三个步骤:
ChainX1.0主要实现一个单链系统,基于区块链框架Substrate实现,目的是为了成为Polkadot的一条平行链。且ChainXv1已经早于Polkadot在2019年5?上线,它现在已经作为独?链运?并发?了ChainX原生Token名为PCX。但由于Polkadot的开发延时,Polkadot尚未主网上线,因此ChainX现在仍然处于单链运行状态,无法作为平行链接入Polkadot中。
ChainX2.0主要为了实现一个双链系统,即新增?条转接桥链作为Polkadot的平?链,现在ChainX2.0开发过的功能就包含BTC转接桥,以及支持BTC的WASM智能合约平台。ChainXv2预计于Polkadot发布v1后再上线。
ChainX3.0主要是想实现一个多链系统,在3.0阶段,ChainX将拆分为多链架构,作为Polkadot的第?层中继?络运?。其中Polkadot专注于底层消息跨链,而ChainX专注于实现其内部的资产跨链。如下图所示。其中:
ChainX中继链:是ChainX全系统的最?安全性保障,负责第?层?络的整体共享安全共识。
转接桥平行链:用于将各个转接桥拆分为独立的平行链,用于分担压力。
交易平行链:为全系统的资产提供免费撮合服务,提升交易吞吐量。
DAPP平行链:社区开发的各类应用可以独立运行,并保持跨链通信能力。
图片来源于:https://chainx.org/static/1326c0c531c7770e90eb72ef364585ca/f4193/section3_3.png
DarwiniaNetwork
Darwinia在其官网中说自己是为面向用户的区块链应用开发者打造的Polkadot平行链。在业务场景中,达尔文网络主要专注于游戏区块链的跨链问题。
达尔文网络希望使用区块链技术和框架来构造一个开放的网络和应用开发套件。这个网络和开发套件将应用于区块链可信技术和Web3的基础设施,同时又能够具备以下特征,即:分层的网络设计、支持跨链交互、对开发者友好、拥有最佳的用户体验,且高度可定制。在这种愿景的驱使下,他们希望能够打造达尔文网络和达尔文应用链SDK。
达尔?网络是基于Substrate框架构建的区块链网络,它在架构的设计上参考了Polkadot的跨链?络框架,其中包括中继链,平行链,转接桥等设计。达尔文网络是Polkadot?态中的?员,但同时又区分于Polkadot的是,达尔文网络主要专注于游戏和应用方向的跨链和应?链业务上。它的技术架构图如下图所示。而达尔文中继链会在将来Polkadot主网上线时作为平行链接入Polkadot网络中。
图片来源于:https://darwinia.network/static/media/architecture.389ccdfd.png
达尔文网络目前处于测试网阶段,它的整体发展路线图如下。可以看到达尔文网络预计2019年12月主网上线,到2020年2月发布其应用链SDK。
图片来源于:https://darwinia.network/
Edgeware
Edgeware是Polkadot生态中第一个基于WASM的智能合约平台,它也是Polkadot网络中的一条平行链,拥有Polkadot网络的拓展性和安全性。
Edgeware基于Substrate框架开发。由于Substrate实现了启动工作区块链所需的几乎所有代码,包括libp2p网络、WebAssembly运行、PBFT共识以及运行验证节点的客户端。因此,Edgeware的工作主要包含区块链治理系统的构建,用于编写可编译为以太坊WebAssembly的C/C++/Rust智能合约,并移植现有EVM智能合约,最终在Ewasm上运行。
CdotNetwork
CdotNetwork希望打造Polkadot生态中的跨链枢纽,即CdotHub,用以将Polkadot中的平行链和一些主流的公链连接起来。
CdotHub基于Substrate框架开发,采用Tendermint共识,并将实现IBC跨链协议,这使得应用链只要低成本接入Cdot就可以获得跨链互操作能力。我们可以看到Cdot希望能够实现IBC协议,因此,相信将来Cdot上线后是有希望成为连接Cosmos生态和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,才可以使平行链接入到中继链中。
参考文献
Polkadot·PolkadotWiki
Parachains·PolkadotWiki
Bridges·PolkadotWiki
https://polkadot.network/Polkadot-lightpaper.pdf
https://github.com/paritytech/polkadot/wiki/ICMP
PolkadotConsensus·PolkadotWiki
PolkadotConsensus·PolkadotWiki
PolkadotNetwork
抵押·PolkadotWiki
跨链天王Cosmos、Polkadot的深层区别
ChainX:CryptoAssetGatewayforPolkadotEcosystem
DarwiniaNetwork-达尔文网络
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。