前言
“我们比世界上任何人都更了解小型、高速、低成本的优势,现在我们将这些概念应用于区块链。” Greg Fitzgerald,Solana联合创始人的这句话,道出了Solana的设计初衷。作为一个以高性能、低延迟著称的区块链平台,Solana凭借其独特的集成架构,能够在全球去中心化网络中处理每秒数千笔交易。400毫秒的区块时间和仅几美分的交易费用,使其在速度和成本效益方面都表现出色。
Solana采用了一体化的区块链开发方法,充分借鉴了创始团队在构建分布式系统方面的丰富经验。其核心原则之一是”软件不应成为硬件的障碍”,这意味着软件应该充分利用运行硬件的能力并与之共同扩展。作为一个统一的生态系统,所有构建在Solana上的应用程序都继承了可组合性,能够无缝互动和相互构建。这种架构还确保了直观的用户体验,无需桥接、单独的链ID或流动性碎片化。
Solana生态系统正在快速发展,最近的创新包括SVM Rollups和ZK压缩等重要的扩展解决方案。虽然这些项目未来可能会改变我们对Solana的认知,但目前它们仍处于早期开发或采用阶段。
交易生命周期
要理解Solana的工作原理,我们可以从典型交易的生命周期入手。简而言之,当用户发起交易时,所有交易都会被发送到当前的主区块生产者(即领导者)。领导者将这些交易汇总成一个区块并执行,从而更新其本地状态。随后,这个交易区块会在网络中传播,供其他验证者执行和确认。
值得注意的是,对Solana核心协议的重大更改需要经过正式透明的过程,即提交Solana改进文档(SIMD),并接受社区成员和核心工程团队的公开评审。SIMD最终会由网络进行投票表决。
六大阶段框架
为了更好地理解Solana的核心元素,我们采用了一个六阶段框架。这个框架虽然有其局限性,但为我们提供了一个分析Solana复杂分布式系统的有效工具。实际上,Solana的各个组件之间存在许多相互依赖的关系,某些阶段可能会跨越多个章节,而有些章节也会涉及多个阶段。
用户与钱包
“Solana有潜力成为加密领域的苹果公司”——Solana联合创始人Raj Gokal的这个比喻,很好地说明了Solana在用户体验方面的追求。用户的旅程通常从设置和资助钱包开始。Solana上有多个流行的钱包应用,包括本地移动应用和浏览器扩展。
钱包通过加密生成用户的密钥对,包括公钥和私钥。公钥作为账户的唯一标识符,而私钥则用于签署交易。Solana采用Ed25519椭圆曲线数字签名算法,这种算法因其密钥小、签名小、计算速度快以及对常见攻击的免疫力而备受青睐。
Solana交易机制
在Solana上,发送交易是改变状态的唯一方式。任何写入操作都是通过事务执行的,并且事务具有原子性——要么全部成功,要么完全失败。一个交易消息包含四个关键部分:标头、账户地址列表、最近的区块哈希和指令。
交易费用由基础费用和优先费用组成。基础费用固定为每个签名5000 lamports,而优先费用则根据网络需求浮动。值得注意的是,Solana上”失败交易”的概念与常规理解有所不同——这些交易实际上已经成功执行了签名验证等操作,只是由于交易本身的逻辑要求而”失败”。
交易发送流程
用户将钱包连接到应用程序后,应用程序可以读取用户的公钥,而私钥则保持加密状态。当用户发起操作时,应用程序构建交易消息参数,发送到钱包进行签名。签名完成后,交易被转发给RPC提供商,作为应用程序与验证者之间的中介。
Gulf Stream技术
“Solana的目标是让交易速度与新闻传播一样快——就像光速通过光纤一样。我们的竞争对手是NASDAQ和纽约证券交易所。”Solana联合创始人Anatoly Yakovenko的这番话,揭示了Solana在性能方面的雄心。
Solana的独特之处在于它从一开始就设计为不使用内存池(mempool)。与传统区块链不同,Solana将所有交易转发到预定的主要验证者(即领导者)处。RPC节点作为网关,运行与完整验证者相同的软件,但不参与区块构建。目前Solana网络上已有超过4,000个RPC节点。
Solana运营着四个集群:Localnet、Testnet、Devnet和Mainnet-Beta。其中Mainnet-Beta是唯一代币具有实际价值的集群。领导者计划在每个epoch(约两天)前生成,将时间划分为400毫秒的时隙,并为每个时隙选择领导者。权益越多的验证者被选为领导者的频率越高。
权益加权服务质量
2024年初,Solana引入了”权益加权服务质量”(SWQoS)机制,通过优先处理已质押验证者代理的交易消息,有效防止了垃圾信息和增强女巫抵抗能力。持有更多权益的验证者获得更高的交易消息传送能力。
这种机制类似于高速公路的优先车道,验证者可以将按权益加权的容量租赁给RPC节点,从而获得更高的交易包含率。这一变化鼓励高流量应用进行纵向整合,通过运行自己的验证节点来确保交易处理能力。
QUIC协议
2022年底,Solana采用QUIC网络协议来管理交易传输。QUIC由Google开发,结合了UDP的快速异步通信和TCP的安全会话特性,有效解决了网络拥堵问题。
区块构建
与许多区块链网络先构建完整区块再广播不同,Solana采用连续区块构建,在分配的时隙内动态组装和流式传输区块,显著降低了延迟。每个时隙持续400毫秒,每个领导者分配四个连续时隙(1.6秒)。
交易处理单元(TPU)是验证者的核心逻辑,负责区块生产。交易首先通过QUIC接收,然后进行签名验证,最后进入银行阶段——这是区块构建的核心环节。在银行阶段,交易以并行方式处理,打包成包含64个不冲突交易的分类账”条目”。
历史证明
历史证明(PoH)是Solana的独特创新,它像每个验证节点上的特殊时钟,为事件顺序和时间流逝建立了可靠来源。PoH基于SHA256哈希算法,创建可验证的延迟函数,确保网络同步。
PoH的关键好处是确保即使区块生产者离线,也必须遵循正确的领导者计划。每个区块包含800,000个哈希,PoH流还包括”滴答”——空的条目,表示领导者的存活性和时间流逝。
账户模型
“在SVM中分离代码和状态是最好的设计决策。”Solana联合创始人Anatoly Yakovenko的这句话,揭示了Solana账户模型的核心思想。在Solana验证者中,全局状态保存在称为AccountsDB的账户数据库中,本质上是一个巨大的key-value存储。
Solana上的所有东西都是一个账户,包括用户账户、数据账户、程序账户和本地程序账户。所有账户都有相同的字段结构,但程序账户仅包含可执行逻辑,运行时改变其他账户的状态而自身不变。
租金机制激励用户关闭不再需要的账户,减少状态膨胀。要创建新账户,必须持有一定数量的SOL作为”免租金”金额。当账户关闭时,租金将返还给所有者。
所有权模型通过限制谁可以修改账户数据来增强安全性。每个账户都有一个程序”所有者”,管理该账户的写入权限。程序派生地址(PDA)是与程序关联的特殊账户,用于存储状态。
涡轮传播
“Solana最有趣的部分不是并行化、SVM或Toly的推文,而是你可能没听说过的东西:Turbine。”Helius的Mert Mumtaz这样评价Solana的区块传播机制。
涡轮受到BitTorrent的启发,通过将交易数据拆分为”切片”(最大1280字节的数据包)来高效传播。切片使用纠删编码处理数据包丢失,并通过层级化的”涡轮树”在网络中传播。
共识机制
“一些聪明的人告诉我,在Solana中有一个认真聪明的开发者社区…我希望这个社区能有机会蓬勃发展。”以太坊共同创始人Vitalik Buterin的这番话,表达了对Solana开发者社区的认可。
Solana使用Tower BFT(TBFT)共识算法,这是实用拜占庭容错(PBFT)的自定义实现,利用PoH提供的同步时钟大大减少了消息开销。验证者通过投票参与共识,投票交易费用为0.000005 SOL。
Solana的”跳过率”(区块未生成的时隙百分比)在2%到10%之间,分叉是主要原因。交易状态分为处理中、已确认和最终确认三个级别,目前Solana历史上从未出现过已确认区块未最终确认的情况。
八卦网络与归档
“一条区块链需要巧妙地结合密码学、分布式系统、操作系统和编程语言。Solana的超级能力就是愿意逃离每个学科中最有趣的问题。”Greg Fitzgerald这样描述Solana的创新精神。
八卦网络传播区块链状态的元数据,使用基于修改版PlumTree算法的树广播方法。验证者和RPC每0.1秒通过UDP共享签名数据对象,确保信息可用性。
Solana的独特之处在于不需要完整历史记录来确定当前状态。RPC和验证者通常只存储2-4天的交易数据,完整历史由专门的仓库节点维护。
经济学与Jito
“人们逐渐认识到,Solana是今天唯一能够支持主流消费应用的区块链。”创始人Ted Livingston的这番话,强调了Solana在实际应用方面的优势。
Solana采用通货膨胀机制分发质押奖励,初始年率为8%,逐年递减至长期稳定的1.5%。验证者通过投票积累信用兑换奖励,表现最佳的验证者能成功投票约90%的时隙。
流动性质押通过发行代表质押SOL份额的LST代币,显著提高了资本效率。目前超过80%的Solana质押量使用Jito客户端,该客户端引入协议外的区块空间拍卖,为验证者提供额外激励。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/15641.html