原文作者:Todd
我看很多朋友经常混淆各种「分叉」,以及 ETH PoW 为什么从分叉角度是不太正统的。今天想科普个小概念。
区块链,顾名思义,就是很多个区块串成的链条。新的区块,永不停歇地接到老的区块之后。如果说,咱们现实世界以秒为单位计算时间,区块链上的世界,就以区块为最小单位计算时间。
世界上的分叉有两种:
1、因网络不同步而产生的分叉。
2、因版本有分歧而产生的分叉。
先说第一种,因为网络问题而产生的分叉。这是一个很常见的现象,每天都在发生。举个例子,当两个矿工几乎同时解开难题,打包出新的区块,那到底谁的块,是有资格接到老区块之后呢?分叉就自然而然产生了。
通常来说,矿工们会认为第一个算出来的是合法区块。但是,就怕两个矿工几乎同时算出来,比如相差几毫秒,再算上网络中广播的延迟。那么自然而然,就变成了两个集团。有人先收到了 A 区块,有人先收到了 B 区块。
? 同时收到新区块
为了解决这个问题,行业里有了「最长链原则」。它规定,如果区块链在某高度分叉了,那么就比谁的链更长,谁的区块就有意义,短的则被废弃。
如图所示,从分叉高度开始,两个矿工集团开始做算力竞赛,其他所有矿工都要选边站队。因为是暴力计算哈希,算力更强的一方,通常可以更快算出来。但是理论上,也存在弱的一方运气逆天,能够反超的。
? 算力竞赛
赢家,赚走所有区块头奖励+手续费,输家什么也得不到,白白浪费了电力。
当然,ETH 为了解决这个问题,专门设计了叔块。叔叔是爸爸的弟弟,但是叔叔没有儿子。它让输家也能拿一点点补偿,可以避免一些矿工死磕。
雄安新区完成首笔链上数字人民币工资代发:据官方消息,中国银行河北雄安分行联合中国雄安集团数字城市科技有限公司,成功实现雄安新区首笔链上数字人民币工资代发。该笔业务通过雄安新区区块链资金支付平台,向春季造林项目建设者以数字人民币形式发放工资。该业务由工程分包商通过雄安区块链资金支付平台发起数字人民币工资支付申请,并将建设者数字钱包 ID、发放金额等工资信息上链存证,由银行根据链上拨付申请将工资款项从分包商对公钱包以数字人民币形式批量发放至建设者对私数字钱包。[2021/6/14 23:35:13]
如果一方是恶意的,那就是 51% 攻击。如果两方都无恶意,那就是正常分叉。这也是交易所要求充值代币时,要等到若干个区块才给上账的原因。
那么,如图所示,最长的链就变成了主链,网络分叉的风波也就过去了。
? 赢家变成了正统主链
那么再说说第二种,什么是因版本有分歧而产生的分叉。
理论上,ETH 分叉过很多很多很多很多次,大多数都是因为系统的版本升级。凡是因为版本升级而产生的分叉,最长链原则都【不】适用。最长链原则只适用于解决网络同步问题。
这里会进一步分为硬分叉和软分叉。
由于升级而产生的硬分叉,如果全网都同意的话,不会诞生出新的分叉链。它其实是新链对旧链的完全取代。代表案例是以太坊的「伦敦升级」,美其名曰升级,其实是伦敦分叉。伦敦升级带来了 EIP-1559(手续费燃烧),没有产生新的链。这就好比,清基本继承明的版图,民国又继承了清的版图。
? EIP1559 是标准的硬分叉升级
但是,如果社区对于版本升级没有达成共识,则会造成分裂。例如 ETC 分叉,ETC 和 ETH 两条链彻底分家。前者是没有因黑客而回滚的版本,后者则是有的版本。两者版本有分歧,互不认可。这类似于朝鲜和韩国,过去曾是一个国家,但如今已经完全变成两个国家,互不认可。
? ETC 和 ETC 同时存在,互不干扰
所以,硬分叉有风险,并不能保证每次都全网皆同意。所以,比特币的世界比较喜欢软分叉,这样的风险会小的多。
什么是软分叉?就是虽然版本有变化,但是属于可升、可不升,大家仍然在一个网络当中。大家都知道美国各州有自己的法律,只不过都遵循美国的宪法。软分叉就好比美国某一个州推出了新的法规,那么不必全国采用,也不会造成分裂。
比特币最著名的软分叉是 segwit 隔离见证,它可以将见证人信息拿掉一部分以节约比特币的区块空间,不破坏 1MB,又不影响安全性。如图所示,如果你认可隔离见证,那么你可以升级,如果你不认可,也可以不升级。不同版本客户端虽有分歧,但仍能一起挖矿。
? 软分叉:新老版本可以共存
软分叉非常在意「向前兼容」这个问题,而硬分叉没有办法「向前兼容」。所以,你能看到,比特币的改革「似乎」幅度很小,而以太坊的改革都是大刀阔斧。因为软分叉非常考验核心开发者的智慧。
做软件开发的朋友可能深有体会,想上新特性,又想让老版本继续用,是一件多么困难的事。这是带着脚镣跳舞,想要设计两全其美方案非常困难。但是比特币做到了,用了很多权衡和开发智慧,每一次软分叉设计都很精妙,让人赞叹。
原因是,比特币是一个「财政政策」绝对稳定的公链。这种感觉是给人非常安心的,比特币在稳定方面追求极致。再过 10 年甚至 100 年,比特币和今天不会有什么大区别,就像真正的黄金。未来 100 年,美元可能会消失,但黄金不会。
而以太坊这边,V 神还活着,并且以太坊不追求极致的安全,而追求突破不可能三角,因此每次都在冒着风险做硬分叉升级。要知道,硬分叉容易造成社区的分裂。昔日的 ETC,今日的 ETH PoW。
按照以前的经验,如图所示,PoS Merge 本应该是一次和之前类似的硬分叉升级,本不会诞生新的链,直接继承原来的版本。同时,之前也从来没人问过 USDT 和 USDC 的归属。
? 原来是一次技术升级
但是 ETHPoW 团队,决心在 PoS Merge 的同一高度,再搞一次硬分叉升级。这次升级摘除了难度炸弹等等。这里指出大家一个常见的错误:ETH PoW 这个分叉并不是 ETH 的原始 PoW 链,很多人误以为如下图所示,一个直行,一个左转。
如果这样,ETH PoW 的正统性是无容置疑的。
? 经常被误以为的情况
然而,ETH 的原始 PoW 链,应该是有难度炸弹的那条链,也就是「不升级客户端」的 PoW 链。而 PoS ETH 则是一个「升级了客户端」的新链。而 ETH PoW 其实,也是一条「升级了客户端」的链!所以,实际情况如下图所示才对,一个左转,一个右转,没人直行。
? 真实的状况,一个向左,一个向右,没人直行
所以,实际情况是:ETH PoS 和 ETH PoW 其实都是硬分叉产生的新链,只不过恰好在同一高度罢了,而真正的 ETH PoW 原链则会因为难度炸弹而消亡。
所以 ETH PoW 在正统性方面也是较弱的。换句话说,如果它今天就分叉,不和 PoS Merge 选择同一高度,也是完全可以的。那它为什么非要选择和 PoS ETH 同一高度分叉呢?答案司马昭之心,路人皆知。
有人可能会问,Todd 你把这些东西厘这么清干什么呢?我是觉得其实每一条链都是一个国家。你生活一个国家,务必要搞清它的正统性和制度。既然忝用 0x 开头,作为 ETH 世界的公民,自然是要刨根问底的。
共识,决定一个链的天花板高低,失去了正统性,也就失去了很多的共识。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。