首页 资讯 正文

深度解读Solana共识机制:委托权益证明和历史证明

odaily 2024年01月02日 11:12

原文作者:Cookies Research

原文编译: unicorn

区块链的共识机制负责验证交易的有效性,并将它们按准确的顺序添加到区块链中。根据选择的共识机制,验证和排序过程的效率不同,从而导致不同水平的吞吐量。在区块链领域, 是一条高性能链,具有 400 毫秒的区块时间,每秒交易数(TPS)平均在 2,?000 到 3,?000 之间,理论上的峰值 TPS 为 65,?000?(供参考,以太坊的 TPS 大约为 12)。

本文旨在突出 Solana 中发挥关键作用、有助于其高吞吐量的两个架构,即其委托权益证明(DPoS)共识机制和历史证明(PoH)机制。

让我们从了解区块链的一个关键瓶颈开始:可拓展性。

分布式区块链网络中的每个节点都有自己的内部时钟,它按照这个本地系统时钟运行。当发生交易时,节点将根据这个本地系统时钟为交易添加时间戳。

下面图片是展示节点内部的时钟:

最终确认或拒绝交易的时间戳也将根据这个本地系统区块进行。在传统的共识机制(例如工作量证明 PoW 和权益证明 PoS)中,所有的节点需要相互沟通,以协调彼此的本地时钟,以确保它们在处理交易时对时间的理解是一致的。节点之间的通信有助于建立一个共同的时间基准,以确保整个网络对时间的认知是一致的,从而协调交易的顺序和确认。

对于一个分布式区块链,有成千上万个节点分布在全球各地,节点之间的本地系统时钟存在差异是不可避免的,导致交易的时间戳在不同节点之间不一致。当节点需要就发生了哪些交易以及这些交易在区块中的顺序达成共识时,这就成为一个问题。这被称为时间戳同步问题,当网络通过增加节点数量来增强去中心化时,这个问题会变得更加严重和复杂。

最终,这为恶意攻击创造了一条可能的路径。时间上的差异使恶意行为者能够广播类似于真实时间戳的虚假交易,试图掌控网络。为防止对交易的操纵,需要花费大量的时间和处理能力来验证时间戳的准确性。这有可能导致区块确认的延迟,甚至区块被拒绝(因为节点可能投票认为区块无效,原因是具有不同的时间戳)。

历史证明(PoH)在 Solana 中用于证明交易被正确地按顺序排列,而这可以由网络中的验证者轻松验证。

与第一节提到的节点各自拥有其独立时钟的情况相反,PoH 可以被视为一个全局块,所有节点都使用它来验证两个事件之间时间的流逝。通过这个全局时钟,节点查看相同的交易历史记录,摒弃了对交易顺序可能存在的任何分歧。这使得共识可以迅速达成,极大地缩短了交易被验证并添加到区块链的时间。

PoH 依赖于一种加密方法,以创建交易的连续、按时间顺序的记录。让我们深入了解一下。

每个交易都经过 SHA-256 处理,这是一种以其能够接受任何输入并生成唯一、不可预测输出而闻名的加密哈希函数。当一个交易被哈希时,其输出成为下一个交易哈希的输入。这个过程在哈希输出中建立了交易的内置顺序,形成了一个长而连续的链。

PoH(历史证明)利用了可验证延迟函数(VDF),它在区块链中验证时间流逝的重要性。VDF 是计算密集型的函数,不仅依赖于先前的哈希,还包含经过的时间。这个机制允许 Solana 以加密的方式展示真实时间已经过去,生成连续的输出。因此,存在清晰、可验证的交易顺序,确保了一致的事件时间轴。验证者因此可以轻松验证经过的时间有多长,进一步增强了网络的可信度。

在 Solana 中使用 PoH(历史证明)添加了一个强大的安全和完整性层。篡改哈希链的任何部分都会需要重新计算所有后续的哈希,这是一项努力密集型的工作,可保护网络免受更改的影响。

PoH(历史证明)显著减少了验证者每个区块需要处理的信息量。通过使用交易最新状态的哈希版本,区块确认时间被大幅缩短。当验证者(或复制节点)收到一个区块时,PoH(历史证明)序列为它们提供了一个具有加密可靠的交易顺序,他们可以在无需重新验证的情况下信任。这种效率对于加快共识机制至关重要,因为网络可以迅速选择并转移到下一个验证者进行区块验证。

在更好地了解 PoH 的基础上,本节将解释 PoH 如何在 Solana 的共识机制中(DPoS)得到应用。

在 DPoS 中,每个抵押了 $SOL 的验证者都能够参与网络治理——对区块的有效性进行投票,决定是否将其添加到区块链中。不愿直接参与权益证明过程的 $SOL 持有者(包括您和我)可以将其代币委托给其他验证者,从而有效地使它们成为委托人。这个委托过程将委托人的投票权(与他们拥有的 $SOL 数量成比例)分配给这些验证者。作为抵押 $SOL 的回报,委托人将获得区块奖励的一部分。

DPoS 系统的运作原则是,具有较大权益的节点更有可能被选择来验证交易并将其添加到区块链中,获得区块奖励的机会鼓励节点保持高水平的性能和完整性。

在了解了 DPoS 和 PoH 两者之后,让我们将这些知识结合起来,概述一下在 Solana 上典型的区块确认是什么样的。

1. 领导节点的选择:领导节点负责生成 PoH 序列(历史证明排序交易)和创建区块。

这个选择过程是基于节点的权益权重的,这个权重通过代币持有人委托给它们而增加。领导角色将在验证者之间轮换。

2. 为交易添加时间戳:领导节点将接收交易,并使用 PoH 为它们添加时间戳,形成交易顺序。

3. 区块创建:通过来自 PoH 的序列,领导节点随后开始创建一个区块。

4. 区块传播:新创建的区块将被发送到复制节点(分布式网络中的其他验证者)。

5. 交易有效性验证,复制节点将验证以下两个组成部分:

a. 交易顺序:使用 PoH 序列验证交易是否按正确顺序排列。由于它是一个全局时钟,这种验证不需要节点之间的往返通信(与常见的共识机制如 PoW 和 PoS 不同)。

b. 交易有效性:检查交易是否符合网络规则并且有效。

6. 区块最终化:在验证了交易顺序和有效性之后,该区块将被添加到区块链中。然后将选择下一个领导节点,并且整个过程重新开始。

Solana 一直不懈努力改进其区块链架构,最近的发展包括 QUIC、权益加权的 QoS 和本地化费用市场。此外,生态系统期待着通过 Firedancer 的推出显著提高其效率。值得关注的是,Solana 独特的架构——OPOS(仅限 Solana)可能会带来新的用例。