在v1.6版本的Java内核中,我们将宣布一些针对网络中矿工的大调解,以办理已往几个月我们在Aion网络上看到的一些问题。让我们来深入相识一下详细存在哪些问题,以及即将宣布的版本中的修复法子如何办理这些问题。
留意: 本文只说明针对Aion网络上的矿工而举办的修改,本次硬分叉中还包括其他修改。
您也可以直接跳到本文底部,相识矿工和挖矿池需要采纳的动作。
关于难度的颠簸
敏锐的Aion网络调查者会发明,从本年5月开始,Aion汗青难度计较记录中的难度呈现了颠簸。我们已经追踪到这些颠簸的来历,其原因是某个地点通过网络上的一个挖矿池,周期性地孝敬了大量的算力。对难度做一些简朴的滑腻处理惩罚,我们获得了这张图,这张图暗示的在几小时时间中呈现的颠簸环境:
6.3m-6.4m区块之间的滑腻(WMA)难度图,正如我们所指出的那样,显示了难度的振荡模式。
我们猜疑这是该矿工的某种形式的跳币行为( Coin-hopping),这样的颠簸在算力较小的网络上并不稀有。我们尚有来由相信这样做是为了经济好处,因为AION频繁地从矿工账户转移到币安。这是一个会对我们的办理方案发生影响的假设(我们稍后会看到),我们以为这个假设创立的大概性很大,因为到今朝为止,我们所看到的任何迹象都没有表白这小我私家的行为是拜占庭机制的行为。
另外,不管这种进攻的目标是什么,其执行都是有缺陷的,导致了雷同于劝阻进攻(Discouragement Attack)的环境,整个网络(包罗该矿工)城市因为他们的行为而损失。我们来表明一下原因。
关于PoW(事情证明)出块时间戳
在网络上可以调查到的另一个问题是,系统没有正确地设定出块时间戳方针。呈现一些时间段,平均时间戳(假如我们通过一览面板查察,它是一个窗口化的移动平均值)在15-20秒阁下。在本文撰稿之时,笔者快速欣赏了一下,显示为14.6秒。很明明,那边出了问题!从区块链上抓取5月以来的汗青数据,举办雷同的滑腻操纵,我们可以看到,出块时间也在以与难度沟通的方法颠簸:
6.3m-6.4m区块之间的滑腻(WMA)难度图,同样也显示了振荡模式。
但这种环境不该该产生,假如难度调解机制正确地以某一出块时间为方针,那么它应该不绝地实验朝着这个出块时间调解,即便网络有颠簸。另外,我们知道Unity难度调解机制在调解上是相当努力的,这意味着即即是矿力的颠簸也应该很快能被办理(在区块内)。
我们发明基础原因在时间戳自己。追念一下,难度调解机制是(从挖矿PoV开始的每个区块,或每隔一个区块)对方针出块时间T举办优化,按照一个公式向上或向下调解难度,该公式以最后一个已知的区块的delta作为输入值。当大量发生的区块的时间戳不正确时,问题就会呈现,这意味着难度调解算法是按照矿工提供的错误信息举办调解的。在这种环境下,很大一部门正在提交的区块(同样是由这一个矿工提交的),是以一秒钟的出块时间来提交的,导致难度调解方案错误地认为网络的算力比实际环境要高。这就导致了难度是基于工钱举高的算力基本上的,因此跟着时间的推移,出块时间会增加。通过查抄进攻池出块时间漫衍,可以明晰地看到这种环境的产生。
进攻池的出块时间(Delta)漫衍,留意其明明偏离指数漫衍的概率密度函数。
为什么差池时间戳实施限制呢?因为:
● PoW(事情证明)时间戳不能被强制执行,没有任何协议级查抄(只有简朴的界线查抄)可以强制矿工在这些界线内厚道地举办时间戳。
●?试探性查抄法过于僵化,无法应对网络中的大颠簸,往往会得出极度环境。
尚有其他与此相关的问题,我们在最初的Unity交错出块共鸣算法文件中提到过,不在本文的接头范畴内。
劝阻进攻
这一切导致的是我们前面提到的劝阻进攻:由于我们的出块嘉奖是恒定的4.5 AION,而此刻网络上的每个矿工的出块量在淘汰,因此平均赚取的AION较少(按每秒赚取的AION数考量)。假如矿工在经济上是理性的,那么与正确的时间戳对比,这对他们来说也是一种净损失,因为他们挖出的区块正在越来越少。
修复法子
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。