区块链分叉是什么?区块链分叉概念马克币

  • A+
所属分类:区块链新闻

区块链分叉是什么意思?很多小伙伴在币圈看到各种分叉币,那么你了解区块链分叉是如何产生的吗?区块链分叉的意义又是什么,今天马克币小编为大家带来简单的区块链分叉解读。

在比特币的挖矿中,矿工们通过求解数学难题来争夺记账权,创建区块并获得相应的奖励。可是,假如有两个矿工同时求得了难题的解,会造成怎样的结果呢?这篇文章具体说说区块链的分叉是怎么来的。

1 什么是分叉?

首先从区块链的结构看,区块链中的链是由各个区块根据生成的时间顺序,通过区块头哈希值串联在一起形成的。链的本质是关于区块交易记录及状态变化的记录。

分叉:一般来说,同一时间内只会产生一个区块,但如果在相同时间,出现两个区块同时被生成的情况,全网中就会出现两条长度相同、包含的交易信息相同但由不同的矿工签名或者交易排序不同的区块链,这样的情况叫做分叉。

区块链分叉是什么?区块链分叉概念

分叉可能由于矿工争夺记账权、矿工遵从不同机制或者双重支付等原因造成。

2 争夺记账权导致的分叉

2.1分叉的原因

以比特币挖矿为例,基于工作量证明机制,矿工通过求解数学难题获得记账权,创建新区块,并把区块链接到链上。

问题:然而,在这个过程中,经常会出现一个问题:如果两个矿工同时求到了难题的解,获得了记账权,这该怎么办呢?虽然成功解决难题的矿工得到的答案都是正确的,但由于每个矿工生成的区块包含的交易数据不一样,所以实际上生成的区块是不一样的。

应对方案:面对同一时刻出现的两个满足要求的不同区块,下一轮挖矿过程中,由于距离问题,不同矿工看到这两个区块的先后顺序是不同的,各个矿工会分别把最先的看到的区块复制到自己的账本上,即链接到本地区块链上,然后再开始新一轮的挖矿。这样一来,就会出现分叉的两条链。这是比较常见的分叉现象。

2.2如何解决分叉问题?

特点:对于由于争夺记账权导致的分叉,分叉后得到的两条链的算力是有差别的,这种差别随着生成的区块越来越多,会越明显,主要表现为两条链上的矿工数量不同。矿工越多,算力越有优势,从而导致两条链的增速不同,最后,其中一条链的长度会超过另外一条。

解决方案:矿工收到两条同步的冲突的区块链后,会判断此时哪条链的长度更长,以长度更长的那一条为准,原来在短的那条链上的矿工就会抛弃当前的链,把更长的那条链复制到自己的账本上,继续进行挖矿。最后长的那条链就成为了主链,短链就消失了。

区块链分叉是什么?区块链分叉概念

3 双重支付导致的分叉

双重支付也称双花,简单来说就是一份钱当两次花,它是一个故意的分叉。由于数字货币系统中数据的可复制性,加上区块链世界里交易的是数字资产,本质上是一些虚拟信息之间的传递,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况

原理:假设算力集中的攻击者A发送了一个交易请求,并购买资产,但在收到资产以后,又伪造了另外一个交易请求,将相同的币转账给了自己。攻击者A通过创造一个分叉区块,将原始交易及伪造的转账给自己的那笔交易放在分叉区块上,并基于该分叉进行挖矿,从而形成了分叉。

结果:如果攻击者A有超过 51%的集中算力,包含伪造信息的那条链最终会成为较长的一条链,而实际报告真实交易记录的那条链会被抛弃,而双重支付也最终会成功。就算算力低于 51%也存在着成功的可能性。

区块链分叉是什么?区块链分叉概念

莫莫仔对双花的简单理解是,攻击者购买资产成功,但是攻击者应付的那笔数字资产最后却还在自己的账户上。

4 矿工遵从不同的机制导致的分叉

保证区块链数据唯一性的前提是所有矿工都遵从同样的机制。如果有矿工遵从不同的机制,同样会导致分叉的产生,根据原因的不同又分为两种分叉类型:

软分叉:由于整个区块链系统的软件升级,一部分矿工没有来得及升级,导致不同矿工遵从不同机制而产生的分叉。

硬分叉:矿工之间出现分歧,一部分矿工决定采用不同的机制而产生的分叉。

软分叉与硬分叉涉及去中心化的节点软件、协议、版本升级等问题。关于它们两者的具体特点会在后面的文章中详细讲讲。

5 小结

两个或多个矿工同时解决数学难题得到记账权而造成的分叉现象比较常见,但随着确认的区块越来越多,最后短链会消失;也有一些矿工在利益驱动下,伪造信息,通过51%攻击形成分叉并最终保留下来,实现双重支付;还有两类分叉是由于矿工遵从的机制不同而产生的。由此可见,尽管区块链是基于一套严格的制度和规则,但仍然避免不了各种主观和客观的因素导致分叉的产生。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: