如何浅白地解释软硬分叉 1/2

in cn •  7 years ago  (edited)

hard_fork_bitcoin_.png

1.前提

新节点算力>50%

2.新节点出现时,会出现以下四种情况

a.新节点认为老节点发出的交易/区块合法
b.新节点认为老节点发出的交易/区块不合法
c.老节点认为新节点发出的交易/区块合法
b.老节点认为新节点发出的交易/区块不合法

ps, 如果新节点接受老节点,老节点也接受新节点,那这事儿就太完美了。
但,你懂得,太完美的事儿,一般不会发生。

3.什么是硬分叉

简单地说,就是新节点认为老节点发出的交易/区块合法,而老节点认为新节点发出的交易/区块不合法。

当硬分叉的时候,我们要求所有节点必须同时升级,未升级的节点就不能正常的工作。这时候,老节点说,不,我就不愿意升级。

但,你想啊,新节点它更牛啊,它算力强(超过50%)。如果有较多的老节点不愿意升级,那么,新节点就会在另一条链上继续工作。

4.什么是软分叉

简单地说,老节点认为新节点发出的交易/区块合法,而新节点认为老节点发出的交易/区块不合法。

5.软硬分叉的优缺点

软分叉比硬分叉有如下优点——

a.软分叉毕竟还是在一条链子上,而硬分叉已经是分成两条链子了
b.软分叉不要求所有节点同一时间升级,允许逐步升级,且并不影响软分叉过程中的系统稳定性和有效性;

软分叉也有以下缺点——

1.软分叉的前提是老节点对新节点的接受,这就要求把系统设计成向前兼容(forward compatible);
2.软分叉建议在新节点对老节点欺骗的基础上,在某程度上违背了单点完整验证的原则。

6.向前兼容

简单地说——我们常见的做法是,设计一个软件,先做出来1.0版本,然后对1.0更新、升级,于是有了2.0版本,这是向后兼容。向前兼容和它相反,你必须在还没做出来2.0版本之前,就已经知道2.0版本是什么样的了,甚至,连3.0版本都想到了。

所以,它要求对于新可能出现的区块形态、共识机制有个预先的判断,并在老的系统中留有余地或后门。当新的节点被部署时,老的节点能够接受新节点所产生的区块。


小密圈.jpeg

历史文章

对token的10条硬思考:过去、现在、未来
拆解:经济是如何运转的 (2/2)
拆解:经济是如何运转的(1/2)
《股票心理学》第一章 | 10条硬思考(附英文原版链接)
这是steemit FAQ 中文翻译的合集
关于区块链的10条思考
你必须需要的区块链网站资源(一)通识
加密货币交易#001 用 CoinMarketCap 做买卖的极简策略


我是徐冉 @xuran,是个区块链爱好者,正在研究 Steemit 的生态模式。

如果这篇文章对你有用,欢迎你 关注我(Follow)、点赞(Vote)、回复(Reply)、转发(Resteem)我的文章。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

解释的很清楚,谢谢分享

my pleasure.