区块链率先使用密码元素和共识机制来构建安全的去中心化系统。区块链是比特币的核心。它采用对等网络通信,使得区块链中的每个参与节点都可以确认每个区块提议的共识,并将最终的共识区块信息存储在区块链中每个节点的本地数据库中。这样可以保证数据防篡改、公开透明,同时保证交易的正常进行。但是,由于区块链的技术升级,每个节点的升级会有异步问题。它威胁到一致性,并导致区块链分叉问题,最终威胁到区块链的安全和信誉。本文研究了区块链分岔问题,并给出了解决区块链分岔问题的方法。
理想情况下,比特币区块链是一个同步网络环境。假设区块链中每个副本节点的信息交换和块添加没有延迟,那么在这种情况下,如果区块链系统没有发生升级,每个副本节点上的数据块将尚力财经小编2022是相同的,但在真实的区块链场景中,存在同时发生的情况,节点间的信息广播存在网络延迟。在这样的场景下,区块的信息验证会出现错误。如果这种情况发生,区块链分叉问题就会出现。让我们详细分析一下区块链分叉问题。
单纯分析比特币挖矿的模式,是链条分叉的必然结果。区块链矿业的早期设计是由矿工们独立完成的。接下来我们来进行一个实验分析。实验条件是现有的块长为10的区块链中只有10个比特币矿工,区块链的尾块暂时指定为a,实验假设10个比特币矿工中有两个可以同时到达。此时,由于双方都不知道对方是否挖矿成功,双方矿工都默认向全网广播I和J。这时区块链网络中出现了两个区块,两个区块指向的尾区块都是A,那么区块链网络中就会出现两个以I和J为尾区块的链,而且两个链都是合法链,于是就出现了区块链分叉的问题。
这个问题是简单挖掘模型的必然结果。这个区块链分叉的问题会导致两个分叉的链条,最终比特币的消费会有重复消费的风险。长此以往,整个区块链将会出现越来越多分叉的网络链,使得区块链中节点网络的通信开销呈指数级增长,系统运行效率急剧下降,最终拖累网络性能。为了解决这个问题,区块链比特币技术引入了区块链身高这个变量,这是共识检测点。每隔一段时间,区块链网就会同步区块链的身高,将高度变态的区块链定义为非法区块链。这样,关于非法区块链的封锁信息就毫无意义,不会对整个区块链产生任何影响。同步区块链的高度过程成为一个共识过程。比特币区块链使用共识技术解决挖掘模型的分叉问题。
因为一致性检测节点被用作处理分叉的解决方案,所以块的分叉不是实时同步的。在某个时间节点下,每个区块链尾部的块可能是分叉块。在一致性同步之前,分叉链上会追加新的块信息,但由于同步一致性检测点的存在,分叉链无限增长的概率会呈指数下降。在这样的实际情况下,比特币机构在处理比特币交易时,采用的是延迟交易确认,即比特币交易发起和交易成功之间需要有一个时间间隔,时间间隔的长度正好是区块链共识检测点的时尚力财经小编2022间间隔。
比特币区块链不仅会导致自身运行分叉,而且在技术升级时还会人为造成区块链分叉问题,因为比特币区块链是由许多共识节点组成的。当技术升级时,每个共识节点对升级会有不同的意见,导致升级后每个共识节点的验证行为不同,在后续的操作过程中会产生多个区块链。[
硬分叉是指升级前的旧块共识节点和升级后的新块共识节点的链的分叉。在比特币区块链技术升级之前,将提交方案,并尽可能寻求大部分比特币区块链共识节点的省统一。这是硬叉的前提。当大多数共识节点同意升级请求时,它们将被升级。升级后,新区块链的块验证机制将与以前的不同。比特币区块链此时会出现两个区块链,但两个区块链的共识节点不成比例。在系统后续的运行过程中,老区块链节点会越来越少,挖矿的矿工会逐步升级到新区块链,硬分叉最终会被共识统一,前提是升级方案得到大多数节点的同意,硬分叉会出现在2017年,也就是推的时候。但目前各方反应不一,其中BTCC交易所联合创始人兼首席执行官bobby lee从最初批准升级,到现在反对并担忧这种硬分叉升级。
与硬分叉相比,软分叉的本质实际上并不会产生多个分叉的区块链,这是块信息验证机制上的一个区别。但是,新的块验证机制将转到向后兼容的块验证机制,这样,虽然在整个区块链同时存在两种块验证方法,但实际上不会出现新的区块链分叉。软叉比硬叉早诞生,2012年诞生过一次,是比特币。软fork的缺点在于块验证协议的兼容性和验证协议的安全性之间的矛盾,很难在两者之间找到一个合适的平衡点,所以在实际过程中,软fork并没有很好的设计。
为了解决区块链的硬分叉问题,作者提出了一种算法机制——随机公证节点机制,来解决区块链的分叉问题。算法的具体定义流程如下,分为两部分,一是随机公证节点的选择,二是新块的生成。
选择随机公证节点的步骤如图1所示。
尚力财经小编2022
[2]韩萱,刘亚民.以及其他人区块链技术的基础与应用研究综述[J].信息安全研究,2017,3(11)。[4]贾。基于区块链技术的网络版权交易研究[J].科技与出版,2018(7)。[5]刘小飞基于动态授权的拜占庭容错一致性算法的区块链性能改进研究[D].2017.[6]王坚,陈公亮。比特币区块链分岔研究[J].通信技术,2018。[x 2019,56 (6): 1205-1218。[X] [X] [8]清肃德、王、区块链的技术原理及其意义[J].电信网络技术,2016 (12): 14-20。[X] [X] 2019 (09): 5-9 15。[X] [X] [10]刘晓雷区块链社区:一种新的组织模式[J]。人民论坛学术前沿2018年第148期(12): 13-19。[X]