区块链如何防止分叉(区块链分叉是什么意思)

区块链为什么会分叉

分叉是区块链体验的核心,类似于系统升级。“分叉”一条链,本质上就是要对运行区块链的软件做出改变。根据不同的情况,分叉所引发的问题也非常多,有的很快能够达成共识,有的则极具争议。 在中心化系统中,软件升级极其简单,只需要打补丁或者对其某些功能的兼容性等迭代更新。而去中心化系统中,升级远没有那么简单轻松,它需要取得链上各节点或者交易方达成共识。在一些重大功能上的改善时,常会遭到社区某些人的反对,一旦有超过 2/3 的人不同意,那么他们就得选择其它途径,创造它们自己的协议和分支区块链,于是分叉也就随之发生。在比特币中,其通过 比特币软件 (也叫比特币协议)的形式实现,它确定了针对所有人的规则,包括 区块大小、对矿工的奖励等 。如果所有人使用比特币,那就得同意这份协议。类似于国家的法律,每个人必须遵守。然而,不仅仅是比特币,其它加密数字货币也是一样的,作为软件项目,总是不乏需要完善的地方,因此,技术更新和开发基本都是一往直前的,比特币开发者是通过更新软件(比特币协议)来解决问题或增强功能的。简单而言,区块链网络中只要发生意见分歧、协议改进(新增、升级)等就有可能产生分叉。其实,谈起分叉我们并不难理解,以比特币为例,可以将比特币分叉分为两大类:比特币协议和存储交易系统。比特币协议完全是开源的,如果要创建自己的分支区块链,那就要先把比特币软件源代码复制下来,然后再根据自己的需要进行适当修改。最后,通过指定的区块编号让比特币开始分叉并生效,其实就是相当于中心化系统程序中的定时指令。比如可以规定区块编号在到达 10000 时分叉开始生效,当该区块编号传送的指令到社区时会分成两部分,一部分支持原协议,一部分支持分叉协议,然后每个部分会再次添加新的区块到它们所支持的那一条链上。

区块链如何防止分叉(区块链分叉是什么意思)

【区块链知识】当我们遇到分叉问题时,该怎么办?

遇到分叉问题,该听谁的?

假想这样一个场景,在区块链中,一定会遇到这样的情况,区块甲和区块乙同时把一条信息记录下来,并且做好编码和时间戳。

他们两个区块同时发布信息,说这个编码为4495662的信息是我记账的,它的报酬应该归我!

然后,大家就有的认为报酬应该归区块甲,有的则认为归区块乙,而报酬只有一份,只能给一个区块。这下好了,出现不同意见了,该怎么办?

更严重的是,有的区块会认为这件事是区块甲做的,也记下来,顺着编码继续往后记账;另外一些区块则认为这件事是区块乙做的,跟着在区块乙后边继续记账。

这样事情就大条了!原本严谨的唯一的一条信息链,到区块甲和区块乙这里,硬生生给分开了,它们各自后边分别跟着常常的链条。

这种情况持续下去,就导致每个人都无法辨别自己掌握的信息链,是否正确了!

为了解决这个问题,区块链技术又出台了一个新的规则:每条记录都要顶格写,同时要保证中心离田字格上边缘要保持0.897  57毫米的位置上。

为了符合要求,每个人都得拿着尺子去量好位置,然后才能开始记录。这样记录每条信息时,增加了难度,延长了操作时间。

只要一个人做好了记录,大喊一声,我记录好了!

其他人就停笔不再记录这条信息,反而开始记录这条信息是某某记录的接着那个编码继续往下记录。

遇到分叉问题,就是这样解决的。

比特币究竟会不会分裂?及币行应对比特币分叉方案

如果你一直在关注比特币社区的消息,你会知道在大约两周内,最快可能2天内,比特币网络可能会面临协议上的一些改变。

为了改进比特币的交易能力,解决比特币网络拥堵问题,各方一直争论不休,并且提出了多种解决方案。未来多则几周内短则几天比特币社区,可能会是迎来一次平滑的升级,也可能会出现链分裂,又或者只是简单地维持现状。

但最终哪种方案将会落地实施,还要看最终的投票结果。

截止到发稿前,已有88.2%的矿工投票支持SegWit2x(比特币分叉投票结果查询网址:coin.dance/blocks)

最近比特币圈内频繁出现了这几个词:SegWit2x 、BIP 148、BIP 91。

然而,大部分读者可能根本不理解这些词的含义和他们的相互作用。

今天,OK君给大家讲解一下这些词的含义,和他们可能给比特币带来的变化。

SegWit2x(纽约共识)

是由一些比特币公司和80%的矿工在Consensus2017会议上签署的协议。会议由此决定了比特币的新版本:Segwit(隔离见证)+2x(将1M扩展至2M)。SegWit2x旨在通过一次软分叉将隔离见证应用到比特币主链上,同时承诺三个月后通过硬分叉增加比特币的区块大小。

BIP148

使用一种较旧的机制来对比特币作更改,这种机制被称为用户激活软分叉(UASF)。其需要大约50%的矿池支持,如果得不到支持,BIP 148便会激活,网络会被分裂成两条竞争的区块链。

说白了,在2017年8月1日这天,如果大多数矿工运行这个软件,隔离见证的激活条件就触发了。如果BIP148没有得到大多数矿工支持,那么比特币就会一分为二,产生两种比特币。

BIP91

BIP 91 的目标是在8月1号之前锁定SegWit2x的隔离见证,使得SegWit2x提案与BIP 148相兼容。BIP 91的锁定需要80%的矿工算力投票支持。

BIP91通过让SegWit2x 和BIP148产生兼容性从而避免分裂。

小白一句话简单理解:SegWit2x是一个可以优化比特币的东西,BIP91是为比特币不分裂保驾护航,BIP148有可能导致比特币分裂成2种。

为了帮助你更好地理解比特币将会发生的一些事,我们用一张图来展示:

目前我们正处于图中的第一阶段:对BIP 91进行投票,BIP91的激活门槛是在336个区块周期里,有269个支持,也就是80%的支持率。如果80%的矿工算力投票支持,答案为“YES”,那么Segwit(隔离见证)将被锁定,其他的提案将全部无效,比特币不会分裂。目前看来BIP 91通过可能性极大。

最新进展

截止到发稿时,336个区块,其中47(14%)个已经支持BIP 91。(BIP 91投票结果查询网址:coin.dance/blocks)

目前,全网76%算力的矿池似乎已经承诺支持这个提案,目前看来BIP 91通过的可能性相当大,如果结果和预期相符,本次比特币不会分裂。

比特币自2009年诞生以来,经过8年的发展,取得了令人难以预测的全球影响力。比特币是互联网技术发展的必然产物,是人类文明进化的重大成果,是目前全球最可靠的公有区块链网络之一,未来有极大的可能性成为其他区块链应用的底层基础设施,将在服务实体经济方面发挥重大作用。

在比特币高速发展的同时,比特币社区出现了不同的技术发展路线图。有人认为应该扩大比特币区块,以支持更多的交易并发;有人认为应该优化比特币的数据存储方式(segwit),并发展闪电网络技术以支持更多的交易并发。

OKCoin币行对所有致力于比特币技术发展的工程师、专家都致以崇高的敬意,我们认为比特币扩容的路线之争是不同技术理念的争论,不是阴谋论,也不是各种从业公司之间的政治关系。

我们每天享用的高科技,在历史上都出现过技术路线争论。比如Windows Mobile、Nokia Symbian、iOS、Android等移动操作系统经过多年的市场竞争以后,最终iOS和Android广为市场接受;基于磁悬浮和基于轮轨的高铁技术,在多年的市场竞争以后,基于轮轨技术的高铁在中国被广泛应用。

在比特币的世界里,我们也同样认为所有的技术路线之争,最终应该由市场的用户来选择,而不应该通过开会或者政治谈判来支持某一种技术路线。

OKCoin币行作为一家致力于比特币应用的公司,我们的崇旨是服务好每一位客户,OKCoin币行并没有权力帮助用户选择哪一种比特币技术,因此OKCoin币行将支持所有了比特币技术发展路线,把选择权交给市场和客户。

OKCoin币行将在比特币出现分叉可能性的期间采取如下措施:

1?在可能出现分叉的时间点,2017-07-30 - 2017-08-02 ,为了防止比特币充值或提现被回滚和重放攻击,我们将停止比特币的充值和提现。

具体的停止提现的时间点,我们会另行通知。为了您分叉期间的交易便捷,建议您提前进行比特币的充值,以防止遇到突发行情无法交易。

2?如果没有出现分叉,网络稳定以后,我们将恢复充值和提现。

3?如果比特币分裂为一种或多种比特币,OKCoin币行将会把分裂出来的各种比特币按拥有权提供给所有客户,并且逐步上线所有新种类的比特币的交易。

4?对于用户来讲,最简单的方法提前充值比特币,我们会为您处理好分叉过程中的各种技术问题。

5?如果分叉过程出现了价格异常,OKCoin币行可能会临时中止交易。

我们相信,很多年后,经过长期的市场竞争,一个或多个版本的比特币将被广泛采用,让我们一起为比特币的未来努力。

区块链为什么有分叉?分叉会发生什么情况?

    区块链的分叉(fork)的形成原因可能有多种。

    当两个结点几乎在同一个时间挖到了矿并同时发布区块,此时就出现临时性的的分叉(state fork),

    本质上是对比特币这个区块链当前的状态产生了意见分歧,

    当人为的发起分叉攻击(forking attack),也就是故意造成这类分叉(deliberate fork)还有一类分叉是,当比特币的协议发生了改变的时候,软件需要升级。而在分布式系统中不能保证所有节点同时升级软件,假设存在部分节点未升级,会导致协议分叉(protocol fork)。对协议修改的内容的不同,又可以将分叉分为硬分叉(hard fork)和软分叉(soft fork);

    比特币协议增加新协议,扩展新功能,未升级软件的旧节点会不认可这些修改,会认为这些特性是非法的。这也就是对比特币协议内容产生分歧,从而导致的分叉叫 硬分叉 。此时,就出现了新节点永远沿着新节点产生的链挖矿,旧节点永远沿着旧节点链挖矿,由于新节点算力足够强,所以形成两条永远都在延伸且平行的链。只要这部分旧节点永远不更新,则旧链将一直延续,可见这种分叉是持久性的。

出现hard fork后,便变成了两条平行的链,也就造成了社区分裂。社区中有一部分人,会认为下面的链才是根正苗红,各个链上的货币独立。以太坊历史上的一件大事就是硬分叉事件。以太坊称为ETH,但目前看到的ETH已经不是最初的ETH了,以太坊在历史上发生过硬分叉,另一个链称为ETC。实际上,ETC才是以太坊设计原本的协议,而ETH是黑客攻击ETH上一个智能合约THE DAO后,进行回滚的协议链(将黑客攻击偷取的以太币采用硬分叉方式回滚回到另一智能合约,然后退还给真正拥有者)。

    分叉之初,由于两个链分叉造成了互相影响,产生了很多麻烦。比如:在ETH链上有一笔转账B-C,有人便在ETC链上回放,将ETC链上的货币页转给了C(C收到两笔钱)。后来,对两条链各添加了一个chainID,将两个链区分开,才使得这两条链真正分开。

如果对BTC协议添加限制,使得原本合法交易在新交易中不合法,便会形成软分叉。

当大多数节点已经更新完毕之后,旧节点认可新节点挖出的区块,因此发布自己挖出的区块,但新节点不认可旧结点挖出的区块,便沿着上一个新节点发布的区块继续挖矿,当新节点拥有大部分算力的时候,新链会越来越长,从而旧节点挖出并发布的区块一直被抛弃,无法获得出块奖励,最终倒逼旧节点升级软件,实现所有节点认可新协议并进行升级。可见,只要系统中拥有半数以上算力节点更新软件,此类分叉不会出现永久性分叉。比特币脚本中的P2SH就是通过软分叉方法加进去的。

 

    这一部分我并没有查到太多的资料,但是在绝大多数共识协议之中我们都假设需要过半算力;

    在理论上,如果掌握了50%以上的算力,就拥有了获得记账权的绝对优势,可以更快地生成区块,也拥有了篡改区块链数据的权利。因此,当具有过半的算力,也就是51%都是诚实可靠的,能保证整一个区块链在合法有序的进行运行。

    但是为什么选择过半的算力,而不是过半的用户?比特币系统,任何人都可以加入,且创建账户及其简单,只需要本地产生公私钥对即可。只有转账(交易)时候,比特币系统才能知道该账户的存在。这样,黑客可以使用计算机专门生成大量公私钥对,当其产生大量公私钥对超过系统中一半数目,就可以获得支配地位(女巫攻击)。因此,比特币系统中很巧妙的使用算力作为投票的依据。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的区块链知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-03-08 21:34
下一篇 2023-03-08 21:34

相关推荐

发表回复

登录后才能评论