ASERT 详解
ASERT(Absolutely Scheduled Exponentially Rising Targets,以aserti3-2d实现)是Bitcoin Cash的难度调整算法,自2020年11月起运行,为每一个单独区块重新计算挖矿难度,而不是像Bitcoin那样每2,016个区块一次。
ASERT(Absolutely Scheduled Exponentially Rising Targets,以aserti3-2d实现)是Bitcoin Cash的难度调整算法,自2020年11月起运行,为每一个单独区块重新计算挖矿难度,而不是像Bitcoin那样每2,016个区块一次。它测量自固定锚点以来链的真实时间线与理想的每块10分钟计划偏离了多少,并以两天的半衰期指数级地调整难度回来。对独立矿工重要的效果:连续的、无悬崖的调整,消除机会主义哈希率用来袭击链的有利可图窗口——保护所有稳定挖矿者的概率。
核心要点
- 逐块,而非逐纪元。比特币将难度固定~2,016个区块然后跳跃;ASERT每块调整一次。没有平台期意味着没有窗口——对矿工而言最重要的单一结果。
- 公式是一行。next_target = anchor_target × 2^((actual_time − scheduled_time) / half_life)。难度只是锚点的难度,按链偏离计划多少来缩放。
- 两天半衰期是调节旋钮。比计划提前两天,难度翻倍;落后两天,减半。足够快以跟踪真实哈希率,足够慢以忽略幸运区块噪声。
- 它被设计为奖励稳定矿工。ASERT的明确设计目标包括最小化在链间跳转的切换矿工的利润优势——这正是少数链上的独立矿工想要的保护。
- 同样的设计可能困住太小的链。短暂的哈希率洪流使难度飙升;当它离开时,一条微小的链可能需要~6.6天从10×峰值恢复。这就是为什么ASERT在小型链上的行为同时是特性和危险。
本文位于我们的难度科学集群中,与ASERT是链的盔甲的Bitcoin Cash档案,以及探索相反世界——窗口仍然存在并可被利用的链——的BC2重新定向窗口指南并排。理解ASERT就是理解为什么一些链有那些窗口而其他链没有。
ASERT被构建来解决的问题
每条工作量证明链必须持续回答一个问题:随着哈希率加入或离开,我们如何让区块大约每十分钟到达一次?比特币的原始答案——从上一纪元的速度每2,016个区块重新计算一次——当哈希率庞大且稳定时运作完美。在较小的链上,它以特定的、可利用的方式失败。
Bitcoin Cash以惨痛的方式学到了这一点。2017年分叉后的第一个难度算法,以及在此之前的紧急调整,产生了激烈的振荡:难度下降,机会主义的”切换矿工”涌入铸造简单区块,难度猛然回升,他们离开,链停滞直到下一次下降——一个伤害所有稳定挖矿者的锯齿波。这个模式有一个名称和一个受害者:有利可图的窗口,以及其份额被稀释的忠诚矿工。ASERT在对竞争算法进行广泛模拟后,被设计为专门平整那个锯齿——其明确目标包括将区块时间保持在目标附近,将确认时间保持在目标附近,以及减少稳定矿工和切换矿工之间的盈利差距。
aserti3-2d实际上如何工作
整个算法是一个优雅的公式:
next_target = anchor_target × 2((time_delta − ideal_block_time × (height_delta + 1)) / half_life)
用简单语言读它。取链过去的一个固定锚点区块——对于Bitcoin Cash,是ASERT激活前的区块。其难度是永久基准线。现在对任何新区块,计算两件事:time_delta,自锚点以来实际经过了多少真实时间,以及预定时间,它只是ideal_block_time(600秒)乘以自锚点以来的区块数。它们之间的差——链比其理想时间表提前还是落后?——进入指数,除以半衰期。如果链完全按时,指数为零,20 = 1,难度等于锚点的难度。提前使指数为正,每个超前的半衰期难度翻倍。落后使其为负,每个滞后的半衰期难度减半。
两个设计选择使其稳健。因为锚点是绝对的(固定点,而非滚动窗口),舍入不精确度无法在数月内积累——每个区块都从同一起点重新计算。因为浮点运算在不同处理器上产生不同结果——等待中的共识灾难——ASERT用定点整数运算和三次多项式近似指数函数,所以每台机器上的每个节点计算出字节相同的难度。这是伪装成三行整数代码的控制系统反馈回路。
两天半衰期:重要的数字
半衰期是ASERT的个性。Bitcoin Cash选择了两天(技术上是288个区块的理想时间),人类可读版本正如听起来那样清晰:每当链比计划提前两天,难度翻倍;每当落后两天,难度减半。
为什么专门是两天?这是在模拟中找到的平衡点。半衰期太短,难度在每次快速区块的幸运连续中抽搐,对统计噪声反应过度——链永远无法稳定。太长,它对真实的哈希率变化响应迟缓,偏离目标数天并重新打开本应关闭的窗口。两天处于最佳点:在大约一天内对真实变化有响应,对单个区块的随机抖动无感。由此产生的实用算术:从2×难度峰值恢复需要2天,4×峰值需要4天,10×峰值约需6.6天——在链变小的瞬间变得非常重要的数字。
ASERT对独立矿工意味着什么
三个后果,按重要性排序。
您的稳定概率受到保护。这是标题。在纪元重新定向链上,爆发矿工可以等待难度下降,在容易的窗口期间涌入,在纠正前离开——他们铸造的每个简单区块都是你没有铸造的,稀释了操纵区间中你的份额。ASERT消除了那个窗口:难度在他们到达的瞬间上升,在他们离开的瞬间下降,逐块如此,所以没有延迟可利用。忠诚矿工的预期份额保持干净。
您看到的难度是诚实的。在比特币上,今天的难度反映最多两周前的网络;在ASERT链上,它反映最后几个区块的网络。当您计算概率时——在计算器中或手动——ASERT链的数字是实时价格,而非滞后平均值,所以您的概率估计与链本身一样最新。
您无法把握时机——其他任何人也不能。保护的另一面是ASERT不提供聪明的入场点。没有难度下降可以蜂拥而入,因为任何下降已经同时为整个网络定价。这与重新定向窗口链上可玩的动态完全相反,这是公平的交换:您放弃操纵计划的机会,换取没有人对您操纵计划的保证。
小链悖论:ASERT最锋利的刀刃
这里优雅变得双刃。ASERT的响应性假设链有足够稳定的哈希率,难度能够跟踪真实、持续的信号。给它一条哈希率很少的链,一个大矿工就成了武器——并不总是恶意的,有时只是出现了。
故障模式:一个大矿工将严肃的哈希率指向小型链几个小时。区块飞逝,链远比计划提前,ASERT尽职地将难度推高——也许10×。然后大矿工离开。现在链的正常、适度哈希率面临为其十倍大小构建的难度,区块减慢到爬行。以标准两天半衰期,从10×峰值恢复大约需要6.6天——链事实上被冻结、确认停滞、算法本应保护的忠诚矿工被留下碾磨的近一周。这是难度算法版本的应力损伤:使健康链变强的肌肉可能撕裂弱链。
这就是为什么采用ASERT的更新、更小的SHA-256链经常以缩短的半衰期启动——在几小时而非几天内从峰值恢复——以生存能力换取稍多的噪声敏感性。这也是很小的链比其吸引人的概率所示风险更大的很大一部分原因,在将哈希率指向梯子底部之前值得完全理解的权衡。
结论
ASERT是工作量证明的安静杰作之一:一行公式、指数的整数近似、两天半衰期,三者共同将激烈的难度锯齿波变成平滑无悬崖的曲线。对于Bitcoin Cash上的独立矿工,它无形地并对您有利地运作——保护您的份额免受切换矿工侵害,让您的概率按分钟保持诚实,只要求您放弃一个无论如何都永远赢不了的游戏机会。
而在其最锋利的刀刃——小链上的峰值陷阱——中,它传授了难度科学集群中最深刻的教训:同样的机制可以是盔甲或危险,完全取决于其背后有多少哈希率。知道您在哪条链上,就知道您在挖什么样的ASERT。
挖一条保护稳定矿工的链
SoloFury在自己的节点上运行Bitcoin Cash——ASERT保护,逐块难度,没有爆发矿工掠夺您份额的窗口。非托管coinbase支付,1%手续费,每个地区的TLS端点,计算器中的实时难度。稳定的哈希率正是这个算法被设计来奖励的。
独立挖矿BCH →查看实时难度概率 →常见问题
ASERT是什么,它与比特币的难度调整有何不同?
ASERT(aserti3-2d)通过测量自固定锚点以来链偏离理想的每块10分钟计划多少来为每个区块重新计算难度。比特币每2,016个区块重新计算一次。结果:ASERT没有平台期或窗口——切换矿工利用的简单挖矿机会——而比特币在每个纪元末有可利用的窗口。
ASERT中的两天半衰期是什么?
半衰期决定ASERT的响应速度。两天的情况:如果链比计划提前两天,难度翻倍;如果落后两天,减半。足够快以跟踪真实的哈希率变化,足够慢以忽略幸运区块的统计噪声。
ASERT如何保护独立矿工?
切换矿工等待难度下降,在容易的窗口期间涌入,在纠正之前离开——他们铸造的每个简单区块都是你没能铸造的,稀释了你在操纵区间中的份额。ASERT消除了那个窗口:难度在他们到达的瞬间上升,在他们离开的瞬间下降,逐块如此。
ASERT下小型链的悖论是什么?
ASERT的响应性假设有足够稳定的哈希率。一个大矿工将严肃的哈希率指向小型链几个小时,可能将难度推高10×然后离开。以标准两天半衰期,从10×峰值恢复大约需要6.6天——链事实上被冻结的一周。