构建高效区块链——Omega区块概念及重要性

不久前,CasperLabs测试网启用了Omega区块。由于收到了很多关于Omega区块概念及重要性的咨询,我们就来详述一下这个概念。

Highway

要了解Omega区块,首先要了解Highway。Highway共识协议为CasperLabs区块链提供技术支持,是CBC Casper框架内首个可验证活性、安全性的共识协议规范。

在Highway中,任一给定时段对应一组固定的验证器集,其中每个验证器都有自己的质押权益和轮指数。每个验证器的轮指数决定了其发送消息和参与共识的频率。每毫秒协议都将选出新的领导者(因此每轮都有一个领导者;轮指数为0将视作每毫秒为一轮)。这是协议的确定性过程,取决于密钥及对应块之间的熵,及它们的质押权益。

以轮指数15为例,验证器将在时段开始后每隔2**15=32768毫秒(约32秒)参与一轮。每个验证器可以有不同的轮指数。这就是Highway的局部同步属性。

每轮中,验证器必须 “出现",并至少以Omega消息为领导者区块投票。如果没有Omega区块,领导者提出的只是一个带交易的Lambda区块。这是对协议活性属性的简单描述。
在这里插入图片描述
(轮,领导者区块和投票)

Highway需要一些优化,才能提供更好且更有效的用户体验。这些优化综合考虑了安全性(验证器集规模)、共识消息成本(O(N))及终决时间(轮长)。安全性绝不会被牺牲,这不在我们的考虑范围之内,所以我们只需考虑消息成本及终决时间。

假设A、B和C,质押权益分别为50、49和1。若C的轮指数低于A或B,在只有C参与而A、B都没有参与的轮中,C在任一轮也就只有1%的概率成为领导者。这意味着如果有用户部署到C,这些部署可能会在那里卡很长时间。

若想快速出块,就需要较低的轮指数,但每轮都有2*N个消息(其中N是验证器的数量)。存储中将产生大量无用数据,也增加了验证器校验所有消息的工作负担。

共识术语称之为O*(N)报文问题。许多叉选PoS协议(如Tendermint)都存在这个问题。这就是部分协议的验证器集较小的原因。我们的目标是CasperLabs协议可以支持数以百计,甚至数以千计的验证器,所以O*(N)复杂度的消息成本是行不通的。

优化Highway的Omega区块

说回Omega区块。如果计划通过dApp向区块链发送大量交易,那么Omega区块的效果良好。结点每轮出块,而非投票,交易将在本轮结束前完成。这就减少了O*(N)的共识成本,为开发者和终端用户带来了更好的体验;同时,由于这些部署无需在网络上传播,也降低了网络成本。

下面是测试网截屏。 "轮间"出现的比投票图标大的图标是Omega区块,需要更多时间传播。
在这里插入图片描述
(测试网中的Omega区块)

非dApp前端结点,或者没有信任结点的用户想在区块链上发送交易要怎么办呢?想要保证交易最终流向诚实结点就需要部署gossiping(会话)。现在,Bitcoin和Ethereum都部署了gossiping。

若同时部署gossiping和启用Omega区块会如何?这就要看轮指数了。若只启用Omega区块,只有带有部署的验证器才会产出Omega区块,其他验证器只能投票。若全网部署gossiping,假设所有结点总是带有部署,那么每轮它们各自都可产出Omega区块。是否这样做取决于轮长:若轮长足够长,验证器有机会看到所有的Omega消息,则下一个出块的验证器将清除所有已经执行的部署,及DAG中的关系;否则验证器很可能会产出一个包含与其他Omega区块相同部署的区块。只有检验执行合约之后状态哈希的正确性,才能验证这些区块,这使得两者结合变得非常低效。

然而,对于较长的轮,同时启用两者可能更有利:

  • 若一个Omega消息区块没有被后续区块选为父块,则下轮中,不仅是该区块,其他一些验证器也将包含相同的部署。这降低了孤块的可能性。
  • 部署无需等待领导者区块,它将出现在下一个Omega区块中。

这样的配置使我们能够保持协议活性,降低协议的共识成本。

测试网中轮长配置更新为8分钟。启用Omega后,假设均匀分布,网络每轮最多可以提出25个块(1 lambda,24个omegas),因此约20秒一次,可节制大量的通信成本和磁盘空间。

最后完成的区块移动更少,孤块率也相当低。

深入挖掘效率

Highway协议的魅力在于,它可以根据网络条件和流量进行调整,从而达到最佳的效率和性能。Omega区块只是技术拓展的一个方面。我们正对协议的其他方面进行微调,如区块大小、部署大小,当然还有虚拟机和软件本身的性能。

(本文作者是CasperLabs CTO Medha Parlikar)

猜你喜欢

转载自blog.csdn.net/CasperLabs/article/details/106660438