中年|另类的Solana:不走分片之路


中年|另类的Solana:不走分片之路
本文插图

蓝狐笔记之前多次介绍过Solana , 可以查阅《为什么Solana是区块链开发者需要的“世界计算机”?》、《区块链的“历史证明机制”:时间与共识》等 , 如今它已经发展了不少 。
前不久FTX将要基于Solana发布其DEX交易所 , 该DEX名为Serum 。 FTX的CEO SBF还公开为Solana“带盐”:“Solana棒极了!”这是什么情况?为什么不是基于以太坊构建其DEX?
这一切都源于Solana的特色:在保证一定程度安全的前提下 , 实现高性能和低费用 。
Solana现状
截止到蓝狐笔记写稿时 , Solana的总交易数近20亿次 , 当前的tps大约200-300之间 , 大约是目前ETH的10-20倍 , 能处理当前多数场景的交易 , 尤其是DeFi领域的交易 。
的质押者达到128位 , 目前的验证者是相对分散的 , 且都质押一定量的资金 , Solana已经有了一定的社区基础 。 目前其质押者主要来自于欧洲、美国 , 亚洲质押者参与度相对较低 。

Solana的时钟

Solana的PoH并不是共识机制 , 也不是抵抗女巫攻击的机制 。 它本质上是针对区块链时钟问题的解决方案 。 当前区块链的时钟按照区块滴答来行进 , 比如比特币 , 其时间滴答大约每十分钟一次 , 每次滴答更新一次区块 , 区块的更新代表全局状态的更新 。 也就是说 , 在比特币的PoW机制中 , 时间和状态是耦合的 , 保持同步的行进 。 中本聪通过将PoW、难度调整以及最长链规则结合一起 , 实现了在无须许可环境下的全局共识 。
不过 , 这种全局共识也存在吞吐量的限制 , 因为吞吐量取决于区块大小和区块时间 。 区块越大 , 区块时间越短 , 吞吐量越大 。 但区块越大不利于节点的去中心化 , 减少区块时间则会增加链分叉的概率 。
为提高吞吐量 , Solana提出了将时间和状态解耦的方案 , 如何实现这一点?需要全局可用的时钟 。 有了全局时钟 , 状态更新可按照异步方式进行;有了全局一致的时钟和交易时间戳 , 可以实现交易在网络间的持续流动 。 Solana的PoH机制就是为网络中的所有节点产生全局可用的时间链 。

有了独立的时间链 , 验证的领导者在收到时间戳后会尽快广播给委员会 。 时间戳有规范顺序 , 不是区块生产者任意确定的顺序 , 这样 , Solana中的验证者可以实时向其他节点发送状态更新 。 节点持续收到新的交易 , 交易有发送者签名过的PoH哈希 , 并将其转发给邻居节点 。
Solana的验证者通过SHA-256顺序哈希的VDF来解决时钟问题 。 每个Solana的验证者使用VDF来维持其自己的时钟 , 可以为周期提前安排领导者 。
通过PoH , Solana的验证领导者可以实现持续轮换 , 且其轮换的决定是异步进行的 。 Solana网络也可以轮换验证者 , 且其轮换可在验证者之间无须相互交谈就可实现 。 而通常的区块链则需要验证者之间进行交谈才能作出轮换决定 。 这种设计给予Solana更大的可扩展性空间 。
除了PoH , Solana在共识机制、区块广播、账本存储等方面也进行了优化 。
Solana的TBFT共识
Solana的共识机制是TBFT共识 , 类似于PBFT共识 。 不过 , Solana的TBFT将其活性优先于一致性 。 Solana的节点可以计算当前的验证者数量、每个验证者状态、每个验证者提交给网络中任何区块的超时 。 通过这些数据结构 , 节点可以进行投票 , 从而达成共识 。
Solana的Turbine区块广播

Turbine是Solana的区块广播技术 , 借用了BitTorrent的思想 。 一个区块传输时 , 它会分成很多个小数据包 , 然后广播到大量的随机节点 。 按照Solana自身的说法 , 使用其扇出机制 , 如果每个连接为100毫秒 , 对于40,000个节点的网络而言 , 可以在400毫秒内完成复制 , 500毫秒内完成最终性 。


推荐阅读