区块链 101:Solana

本文介绍了 Solana 区块链,它通过创新的 Proof of History (PoH) 机制,即一种可验证延迟函数 (VDF),与 Proof of Stake (PoS) 结合,实现了高交易处理速度。Solana 在可扩展性方面进行了优化,但在一定程度上牺牲了去中心化和安全性。文章还探讨了 Solana 的架构、优势和劣势,以及它在区块链三难困境中的权衡。

这是关于区块链的一系列文章的一部分。如果你是第一次阅读本系列文章,我强烈建议从本系列的开头开始阅读。

区块链仍然是一项非常小众的技术。尤其是考虑到现在人工智能的火热程度,以及大多数开发者倾向于更传统的系统。

即使在区块链开发者中,常见的情况是他们专注于磨练在特定技术上的技能——而且通常情况下,他们的选择恰好是 Ethereum(或 EVM 兼容的系统)。

然而,正如我们在整个系列文章中暗示的那样,区块链不仅仅只有以太坊——其他参与者也纷纷崛起,挑战创建这些分布式、可编程和不可变的注册表。其中一个例子就是 Solana

Solana 有趣的地方在于,它采用了一种完全不同的方法来解决我们之前讨论过的一些典型问题——比如 共识。这样做,有得有失——这是我们现在应该预料到的,因为我们了解了 不可能三角

但也许更重要的是,它本身就是另一项出色的工程,因此非常值得探索。

介绍就到这里!让我们看看这个区块链是如何完成工作的!

开始吧!

时间戳

我们将直接深入到系统的核心:它的共识机制来开始我们的讨论。我想现在我没必要再说了,没有共识,就没有区块链——毕竟,节点连接并就事件序列达成一致的能力,才证明了这些技术存在的合理性。

Solana 的人在 一些很棒的资源 中提供了进一步参考——我将一如既往地尽力用我理解的方式来解释!

当我们开始讨论比特币时,我们提到我们的主要目标之一是 对交易进行排序。排序由区块决定——区块 1 中的交易必须发生在区块 2 中的交易之前。而且,在创建一个区块时,会为其分配一个时间戳——确定区块何时被挖掘,以及区块在时间上“发生”的时间。

我敢打赌,在经历了之前文章的洗礼之后,你现在肯定在想“好吧,但是谁来决定这个时间戳呢?

妙啊,我亲爱的华生

例如,在比特币中,矿工自己在生成区块时会为区块分配时间戳。矿工不能在区块上放置任何他们想要的时间戳——有一些规则试图保持这些值的真实性。但是这些规则 非常宽松,甚至在某些情况下,一个区块的时间戳比链中出现在它之前的某个区块更早。

这意味着作为一个时间戳系统,比特币并不是那么可靠。

以太坊采用了一种类似但稍微严格的方法。每个时间戳必须大于父区块的时间戳,并且不能太超前于未来。验证者检查这些约束,并拒绝任何违反这些规则的区块。

虽然这听起来很棒,但这个解决方案存在一些问题。除了节点本地时钟可能漂移之外,验证者还需要相互通信才能就这些时间戳达成一致——这需要时间,并直接影响扩展区块生产时间

好的!这是一个我们正在处理的新问题。问题是:

我们如何在不影响可扩展性的前提下,以分布式的方式精确地就时间戳达成一致?

这就是 Solana 提供巧妙解决方案的地方。

可验证的延迟

如果我告诉你时间本身的流逝可以通过数学验证,并构建到区块链的结构中呢?

如果我告诉你点个赞并订阅……

什么?怎么做?

为了实现这一点,我们首先必须找到一些像tick作响的时钟一样的构造。

Solana 使用 哈希函数 来实现这个目的:SHA-256

实际上,它与 比特币挖矿 使用的是同一个!

但是等等……什么?哈希函数被设计成这种密码学的搅拌机——它们与时间有什么关系?

这里的关键在于,执行这个哈希函数需要可预测的时间量。虽然,通过“可预测的”,我并不是说我们确切地知道计算一个哈希需要多少时间(以毫秒为单位)——这当然取决于硬件。那么,这里的可预测性必须意味着不同的东西

为了帮助我们理解,让我们做一个小小的心理练习。

获取一些输入数据,并通过 SHA256 哈希函数运行它。

现在获取输出,并再次通过 SHA256 函数运行它——你将得到一个新的输出。然后,重复数百万次

每次执行 SHA256 都需要一些可预测的时间——你可能会对其进行基准测试,并且会得到一些平均时间。从这个意义上讲,每次执行该函数都像是时钟上的一个刻度——每个刻度都花费我们之前提到的平均时间。

要获得最后一个哈希,你必须经过 N 步才能获得最终哈希——跳过是不可能的。这意味着如果你能够获得有效的 output N,那么这证明你已经花费了执行哈希函数 N 次的时间!

这是所谓的可验证延迟函数的基础,或简称 VDF。Solana 正是利用这种机制来对事物进行时间戳标记。

嗯,严格来说,这表现得像一个可验证延迟函数,但技术上它不是一个。它实际上只是一个连续的哈希链。如果你有兴趣,这是一篇定义 VDF 真实形式的 论文

实际应用中的时间戳

好的,很酷。我们现在有了这种密码学tick作响的时钟可供我们使用。我们如何在区块链中使用它?

在这里,我们需要做一些观察:

  • 好吧,首先,我们的哈希链就像一个时间线——我们将使用它来代替“标准时间”。我们不会使用真实世界的时间来对事物进行时间戳标记,而是使用这个密码学时钟中的某个点。
  • 其次,我们需要至少有人一直在计算新的哈希值,以便时钟前进。
  • 最后,我们需要对某物进行时间戳标记!是交易吗?是区块吗?

好的,假设你想在 Solana 中发送一笔交易。你像往常一样通过 RPC 提交它,它通过节点网络传输,直到它到达所谓的领导者验证器。这个验证器做了一些非常有趣的事情:它将收到的交易嵌入到哈希链中。就像这样:

可验证延迟函数构造

通过这样做,交易本身与 Solana 的tick作响的时钟交织在一起——这就是所谓的历史证明。每笔交易都精确地根据序列中相应的哈希进行时间戳标记!

仔细观察,我们可能会注意到这实际上不是一种共识机制——它只是一种构建有序交易序列的机制。

而且我们还有一个领导者验证器,这听起来有点……中心化?

那么,共识真正存在于这一切中的哪里?

共识

Solana 中“真正的”共识机制是权益证明(PoS)系统,它连接到历史证明(PoH)序列。

揭晓了

Solana 使用他们所谓的 Tower BFT(拜占庭容错),它结合了 PoS 和 PoH 来创建一个完整的共识机制。

验证器选择的工作方式与其他 PoS 系统非常相似——验证器质押原生货币(SOL)作为抵押品。他们质押的代币越多,被选为领导者的机会就越大。

不过,这不像以太坊那样是一个完全随机的过程。你可以在 这里 阅读更多相关信息。

时间被划分为 slots,每个 slot 都有一个领导者。但与以太坊相比,slot 由 PoH 序列决定。

在他们分配的 slot 期间,跨越 400 毫秒,领导者必须维护 PoH 序列(这意味着它必须对交易进行时间戳标记),并且他们还有能力提议一个区块,该区块被广播到网络上进行验证。

然后,以经典的 PoS 方式,其他节点验证该区块(基本上,领导者遵守了规则),并投票确认它——投票权重由质押量决定。一旦达到绝对多数票,那么该区块就变为最终确定

为什么要历史证明?

我想你一定在想,如果共识机制是权益证明,那么历史证明真正带来了什么价值呢?我说对了吗?

基本上,正如我们之前所说:交易的时间戳不再是验证者需要花费时间验证的东西。因为交易本身与 VDF 时钟相关联,所以它们具有唯一的、确定性的时间戳。

并且用 Anatoly Yakovenko 的话PoH 背后的策划者 和 Solana 的联合创始人:

每个区块生产者都必须通过 VDF,即历史证明,才能到达他们分配的 slot 并生产一个区块

这意味着每个验证器只需要观察可验证延迟函数——哈希链——就可以遵循网络的时钟,并在他们成为领导者时保持同步。

后果

拥有这个密码学时钟和一切都很酷,但是以这种方式做事带来的真正影响是什么?

让我们先谈谈好处。主要的好处是非常高的交易处理速度。通过消除时间戳验证的开销,Solana 可以实现 非常好的每秒交易数(TPS)值。理论上,它可以达到高达 65,000 TPS——一个非常好的数字,考虑到像 Visa 这样成熟的网络 大约每秒处理相同数量的交易

当然,理论上的限制很棒,但通常不能很好地描述运营网络的实际容量!

哦,顺便说一句,网络费用 也很低!

但并非一切都是好的一面。总是有不利的一面。这里可能的权衡是什么?

正如我们已经在文章开头暗示的那样,我们无法逃脱 区块链不可能三角。从这个角度来看,让我们检查一下 Solana 在哪里做出了妥协。

  • 为了维护 PoH 序列并每秒处理数千笔交易,Solana 验证器需要高端硬件,包括强大的 CPU、大量的 RAM 和非常快的 SSD。这些要求远高于其他区块链的要求,从而提高了验证器的准入门槛。
  • 此外,Solana 的架构相当复杂。虽然这也可以说是其他区块链的特点,但 Solana 确实在极端负载期间偶尔出现过中断。随着时间的推移,稳定性得到了提高,但复杂的架构仍然是漏洞或意外行为的潜在来源。

那么我们应该将 Solana 放置在不可能三角的哪个位置呢?

显然,这个网络已经针对可扩展性进行了大量优化,但在去中心化(由于硬件要求)和一定程度上在安全性(通过架构复杂性)方面做出了妥协。

这些设计选择将该网络放置在与比特币或以太坊不同的位置。在这里,我必须非常清楚:这并不意味着 Solana 比这些网络更好或更差——它只是不同

对于吞吐量高和费用低至关重要的用例,这些权衡可能不仅是可以接受的,而且是理想的。但如果去中心化是首要任务,那么其他区块链可能更合适。

作为开发人员,这是你的选择——这也是美妙之处的一部分!

好吧,也许你没有这么激动。

总结

总而言之,Solana 为我们带来了一个非常创新的想法,即它的密码学时钟(历史证明——可验证延迟函数),以及它如何集成到它的权益证明机制中。

我认为学习这些系统背后的思想是非常有益的,并且最终为我们提供了更多的工具,使我们能够作为工程师和开发人员来塑造区块链行业的未来。

今天的重点是由 Solana 开创的共识创新——我真的希望我能够以一种易于理解的方式来解释它们!

但是如果你想了解关于该主题的另一种观点,请查看 这篇文章

虽然我们今天已经介绍了很多内容,但这远不是我们 Solana 之旅的终点。因为这个网络也是可编程的,就像以太坊一样——但它不是 EVM 兼容的

这意味着 Solana 有自己定义可执行程序的方式,这与我们目前所看到的有所不同。我们将在 下一篇文章 中介绍这些程序是如何工作的!

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

0 条评论

请先 登录 后评论
Frank Mangone
Frank Mangone
Software developer based in Uruguay. Math and Cryptography enthusiast.