# 为什么从技术角度看ETH PoW分叉不够正统

By [0xTodd](https://paragraph.com/@0xtodd) · 2022-08-09

---

我看很多朋友经常混淆各种“分叉”，以及ETH PoW为什么从分叉角度是不太正统的。今天想科普个小概念。

区块链，顾名思义，就是很多个区块串成的链条。新的区块，永不停歇地接到老的区块之后。如果说，咱们现实世界以秒为单位计算时间，区块链上的世界，就以区块为最小单位计算时间。

**世界上的分叉有两种：**

1.  **因网络不同步而产生的分叉。**
    
2.  **因版本有分歧而产生的分叉。**
    

\*\*先说第一种，因为网络问题而产生的分叉。\*\*这是一个很常见的现象，每天都在发生。举个例子，当两个矿工几乎同时解开难题，打包出新的区块，那到底谁的块，是有资格接到老区块之后呢？分叉就自然而然产生了。

通常来说，矿工们会认为第一个算出来的是合法区块。但是，就怕两个矿工几乎同时算出来，比如相差几毫秒，再算上网络中广播的延迟。那么自然而然，就变成了两个集团。有人先收到了A区块，有人先收到了B区块。

![同时收到新区块](https://storage.googleapis.com/papyrus_images/c9cdd7bc8fc7255bbdfddb89ad8b5694d6b2ab4525b17a4c5b3b8b44dc179def.png)

同时收到新区块

为了解决这个问题，行业里有了“最长链原则”。它规定，如果区块链在某高度分叉了，那么就比谁的链更长，谁的区块就有意义，短的则被废弃。

如图所示，从分叉高度开始，两个矿工集团开始做算力竞赛，其他所有矿工都要选边站队。因为是暴力计算哈希，算力更强的一方，通常可以更快算出来。但是理论上，也存在弱的一方运气逆天，能够反超的。

![算力竞赛](https://storage.googleapis.com/papyrus_images/c20a4a09b7dc56b0c73fdbca37fef0e97d193dde8c262b542737990ee3276cac.png)

算力竞赛

赢家，赚走所有区块头奖励+手续费，输家什么也得不到，白白浪费了电力。

当然，ETH为了解决这个问题，专门设计了叔块。叔叔是爸爸的弟弟，但是叔叔没有儿子。它让输家也能拿一点点补偿，可以避免一些矿工死磕。

如果一方是恶意的，那就是51%攻击。如果两方都无恶意，那就是正常分叉。这也是交易所要求充值代币时，要等到若干个区块才给上账的原因。

那么，如图所示，最长的链就变成了主链，网络分叉的风波也就过去了。

![赢家变成了正统主链](https://storage.googleapis.com/papyrus_images/b2bd321f6bd98358b3c2709224fc1893254b4abf7b2a73e7564c7812ddb5350f.png)

赢家变成了正统主链

**那么再说说第二种，什么是因版本有分歧而产生的分叉。**

理论上，ETH分叉过很多很多很多很多次，大多数都是因为系统的版本升级。凡是因为版本升级而产生的分叉，最长链原则都【不】适用。最长链原则只适用于解决网络同步问题。

**这里会进一步分为硬分叉和软分叉。**

由于升级而产生的硬分叉，如果全网都同意的话，不会诞生出新的分叉链。它其实是新链对旧链的完全取代。代表案例是以太坊的“伦敦升级”，美其名曰升级，其实是伦敦分叉。伦敦升级带来了EIP-1559（手续费燃烧），没有产生新的链。这就好比，清基本继承明的版图，民国又继承了清的版图。

![EIP1559是标准的硬分叉升级](https://storage.googleapis.com/papyrus_images/ea5d01e5d0d57f9ef9f3daab7dd4059f718838fcb85b573a821a2f71f4c5ba1f.png)

EIP1559是标准的硬分叉升级

但是，如果社区对于版本升级没有达成共识，则会造成分裂。例如ETC分叉，ETC和ETH两条链彻底分家。前者是没有因黑客而回滚的版本，后者则是有的版本。两者版本有分歧，互不认可。这类似于朝鲜和韩国，过去曾是一个国家，但如今已经完全变成两个国家，互不认可。

![ETC和ETC同时存在，互不干扰](https://storage.googleapis.com/papyrus_images/a364caed0ab8486d4310f7053116ea117875abf8f6236f8afe8046a31a9df140.png)

ETC和ETC同时存在，互不干扰

所以，硬分叉有风险，并不能保证每次都全网皆同意。所以，比特币的世界比较喜欢软分叉，这样的风险会小的多。

什么是软分叉？就是虽然版本有变化，但是属于可升、可不升，大家仍然在一个网络当中。大家都知道美国各州有自己的法律，只不过都遵循美国的宪法。软分叉就好比美国某一个州推出了新的法规，那么不必全国采用，也不会造成分裂。

比特币最著名的软分叉是segwit隔离见证，它可以将见证人信息拿掉一部分以节约比特币的区块空间，不破坏1MB，又不影响安全性。如图所示，如果你认可隔离见证，那么你可以升级，如果你不认可，也可以不升级。不同版本客户端虽有分歧，但仍能一起挖矿。

![软分叉：新老版本可以共存](https://storage.googleapis.com/papyrus_images/aa99cc27a2f708e5edfe90c369352194542480e9cff18150e87ebcaa03aa0d27.png)

软分叉：新老版本可以共存

软分叉非常在意“向前兼容”这个问题，而硬分叉没有办法“向前兼容”。所以，你能看到，比特币的改革“似乎”幅度很小，而以太坊的改革都是大刀阔斧。因为软分叉非常考验核心开发者的智慧。

做软件开发的朋友可能深有体会，想上新特性，又想让老版本继续用，是一件多么困难的事。这是带着脚镣跳舞，想要设计两全其美方案非常困难。但是比特币做到了，用了很多政治权衡和开发智慧，每一次软分叉设计都很精妙，让人赞叹。

原因是，比特币是一个“财政政策”绝对稳定的公链。这种感觉是给人非常安心的，比特币在方面追求极致。再过10年甚至100年，比特币和今天不会有什么大区别，就像真正的黄金。未来100年，美元可能会消失，但黄金不会。

而以太坊这边，V神还活着，并且以太坊不追求极致的安全，而追求突破不可能三角，因此每次都在冒着风险做硬分叉升级。要知道，硬分叉容易造成社区的分裂。昔日的ETC，今日的ETH PoW。

按照以前的经验，如图所示，PoS Merge本应该是一次和之前类似的硬分叉升级，本不会诞生新的链，直接继承原来的版本。同时，之前也从来没人问过USDT和USDC的归属。

![原来是一次技术升级](https://storage.googleapis.com/papyrus_images/1db8163fae7b3549b6ed2781c7ff864de27e767368e3ef9b3d0c82553175cc3f.png)

原来是一次技术升级

但是ETHPoW团队，决心在PoS Merge的同一高度，再搞一次硬分叉升级。这次升级摘除了难度炸弹等等。这里指出大家一个常见的错误：ETH PoW这个分叉并不是ETH的原始PoW链，很多人误以为如下图所示，一个直行，一个左转。

如果这样，ETH PoW的正统性是无容置疑的。

![经常被误以为的情况](https://storage.googleapis.com/papyrus_images/92485b1473f44e8adaf7129eefacc49f7b1851c27182d6b58c3a378f1337b178.png)

经常被误以为的情况

然而，ETH的原始PoW链，应该是有难度炸弹的那条链，也就是“不升级客户端”的PoW链。而PoS ETH则是一个“升级了客户端”的新链。而ETH PoW其实，也是一条“升级了客户端”的链！所以，实际情况如下图所示才对，一个左转，一个右转，没人直行。

![真实的状况，一个向左，一个向右，没人直行](https://storage.googleapis.com/papyrus_images/b81f2c8a5079159661ab4486fb586c19795a6103ea33cc8c21781c782c185a4d.png)

真实的状况，一个向左，一个向右，没人直行

所以，实际情况是：ETH PoS和ETH PoW其实都是硬分叉产生的新链，只不过恰好在同一高度罢了，而真正的ETH PoW原链则会因为难度炸弹而消亡。

所以ETH PoW在正统性方面也是较弱的。换句话说，如果它今天就分叉，不和PoS Merge选择同一高度，也是完全可以的。那它为什么非要选择和PoS ETH 同一高度分叉呢？答案司马昭之心，路人皆知。

**有人可能会问，Todd你把这些东西厘这么清干什么呢？我是觉得其实每一条链都是一个国家。你生活一个国家，务必要搞清它的正统性和制度。既然忝用0x开头，作为ETH世界的公民，自然是要刨根问底的。**

**共识，决定一个链的天花板高低，失去了正统性，也就失去了很多的共识。**

---

*Originally published on [0xTodd](https://paragraph.com/@0xtodd/eth-pow)*
