简介
Sonic 区块链是基于创新的 Lachesis 共识算法构建的高性能 EVM 兼容区块链,专为DeFi和Web3创新而构建,官网宣称拥有400000 TPS的交易速度和即时确定性,尝试了区块链技术发展的新方向。本文从区块链学习者的角度,尝试解析 Sonic 的核心技术实现,包括其革命性的 DAG 共识机制、高效的事件传播协议、EVM 兼容的执行引擎,以及创新的 SCC 认证链技术。
1. Sonic 区块链技术概览
1.1 技术创新点
Sonic 区块链在传统区块链技术基础上实现了多项重大创新:DAG 共识机制、异步事件处理、Gas Power 反垃圾攻击和BLS 聚合签名认证。这些创新技术的结合,使 Sonic 能够在保持去中心化和安全性的同时,实现远超传统区块链的性能表现。
1.2 核心技术架构
1.2.1 Lachesis 共识机制
Sonic 的核心创新在于采用了 Lachesis 异步拜占庭容错(aBFT)共识算法,该算法基于 DAG(有向无环图)结构实现了革命性的性能突破。在这一架构中,验证器能够并发创建事件而无需等待全网同步,从而实现真正的异步处理机制。事件通过父子关系形成有向无环图结构,使得网络能够支持大规模并行处理,显著提升了系统的整体吞吐量。同时,系统通过 Atropos 事件来确定区块边界,确保在异步环境下仍能实现强一致性保证。这种创新的设计使得 Sonic 在理论上能够达到数万 TPS 的处理能力,为高性能区块链应用奠定了坚实的技术基础。
1.2.2 EVM 兼容性
Sonic 实现了完整的以太坊虚拟机兼容性,支持现有的以太坊生态。其状态处理器完全遵循以太坊的执行规则,不仅支持所有以太坊操作码和预编译合约,还采用了与以太坊相同的状态树结构和管理机制。在交易处理方面,Sonic 完全兼容以太坊的交易验证和执行流程,确保现有的以太坊应用可以无缝迁移。同时,系统采用与以太坊一致的 Gas 计费机制,为开发者提供了熟悉的开发环境和成本预期。
1.2.3 Gas Power 反垃圾攻击机制
Sonic 创新性地引入了 Gas Power 机制来防止垃圾事件攻击。在这一机制中,每个验证器拥有有限的 Gas Power 资源,创建事件时需要消耗相应的 Gas Power,从而在源头限制了恶意行为的可能性。系统设计了基于时间的自动恢复机制,使得 Gas Power 能够随时间逐步恢复,既防止了长期资源耗尽的问题,又确保了正常验证器的持续运行能力。这种设计有效防止了恶意验证器通过大量垃圾事件攻击网络,为整个系统的稳定运行提供了重要保障。
1.3 区块链数据流
核心技术特点:
- 异步共识:事件创建与交易执行异步进行,提升并发性
- EVM兼容:完全支持以太坊智能合约和工具链
- Gas Power:创新的反垃圾攻击机制
- BLS认证:额外的安全保障层
2. Lachesis 共识算法深度解析
2.1 DAG 共识机制原理
Lachesis 是 Sonic 区块链的核心创新,它突破了传统区块链的线性结构限制,采用有向无环图(DAG)实现异步拜占庭容错共识。
2.1.1 DAG 事件结构
在 Lachesis 中,每个验证器可以并发创建事件,事件通过父子关系形成 DAG 结构:
工作时序图
2.1.2 事件数据结构
每个事件包含完整的区块链状态转换信息,其数据结构设计体现了 DAG 共识的核心特征。事件结构首先包含版本控制信息,支持协议的向后兼容和平滑升级,确保系统的长期演进能力。时序信息方面,事件包含 Epoch、序列号、帧号等多层次的时序标识,配合创建者标识明确标识事件的创建验证器。通过父事件哈希列表构建的父子关系是 DAG 结构的核心,而 Lamport 时间戳和中位时间机制则确保了事件的正确排序。此外,事件还记录 Gas Power 的使用和剩余情况,包含实际的区块链交易数据作为载荷,并通过数字签名确保事件的完整性和不可篡改性。
事件的唯一标识通过哈希计算生成,确保了事件的全局唯一性和可验证性。
2.1.3 Lamport 时间戳机制
Lamport 时间戳用于确定事件的逻辑顺序,是 DAG 共识的关键组件:
Lamport 时间戳的核心原理: Lamport 时间戳作为分布式系统中的逻辑时钟,为事件提供了可靠的逻辑排序机制。它不仅确保事件间的因果关系得到正确维护,还为所有事件建立了全局的偏序关系,使得分布式环境下的事件排序成为可能。系统遵循严格的递增规则,即新事件的时间戳总是大于其所有父事件,这一设计保证了时间戳的单调性和因果关系的正确性。
时间戳计算遵循简单而有效的规则:新事件的 Lamport 时间戳等于所有父事件中最大时间戳加一,这确保了事件的逻辑顺序与其在 DAG 中的位置保持一致。
Lachesis 共识核心特点:
- 异步处理:验证器无需等待全网同步即可创建事件
- DAG结构:支持并发事件创建,突破线性区块链限制
- 确定性排序:通过 Lamport 时间戳实现事件的全序排列
- 最终一致性:通过 Atropos 事件确定区块边界
2.2 向量时钟与中位时间
2.2.1 向量时钟机制
向量时钟用于跟踪事件间的因果关系,确保 DAG 的一致性。该机制通过为每个验证器维护独立的时间维度,实现了多维时间跟踪,能够准确识别事件间的因果依赖关系。向量时钟的一个重要特性是能够区分并发事件和有序事件,这对于 DAG 结构中的并行处理至关重要。通过这种设计,系统确保所有节点对事件顺序达成一致,为分布式共识提供了坚实的时序基础。
向量时钟的核心功能是维护每个验证器的最新事件时间戳,通过比较不同验证器的时间戳向量,可以准确判断事件间的时序关系和因果依赖。
2.2.2 中位时间计算
中位时间确保事件时间的单调性和网络时间同步:
中位时间机制的核心特点: 中位时间机制基于验证器权重计算加权中位数,能够自动排除被检测到作弊的验证器,确保时间计算的准确性和安全性。该机制严格保证时间戳的单调递增特性,通过中位数计算实现网络时间同步,为分布式环境下的时间一致性提供了可靠保障。更重要的是,这一机制具备强大的拜占庭容错能力,能够容忍最多 1/3 的恶意验证器,确保即使在部分节点恶意行为的情况下,系统仍能维持正确的时间共识。
中位时间算法通过收集所有诚实验证器的时间戳,计算加权中位数来确定事件的最终时间戳,这种方法既保证了时间的准确性,又具备了良好的拜占庭容错特性。
2.3 Atropos 事件与区块确定
2.3.1 Atropos 选择算法
Atropos 事件是确定区块边界的关键机制,其选择算法体现了 DAG 共识的核心思想:
Atropos 选择的核心原理: Atropos 选择算法基于声誉评分机制,通过计算事件被后续事件引用的次数来确定声誉分数,这一分数直接反映了网络对该事件的认可度。算法能够确定性地选择最优的 Atropos 事件,避免了随机性带来的不确定性。被选中的 Atropos 事件标志着一个区块的完成,为 DAG 结构中的区块边界确定提供了明确的标准,确保了共识过程的确定性和可预测性。
区块生成流程:
- 事件收集:收集 Atropos 事件之前的所有确认事件
- 交易提取:从确认事件中提取所有包含的交易
- 区块构建:基于 Atropos 事件和确认交易构建完整区块
- 时间戳设定:使用 Atropos 事件的中位时间作为区块时间戳
这种机制确保了区块的确定性生成,同时保持了 DAG 结构的并发优势。
3. EVM 执行引擎与状态管理
3.1 EVM 兼容性实现
Sonic 实现了完整的以太坊虚拟机兼容性,支持所有以太坊智能合约:
3.1.1 状态处理器
EVM 状态处理的核心机制: EVM 状态处理严格按照以太坊标准流程处理每个区块中的交易,为每个区块创建独立的 EVM 执行环境,确保执行环境的隔离性和一致性。系统严格按照交易在区块中的顺序执行,通过 StateDB 管理所有状态变更,维护区块级别的 Gas 限制和使用情况。对于每个成功执行的交易,系统会生成相应的执行收据,同时妥善处理执行失败的交易,记录跳过的交易信息,确保整个执行过程的完整性和可追溯性。
状态处理器确保了与以太坊完全一致的执行语义,同时提供了高效的批量处理能力。
3.2 交易池管理
3.2.1 交易验证机制
Sonic 实现了多层次的交易验证,确保网络安全:
多层次验证体系:
- 网络规则验证:确保交易符合当前网络的协议规则
- 静态格式验证:检查交易的基本格式和参数有效性
- 状态相关验证:验证交易在当前区块状态下的可执行性
- 交易池规则验证:应用交易池特定的管理规则
交易池管理策略: 交易池采用分层队列管理机制,将交易分为可执行队列和等待队列,基于 Gas 价格对交易进行优先级排序,确保高价值交易得到优先处理。系统给予本地提交的交易更高的处理优先级,支持更高价格交易替换现有交易的动态替换机制,同时通过严格的配置限制防止内存溢出攻击,确保交易池的稳定运行和网络安全。
交易池核心特性:
- 多层验证:确保交易的有效性和网络安全
- 智能排序:基于 Gas 价格和 nonce 的智能排序
- 内存管理:有效控制内存使用,防止 DoS 攻击
- 本地优先:本地提交的交易享有优先处理权
4. SCC 认证链与 BLS 签名
4.1 Sonic Certification Chain
SCC 为 Sonic 区块链提供额外的安全保障层:
4.1.1 BLS 聚合签名实现
SCC 使用 BLS12-381 曲线实现高效的聚合签名,其核心优势包括:
BLS 签名的技术特点: BLS 签名基于 BLS12-381 椭圆曲线,提供 128 位安全级别,其最大优势在于多个签名可以聚合为单个签名,大幅减少存储和验证开销。系统支持公钥聚合,简化多签名验证流程,采用确定性签名机制确保相同消息和私钥总是产生相同的签名。此外,BLS 签名支持批量验证多个签名,显著提升验证效率,为大规模多签名场景提供了理想的解决方案。
密码学安全保证: BLS 签名在当前技术水平下具备良好的抗量子攻击能力,其安全性基于椭圆曲线离散对数问题的困难性,在随机预言机模型下可证明安全。特别重要的是,聚合签名保持与单个签名相同的安全级别,这意味着签名聚合过程不会降低系统的整体安全性,为大规模部署提供了可靠的安全保障。
4.1.2 委员会管理机制
委员会负责为区块和委员会变更提供认证,其管理机制包括:
委员会结构设计: 委员会由多个具有投票权重的成员组成,每个成员拥有唯一的 BLS 公钥用于身份识别和签名验证。系统基于质押或其他机制分配投票权重,确保权力分配的合理性,同时通过私钥拥有证明确保成员身份的真实性,防止身份伪造和恶意参与。
委员会验证机制: 系统设置最小和最大成员数量限制以确保委员会规模的合理性,通过重复检查防止同一成员重复加入委员会,验证投票权重的合理分配,并对每个成员的签名有效性进行严格验证,确保委员会的完整性和可靠性。
2/3 多数决策机制: 系统采用 2/3 多数决策机制实现拜占庭容错,能够容忍最多 1/3 的恶意节点。决策过程基于投票权重而非简单的节点数量计算多数,通过验证聚合签名是否达到所需的权重阈值来确认决策的有效性,确保只有获得足够支持的决策才能通过,为系统的安全性和可靠性提供了强有力的保障。
4.1.3 证书生成流程
SCC 证书的生成和验证流程:
证书生成的核心流程:
区块证书生成: 区块证书生成过程首先为每个新区块创建标准化的区块声明,然后向当前委员会成员请求对区块声明的签名。系统将收集到的签名聚合为单个聚合签名,最后将完成的区块证书存储到 SCC 链中,确保每个区块都获得了委员会的正式认证。
委员会证书生成: 委员会证书生成过程通过周期检测确定是否到达委员会轮换周期,为下一周期创建新的委员会声明,确保新委员会获得当前委员会的认可,最后更新委员会证书完成委员会轮换,保证权力交接的平滑过渡。
签名管理机制: 系统采用分类管理方式,区分区块证书和委员会证书的签名管理,支持签名的增量收集和验证,实时检查是否达到 2/3 多数签名阈值,确保证书生成过程的效率和准确性。
SCC 核心特性:
- BLS 聚合签名:高效的多签名验证机制
- 委员会轮换:周期性的委员会更新机制
- 2/3 多数要求:确保拜占庭容错安全性
- 额外安全层:为主链提供额外的安全保障
5. 总结
Sonic 区块链项目展示了现代区块链技术的发展方向和技术可能性。其创新的 DAG 共识机制、高效的 EVM 执行引擎、完善的安全机制等,为区块链技术的发展提供了宝贵的技术参考。对于区块链开发者而言,深入理解和学习 Sonic 的技术实现,将有助于把握区块链技术的发展趋势,构建更加高效、安全、可扩展的下一代区块链系统。