理解Solana:架构、账户模型和交易 - 第1部分

本文是关于Solana区块链架构的介绍,重点介绍了Solana如何通过历史证明(PoH)、Tower BFT共识机制以及并行交易处理实现高性能。文章详细解释了PoH的工作原理,包括可验证延迟函数(VDF)的应用,以及Tower BFT如何利用PoH提高共识效率。此外,还提到了Solana通过Sealevel运行时实现并行交易处理的方法。

理解 Solana:架构、账户模型和交易 — 第 1 部分

Solana 是一种高性能区块链,专为速度、可扩展性和低延迟交易而设计。它的架构引入了几项创新,使其在传统区块链(如以太坊和其他 EVM 链)中脱颖而出。

在本系列中,我们将介绍每个开发者或爱好者都应该理解的基本概念:

核心架构: Solana 如何通过历史证明、Tower BFT 和并行交易处理实现高吞吐量。

账户模型: Solana 通过账户处理状态和程序的独特方式。

交易: Solana 交易的结构、执行流程和授权模型。

在这篇文章中,我们将从核心架构开始,并在深入研究实现之前涵盖 solana 的基础知识。

核心架构

在本节中,我们将快速概述 Solana 的核心架构,并理解它的工作原理。

历史证明 (PoH)

PoH 是 Solana 的一项关键创新,由 Solana Labs 的创始人 Anatoly Yakovenko 提出。它建立在一个简单但强大的想法之上:在一个分布式系统中,了解事件的精确顺序与事件本身同等重要

为了实现这一点,Solana 使用 可验证延迟函数 (VDF),这是一种加密函数,需要可测量的时间来计算,并且其输出可以有效地验证。每个验证者不断地对先前的输出以及新数据进行哈希处理,从而产生一系列哈希,这些哈希充当事件的加密时间戳。它提供了可证明且不可变的记录时间,准确地显示了每个事件相对于其他事件发生的时间。

这种设计允许快速确定性,这意味着一旦将一个区块添加到区块链中,它就被认为是最终确定的并且无法撤消。

可验证延迟函数 (VDF)

像比特币和以太坊这样的传统区块链依赖于区块间隔或外部时间戳来对交易进行排序,这限制了可扩展性。Solana 通过使用 可验证延迟函数 (VDF) 将时间直接嵌入到账本中来解决这个问题。

VDF 是一种加密函数,需要固定的时间来计算,并且可以快速验证。验证者不断运行此函数,对先前的输出进行哈希处理以生成哈希链, 每个哈希代表一个精确的时刻。这个序列创建了一个 加密时钟,允许任何人证明事件何时相对于其他事件发生,而无需依赖外部来源。

当提交交易时,它们会引用此 PoH 序列中的特定点。验证者可以立即验证它们何时发生,从而实现并行验证更快的共识。在 Solana 的情况下,PoH 与 Tower BFT 协同工作,Tower BFT 是一种基于权益证明的共识机制,可在几毫秒内完成区块。

VDF 在 PoH 中的作用解决了区块链技术的几个关键方面:

  • 可验证性: 它确保区块链的历史记录是透明、不可变且可供公众验证的。这建立了信任,并减少了对计算密集型流程的依赖。
  • 去中心化: 多个节点可以同时生成和验证时间戳,从而防止任何单个实体控制时间戳的生成。这增强了网络的安全性及可靠性。
  • 效率: 通过提供可靠的事件时间顺序,而无需像工作量证明 (PoW) 这样耗能的共识算法,具有 VDF 的 PoH 提高了交易处理效率,加速了共识,并降低了交易费用。

Tower BFT

Tower BFT 是 Solana 的共识算法,建立在权益证明之上,并与历史证明紧密集成。它是 实用拜占庭容错 (PBFT) 的定制版本,经过优化以利用 PoH 的加密时钟。(我们不会在此处介绍完整的过程,完整的过程可以在此处阅读)

在传统的 PBFT 系统中,验证者必须不断通信以就交易的顺序达成一致,这个过程限制了可扩展性。Tower BFT 通过使用 PoH 作为值得信赖的时间来源来减少这种通信开销。由于每个验证者都可以验证事件何时发生,因此他们不需要交换那么多消息来达成一致。

每个验证者都对账本的状态进行投票,并将其投票锁定一定数量的“槽位”。稍后更改该投票将需要违反其自身的锁定,因此强烈鼓励诚实的行为。随着验证者继续在已确认的区块上构建,他们的锁定持续时间呈指数增长,从而使最终确定变得快速且不可逆。

本质上,PoH 提供了时间线,而 Tower BFT 在其之上构建共识,从而使 Solana 能够在几毫秒内完成区块,同时保持安全性和去中心化。

它是如何一起工作的

  • 加密时间戳: PoH 的核心是加密时间戳,它使用顺序哈希函数。该函数接受一个输入(区块链的当前状态和一个随机种子)并产生一个唯一的、不可逆的输出(哈希)。此哈希充当可验证的时间戳。
  • 生成哈希链: Solana 通过将哈希函数迭代地应用于先前哈希的输出来创建哈希链。每个步骤代表一个时间刻度,哈希操作的数量表示经过的时间。这产生了一个连续的、可验证的时间记录,用于对交易进行排序。
  • 记录交易: 当进行交易时,它会随观察到的最新哈希一起发送。验证者通过确保它引用当前 PoH 序列中的哈希来确认其有效性和时间。这证明了交易发生在特定时刻。
  • 共识: 一旦使用历史证明对交易进行时间戳,它们就会通过 Solana 基于权益证明 (PoS) 的共识机制,称为 Tower BFT。验证者质押 SOL 以参与该过程,负责验证交易并维护网络安全,以换取奖励。得益于 PoH 内置的计时功能,Tower BFT 可以非常快速地就交易顺序达成一致,使 Solana 能够每秒处理数千笔交易。
  • 可验证延迟函数 (VDF): 历史证明的核心在于 VDF,一种加密过程,它强制执行事件之间可测量的时间流逝。在生成区块之前,领导者必须计算序列中的下一个哈希,这取决于先前哈希的输出。这确保了每个步骤只能按顺序生成,不能跳过或并行化。通过不断附加从先前状态派生的新哈希,Solana 创建了一个可验证的时间戳链,证明了交易的精确顺序,从而防止任何人重新创建或重新排序历史数据。

并行交易处理

在大多数区块链(如以太坊)中,交易是按顺序一个接一个地处理的,因为每个交易都可能修改共享状态(如余额或合约数据)。这确保了一致性,但限制了吞吐量,因为网络每秒只能处理与单个线程可以处理的交易一样多的交易。

Solana 采用了一种不同的方法,即并行交易执行,由其名为 Sealevel 的运行时提供支持。 允许 Solana 实现巨大的吞吐量,每秒数万笔交易,而不会牺牲确定性或一致性。(有关 SeaLevel 的更多信息,请参见此处

接下来

在下一部分中,我们将深入研究 Solana 的 账户模型, 所有状态、程序和数据如何在账户中组织,以及它与以太坊的合约模型的不同之处。

  • 原文链接: medium.com/@andrey_obruc...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Andrey Obruchkov
Andrey Obruchkov
江湖只有他的大名,没有他的介绍。