原文标题:Solana Mega Report V2 - Like Apple, but Unlike Apple
原文来源:Four Pillars
原文编译:BlackShibawolf
中篇:《Solana全面报告:不只是Web3时代的苹果(中)》;下篇:《Solana全面报告:不只是Web3时代的苹果(下)》
· Solana 以简洁性与可组合性为优先,在整合区块链领域中脱颖而出,其平行处理、低费用和快速的交易速度使其与众不同。
· 尽管面临挑战,Solana 的生态系统正在迅速恢复,这得益于其部署了与其愿景一致的各种设施,从而重新获得了市场份额。
· Solana 正在拥抱基于其独特且对开发者友好的基础设施的几种创新应用,尤其是 DePIN、行动装置和支付等专注在促进零售应用的领域。
· 此外,整个生态系统中针对机构应用的各种措施也变得越来越复杂。尤其令人印象深刻的是,通过支付 SDK、SPE 和代币扩展功能等创新技术,许多知名机构都加入了 Solana 网路。
· Solana 的愿景通常被比作苹果,因为它重视软硬件之间的协调,并专注于效能和使用者体验。然而,Solana 更强调新的软件体验,而不是通过硬件实现的便利性,这也提高了人们对它的期望。
*这份报告是基于最初 2024 年 3 月发布的全面报告之后的更新版本。
回顾历史,基础设施市场通常被视为资本密集型产业,而且往往遵循著赢家通吃或少数主导的模式。同样地,即便距离以太坊这个首个智能合约平台推出已近九年,虚拟机(VM)之间的市占率竞争仍然是区块链领域的焦点之一。随著关于虚拟机趋势和不同基础设施需求的持续辩论,各类虚拟机显然将持续发展,推动区块链市场的进一步增长。
Solana 以其 Solana 虚拟机(SVM)为代表,显然正在市场上产生重大影响。在区块链领域似乎朝著以太坊主导的模组化生态系统发展的同时,Solana 在突显整合型区块链的独特优势方面起了关键作用,这些优势包括:简洁性、亲民性和快速性。此外,Solana 还通过专注于 DePIN(去中心化物理基础设施网路)、行动装置和支付等领域,积极引导链下用户采用区块链。
随着「Solana 不再是山寨币,OPOS(Only Possible on Solana, 只有 Solana 能做到)」这句话越来越流行,本文将深入探讨围绕 Solana 的发展轨迹,从 Solana 如何迅速夺回市场份额,剖析其背后复甦的驱动力、与众不同的独特品质,以及我们可以从 Solana 发展历程中汲取的关键教训。
随著以太坊将其路线图转向以 Rollup 为中心的扩展方式,模块化区块链的概念迅速获得关注,相关专案开始主导市场份额—模块化区块链的核心理念在于将共识、执行、结算及数据可用性的职能分配给不同的协议,藉此通过提升的可扩展性与灵活治理来克服整合型区块链的局限性。
然而,这种模块化区块链结构最关键的缺点是它的复杂性。考量单笔交易经由多个协议处理时的过程,这种复杂性带来 1) 持续的相容性与依赖性检查,2) 增加通讯成本,以及 3) 难以迅速识别和解决不可预测的问题。谁能有信心声称如此的系统能够稳定运行?为了使基础设施稳定且可持续发展,其本质必须保持简单。
Solana 在这方面堪称领导者,有效地引领整合型区块链领域—为了确保具有快速交易速度的适度去中心化网路,Solana 以简洁性与可组合性为优先,构建了自己的独特技术堆叠。自推出以来,Solana 始终如一地发展其生态系统,吸引了广泛的用户群并培育了充满活力的社群生态,通过专有的技术堆叠与模块化方法形成对比,Solana 成功将自己与以太坊生态系统区分开来。
这表明 Solana 所采用的单片/单体(整合)方法在行业中是有效且有意义的。它提高了人们对现实世界用例的认识,挑战了以太坊圈子中经常强调的理想主义和学术基调。这无疑已经影响,并将持续促进当今众多其他整合型区块链的出现与发展(例如 Sui、Aptos、Monad 等)。
Solana 所倡导的简洁性和可组合性,其目的不仅仅是通过昂贵的硬件来实现表面的性能提升,还在于通过优化和简化软件与通信技术来设计一个确保其性能接近单一节点的网络。
这对于创建一个对开发者友好的环境尤为重要。在整合方面,开发者能更有效地利用资源,因为 Solana 简化了开发流程,消除了所有会造成复杂性的因素,例如选择哪种技术堆叠来构建应用程式,并确保了不同智能合约能够彼此通讯、交换数据和执行操作的能力。此外,源于低延迟、低费用和并行处理的在地化费用市场(允许不同领域或应用程式拥有独立的费用结构)的特点,消除了单一应用程式潜在瓶颈引起的通信效率低下。
此外,Solana 在其简单的技术堆叠中提供了一系列内建功能,例如可配置的代币标准库、跨链互操作性和用于代币余额查询的 RPC,而无需依赖外部索引器,从而促进应用程式之间像一个团队一样紧密合作,形成一个生机勃勃的生态系统。
除此之外,Solana 还提供一系列支援计划,无论是技术、财务还是运营方面,都为开发者提供全面支持。简而言之,Solana 正在为以产品导向为中心的开发者创造理想的环境,使生态系统能够按照 Solana 的核心价值观稳健增长。
区块链技术虽然使用起来并不方便,但它具有为现实世界带来独特价值的潜力,足以弥补其不便之处,这也是吸引众多人投入并建设这个生态系统的原因。然而,区块链的价值唯有在广泛采用下才能实现。Solana 深知这一点,因此其发展方向著重于实用性,而非一味追求区块链最初的理想,例如去中心化。Solana 生态系统的愿景是以「实际应用」为核心。
Solana 目前专注于三个主要领域:DePIN、移动和支付。这些领域的共同点是它们与现实世界的基础设施密切相关。DePIN 利用区块链技术创建去中心化网络来维护和运营实体基础设施,围绕 Solana 迅速形成叙事。Solana 的低费用和高处理速度使其非常适合资本密集型产业,例如计算、存储、电信、地图和数据中心等。DePIN 和支付领域的发展,将极大促进使用 Web3 功能来构建现实世界的基础设施,并成为链下用户将活动和资产引入 Solana 链上环境的主要方式。通过 Saga(或 Seeker)移动设备和各类消费者应用,链下用户能够使用各种链上资产类别(如 RWA),自然地积累链上经验。
总之,Solana 生态系统不仅推动了链下与链上界限的突破,还使每个空间变得更加有意义。
加密货币行业在短时间内经历了爆炸性的增长,吸引了全球的关注。行业的快速发展也伴随著剧烈的波动,这对业内人士来说已习以为常。然而,Solana 面临的波动性却是格外显著的。
尤其是在 2021-2022 年区块链狂热达到顶点时,Solana 受益于全球第二大加密货币交易所 FTX 及其创办人 Sam Bankman-Fried (SBF) 的支持,迅速崛起成为市值排名第四的生态系统(不包括稳定币)。然而,好景不长,FTX 的崩溃给 Solana 生态系统带来了毁灭性的打击,SOL 代币价格从顶点暴跌了 97%。
尽管遭受如此重创,Solana 却展现出惊人的韧性,正在重拾昔日的影响力。在开发者和公司积极参与下,Solana 生态系统变得比以往更加强大。Solana 之所以能够浴火重生,归功于其始终坚定的愿景和快速执行的能力。
来源:Solana Whitepaper
「达到光速共识的单片全球同步状态机」
Solana 的起源可以追溯到 2017 年末。Anatoly Yakovenko 基于他在高通公司的经验,开始研究区块链技术,并发现了一个重大问题:现有的区块链难以扩展,主要原因是缺少一个所有验证者都信得过的全局同步的时钟来记录交易时间。
因此,Anatoly 提出了一种新方法,也就是利用 SHA-256 杂凑函数的特性来建立一个不可篡改的时间序列,来解决区块链共识过程中的时间同步问题。他认为传统区块链需要节点之间进行大量沟通才能就交易时间达成共识、排序并最终确认交易,这种方式是效率低下的。因此,他提出了一个更简洁的解决方案:如果每个验证者都能够独立验证一个共同的全局时钟,那么网路同步就能够简化,交易也就能够几乎在抵达时立即被处理。
这个想法最终成为了 历史证明 (PoH),它与 Solana 的假设相一致,即 如果软件不阻碍硬件,则整个网络性能可以随著硬件的进步而线性增长。如今,Solana 每秒能够处理数千笔交易,区块时间记录为 400-500 毫秒,其性能远高于现有的区块链。
最终,Solana 采用这种技术方法的目标是实现两个任务:一个可以处理高使用量的可扩展平台,以及应用程式之间的可组合性。通过共享单一全局同步状态的整合区块链设计,开发人员可以更轻松地编写程序(即智能合约),从而降低应用程式开发的复杂性,并让他们能够完全专注于改善最终用户体验。
Solana 的开发理念、多执行与平行处理的运用,以及持续展现的出色网路效能,在建立以务实开发者为中心的社群方面扮演了至关重要的角色。此外,当时区块链叙事氛围的巅峰,加上 DeFi 和 NFT 热潮带动了对快速交易和低廉费用的需求,使 Solana 成为以太坊的真正竞争对手。
Solana 的开发理念、使用多线程方法实现并行交易处理,以及持续展现出色的网络性能,在建立以务实开发者为中心的社群方面,扮演了至关重要的角色。此外,在区块链叙事氛围达到高峰时的当下,以及因 DeFi 和 NFT 热潮引发对快速交易和低费用的需求,使得 Solana 成为以太坊的真正竞争对手。
然而,FTX 的倒闭对这一局面造成了暂时的冲击。当时,Solana 与 Sam Bankman-Fried (SBF) 有密切联系,SBF 公开支持 Solana 生态系统,并率先引入了包括去中心化交易所 (DEX) 项目 Serum 在内的多个项目。在 SBF 的支持下,FTX 成长为全球第二大中心化交易所,随之而来的是他在 Solana 生态系统中的影响力也逐渐增强。然而,最终 FTX 因不当的财务管理和会计操作而倒下,包括挪用公司资产和客户存款来为其对沖基金 Alameda Research 提供贷款和投资。因此,严重依赖 FTX 的 Solana 生态系统也受到影响,面临崩溃的风险。
尽管 Solana 的生态系统看似崩溃,但认同 Solana 理念的开发者仍然坚定的存在。在这种情况下,Solana 采取的首要行动是通过解决技术层面问题来增强网络的稳定性和对开发者友好的环境,以此重建了社群的信任。
3.2.1 技术层面
Solana 网络确实曾受到频繁宕机的长期困扰,因为它容易受到垃圾讯息攻击。这个问题的根本原因来自于 Solana 保持简单的本质设计,它为了提升网络通讯速度,使用了低固定费用结构和预先排定的领导节点系统。为了解决这些问题,Solana 已经实施了多项改进,包括引入 QUIC(快速 UDP 网际网络连接)、质押加权 QoS(服务优先品质管理)和在地化费用市场。
QUIC(快速 UDP 网际网络连接)
Solana 网络一开始使用客制化的 UDP 协议在 RPC 和领导节点之间进行通讯。虽然 UDP 协议可以简化通讯过程并加快传输速度,但它也存在一些问题:
· 缺乏可靠性:UDP 协议无法确认封包是否成功传输,因此无法保证讯息的送达。
· 难以识别来源:UDP 协议无法识别封包的来源 IP 地址,这使得网络难以追蹤恶意行为。
· 易受垃圾讯息攻击:UDP 协议缺乏有效的网络控制机制,容易被大量垃圾讯息淹没,影响网络稳定性。
虽然 UDP 的特性适合需要连续性的服务(如即时串流),但由于这些问题,UDP 协议被认为不适合区块链环境,因为区块链需要高度的安全性和稳定性。
为了解决这些问题,Solana 决定采用 Google 开发的 QUIC 协议。QUIC 是一种基于 UDP 协议的新通讯协议,它保留了 UDP 协议的优点,同时也改善了它的缺点:
· 更高的可靠性:QUIC 协议加入了确认机制,可以验证封包是否成功传输,确保讯息的可靠送达。
· 更强的安全性:QUIC 协议简化了 TCP 协议的连线和握手(节点间确认身份并建立快速安全连接)过程,提高了网路的安全性。
· 更高的效率:QUIC 协议只要求对丢失封包的串流进行重新传输,同时继续传输其他串流,有效提升网络效率。
质押加权 QoS(服务优先品质管理)
当网络流量超过负荷时,QoS(服务优先品质管理)会优先处理特定类型的流量。Solana 的领导节点以前使用 UDP,根据交易的到达顺序处理,而不考量其来源。然而,随著 QUIC 协议的采用,Solana 的领导节点现在可以识别请求交易的 IP 地址,这让 Solana 能够设定特定连线的流量为优先级。
基于质押加权的 QoS 政策的核心是根据质押的 SOL 数量设置流量限制级别。换句话说,验证者节点能够传输的最大封包数量与其在 Solana 网络上质押的 SOL 代币数量成正比。超出每个验证者节点设定限制的交易更有可能被领导节点丢弃。
这种方法预期会带来以下效果:
· 防止恶意验证者节点发动垃圾讯息攻击。
· 鼓励有高交易处理需求的验证者质押更多 SOL 代币,从而提高 Solana 网路的安全性并增加对 SOL 代币的需求。
虽然 Solana 采用固定的手续费(矿工费-Gas 费)政策,以维持其持续且可负担的费用优势,但在区块空间竞争激烈的情况下,可能导致交易失败,或让使用者为了确保交易成功而发起大量垃圾交易,造成网路堵塞。为了改善这个问题,Solana 生态系统开始讨论是否要引入在地化费用市场系统。
在地化费用市场系统中,使用者被允许在手续费上增加额外费用,以确保他们的交易能被快速处理。这种机制可以有效抑制垃圾交易活动,并提高网络效率。
来源:Visa
Solana 并没有在整个网络实施在地化费用市场系统,而是更进一步采用了局部费用市场的方法。这种方法将费用市场限制在特定的应用程式或市场中,以最大程度地减少特定操作需求激增时对整个网络的影响。这种方式之所以可行,是因为每笔 Solana 交易会事先指定需要修改的帐户状态部分,并且交易可以同时处理。
举个例子,即使某个特定 NFT 的铸造费用由于需求旺盛而飙升,这也不会影响与铸造无关的其他帐户之费用市场,比如代币转移。目前,在地化费用市场只限定于特定应用、如交易市场和自动做市商(AMM)池等。每个程式帐户每区块可使用的最大计算单元 (CU) 数量限制,为每区块最大 CU 总数的 25%(即 1,200 万 CU)
*参考资料:单笔交易的最大运算单位为 140 万 CUs。
3.2.2 生态系统与营运管理层面
除了技术上的努力之外,Solana 能够重新引起市场关注并重拾信任,归功于积极拓展适合技术堆叠应用的领域,并打造以开发者为核心的社群。
强化社群凝聚力
Solana 社群通过基金会、黑客松和 Superteam Earn 等平台,积极提供开发者所需的资源和支持,并坚持「让开发者受益是生态系统持续发展的关键」这一原则。
在这个过程中,由 LamportDAO 社区创建的迷因币 BONK 空投了 5% 的代币给留在 Solana 生态系统的开发者,支持他们一起重建 Solana 生态系统。这个迷因币帮助凝聚了 Solana 社群,在开发者重建生态系统的过程中,BONK 代币也逐渐流行起来,一度创下比最低价上涨 15,680% 的纪录。BONK 代币价格的上涨引发了一个良性循环,激发了市场对 Solana 和其生态系统的兴趣,进而促成了一个向 Saga 行动装置用户空投 3000 万 BONK 代币的提案,进一步提升了市场对 BONK 和 Solana 生态系统的关注。
接著 Jito(MEV 解决方案客户端和质押平台)、Pyth Network(预言机网络)和 Jupiter(去中心化交易所)等协议也宣布了空投策略,不断地进一步刺激了市场对 Solana 的兴趣。生态系统内的其他协议,例如 Tensor、marginfi、Zeta 和 Parcl 等,也推出了积分政策,藉此吸引生态系统参与者对空投的期待,为生态系统带来活力。
这些案例展现了尊重社群文化与卓越产品设计相结合,如何为生态系统注入新活力的典范。
连结 Web2 基础设施的策略
随著区块链在 2021-22 年的热潮逐渐消退,市场留下的一个主要问题是:「区块链的意义是什么?」因此,各大主网开始更明确地定位自己的特性,并积极探讨「真正的应用」策略。此时,Solana 能够迅速推行并引领多项创新措施,这不仅仅是回应这些疑问,而是实际上将现实世界的基础设施与链上解决方案连结起来,这一点也吸引了市场的高度关注。
来源:solanamobile.com
在这些创新措施中,最突出的有 DePIN 和行动设备。正如前文所述,DePIN 利用区块链技术的去中心化特性来维护和运营实际基础设施,而 Solana 在这方面走在前列,开创了 DePIN 领域,打造了自己的叙事模式。这不仅是为了展示可以用 Web3 技术替代或补充现实基础设施的应用案例,更是为了构建一个引导链外用户进入 Web3 世界的通道,使他们能够体验 Web3 的应用。
为了给这些用户提供 Solana 的整体生态系统体验,Solana 推出了 Saga 系列行动设备,这些设备包含应用商店和多种功能。首款 Saga 系列设备于 2022 年发布,最初销量不高,但随著 BONK 代币的消息和 Solana 生态系统的活力传播,到了 12 月已售罄。而第二款产品「Seeker」则在 2024 年 9 月 19 日的 TOKEN 2049 活动上推出,将于 2025 年上半年上市,截至 9 月 19 日已收到超过 14 万台的预订。
*Solana Mobile 在 2024 年 9 月 19 日的 TOKEN 2049 活动上推出了 Saga 系列的第二款产品「Seeker」。
第二个重点领域是支付。事实上,使用基于点对点(P2P)区块链的加密资产进行支付,经常被视为可以解决传统金融系统挑战的一个重要应用场景,例如中间商问题、高手续费和交易速度慢等问题。Solana 凭藉其多线程并行处理、快速处理速度和低交易成本,正逐步确立为最适合加密支付的区块链。Solana 正在积极强化这一领域的各种创新(如代币扩展标准),希望让区块链交易能像信用卡支付一样直观和简单。Circle 的 USDC 长期以来一直是 Solana 的官方合作伙伴,Paypal 和 Paxos 合作推出的 PYUSD 也从 5 月起在 Solana 区块链上开始使用。Visa 宣布将 Solana 纳入其稳定币支付基础设施,而 Solana Pay 作为一个于 2022 年 2 月推出的开源平台,允许各种应用程式建立加密资产支付功能。此外,Solana Pay 插件也已整合至 Shopify、Citcon 和 Checkout.com 等平台。
提升用户端多样性与验证者去中心化的措施
Solana 认为验证器客户端的多样化可以提升网络的稳定性和安全性,因此正通过不同的验证器客户端计划来增强网络的韧性。这种客户端的多样化能降低单一软体缺陷对整个网络的影响,因为某个客户端出现的错误或漏洞,可能不会影响到其他客户端。
Solana 最初只有 Solana Labs 开发的一个客户端,但随著 Jito Labs 在 2022 年 8 月发布了第二个客户端 Jito-Solana,Solana 开始朝多样化发展。此外,Jump Crypto 开发的独立验证器客户端 Firedancer 的测试版(基于 C/C++)也已推出。
另外,一款名为 Tinydancer 的轻量级客户端也受到广泛关注,因为它可以用较低的成本来验证交易,尤其在 Solana 节点通常需要高硬件规格*的情况下,这款客户端帮助减少了「去中心化并未真正实现」的误解。优化硬件规格来提升 Solana 网路性能是关键,Vitalik 在他的「Endgame」文章中也提到,与其降低负责生成区块的节点硬件要求,不如通过去中心化并分离较轻量的区块验证**角色来实现网络的扩展性、安全性和抗审查性。
*运行 Solana 节点的建议规格如下:(来源:helius.dev)
· 至少 12 核心 CPU,主频 2.8GHz
· 128/256GB RAM(RPC 节点可能需要更多 RAM 以支持自定义数据库索引)
· 2-4 个至少 1TB 的 NVME 硬碟
· 10 Gbps 网络
**以太坊提出的 PBS(提案者与建构者分离 - Proposer-Builder Separation)架构建议也是基于这个背景。
虽然运行 Solana 节点需要高规格硬件,但大约 1,300 个 Solana 共识节点所在的数据中心,在地理分布上相当广泛。而且中本聪系数 - Nakamoto Coefficient(指能导致区块链出现运作问题的验证器数量)仍然稳定保持在 20 左右。虽然大多数节点集中在美国,但 Solana 持续根据摩尔定律优化软硬件,让更多人能够负担运行节点所需的硬件成本,进而促进节点的地理分布和去中心化;并推行符合去中心化标准的委讬计画,鼓励代币持有者将 SOL 委讬给分布在不同地区的验证器,进而降低单一地区节点过度集中的风险。显示出 Solana 正在一步步实现去中心化。
作为少数拥有多个独立验证器客户端的区块链之一(除以太坊外),Solana 持续致力于去中心化,并寻求网络稳定性。
Solana 不仅在内部巩固其基础,也积极拓展其商业影响力。上述这一些努力过程,为吸引机构投资者提供了足够的亮点,Ark Invest 的 CEO Cathie Wood 就曾公开表达对 Solana 愿景的积极看法,Grayscale 的 Solana 信讬产品更是飙升了 869%。总而言之,Solana 已证明了其具备强大潜力,能够以一致的愿景和迅速的执行力,重振看似陷入危机的生态系统。
本节将深入探讨 Solana 技术堆叠中的每个元素,这些元素坚定地支持著 Solana 一贯的愿景,并推动其生态系统的复甦。
4.1.1 程式语言
来源:Solana
表面上看,Solana 的目标是降低交易费用和缩短区块时间,但从技术角度来说,它的使命是针对硬件优化软件。为此,Solana 必须谨慎选择其程式(即智能合约)的程式语言,并最终采用了 Rust。Rust 支援并行处理、记忆体安全、底层控制,以及强大的类型系统。Rust 类型系统会在编译时检查程式码中的数据类型,如果发现类型不兼容,就会阻止程式码编译,这样可避免类型错误,确保程式码的安全性和可预测性。
然而,Solana 的终极目标是打造一个所有 LLVM*(原为低阶虚拟机缩写但实际为编译器组合)语言都能互相协作的环境。因此,尽管 Rust 是开发 Solana 应用的主要语言,我们仍然可以利用 LLVM,将用其他语言(如 C 或 C++)编写的程式码转换为可在 Solana 上执行的机器码。
客户端在与 Solana 网路互动时,可以使用各种基于 JSON RPC API 的 SDK,例如 Java、C#、Python、Go 或 Kotlin 等语言的 SDK。
* LLVM 是一个高度模组化的编译器和工具链技术组合,能让高效能、高品质的程式码在各种硬件平台上进行有效优化,因此成为熟练技术人员的首选开发环境。
4.1.2 核心创新
Solana 采用了八项核心技术,以确保从用户提交交易到生成区块的整个过程中都能保持极速。为了更好地理解这些技术,让我们简单介绍一下 Solana 的共识机制如何运作。
a. 交易签名与 RPC 节点的交易接收 - 用户通过钱包签署交易,然后将签过名的交易发送到 RPC 节点。
b. 领导节点的选择 - 同时,领导节点的选择是基于代币持有者委派给节点的质押权重,验证者根据「领导节点轮替计画」*进行轮流。
c. 交易处理与时间标记 - 在交易处理阶段,交易会被分类为需要顺序处理的和可以并行处理的,并分配到不同的线程(六个线程中,两个专门处理投票交易,其余四个由「中央排程器」优先处理)。领导节点使用历史证明(PoH)给交易加上时间标记,以确定顺序。
d. 区块创建 - 领导节点开始使用它的 PoH 序列创建一个区块。
e. 区块传播 - 刚生成的区块会被发送到网络中的复制节点(即其他验证者)。
f. 交易验证 - 复制节点使用它们的 PoH 序列来验证交易顺序,并确保交易符合网络规则。由于交易顺序依赖于 PoH 序列(即全局时钟),节点之间不需要进行点对点通讯。
g. 区块最终确定 - 当交易排序并验证完毕后,区块被添加到区块链中。接著,下一个领导节点被选出,流程重新开始。
Solana 有一个「领导节点轮替计画」,允许领导节点提前一个 epoch 确定,以确保区块不会延迟或过时。版本 1.18 引入的中央排程器负责所有交易的优先排序和处理,减少了复杂性和额外负担。可参考下面的「历史证明」部分以更好理解这个过程。
历史证明(Proof of History)
如前文所述,历史证明的核心在于每个验证者都能产生并持有一个「全局时钟」,使他们可以参考所有交易的顺序。例如,通过对上一个杂凑值(例如 hash1)进行杂凑,生成下一个杂凑值(例如 hash2,即 sha256(hash1)),直观上就表示 hash1 在 hash2 之前。Solana 将这个过程称为「序列」。
来源:Solana 白皮书
换句话说,这个连续杂凑的数据结构就像是时间(全局时间)标记,证明了时间确实已经流逝。由于每个验证者都能独立生成并持有这个证据,因此他们不需要与其他验证者沟通来确认时间的流逝,这样领导验证者可以在无需额外协调的情况下快速轮替。这就是 Solana 能通过应用 PoH 比其他区块链实现更短区块时间的关键原因。
来源:Solana 白皮书
生成这个序列只能通过单核处理来完成,因为需要参照前一个输出杂凑值,但验证过程可以使用多核处理,因为它的逻辑非常简单—仅需进行杂凑计算。因此,这达成了 Solana 的理念:「每个节点的验证随著硬件而线性扩展。」
因此,PoH 更像是一种全局时钟数据结构,或者说是一个通过连续杂凑函数实现的可验证延迟函数(VDF),而非共识算法。实际上,Solana 使用 Tower BFT DPoS (拜占庭容错的代理持有量/权益证明) 作为其共识算法。
塔式拜占庭容错的代理持有量/权益证明 (Tower BFT DPoS)
Tower BFT 可以看作是经过 PoH(历史证明)优化的 PBFT(实用拜占庭容错)版本。它利用 PoH 作为「全局时钟」,预先确定交易的顺序,只专注于共识过程,这样就大大减少了讯息传输的负担和延迟。验证者通过 Tower BFT 达成共识的过程如下:
验证者会在固定的时间段内(约 400 毫秒)对他们认为正确的账本版本进行投票*,并放弃那些被认为不正确的版本,这样就不需要节点之间进行点对点(P2P)通讯。随著每次投票的推进,要回滚*到之前的区块所需的等待时间会加倍。这意味著,随著大多数验证者持续投票支持的 PoH 序列推进,回滚变得越来越难。例如,如果所有验证者在 14 秒内(14,000 毫秒 / 400 毫秒 = 35 个时段)已投票了 35 次,那么回滚的时间限制就会达到约 435 年(2^35 × 0.4 / 3600 / 24 / 365),几乎不可能回滚。
因此,只有「最重的序列」***会保留在区块链中,因为大多数验证者都投票支持它,所以它最难回滚,而投票支持该序列的验证者将获得奖励。简单来说,感谢由于 PoH 的存在,Tower BFT 中的验证者可以在不需要点对点通讯的情况下自己计算超时时间,确保投票及时进行,保持网络的活性,并减少区块分叉的风险。
投票的权重取决于每个验证者在网络中的质押数量。「回滚」是指将区块链的状态或交易纪录退回到某个之前的状态,通常是为了撤销一些错误或无效的交易。「最重的序列」指的是获得最多验证者投票支持的序列。
湾流 (Gulf Stream)
与其他区块链不同的是,Solana 不需要公共记忆体池(mempool)*来储存用户的交易,因为它的交易处理速度很高,区块空间相对充足。除此之外,用户端发起的交易会被编码成 QUIC 流,直接发送到下一个被选为「领导者」的验证者。这种方法被称为「Gulf Stream」,可以加速领导者的切换并提前执行交易,减少对其他验证者的记忆体负担。
*公共记忆体池(mempool),用于暂时储存尚未被确认的交易。当用户发起一笔交易时,该交易会先被广播到网路中的节点,并被添加到各个节点的记忆池中。矿工会从记忆池中选择交易,打包到新的区块中,并添加到区块链上。
Solana 的并行智能合约执行环境 (Sealevel) & 水平扩展的帐户数据库 (Cloudbreak)
Sealevel 是 Solana 的核心技术,让它能够进行多线程并行处理,这是 EVM 或基于 WASM 的执行环境无法做到的。Sealevel 使用交易中的「指令」来执行并行处理,交易中包含的帐户数组包含了 Solana 网络的全局状态资讯。交易会根据每个帐户的读/写状态预先分类,以便进行并行处理。
资料来源:Solana交易的生命周期
顺带一提,将帐户数据库组织成可以被多个线程同时读取/写入的结构是非常困难的,即使是传统数据库也不例外。为了解决这个问题,Solana开发了Cloudbreak技术,通过特定方式对帐户数据结构进行分区,以最大限度地利用SSD的效能,从而享受连续操作的速度优势,并采用内存映射文件来提高效率。
正如前面提到的,Sealevel中的这种并行处理逻辑也是Solana在地化费用市场得以实现的原因。
流水线技术 (Pipelining)
在 Solana 区块链中,流水线技术是一种将数据输入流(即下一个领导者预先接收到的 QUIC 资料包)分成多个不同硬件部分同时进行处理的技术。
流水线处理的流程如下:
1. 资料首先进入「核心空间」(kernel space),接著被传送到 GPU 进行并行的签名验证。
2. 签名在 GPU 上验证后,资料被交给 CPU 进行交易处理。
3. 同时,「核心空间」已经在准备下一批资料,CPU 也在将处理好的资料记录(写入)到区块链上,然后再传送到下一个区块。
通过流水线技术,Solana 可以最大限度地利用硬件资源,提高效率,加速区块的验证和传输。
结构化网路拓扑 (Turbine)
当交易处理完成后,领导节点必须将更新后的「状态」传送给每个验证者。如果要把大量数据逐一发送给所有验证者,效率会非常低。为了解决这个问题,Solana 使用了一种名为 Turbine 的技术,类似于 BitTorrent。简单来说,这项技术是由领导节点将 QUIC 资料包(可以选择使用纠删码)拆分成较小的数据包,并按照分层结构分发给验证者。
例如,假设有一个 128MB 的区块。为了处理这个区块,领导节点会将它拆分成 2,048 个 64KB 的小数据包,然后先传送给一些验证者。这些验证者接收后,会再将收到的数据包传给其他「邻近」的验证者(称为 Neighbors)。最初接收的验证者会从持有较高 SOL 代币质押权重的节点中选择。验证者们会把自己收到的一部分数据,递给下一层的邻近验证者。这种架构让领导节点最初传送的数据,能够随著传递层级的加深,像雪球一样快速地扩展到更多的验证者。随著邻近验证者群体的规模增大,连接整个网络所需的步骤会以对数比例减少,从而实现快速的数据传输。
特别是在某些情况下,如果高层级的少数验证者进行恶意行为(例如日蚀攻击),这些行为可能会对整个网络产生较大的影响。因此,网络采用每次通过不同随机路径发送数据包的方法,以减少这类攻击的风险。
分类帐复制器 (Archiver)
Solana 的 Archiver 用来存储网络每年生成的大约 4PB(拍字节-Petabyte)的数据。它们可以被视为一种「轻量级客户端」,不需要下载整个 Solana 分类帐,只需存储一部分数据,这样就允许具有不同硬件要求的广泛验证者参与。
当 Archiver 从网络获得分配的数据时,它们的工作是通过「复制证明(Proof of Replication, PoRep)」技术来验证数据的真实性,这项技术基于 Filecoin。Archiver 向网络宣告它们的存储空间,并且可以通过存储和验证分配的数据,获得最多 3% 的通膨奖励。
原文链接
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia