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

in #cn7 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)我的文章。

Sort:  

解释的很清楚,谢谢分享

my pleasure.

Coin Marketplace

STEEM 0.26
TRX 0.11
JST 0.032
BTC 63585.64
ETH 3035.86
USDT 1.00
SBD 3.84