本文作者是布鲁诺·什沃克(Bruno Škvorc),是一位来自克罗地亚的开发者和区块链科普工作者。
2015年,布鲁诺全职加入以太坊生态,并为众多新手开发者们创建了科普教程、编程课程,还跟踪各类新闻事件。从2018年开始,布鲁诺开始协助某个ETH2.0团队做开发;2019年之后,布鲁诺成为Web3基金会专业的技术科普工作者,致力于推动Web3愿景,以确保任何人在任何地方都能访问到可信互联网。
作者:Bruno Škvorc
布鲁诺非常关注权力下放、反对审查制度、透明度和问责制,因此他对不可篡改的账本(immutable ledgers)充满激情。他拥有计算机科学和英语语言文学双硕士学位,在条件允许的情况下,布鲁诺有意向涉足虚拟现实。
下面这篇文章,是布鲁诺在协助Web3基金会近3年,并在撰写了大量Polkadot科普文之后,对Polkadot的高度概括,这篇文章的写作风格延续了布鲁诺一直以来的风格,即在尽可能专业的情况下,保证让每个人都能看得懂。
什么是Polkadot?它与现有区块链有何不同?Polkadot存在的意义到底在哪里?哪些公链与波卡存在竞争关系?这篇文章会以高度概括(a very high level)的方式对这些问题进行解释,让那些只熟悉最基本的区块链术语,却不具备任何专业技术知识的初入者也完全读得懂。
波卡有一条基于Substrate创建的主链,被称为中继链(Relay Chain),其它与这条主链链接的区块链被称为平行链(parachains)。
与中继链链接的平行链可以有很多类型,可以是Bitcoin/Ethereum/Tezos/Edgeware,他们可以以任何自洽方式产生区块,例如比特币可以以自己的规范产生区块,Ethereum可以以自己的规范产生区块,Tezos可以以自己的规范产生区块,智能合约区块链Edgeware也可以以自己的规则产生区块。
中继链,平行链,转接桥
平行链从中继链中获得了不可改变性(Finality)——这是一种终结区块(上的交易),确保发生过的交易不会被“打回原形”的特性。
作者注:一旦区块链发生分叉,区块上原有的交易就有可能被还原(例如A给B转了10个BTC,且这笔BTC已经被打包确认,一旦区块链发生分叉,这10个BTC有可能再次回到A的账户上,因此在区块链上防止交易被还原就显得十分重要。在波卡网络上,中继链赋予了平行链这样的能力),分叉就是同一区块链不同软件版本之间产生了分歧,其中一组程序(或者节点)朝着一个方向构建区块,另一组程序朝着另一个方向构建区块。
在区块链上,分叉很常见,通常情况下分叉链总会自生自灭,但在极端情况下,分叉的长度可能超越原链,直至替代原链成为主链,那么在分叉链上发生的交易将会取代原链上的交易。
Polkadot的出现,并不是为了与现有区块链世界的任何主流公链竞争,包括ETH2.0。相反,Polkadot希望“托起”所有的链,以便实现不同区块链之间的跨链通信——目标是为分散的区块链世界建立起统一的生态系统。
我们知道,Bitcoin是一条独立的区块链,Ethereum是一条独立的区块链,两者各不相同且独立运行——两条区块链就像两座封闭的围墙花园,他们将自己的“精美”封闭在了两个狭小的空间——锁定的Bitcoin上的价值无法进入Ethereum,因为你不可能在中心化信任缺席的情况下就将自己的比特币转给别人。
作者注:有人会问,我为什么非得把BTC转移到Ethereum上?这是因为Ethereum配套的DeFi是一个十分繁荣的生态系统,任何人都可以发行资产,获得贷款,或者将BTC合成成为其他资产,让自己的资产流通起来,而在Bitcoin网络,你什么都做不了,只能眼睁睁看着自己的资产放着不动。
“Polkadot是一个跨链通信系统。”
在Polkadot上,不同区块链之间可以以去中心化的方式互相通信,允许开发人员开发跨链应用程序,允许一条平行链向另一条平行链发送消息,你完全可以放开想象,这里的消息可以是金融资产、聊天信息、大气监测数据等等,当然也可以是投资者从Bitcoin向Etherum发送的10个比特币。
中继链本质上就是一条区块链,验证人(Validators)为这条区块链的安全性保驾护航,验证人会运行Polkadot的节点,验证人偶尔会被赋予生成新区块的权力,如果尽职尽责工作出色,他们就会得到奖励。
Polkadot上的验证人(Validator)、收集人、提名人与钓鱼人
本文只涉及到了中继链上的验证人
任何人都可以成为验证人,只要他们背后筹码够多,这里所谓的筹码就是波卡中继链的“本国货币”DOT,按照DOT质押数量,前几百名验证人将会被依次选举成为活跃验证人(active validators)。
作者注:如果验证人的工作干的一团糟,他们会遭到惩罚,比如当网络需要他们工作时,他们的节点却处于离线状态,此时他们质押的DOT就会被收回,实际上就是被没收了。
被选举出来的活跃验证人会被随机分配给各个平行链,并且每隔几个小时,这样的分配就会再次以随机的、不可预测的方式进行一次轮转。
每隔6秒,平行链就会向中继链发送一个候选区块。这个候选区块将由中继链上这些时刻处于在线状态的验证人负责核验。如果核验通过,候选区块将会被纳入到中继链的区块中,然后平行链接着产生下一个候选区块。提交完成之后,这些区块就获得了不可改变性,平行链就是这样在中继链的保护下无忧无虑地生长。
所有平行链最终都需要以来中继链上的验证人获得最终授权,平行链越多,需要的验证人也越多,整个网络的安全性也就越高。重点提示,如果你想成为验证人,就必须质押DOT代币,当你执行验证人角色时,你的DOT都会被质押在Polkadot网络中。
就是用这种方式,中继链与平行链共享安全性,每一条链都成为整个网络抗攻击性的一部分。
一般来说,区块链在升级的时候分叉总是不可避免:有些节点升级了,有些节点没有升级,没有升级的节点就始终停留在分叉链上,直到这些没有升级的链更新之后,网络才算升级完成。更为痛苦的是,这些节点是分布在全球的,而且你没法与这些匿名节点实时通信。
而Polkadot通过“链上runtime与链上治理(on-chain governance)”的方式解决了这个难题。链上runtime是指包含生成新块的规则的代码存储在链上。因此,运行区块链的节点、程序只需读取这些信息,它们就可以更新了。那么我们如何更新这个代码呢?
链上治理可以让任何DOT持有人发起全民公投,或对公投投票。公投是对区块链逻辑或数据的更改建议。通过治理,社区可以对链上逻辑的变更提出建议并对其进行投票,一旦该逻辑变更投票通过,就会自动更新,无需更新软件,也无需人工干预。
作者注:可以在Polkadot wiki上找到关于链上治理的详细信息。