主页 > imtoken苹果地址 > 以太坊经典难度计算

以太坊经典难度计算

imtoken苹果地址 2023-07-21 05:17:42

以太经典

Ethereum Classic 是从以太坊分叉出来的另一个区块链系统。 分叉的起因是2016年6月发生的轰动事件:DAO攻击,黑客盗取了The DAO众筹合约中的以太币。 关于如何处理这起事件,社会上有两种观点:

现在大家都同意了,可以达成新的“共识规则”,就可以修改区块链的内容了。

修改区块链内容违背了区块链不可篡改的初衷,任何情况下都不应修改区块链内容。

这两种观点各有支持者,支持观点一的人决定通过硬分叉的方式收回以太坊,归还给原来的众筹参与者(这个分支就是现在的以太坊)。 支持观点二的人决定继续在原链上挖矿(这个分叉现在是以太坊经典)。

终于,北京时间2016年7月20日晚9时20分左右,在区块高度192万处,以太坊正式硬分叉,产生两条链。

以太坊区块 1,920,000

以太坊经典区块 1,920,000

可以看到在1920000这个高度,出现了两个不同Hash的区块,分叉正式完成。

从此,以太坊和以太坊经典走上了各自的发展道路,各自为政,互不相通。

以太坊和以太坊经典自分叉以来一直是两个区块链系统。 它们上面的电子币虽然叫做以太币,但是它们是不可互换的。 为了区分,Ethereum中的Ethereum一般简称为ETH,而Ethereum Classic中的Ethereum简称为ETC。

注意:不要混淆 Ethereum 和 Ethereum Classic 的地址。 一旦ETH发送到ETC地址,或者ETC发送到ETH地址,以太就会丢失。

以太坊难度大增_以太坊难度计算表_siteblockvalue.com 以太坊难度爆炸

以太坊经典难度计算

Ethereum Classic的代码也是开源的,区块链也是完全开放的。 没有看完代码看不懂的问题。 如果有,再读一遍。

func CalcDifficulty(config *ChainConfig, time, parentTime uint64, parentNumber, parentDiff *big.Int) *big.Int { num := new(big.Int).Add(parentNumber, common.Big1) // 将块号递增到当前f, fork, configured := config.GetFeature(num, "difficulty") if !configured { return calcDifficultyFrontier(time, parentTime, parentNumber, parentDiff) } name, ok := f.GetString("type") if !ok { name = "" } // 会掉到默认的 panic switch name { case "ecip1010": if length, ok := f.GetBigInt("length"); ok { explosionBlock := big.NewInt(0).Add(fork .Block, length) if num.Cmp(explosionBlock)>

可以发现,以太坊经典在难度计算上做了一些小技巧,新增了两个算法calcDifficultyDiehard和calcDifficultyExplosion。

与以太坊相比,以太坊经典修改了难度炸弹部分。

3,000,000块之前,难度计算方法与以太坊相同。

3,000,000 到 5,000,000 个区块,使用 calcDifficultyDiehard 算法,暂停难度炸弹增长。

在区块 5,000,000 之后,使用 calcDifficultyExplosion 算法,难度炸弹恢复增长。

这种对难度炸弹的修改在以太坊经典开发社区被称为“难度炸弹延迟”。 与比特币的 BIP 类似,以太经典也记录了共识规则的更新,称为以太经典改进提案(简称 ECIP)。 这种难度炸弹延迟记录在 ECIP1010 中。

难度计算公式的其余两项:父块难度和难度调整,以太坊经典依然沿用以太坊的计算方式。

练习它

以太坊难度大增_siteblockvalue.com 以太坊难度爆炸_以太坊难度计算表

Ethereum Classic 的用户较少,我只找到了两个区块链浏览器:

不幸的是,它们都不能准确显示难度。 不过没关系,你可以在自己的机器上运行一个Geth,同步完成后就可以查看所有区块的信息了。 由于 Geth 是一个命令行工具,因此没有漂亮的界面。 如果谁知道更好的以太坊经典区块浏览器,请留言告诉我,我会及时更新。

还是随便挑一个块,比如说4,421,544,我们来计算一下它的难度。

要计算一个区块的难度,您需要知道以下信息:

parent_timestamp:最后一个区块产生的时间

parent_diff:前一个区块的难度

block_timestamp:当前区块产生的时间

block_number:当前区块序号

在 Geth 的 Javascript 控制台中,可以使用 debug.printBlock(blockNumber) 函数查看区块的详细信息。 首先,让我们检查父块 4,421,543:

$echo -e `geth --exec "debug。printBlock(4421543)" attach`Block(#4421543): Size: 837。00 B {MinerHash: f4d068b903a67890cac5ddaff94a66d99a0464dfeef1c0bab3c7b3a7bf2965e4 Header(2762936eb0879e86c2b0309a69fdfa3566bb3101e3cf344acf54d2534f2f3498):[ ParentHash: 40f5cd2ec0be0e819c8689307c24d38edb75450358922286ec2c48e532bca427 UncleHash: 1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase: df7d7e053933b5cc24372f878c90e62dadad5d42 Root: de7c6ce1ea8c74644eba0579d42163c969e2c6b04cd57c1059470ca124b618ba TxSha 497f1a6fd4d13db0f2eb4d90c11670485e5305a39a6782ec68417a9b060ae5f2 ReceiptSha: 57bd177107249827f9a85e2d2b28d53180be4e4fb5069d0a1fd90f3822aa0097 Bloom: 00000000000000000000000000000000000000000400000000000000000000000000000000000000000000000080000008000000000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000040000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000800000000000000000100000000000400000000000000000400000000000000000000000 Difficulty: 132145956937056 Number: 4421543 GasLimit: 4700036 GasUsed: 58209 Time: 1504744551 Extra: ETC ethermine - EU2 MixDigest: 7f09929b10732bb47d2473adaf172d5dfc146d560a10a6ab98c80538135ad351 Nonce: 6960c3d00b731872]

从父块中,我们知道:

以太坊难度计算表_以太坊难度大增_siteblockvalue.com 以太坊难度爆炸

parent_timestamp = 1504744551

再次检查块 4,421,544:

$echo -e `geth --exec "debug。printBlock(4421544)" attach`Block(#4421544): Size: 1。55 kB {MinerHash: 89a0ecdc93471ef468f96dcb97c757b744a4a93b1fe142bed6f416552c2fd818 Header(601d2019900d12781fbc0788ca3b55535b4ba6ee5337e5d7dce822860e3f9699):[ ParentHash: 2762936eb0879e86c2b0309a69fdfa3566bb3101e3cf344acf54d2534f2f3498 UncleHash: 1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 Coinbase: 9eab4b0fc468a7f5d46228bf5a76cb52370d068d Root: 1c59d3ab4e415e217f7544b38bd73bcdda21d56865315af8fafcf7bb8726c9a9 TxSha 0ff3a73cedb8687b652df84baa46a98f6cdc24d5fa6a5e4e8335839ba7938304 ReceiptSha: 2d45de0f095c9655204fca5c1e93db9f203b284c1e7b981a30693a9971dc3f3c Bloom: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000 00000000000080000000000000000020000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000008000000000000000 Difficulty: 132081700979477 Number: 4421544 GasLimit: 4704624 GasUsed: 254912 Time: 1504744574 Extra: nanopool。 org MixDigest: 278b40bb8843841d6d5fcf843beeb0aeb2948b953696d884c367d5716685946e Nonce: 2850d644089a46c5]

从块中,我们知道:

block_timestamp = 1504744574

block_number = 4421544

难度公式:

block_diff = parent_diff + 难度调整 + 难度炸弹

难度调整=

parent_diff // 2048 * MAX(1 - (block_timestamp - parent_timestamp) // 10, -99)

因为4,421,544块在3,000,000到5,000,000之间,难度炸弹固定在3,000,000块。

siteblockvalue.com 以太坊难度爆炸_以太坊难度大增_以太坊难度计算表

难度炸弹 =

INT(2**((3000000//100000) - 2))

= INT(2**(30 - 2))

= 2**28

所以以太坊难度大增

block_diff =

它与之前发现的区块 4,421,544 的难度一致。

为什么延迟难度炸弹

官方的说法是,共识和协议的更新需要足够的时间来论证、开发和测试,并有足够的时间来完成。 如果难度炸弹在这项工作完成之前爆炸,它将导致 Ethereum Classic 网络无法使用。 在难度炸弹产生影响之前,未经充分论证和测试的软件就贸然部署,可能会带来更大的风险。 因此,需要更新以暂时停止难度炸弹在区块 2,000,000 的增长,大约需要一年时间。

网上有些文章把这种“延迟难度弹”称为“拆弹”,这是不准确的。 难度炸弹依然存在,并没有被移除,只是引爆时间有所延迟。 只要还需要挖矿,难度炸弹就会一直存在,避免矿工获得太多话语权,这也是设置难度炸弹的目的。

从几个方面比较以太坊和以太坊经典:

以太坊难度计算表_以太坊难度大增_siteblockvalue.com 以太坊难度爆炸

在 Github 上比较以太坊和以太坊经典:

以太坊的项目页面:

以太坊经典项目页面:

不难发现,在各项指标上,以太坊经典明显落后于拥有更强大开发团队的以太坊。

挖矿算力

以太坊目前已经达到95.714TH/s,而Ethereum Classic只有10.937TH/s,只有前者的十分之一左右。

以太的价格

ETH现价326.95美元以太坊难度大增,ETC现价18.53美元,仅为前者的6%。

我个人认为 Ethereum Classic 是 Ethereum 的一个分支。 分叉之初,支持者远远少于以太坊,技术上的差异也不够大。 难逃成为少数人的命运。

但是以太经典在以太坊转为PoS后可能仍然坚持PoW,并使用不同的工作量证明方式来区别于以太坊。 如果它能得到足够多的矿工支持,它未来仍有可能东山再起。

近期,以太坊经典将应用ECIP1017,更新挖矿奖励机制,一定程度上刺激了ETC价格的上涨。

希望在炸弹延期一年的情况下,以太坊经典的开发者能够努力让以太坊经典走出自己的路,摆脱以太坊小弟的名声。