区块链的软分叉与硬分叉
区块链的软分叉与硬分叉
在区块链行业术语中经常听到两个名词:软分叉、硬分叉。
他们是指什么含义呢?本文就此介绍一些区块链的相关知识。
一、硬分叉
硬分叉定义如下:
A permanent divergence in the block chain, commonly occurs when non-upgraded nodes can’t validate blocks created by upgraded nodes that follow newer consensus rules.
来源:https://bitcoin.org/en/glossary/hard-fork
区块链中的硬分叉,通常是出现在不升级的节点不能验证升级的节点,导致了两种不一致的规则。
其中最出名的硬分叉就是以太坊DAO事件:
最开始只有以太币,2016年7月,以太币开发者”V神“为了挽回黑客盗走以太币的损失,升级了以太币软件,使得盗走的以太币得以挽回。当然社区中不是所有人都支持开发者,所以他们没有升级软件。这样新旧软件产生了不兼容问题,按照不同的算法,形成了两条主链。分别是以V神开发者代表的以太坊,和部分社区成员代表的以太经典。
在区块链的世界中,硬分叉表示对区块链协议的重大更新,该更新不能向后兼容,在更新协议之后,未更新协议的结点的交易将会被当做无效交易拒绝。理论上来说,在硬分叉过程中,所有的结点都必须更新到最新的协议。如果没有达到100%的结点更新协议的话,那么就会产生如下的情况: 一条链将会分叉成为2条,这就是所谓的硬分叉。
以太坊在第1920000区块高度上硬分叉出来了两条链,分别称为 以太坊(ETHchain 简称ETH)和以太经典(ETHClassicchain简称ETC).
image这次硬分叉又称大都会,主要进行了一以下两点。
image1. 匿名交易(Private Transaction)
在这次更新中,以太坊将引入zk-SNARKs,或者Zero-knowledge proofs零知识确认协议。该协议的引入,将会使以太坊拥有和ZCASH,Monero一样,匿名交易的功能。
2. 难度炸弹/冰河时期(Difficulty-Bomb)
什么是’难度炸弹’?’难度炸弹’是V神在以太坊源码中隐藏的一段代码,该代码的终极目的是:让以太坊平滑地从比较低端浪费资源的POW(proof of work)共识机制转化为比较高端的POS(proof of stake)的共识机制。
二、软分叉
由以上我们了解到了硬分叉,那么什么是软分叉呢?
A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.
翻译一下就是。
软分叉就是指区块链出现旧的节点验证新的节点能通过就像不知道升级了一样。
那么说到这里你是不是觉得有问题,既然新的版本兼容旧的版本又怎么会出现分叉呢?
这里的兼容是指,旧的版本能验证通过新的区块,而新升级的矿工则将旧机器新产生的区块视为非法。
注意新旧矿工都承认最长链后,新的矿工不在承认旧机器新产生的区块链。
这分为两者情况:
一种是新机器先产生确认过的最长链后的第一个区块,那么旧机器也已区块为起点构建新的区块,只是不被承认罢了,如果所有的节点都升级以后,那么久不存在旧的链了,
另一种情况如果有一个时刻旧机器先找到了新的区块,那么旧机器以此区块继续寻找下一个区块,如果旧的机器一直不停的寻找到新的区块,而新机器在这个最长链的长度赶不上旧的最长链,旧机器就会在此链上一直寻找下去,这种情况一般是由于采用PoW共识机制的旧机器算力强于新机器造成的,那么就诞生了两条。链,一条是旧机器产生的,一条是新机器产生的。
三、比特币结构分析
//待更新
参考资料:
[1]. 什么是硬分叉,什么是软分叉,什么是共识?
[2]. 震惊全球的The DAO黑客事件全程回顾
[3].十分钟看懂以太坊九月硬分叉