什么是Polkadot?
- 它是区块链领域的跨链解决方案。
- 它立足于解决当下区块链种类繁多,且相互基本隔绝的问题。为此:
- 构建协议,以便区块链之间可以相互发送交易和消息,也就是实现区块链的互操作性;
- 同时提高区块链的吞吐量、可扩展性等;
- 降低构建一条区块链网络的难度。
- Polkadot与Parity是同一东家。
Polkadot作为跨链方案中的佼佼者,宣称引领着区块链3.0。
进一步认识Polkadot
技术特征
技术栈
- 采用了共识架构与状态应用相分离的设计策略。
- 共识引擎在Aurand 和Tendermint PBFT基础的改良:
- Tendermint,是一种**实用拜占庭容错(PBFT)**状态机; 它要求一组已知的验证者就一个区块达成共识;网络至少需要 2/3多数才能达成共识;如果不到1/3的验证者是拜占庭(即恶意节点),网络将永远不会分叉。
- Aurand允许随机选择的验证者在不需要2/3共识的情况下直接产出一个区块。
- 在Polkadot的技术栈中,共识架构之上是WebAssembly,它是一个解释器,可以解析Rust等编写的程序,让它们在Polkadot网络中的服务器节点上运行。
- 共识架构之下,则是基于libp2p构建的点对点网络。
- 在技术栈中,具有共识机制的点对点网络组成了栈的外层,该层通过Webassembly连通区块链的状态机。
互操作性的实现
Polkadot有3大构件,来实现多个区块链之间的互操作性:
- 中断链,也就是Polkadot网络的核心链,它起着中央连接器的作用,实现同构和异构区块链之间的互通互连;
- 平行链(Parachain):
- 它共享中继链的共识机制,与中断链和其它平行链一起共享可信基础;
- 通过Polkadot的原生代币DOT与中断链绑定,进而实现平行链之间的互操作。
- 桥(Bridge),实现与以太坊主网等异构链的互操作。
协议
- Polkadot网络是PoS(权益证明)区块链;
- 原生代币是DOT,提供治理激励,鼓励代币持有人诚实行事:
- 验证者(Validator),工作在中继链上,验证来自平行链的交易区块(平行链对这该区块执行了零知识证明
zkp
),维护Polkadot网络状态的数据库; - 提名者(Nominator),由它们选举出验证者(Validator);
- 核对者(Collator),工作在平行链上,验证该链上的交易,存储该链上的数据与信息;
- 渔民(Fishermen),可以看作独立的赏金猎人,专门收集验证者和核对者的不法行为的证据。
- 通过投票的方式来裁决Polkadot所要采纳的提案:
- 自适应仲裁偏差机制:投票参与率越高,提案所需通过的得票率就越低;
- 理事会(12~24个账户组成),专门裁决关注度不够的提案;
- 对网络贡献大的人,会有更大投票权重。
主网现状
PoC -> PoA -> PoS几个阶段。
开发相关
Substrate
- Substrate是构建区块链的一个技术框架。
- Polkadot网络就是建立在Substrate之上的:不管是中继链,还是平行链。
- 有了Substrate框架后,我们可以不用太关心区块链的共识或网络相关部分,只专注DApp就好。
- Substrate是用Rust编写的,但区块链状态机的核心功能都编译进了WebAssembly;这样编译好的Rust代码有两种可能的运行方式
- 在本地运行;
- 通过WebAssembly解析运行。
因此,保持Rust的开发版本与Substrate的一致,会提高程序的执行效率。
DApp
- 中继链上不支持智能合约的执行。
- 智能合约都是运行在平行链上。