本文是关于Solana区块链架构的介绍,重点介绍了Solana如何通过历史证明(PoH)、Tower BFT共识机制以及并行交易处理实现高性能。文章详细解释了PoH的工作原理,包括可验证延迟函数(VDF)的应用,以及Tower BFT如何利用PoH提高共识效率。此外,还提到了Solana通过Sealevel运行时实现并行交易处理的方法。
Solana 是一种高性能区块链,专为速度、可扩展性和低延迟交易而设计。它的架构引入了几项创新,使其在传统区块链(如以太坊和其他 EVM 链)中脱颖而出。
在本系列中,我们将介绍每个开发者或爱好者都应该理解的基本概念:
核心架构: Solana 如何通过历史证明、Tower BFT 和并行交易处理实现高吞吐量。
账户模型: Solana 通过账户处理状态和程序的独特方式。
交易: Solana 交易的结构、执行流程和授权模型。
在这篇文章中,我们将从核心架构开始,并在深入研究实现之前涵盖 solana 的基础知识。
在本节中,我们将快速概述 Solana 的核心架构,并理解它的工作原理。
PoH 是 Solana 的一项关键创新,由 Solana Labs 的创始人 Anatoly Yakovenko 提出。它建立在一个简单但强大的想法之上:在一个分布式系统中,了解事件的精确顺序与事件本身同等重要。
为了实现这一点,Solana 使用 可验证延迟函数 (VDF),这是一种加密函数,需要可测量的时间来计算,并且其输出可以有效地验证。每个验证者不断地对先前的输出以及新数据进行哈希处理,从而产生一系列哈希,这些哈希充当事件的加密时间戳。它提供了可证明且不可变的记录时间,准确地显示了每个事件相对于其他事件发生的时间。
这种设计允许快速确定性,这意味着一旦将一个区块添加到区块链中,它就被认为是最终确定的并且无法撤消。
像比特币和以太坊这样的传统区块链依赖于区块间隔或外部时间戳来对交易进行排序,这限制了可扩展性。Solana 通过使用 可验证延迟函数 (VDF) 将时间直接嵌入到账本中来解决这个问题。
VDF 是一种加密函数,需要固定的时间来计算,并且可以快速验证。验证者不断运行此函数,对先前的输出进行哈希处理以生成哈希链, 每个哈希代表一个精确的时刻。这个序列创建了一个 加密时钟,允许任何人证明事件何时相对于其他事件发生,而无需依赖外部来源。
当提交交易时,它们会引用此 PoH 序列中的特定点。验证者可以立即验证它们何时发生,从而实现并行验证和更快的共识。在 Solana 的情况下,PoH 与 Tower BFT 协同工作,Tower BFT 是一种基于权益证明的共识机制,可在几毫秒内完成区块。
VDF 在 PoH 中的作用解决了区块链技术的几个关键方面:
Tower BFT 是 Solana 的共识算法,建立在权益证明之上,并与历史证明紧密集成。它是 实用拜占庭容错 (PBFT) 的定制版本,经过优化以利用 PoH 的加密时钟。(我们不会在此处介绍完整的过程,完整的过程可以在此处阅读)
在传统的 PBFT 系统中,验证者必须不断通信以就交易的顺序达成一致,这个过程限制了可扩展性。Tower BFT 通过使用 PoH 作为值得信赖的时间来源来减少这种通信开销。由于每个验证者都可以验证事件何时发生,因此他们不需要交换那么多消息来达成一致。
每个验证者都对账本的状态进行投票,并将其投票锁定一定数量的“槽位”。稍后更改该投票将需要违反其自身的锁定,因此强烈鼓励诚实的行为。随着验证者继续在已确认的区块上构建,他们的锁定持续时间呈指数增长,从而使最终确定变得快速且不可逆。
本质上,PoH 提供了时间线,而 Tower BFT 在其之上构建共识,从而使 Solana 能够在几毫秒内完成区块,同时保持安全性和去中心化。
在大多数区块链(如以太坊)中,交易是按顺序一个接一个地处理的,因为每个交易都可能修改共享状态(如余额或合约数据)。这确保了一致性,但限制了吞吐量,因为网络每秒只能处理与单个线程可以处理的交易一样多的交易。
Solana 采用了一种不同的方法,即并行交易执行,由其名为 Sealevel 的运行时提供支持。 允许 Solana 实现巨大的吞吐量,每秒数万笔交易,而不会牺牲确定性或一致性。(有关 SeaLevel 的更多信息,请参见此处)
在下一部分中,我们将深入研究 Solana 的 账户模型, 所有状态、程序和数据如何在账户中组织,以及它与以太坊的合约模型的不同之处。
- 原文链接: medium.com/@andrey_obruc...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!