Polkadot 是一个用于可扩展的去中心化计算和互操作性的区块链。在本文中,我们将研究这个网络的一个主要部分:平行链。
今天的区块链以一种相当标准的形式出现,由两部分组成。第一部分是共识算法,它提供了安全性。第二部分是状态机,它提供了值得在其上获得安全性的链的各个方面。以太坊、比特币、Zcash 和其他加密货币都受到工作量证明(PoW)与其各种变体共识的保护,但它们处理的交易类型和账户(构成其唯一状态机的事物)都是不同的。想象一下,一个开发者想出了一个新区块链的好想法,它可以提供有效的隐私保护、财富分配或其他一些令人兴奋的功能。当开发人员致力于实现这个独特的状态机时,他们还必须实现某种共识算法,并且当他们启动链时,它必须与其他链竞争安全资源。这给开发新的区块链项目带来了成本和不安全感。
我来介绍一下平行链。平行链(可并行化的链)是区块链的一种更简单的形式,它连接到由“中继链”提供的安全性上,而不是自己提供安全性。之所以称之为中继链,是因为它不仅为附加的平行链提供了安全性,而且还提供了它们之间安全消息传递的保证。平行链的一个关键特性是它们执行的计算本质上是独立的。图灵完备的智能合约的完全通用的系统在确定哪些交易将彼此“冲突”时会遇到问题,这意味着可能并行化的交易会按顺序运行,从而浪费了宝贵的计算时间。在平行链之间划清界限意味着我们可以一次执行所有的平行链而不用担心“冲突” —— 如果我们有 10 个平行链,我们可以使用相同的安全源执行 10 倍的工作。
高度专业化的平行链还有另一个目的:它们可以针对其问题领域以最有效的方式实现数据存储和交易操作,而不会陷入特定于区块链的脚本语言或虚拟机中。在他们的核心,诸如比特币脚本和 EVM 之类的模型在设计时就考虑到了互操作性的目标,但是,使用这些模型的系统要为其实现的所有部分支付更高的执行成本,而不仅仅是那些可以从运行在同一网络上的其他系统访问的部分。相比之下,Polkadot 平行链通过异步消息传递相互通信,因此只在平行链相交的边界处支付数据一致性的成本。
请注意,你仍然可以创建一个为完全通用的、图灵完备的智能合约提供框架的平行链。一个简单的例子是由 EVM 驱动的平行链。基于上述原因,在这个平行链部署的合约既会受益于以太坊智能合约的通用性和互操作性,也会因其而带来不便。最主要的区别是,它是完全选择加入的。我们认为 Polkadot 能够集成重点解决方案的同时,还可以保留使用非常通用的框架作为其最强大特性之一 —— 可选性。
平行链的一个最有趣的用例是作为可伸缩性的工具。可以创建具有自己的平行链的平行链,等等。这创建了一个树状结构,可以用于执行高度分布式的计算,而不会减少根中继链本身的总体负担。主要的问题是确保数据的可用性 —— 平行链区块意味着要有一个有效性的证明,任何人都可以在至少一段时间内检查。验证人负责确保他们验证的块证明仍然可用。不幸的是,如果没有在链上删除消息,就无法(或者至少非常困难)证明应该被发送的消息没有被发送。我们可以在很大程度上通过声誉保证来避免这个问题:当相对可信的一方指出验证人隐瞒数据时,他们可能会受到惩罚。这也可以推广到硬币投票制度或多层法院。为了降低恶意虚假报道的有效性和实用性,每一次不良行为的报道都应该伴随着不可退还的资金销毁。当有足够多的人在计算时,就像在一级平行链的情况下,通常会获得必要的数据。另一种缓解策略是设计平行链,当链出现停滞或受到攻击时,存储的价值可以被提取,尽管当链执行智能合约锁定资金或自动管理自己的费用时,这是困难的。
对于可伸缩性,一种更有趣的方法可能是使用零知识(ZK)证明。现代的非交互式 ZK 证明,如ZK- snarks 或 ZK- starks,允许我们检查具有一些已知输入和一些未知输入的已知程序是否正确执行的证明,并在不泄露任何关于私人输入的信息的情况下了解该程序的输出是什么。最常见的,像这样的 ZK 证明被称为隐私工具,但它们也可以用于性能。令人惊讶的是,不管程序本身的复杂性如何,检查这种零知识证明的时间或多或少是恒定的,有些证明在比相应程序执行所花费的时间更少的时间内进行证明!这意味着,即使是可能需要数小时处理的极其复杂的交易,链的验证人也可以在很短的时间内验证。不幸的是,创建 ZK 证明的计算和内存成本仍然高于普通用户的可行性。在这些成本降低之前,实践 ZK 证明仍将是未来的事情。
但是,关于平行链的伟大之处在于它们是如此的通用。通过允许每个平行链定义其自身有效性的概念,我们可以从当前的庞大证明无缝过渡到将来的更轻,更高级的证明。随着分片研究的发展,可以轻松添加实施最新技术的平行链。最终,这就是 Polkadot 的价值主张:它处于正确的抽象层,可以在现在和将来使用,而没有任何不必要的成本。该系统的设计不仅可以适应任意进度,而且还具有可扩展性,可以毫不费力地集成可扩展性方面的最新发展。