平行链起源:“平行链” 这个方案是如何产生的?
这份文档主要描述了 波卡平行链功能宿主的实现 ,主要针对的是波卡平行链宿主的实现者。该文档分为以下部分:
1、平行链起源
2、协议概览
3、架构概览
4、Runtime 架构
5、Runtime APIs
6、节点架构
7、数据结构与类型
本文是由 PolkaWorld 翻译的第一部分 “平行链起源” 。有兴趣的同学可以在文末找到 原文档 来阅读和进一步了解。
本文档旨在描述 Polkadot 的平行链功能宿主(为组成平行链提供安全性和先进性的软件)的目的、功能和实现。该文档不是针对特定平行链实现者,而是针对平行链宿主(Parachain Host)实现者。实际上,此文档通常是针对 Polkadot 的实现者的。
还有其他一些文档更详细地描述了这项研究。所有参考文档都放在了该文档中,并应与本文档一起阅读,以便更好地理解全文。不过,这是唯一一份旨在 描述 Polkadot 的特定实例关键因素 ,并将该研究拆解为了较底层的技术细节和软件结构的文档。
平行链起源
平行链是一种问题的解决方案。与任何解决方案一样,如果不首先理解问题,就无法理解它。因此,让我们从区块链技术所面临的问题开始,这些问题导致我们开始探索像平行链这样的设计空间。
问题 1:可扩展性
几年前,一个明显的现象是,比特币、以太坊和其他一些简单工作量证明(PoW)区块链的交易吞吐量太低。
TODO:如果有更多的区块链会怎么样呢...?
权益证明(PoS)系统可以实现比 PoW 区块链更高的吞吐量。PoS 系统由绑定的资本担保,而不是花费精力 —— 流动性机会成本 VS 燃烧电力。他们的工作方式是选择一组具有已知经济身份的验证人,他们锁定代币,以换取获得“验证”或参与共识过程的权利。如果发现它们错误地执行了这一过程,它们将被 slash 惩罚,这意味着部分或全部锁定的代币将被销毁。这对不良行为有很强的抑制作用。
由于这种共识协议不会浪费资源,区块时间和协议可以更快地发生。PoW 挑战的解决方案不必在创建区块之前就找到,因此创建区块的成本减少到只需要创建和分发区块的成本。
但是,要达成 PoS 链共识,就必须有大于三分之二的验证人对 Layer1 上发生的所有事情达成完全一致,所有逻辑都是作为区块链状态机的一部分执行的。这意味着每个人仍然需要检查所有的事情。此外,基于通过异步网络接收到的信息,验证人可能对系统有不同的看法,这使得就最新状态达成一致更加困难。
平行链是分片协议的一个例子。分片是从传统的数据库架构中借鉴而来的概念。我们不是要求每个参与者检查每个交易,而是要求每个参与者检查交易的某个子集,这样就有足够的冗余,使得拜占庭式 (任意恶意的) 参与者无法悄悄混入无效的交易 —— 至少无法在不被检测到和被 slash 的情况下,将这些交易逆转。
通过分片和权益证明的相互配合,即使没有所有参与者检查所有状态转换,平行链宿主也可以在许多平行链上提供全面的安全性。
TODO:注意网络影响和桥接
问题 2:灵活性/专业化
“不聪明” 的虚拟机无法为你提供灵活性。任何工程师都知道,能够专业地解决某个问题会给他们和他们的用户带来事半功倍的作用。
TODO:做到更加事半功倍
认识到这些问题后,我们开始寻找解决这些问题的方案,这将允许开发人员在统一的安全来源下创建和部署特定目的区块链,并具有在它们之间传递消息的能力。这是一种异构分片解决方案,我们称之为平行链。
阅读完整文档:
https://w3f.github.io/parachain-implementers-guide/index.html