Aptos新框架Shoal:Bullshark延迟优化40%-80%

robot
摘要生成中

Shoal框架:优化Aptos上的Bullshark延迟

Aptos实验室近期解决了DAG BFT中两个关键问题,大幅降低了延迟,并首次在确定性实际协议中消除了对超时的需求。总体上,Bullshark的延迟在无故障情况下改进了40%,在故障情况下改进了80%。

Shoal是一个通过流水线和领导者信誉来增强基于Narwhal的共识协议的框架。流水线通过每轮引入一个锚点来减少DAG排序延迟,领导者信誉则通过确保锚点与最快的验证节点相关联来进一步改善延迟。此外,领导者信誉使Shoal可以利用异步DAG构建来在所有场景中消除超时。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

Shoal的核心技术非常简单,主要是按顺序依次运行底层协议的多个实例。以Bullshark为例,就相当于一群"鲨鱼"在接力赛跑。

在追求区块链网络高性能的过程中,早期主要关注降低通信复杂度,但这并未带来显著的吞吐量提升。近期的突破源于认识到数据传播是基于领导者协议的主要瓶颈,可以从并行化中受益。Narwhal系统将数据传播与核心共识逻辑分离,实现了16万TPS的吞吐量。

然而,基于领导者的共识协议如Hotstuff/Jolteon无法充分利用Narwhal的吞吐量潜力。因此,Aptos决定在Narwhal DAG之上部署Bullshark,一种零通信开销的共识协议。但Bullshark的DAG结构带来了50%的延迟代价。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

Shoal框架通过流水线和领导者信誉机制大幅降低了Bullshark的延迟。流水线允许每轮都有一个锚点,将DAG中所有非锚点顶点的延迟减少到三轮。领导者信誉机制则倾向于选择快速的领导者。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

Shoal的核心思路是按顺序组合多个Bullshark实例。它利用所有验证者都同意第一个有序锚点的特性,将第一个有序锚点作为实例的切换点,并用锚点的因果历史计算领导者信誉。

这种方法不仅实现了流水线,还自然地结合了领导者信誉机制。在对第r轮锚点排序后,验证者只需根据该锚点的因果历史,从第r+1轮开始计算新的领导者映射,并使用更新后的锚点选择函数执行新的Bullshark实例。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

Shoal还消除了对超时的需求。它利用DAG构建提供的"时钟"来估计网络速度,只要有足够的诚实验证者继续向DAG添加顶点,回合就会持续推进。领导者信誉机制进一步确保了选择快速验证节点作为领导者,使系统能在所有现实场景中以网络速度运行。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

Shoal提供了一种称为"普遍响应"的属性,即使在领导者失败或网络异步的情况下,也能以网络速度持续运行。这相比Hotstuff等协议的"乐观响应"属性有显著优势。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

评估结果表明,Shoal显著改善了Bullshark的延迟。在无故障情况下,Shoal结合流水线和领导者信誉实现了最佳延迟。在有故障情况下,领导者信誉机制通过降低失败验证者被选为领导者的可能性,使Shoal的延迟比基线Bullshark低65%。

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

万字详解Shoal框架:如何减少Aptos上的Bullshark延迟?

总的来说,Shoal框架通过简单而高效的方法,成功解决了DAG-BFT中的关键延迟问题,为Aptos等区块链系统的性能优化提供了新的思路。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 3
  • 分享
评论
0/400
AltcoinOraclevip
· 07-17 23:31
令人着迷。我的专有指标预测了这个确切的延迟优化系数......唱多的背离已确认
查看原文回复0
午夜快照猎人vip
· 07-17 23:17
硬核得令人迷惑 咋就整出这么多了
回复0
SerNgmivip
· 07-17 23:16
信誉机制不错啊 感觉有戏
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)