以太坊经典挖矿难度调整详解
您可以由此收听或观看本期内容:
区块链网络需要共识机制
一个点对点计算机网络,如以太坊经典(ETC);它维护一个包含账户、余额和智能合约的分类账;对于来自世界各地、不同文化、讲不同语言、有不同世界观、彼此不了解或不信任的所有者来说,需要一个安全的共识机制来更新和保持系统的最新状态。
数字货币在比特币之前不存在的原因是,当时还没有这种共识机制被发明出来。
以前的共识解决方案太不安全了,因为它们只保证了故障或不诚实节点的三分之一的容错阈值。
工作量证明是共识的解决方案
中本聪(Satoshi Nakamoto)在2009年推出比特币时发明的基于共识的工作量证明(PoW)解决了这个问题。众所周知,“中本共识”将参与节点的容错阈值从三分之一提高到二分之一加一,也被象征性地称为51%。
它不仅提高了系统的安全边际,而且还保证了前所未有的去中心化、无许可性和抗审查性。
此外,它为网络内部的加密货币带来了高度的货币稳健性,因为生产货币的成本与使用PoW生产区块的成本相同。
以太坊经典使用与比特币相同的共识方法。
PoW使用计算能力和能源
工作量证明共识使用了巨大的计算能力和大量电力形式的能量来构建区块。
事实上,这些在机器和能源上的大量投资是必需的,这正是为什么所有参与节点可以在每个区块的基础上达成全球共识,并随时进入和退出系统的原因。
这一切都是在没有中央管理员指导的情况下完成的,不需要任何权限,也不需要节点操作符标识自己。
PoW产生一个加密戳
加密戳或散列就是这项工作的结果。它就像一个不可侵犯的雕刻,验证每个区块的交易。
这是因为制作戳需要大量的计算能力和电力消耗。
这一特性使得区块和区块链几乎不可能被伪造或篡改。
它还使加密货币成为健全的货币,因为它的生产成本很高,非常像现实世界中的黄金。
加密戳是实现共识的原因
加密戳是用来通知所有参与节点下一个正确块和正确区块链的。
这种双重角色对于网络来说非常关键,因为参与的节点可以始终保持区块链的最新状态,并且可以随时退出和进入,无需任何人指挥。
在线节点知道哪个是正确的下一个区块的方法只是通过检查每个区块中的工作证明。
对于新进入者,知道他们是否加入了正确的网络的方法只是通过检查区块链的累积工作最多。
然而,哈希值的变化会把事情搞砸
但是,如果专用计算能力显著增加或减少会发生什么呢?
比特币的目标区块时间为10分钟,以太坊经典的目标区块时间为13秒。这意味着一个区块,连同作为矿工奖励的新发行的硬币,平均每13秒就会建立起来,稳定货币的创造和网络积累的数据量。
随着系统专用计算能力的增加或减少,块时间将变得非常快或非常慢。随着时间的推移,随着创新,计算变得更加高效,当矿工只是购买更多的机器并将它们指向网络时,或者当他们因为盈利能力低而决定关闭机器时,这种情况可能会发生。
如果区块变得非常快,那么货币的发行就会增加,从而提高通货膨胀率,并使网络因太多的区块而膨胀。如果区块变得非常缓慢,发行将非常通货紧缩,网络的使用将变得不切实际,因为交易执行时间太长。
解决方法就是调整难度
保持区块稳定稳定的解决方案是通过调整采矿难度。
如前所述,随着时间的推移,当机器变得更高效时,或者当矿工购买更多的机器来增加网络的计算能力时,ETC的哈希率可能会增长。
当这种情况发生时,块可能会比13秒快得多。为了再次减慢它们的速度,网络将难度调整得更高,因此平均来说,构建区块可能需要大约13秒。
当哈希率因任何原因收缩时,区块就会变得太慢。为了加快速度,网络将难度调整得更低,这样它可能会将阻塞时间调整到平均13秒左右。
工作量证明如何工作
解释难度调整的最好方法是解释工作量证明是如何工作的。这一切都从矿工接收和准备区块数据开始。当他们在一起时,然后他们散列数据,为该信息创建一个加密标记。当他们创建戳记时,他们检查密码戳是否击中了网络施加的目标。如果目标没有达到,这在绝大多数情况下都会发生,那么矿工就必须返回并重新散列信息,产生一个新的戳记,他们必须再次检查。这可能每秒发生千万亿次,这就是为什么在PoW挖矿中有这么多的计算能力和电力消耗。
当任何矿工最终达成目标时(在ETC中平均每13秒发生一次),然后它将完成的区块发送到网络的其他部分,这样它就可以得到验证,矿工就可以获得奖励。
难度调整是指调整目标
因此,难度调整是增加或减少加密标记必须命中的目标,以便块散列被认为有效。调整为更大的目标意味着更容易命中,从而减少格挡时间。调整到一个更小的目标意味着它更难击中,从而增加格挡时间。
该网络不断测量区块之间的时间间隔。当它高于或低于某些参数时,那么难度就会调整到更高或更低的水平,平均而言,每个区块会回到目标13秒。
这是以太坊经典核心开发者Diego López León给我们的一个更技术性的解释,他维护着Hyperledger Besu节点软件客户端的ETC实例:
- ETC的挖掘难度调整每个区块
- ETC的目标块时间是13秒。这意味着网络的目标是平均每13秒产生一个新区块。然而,由于网络拥塞和挖掘方差等因素,实际的阻塞时间可能略有不同。
- 挖掘难度用一个数字表示,称为难度目标。这个目标是一个256位的数字,表示可用于挖掘区块的有效哈希的最大值。为了创建一个有效的区块,矿工需要找到一个小于或等于这个目标的哈希值。
- 难度调整使用一个公式,该公式考虑了挖掘前一个块所花费的时间和 13 秒的理想块时间。如果前一个区块挖的太快,难度就会增加,如果挖的时间太长,难度就会降低。
- 有效块哈希的阈值由当前难度目标确定。矿工必须找到一个低于或等于当前难度目标的哈希,以便区块被认为是有效的。
困难是如何被衡量的
网络难度衡量的是平均每秒所有矿工必须执行的哈希数,以达到所需的区块时间。
换句话说,它是通过矿工每秒应该计算多少次哈希函数来创建击中目标的加密戳记来衡量的。
行业中用于设定难度目标的数量通常如下:
- 每秒Kilohashes(KH/s) = 1,000 H/s
- 每秒Megahashes(MH/s) = 1,000,000 H/s
- 每秒Gigahashes(GH/s) = 1,000,000,000 H/s
- 每秒Terahashes(TH/s) = 1,000,000,000,000 H/s
- 每秒Petahashes(PH/s) = 1,000,000,000,000,000 H/s
ETC当前的网络困难
例如,在撰写本文时,ETC当前的网络难度为每秒1.63 petahashes。
这意味着,在撰写本文时,矿工集体应以每秒1,630,000,000,000,000哈希的速度工作,平均每13秒发现一个区块。
感谢您阅读本期文章
了解更多有关ETC内容,请访问: https://ethereumclassic.org