深入探索Solana交易的底层机制:从PoH到BPF执行

  • OxElliot
  • 发布于 2024-11-07 11:45
  • 阅读 55

本文深入探讨了Solana交易的生命周期,从交易创建、Proof of History (PoH)到BPF Loader的执行,详细讲解了Solana如何高效地处理交易。文章通过对比EVM和Solana,强调了Solana并行处理和低费用的优势,同时展望了后续关于Solana账户和所有权系统的文章内容。文章结构清晰,逻辑严谨,适合对区块链技术感兴趣的读者。

欢迎回来!如果你阅读了我之前的文章,关于 Solana 的历史证明 (PoH),你应该知道 PoH 就像是后台经理,确保交易被时间戳记录并按照顺序进行。但是接下来发生了什么?Solana 是如何实际执行交易的?这个“BPF 加载器”到底是什么?编译器在哪里?

今天,我们将深入了解在 Solana 上发送交易时实际上发生了什么。 从 PoH 到 BPF 加载器,我们将以易于理解的方式覆盖整个过程。让我们开始吧!

1. Solana 交易生命周期:一切始于一次点击

想象一下,你正在给朋友发送 SOL、购买 NFT 或者交换代币。你点击 发送,接下来发生以下事情:

交易创建:你指定发件人、接收者和任何指令(也许是一条消息,例如“这份是给咖啡的!”)。

历史证明 (PoH):PoH 为交易添加时间戳并对其进行排序,确保它按照正确的顺序被处理。了解更多关于 PoH 的信息

通过权益证明 (PoS) 进行验证:Solana 的 权益证明 (PoS) 共识机制赋予验证者验证交易的能力。验证者根据其抵押的 SOL 数量被选择,通过检查签名并利用 PoH 的序列来确认交易的完整性。该双重系统使 Solana 能够在提供高安全性的同时保持超快的速度。关于 PoS 的更多信息

2. 背后发生了什么?

一旦验证,交易将移交给 Solana 的处理引擎。此时,Solana 的独特 基于账户的模型 就发挥作用了:

账户作为状态机:每个信息(从用户余额到智能合约数据)都存储在“账户”中。交易与这些账户交互,实时更新其状态。查看 Solana 的账户模型

并行处理:Solana 的交易以并行的方式运行,使其能够同时处理成千上万的交易。与逐个处理交易的区块链不同,Solana 会将非重叠的交易分组同时处理。

3. BPF 加载器:

如果 PoH 是保镖,那么 BPF 加载器 就是 Solana 厨房里的厨师,负责智能合约执行。以下是你需要知道的:

什么是 BPF? BPF(伯克利数据包过滤器)最初源于 Linux 用于网络数据包过滤。Solana 对其进行了调整,以有效地以资源友好的方式执行智能合约。在这里了解更多关于 BPF 的信息

BPF 加载器的角色:Solana 将其智能合约编译成 BPF 字节码,然后由 BPF 加载器解释并运行。就像加载一个迷你程序,逐步执行每条指令。

效率和安全性:BPF 加载器隔离每个程序的执行,增强了安全性并保持低费用。由于其为速度而构建,BPF 加载器是 Solana 能够处理复杂应用程序而不降低速度的关键原因。

4. 从头到尾:

让我们通过一个例子来将这一切整合在一起。

假设你正在把代币转给朋友:

发起转账:你点击 发送。交易指定了发件人、接收者和指令。

PoH 添加时间戳:PoH 对交易进行排序。

验证者验证:使用 PoS,验证者根据 PoH 的序列确认交易的详细信息。

使用 BPF 加载器进行执行:BPF 加载器加载智能合约程序并执行,将代币从你的账户转移到你朋友的账户。

账户更新:Solana 的账户模型记录交易并更新余额,使其成为正式交易!

5. BPF 加载器对 Solana 的重要性

BPF 加载器不仅仅是一个执行者 - 它使 Solana 独具特色:

多程序执行:BPF 允许多个程序在单个交易中运行,这对于 DeFi 和复杂应用至关重要。

低费用和高效率:BPF 的优化执行保持了费用低廉,同时确保了速度。

  • 通过隔离实现安全性:每个程序在隔离中运行,因此一个程序的问题不会影响其他程序。

EVM 与 Solana 交易:快速比较

现在我们知道了 Solana 的交易是如何工作的,让我们与 EVM(以太坊虚拟机)区块链(如以太坊)处理交易的方式进行比较。这样,我们就能更好地了解是什么使 Solana 如此独特!

1. 执行环境:EVM 与 BPF 加载器

EVM:在基于 EVM 的区块链(如以太坊)中,智能合约是用 Solidity(或 Vyper)编写的,随后直接在 EVM 中运行,EVM 本质上是以太坊的智能合约引擎。交易一次只执行一笔,因此它们必须排队等候。并且,每笔交易需要根据其复杂性支付 gas(即费用)。这可能导致高费用,特别是在网络繁忙时。

Solana 的 BPF 加载器:Solana 的程序(也称为智能合约)用 Rust 或 C 编写,然后编译成 BPF 字节码,由 BPF 加载器 解释并执行。这个系统是为超快速处理设计的,所以这是 Solana 费用保持低廉的重要原因。Solana 还以 并行 的方式处理交易,使其能够同时处理成千上万的交易,而不是 EVM 的单一排队方法。

2. 顺序处理与并行处理

EVM:EVM 顺序处理交易,就像是一条单车道的道路。每笔交易必须等上一笔完成后才能继续。这种方式在高峰时段可能导致瓶颈和高费用。

Solana:Solana 的并行处理就像是一条多车道的高速公路。不会与同一账户互动的交易可以同时处理,因此它能在不降低速度的情况下处理大量交易。这是 Solana 能够维持低费用和高速度的主要原因之一,即使在网络有很多用户的情况下。

3. 无状态与有状态程序

EVM(有状态):在以太坊中,合约持有自己的数据和状态(内存),这可能很方便,但也会限制可扩展性。每笔交易直接修改这个“状态”,这意味着每个合约每次只能处理一个变更。如果你正在与一个流行的智能合约交互,请为潜在的拥堵做好准备。

Solana(无状态):Solana 采取不同的方法。程序是 无状态 的,意味着它们不自行存储数据。相反,所有数据和状态信息都保存在独立的“账户”中,程序与这些账户进行交互。这样的设计允许更多的灵活性,并实现了 Solana 的并行处理魔力,因为程序不必担心跟踪自己的状态 - 它们所需的一切读写都在外部。

总结:

因此,从 PoH 保持事务有序到 BPF 加载器确保智能合约平稳运行,你可以看到 Solana 的设计注重速度和效率。每个部分:PoH、PoS 验证、账户和 BPF 加载器都在确保你的交易快速、安全和廉价方面发挥着重要作用。

现在,我们在这里提到了账户,但 Solana 的账户和所有权系统是独特的,值得特别关注。敬请期待未来的文章,我们将深入解析 Solana 中账户和所有权的实际运作方式 - 因为理解这部分确实能连接整个系统。同时,如果你感兴趣,可以查看 Solana 的文档,并随时在评论中提出问题!

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

0 条评论

请先 登录 后评论
OxElliot
OxElliot
https://tusharbhatia43.medium.com/