In Proof-of-Work blockchains, difficulty algorithms serve the crucial purpose of maintaining a stable transaction throughput by dynamically adjusting the block difficulty in response to the miners' constantly changing computational power. Blockchains that may experience severe hash rate fluctuations need difficulty algorithms that quickly adapt the mining difficulty. However, without careful design, the system could be gamed by miners using coin-hopping strategies to manipulate the block difficulty for profit. Such miner behavior results in an unreliable system due to the unstable processing of transactions. We provide an empirical analysis of how Bitcoin Cash's difficulty algorithm design leads to cyclicality in block solve times as a consequence of a positive feedback loop. In response, we mathematically derive a difficulty algorithm using a negative exponential filter which prohibits the formation of positive feedback and exhibits additional desirable properties, such as history agnosticism. We compare the described algorithm to that of Bitcoin Cash in a simulated mining environment and verify that the former would eliminate the severe oscillations in transaction throughput.
翻译:在 " 工作证明 " 链条中,困难算法有助于维持稳定的交易通过量这一关键目的,办法是根据矿工不断变化的计算能力,动态地调整整块困难,以适应不断变动的计算能力,从而维持稳定的交易通过量。可能会经历严重散速波动的链条需要困难算法,以迅速适应采矿困难。然而,如果不仔细设计,这个系统可能会被矿工利用钱币购买策略操纵整块利润困难的游戏所玩弄。这种矿工行为导致一个不可靠的系统,因为交易处理过程不稳定。我们从经验上分析了Bitcoin Cash的困难算法设计如何导致整块解决时间的周期性,这是积极的反馈循环的结果。作为回应,我们用一个负指数过滤器从数学上得出一个困难的算法,它禁止形成积极的反馈,并展示了其他可取的特性,例如历史名论主义。我们将所描述的比特币现金算法与模拟采矿环境中的比特币现金算法进行比较,并核实前者将消除交易吞吐过程中的严重振现象。