Create at November 26, 2019 by @Winar
伴随着 web3.0 的发展,区块链技术也进入到了下一个阶段。为了能打破各个区块链之间的壁垒,更好的拓展区块链的边界,跨链技术得到了大家的重视,也有了较好的发展。PolkaDot 就是其中一个备受期待的跨链解决方案,目前它由前以太坊 CTO Gavin Wood 率领团队开发。那么在互联网科技的新一轮变革悄然开始的背景下,Polkadot 到底是什么?它的出现到底解决了什么问题?以及它又是如何解决的呢?我们会在这篇文章中尝试给出答案。
Polkadot 是一种异构多链技术,主要由中继链、平行链和转接桥组成。它的建立是为了连接公有链、私有链、联盟链以及未来可能出现在 web3.0 生态系统中的技术。它希望使各个独立的区块链网络都能够通过 Polkadot 的中继链实现信息的交换和无需信任的交易。旨在实现以往区块链努力实现的 3 个目标:互操作性、可扩展性、共享安全。
Polkadot 也是一个协议,它允许独立的区块链之间互相交换信息。Polkadot 是一种链间区块链协议(inter-chain blockchain protocol),它与传统互联网的消息传输协议不同(例如TCP/IP协议),Polkadot 还会验证各个链之间在进行消息传输时的消息顺序以及消息的有效性。通过为多个状态机创建了一个通用的环境,这种互操作性还带来了一些可拓展性的好处[1]。
Polkadot 希望能够连接连接各v个区块链网络,主要关注解决一下三个层面的问题[4]:
互操作性
当前区块链的生态中,各个区块链网络之间是孤立存在的,它们之间没有任何通信以及互操作的可能性。在未来的区块链的世界中也将会存在各种满足于某些特定需求的区块链,但若它们仍然彼此孤立是非常不利于区块链生态的发展的。为了能够打破这个壁垒,拓展区块链网络之间的边界,区块链之间的互操作性是一个必须要解决的问题。
而 Polkadot 的设计目的之一就是让区块链上的 Dapp 和智能合约可以无缝地与其他链上的数据或资产进行交易。
可拓展性

图片来源于:https://polkadot.network/Polkadot-lightpaper.pdf
在当前的大多数区块链中,交易都是在节点中一个一个的进行处理,因此当交易量逐渐增多的时候,由于网络的限制很容易遇到性能上的瓶颈。
而 Polkadot 提供了可以运行多个平行链的能力,每个平行链可以并行处理多个交易,在这种情况下 Polkadot 网络就相当于获得无限的可拓展性。 在测试中,Polkadot 网络中的一条平行链每秒大约可以处理 1000 笔交易,通过平行链的创建,就可以成倍的增加每秒交易的数量,从而使 Polkadot 网络具有较高的性能。
共享安全性

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

图 1 (图片来源于:https://polkadot.network/PolkaDotPaper.pdf)
如图 1 所示为 Polkadot 网络的整体架构,从中我们可以看到中继链(Relay chain)处于网络的中心位置,它会处理网络中整体的共识和安全性;还有许多的平行链(Parachain)通过连接中继链以接入 Polkadot 网络中;同时还可以看到在该图的下方有一个转接桥(bridge),这也是 Polkadot 网络中连接了独立区块链(例如:以太坊)的方式。此外还可以看到许多的参与者,例如:收集人(Collator)、验证人(Validator)、钓鱼人(Fisherman)等。那么接下来我们就分别介绍一下在 Polkadot 网络中的主要链角色和不同的参与者。
中继链(Relay Chain)
中继链是 Polkadot 网络的中心链,它为整个网络提供了统一的共识和安全性保障。
Polkadot 网络中所有的验证人会在中继链上质押 DOT 代币,从而参与 Polkadot 网络治理。
由于 Polkadot 网络中大多数业务相关操作都会由各个平行链来实现,且在中继链上只会发生和网络治理、平行链拍卖等少量交易类型,因此中继链上的交易手续费可能会高于平行链上的交易手续费。
平行链(Parachain)

图片来源于:https://wiki.polkadot.network/docs/assets/network/one_parachain.png
整个 Polkadot 网络中的大部分计算工作都将委托给各个平行链进行处理,平行链会负责具体的业务场景实现。Polkadot 对平行链的功能没有做任何限制,平行链可以作为应用链实现任何应用场景,但它们自身不具备区块的共识能力,它们将共识的职责渡让给了中继链,所有平行链会共享来自中继链的安全保障。平行链之间可以通过 ICMP(Interchain Message Passing) 进行彼此通信,同时它们还会由分配给它的验证人进行区块验证。
但平行链有可能不是一条具体的链,Polkadot 中对其定义是:平行链是特定于某些应用程序的数据结构,它在全局上是一致的,并且可以由 Polkadot 中继链的验证人进行验证[2]。一些平行链可能是某些 Dapp特定的链,也可能是专注于诸如隐私或可拓展性等特定功能的平行链,可能还会存在一些实验性质的平行链,总之平行链在本质上不一定必须是区块链。
转接桥(Bridge)
桥在区块链的链间通信中有着重要作用。在 Polkadot 中关于转接桥的具体实现还有许多待确定的地方,后续官方应该还会有更具体的更新,截止目前在 Polkadot 中转接桥主要由三种不同的含义: