我注意到了硬分叉,代码中有一些机制可以确保并强制节点运行更新版本。这一机制被称为“共识挑战”。这究竟是什么?一些数学计算?我读到,如果一个人不能用正确的挑战信息做出回应,就会有一个超时和强制截止。有人能解释一下它的工作原理吗?
因为在devcon 2中,人们认为Ethereum还处于早期阶段,在未来还会有一些变化,我们如何设想这些变化呢?
如何确保节点运行相同的规则/协议或一些挖掘软件?如何执行更新?当其他区块链有“新版本”时,是否经常出现“共识挑战”这样的情况?
发布于 2016-10-06 00:09:32
最终没有办法强迫另一个节点运行给定的实现。所发生的是网络分裂而不是。
每个节点独立执行每个块。只要每个节点遵循相同的规则,那么相同的块就会在整个网络中传播。一旦规则发生了变化,并执行了依赖新规则的块,任何具有新规则的节点都会接受它,而旧节点将拒绝它。最终,遵循新规则的矿工们将在这个新区块上建造区块。遵循旧规则的矿工将在旧规则有效的块上采矿。因此,现在将有两个区块链。
例如,当DAO救援叉将攻击者手中的所有ETH转移到退款契约时,所有与此不一致的节点都会被另一个链( example )所终止。“挑战”是让节点彼此识别--如果一个节点是亲分叉的,那么它就没有必要从反分叉节点中请求任何新的块。
从理论上讲,旧链条的价值会降低,因此矿工也会减少,最终会死去。埃瑟姆过去的“特色”硬叉,家园,发生在这种情况下。刀救生叉没有(虽然很多人,包括我自己,预期它会死)。最有可能的是,未来的硬叉子是否会产生更多的区块链,将取决于它们的争议程度。
https://ethereum.stackexchange.com/questions/9037
复制相似问题