CN114090306B - 可插拔的区块链分层共识方法、***、设备及存储介质 - Google Patents
可插拔的区块链分层共识方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN114090306B CN114090306B CN202210069079.8A CN202210069079A CN114090306B CN 114090306 B CN114090306 B CN 114090306B CN 202210069079 A CN202210069079 A CN 202210069079A CN 114090306 B CN114090306 B CN 114090306B
- Authority
- CN
- China
- Prior art keywords
- consensus
- block
- pluggable
- post
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种可插拔的区块链分层共识方法,包括以下步骤:S1.前置共识层选择共识方式进行打包出块;S2.适配层根据不同前置共识产生的块,依据所选前置共识的性质,选择该前置共识产生的某一或某些区块,作为后置共识层的输入;S3.后置共识层进行后置共识,得到后置共识最终确定性区块。本发明还提供一种可插拔的区块链分层共识***,包括前置共识层模块、适配层模块和后置共识层模块。同时本发明还提供一种可插拔的区块链分层共识设备及存储介质。本发明前置共识可插拔,出块方式可选择。且将打包区块与确认区块职责分离,便于跨链时接入原链共识作为前置共识,适配层进行适配,目标链利用后置共识确认。
Description
技术领域
本发明涉及区块链共识机制领域,具体来说是一种可插拔的区块链分层共识机制。
背景技术
在区块链中,由于其去中心化的设计,节点是各处分散且平行的,所以必须有一套流程,来实现各节点的运作一致性。这样的流程,就是共识。
在区块链中,共识是一个决策过程,它的目标是确保所有参与者在添加新数据块后,能就其当前状态达成一致。换言之,共识协议确保了一条链的正确性。
区块链共识领域有两个重要的边界,即FLP原理(Fischer-Lynch-Paterson)和CAP原理。FLP原理指出,在一个多进程的异步***中,只要有一个进程不可靠,那么就不存在一个协议,此协议能保证有限时间内使所有进程达成一致。而CAP原理指出,分布式计算***不可能同时确保一致性、可用性和分区容忍性。
由于极限边界的存在,没有一种共识机制是完美无缺的,各共识机制都有其优缺点。所以基于区块链设计的各种共识机制,都可以认为是牺牲了某一部分的特性,强化另一部分的特性,从而适应于特定场景。
所以,如何根据实际应用场景,合理的选择去中心化、节能、安全等设计原则,对一些原则特性进行强弱取舍,以实现整体的高运行效率,是本领域技术人员的一个基本问题。
由此,在区块链解决方案中,产生了可以实现兼容多种共识算法的混合共识机制,该机制中,可以有选择性的使用一种最合适的共识算法,即可插拔的共识机制。
但是,现有的区块链可插拔的共识方法,大多数是通过改变整个共识机制来实现的。由于不同的共识机制所运行的流程和前置条件不同,比如,有的靠算力、有的靠权益、有的靠投票等。这些不同,会导致可插拔技术壁垒高,实际应用效果不理想。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的目的就是为了解决上述问题,提供一种可插拔的区块链分层共识方法、***、设备及存储介质。
为了实现上述目的,本发明的技术方案如下:
一种可插拔的区块链分层共识方法,其特征在于,包括以下步骤:S1. 前置共识层选择共识方式进行打包出块;S2.适配层根据不同前置共识产生的块,依据所选前置共识的性质,选择该前置共识产生的某一或某些区块,作为后置共识层的输入;S3.后置共识层对适配层选出的区块进行后置共识,并得到后置共识最终确定性区块。
其中,步骤S3中后置共识为非开放确定性共识。
进一步的,步骤S1中,若需要去中心化程度高,则前置共识层选择开放确定性共识或是开放概率性共识;若打包者决出方式已定,则选择非开放概率性共识;若由特殊节点出块,则选择非开放确定性共识。
进一步的,步骤S2中,前置共识得到的若是前置共识最终确定性区块,则适配层选择前置共识最终确定性区块,作为后置共识的输入;前置共识若是由主节点出块的共识,且得到的是概率确定性区块,则适配层选择当轮或者规则允许范围内的主节点打包的区块,作为后置共识的输入;前置共识若是没有主节点,所有人都可参与的共识,且得到的是概率确定性区块,则适配层等待特定的时间或是等待特定个区块后,选择最新的前置共识最终确定性区块,作为后置共识的输入。
为实现上述目的,本发明还提供一种可插拔的区块链分层共识***,其特征在于,包括:前置共识层模块,所述前置共识层模块用于选择共识方式进行打包出块;适配层模块,所述适配层模块用于根据适配方法,选择相应前置共识产生的区块,作为后置共识层的输入;后置共识层模块,所述后置共识层模块用于对适配层选出的区块进行后置共识。
进一步的,所述后置共识层模块通过非开放确定性共识,对适配层选出的区块进行后置共识,得到后置共识最终确定性区块。
为实现上述目的,本发明还提供一种可插拔的区块链分层共识设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的可插拔的区块链分层共识程序,所述可插拔的区块链分层共识程序,配置有实现可插拔的区块链分层共识方法。
为实现上述目的,本发明还提供一种存储介质,其特征在于,所述存储介质上存储有可插拔的区块链分层共识程序,所述可插拔的区块链分层共识程序,在被执行时,实现可插拔的区块链分层共识方法中的全部或某一流程。
采用以上技术方案,本发明实现了前置共识可插拔,出块方式可选择。且将打包区块与确认区块职责分离,可实现将前置共识的概率性共识转为后置共识的确定性共识,便于跨链时接入原链共识作为前置共识,适配层进行适配,目标链利用后置共识确认。
附图说明
图1是本发明的共识流程图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并非是对本发明的限定。
实施例1:本发明可插拔的区块链分层共识***,如图1所示,包括前置共识层模块、适配层模块和后置共识层模块。
所述前置共识层模块,主要用来选择前置共识方式。前置共识可插拔,即开发者可以根据去中心化程度、打包者决出方式等方面,自由决定选用何种前置共识,若需要去中心化程度高,则前置共识可以选择开放确定性共识或是开放概率性共识。这两类共识没有主节点,所有人可以参与竞争打包。前置共识模块选择的共识不同,出块的方式不同,产生的区块的确定性也不同。
所述开放确定性共识是指区块由所有节点竞争打包,不存在主节点,产生的区块上链后不支持回滚的共识,如PoS类共识。这类共识的交易随着区块上链后不会出现区块回滚。当前置共识为开放确定性共识时,产生的区块是最终确定性区块,区块上链不会存在分叉。
所述开放概率性共识是指区块由所有节点竞争打包,不存在主节点,产生的区块上链后支持回滚的共识,如PoW类共识。这类共识的交易随着区块上链后可能会出现区块回滚。当前置共识为开放概率性共识时,产生的区块是概率性区块,区块上链可能存在分叉,仍需要等待一点时间来解决分叉,获得最终确定性区块。
若打包者决出方式已定,例如是由特殊节点集轮流出块,则可选择非开放概率性共识。或者是由特殊节点出块,则可选择非开放确定性共识。
所述非开放概率性共识是指区块由少数节点打包,存在主节点,产生的区块上链后支持回滚的共识,如PoA类共识。这类共识的交易随着区块上链后可能会出现区块回滚。当前置共识为非开放概率性共识情况时,产生的区块是概率确定性区块,区块上链可能存在分叉,由后置共识解决。
所述非开放确定性共识是指区块由少数节点打包,存在主节点,产生的区块上链后不支持回滚的共识,如BFT类共识。这类共识的交易随着区块上链后不会出现区块回滚。当前置共识为非开放确定性共识时,产生的区块是最终确定性区块,区块上链不会存在分叉。
所述最终确定性区块是指,一旦交易被包含在区块中并添加到区块链上,该交易同区块就会被立即视为最终确定,不能被逆转。
所述概率确定性区块是指,虽然交易被包含在区块中并添加到区块链上,但区块是可能被逆转的,如中本聪共识中“最长链机制”,任何一笔交易都要等待六个区块确认,所有保存到本地的区块链必须是被本地节点验证通过的最长链,只有最长区块链上的区块才能获得***承认并得到挖矿奖励。
前置共识层模块选择的共识的不同,影响着适配层模块的适配方法。
所述适配层模块,主要根据不同前置共识产生的块,依据所选前置共识的性质,如区块是否确定、共识是否有主节点等条件,来选择该共识下产生的某一或某些区块,作为后置共识层模块的输入。不同的前置共识其适配方法不同,复杂性也不同。
如:前置共识得到的若是最终确定性区块,则适配方法是:直接选择前置共识最终确定性区块,作为后置共识的输入。
前置共识若是由主节点出块的共识,且得到区块是概率确定性区块,则适配方法是:选择当轮或者规则允许范围内(如当轮主节点宕机等原因导致主节点无法出块,则该共识规则可能是选择替代节点作为本轮区块的打包节点)的主节点打包的区块,若出现分叉,交由后置共识解决。
前置共识若是没有主节点,所有人都可参与的共识,且得到的区块是概率确定性区块,则适配方法是:等待特定的时间或是等待特定个区块(根据选择的具体的前置共识而定)后,选择最新的前置共识最终确定性区块。比如针对PoW类的开放概率性共识,没有主节点且得到的是概率性区块,存在分叉回滚,那么其适配方法是等待出特定个块的时间,得到最终确定性区块后,将该前置共识最终确定性区块作为后置共识的输入。
需要说明的是,以上适配方法只是举例,实际情况可能远多于以上举例。且本领域技术人员可以根据实际需要选择合理适配方法,可以进行适当改变,并非严格按照以上举例进行。
所述后置共识层模块,主要是对适配层选出的区块进行最后一轮共识。后置共识的选择必须是一个确定性共识,才能保证获得后置共识最终确定性区块,上链后不会被逆转。
后置共识目标是获得后置共识最终确定性区块,所以,后置共识选择条件有二:1.必须有解决分叉的能力,2.解决分叉后必须得到的是最终确定性区块。因此,后置共识是非开放确定性共识。
本技术中,将区块共识过程分离成打包过程和确认过程。前置共识层出块,后置共识层确认,再利用中间适配层进行不同前置共识的适配,实现前置共识可插拔,出块方式可选择。后置共识层将适配层选出的前置共识产生的区块进行区块确认,加快区块确认速度,最终获得确定性区块上链。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现发明的目的,此处不做限制。
实施例2:此外,本发明实施例还提出一种可插拔的区块链分层共识方法,包括以下步骤:S1.打包出块;S2.适配;S3.最终确认。
步骤S1中,打包出块是指,前置共识层根据需要选择共识方式进行打包出块。如:若需要去中心化程度高,则前置共识层可以选择开放确定性共识或是开放概率性共识进行打包出块;若打包者是由特殊节点集轮流出块,则可选择非开放概率性共识。或者是由特殊节点出块,则可选择非开放确定性共识。
步骤S2中,适配是指,适配层根据不同前置共识产生的块,依据不同的适配方法,选择该共识下产生的某一或某些区块,作为后置共识层的输入。
步骤S3中,最终确认是指,后置共识层对适配层选出的区块进行后置共识,并得到后置共识最终确定性区块。
另外,本实施例仅仅是对本发明可插拔的区块链分层共识方法,所作的基本表述,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供方法,此处不再赘述。
实施例3:本领域的技术人员可以清楚地了解到上述实施例的***及方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,节点打包设备,或者网络设备等)执行本发明各个实施例所述的方法。
所以,本发明还提供了一种可插拔的区块链分层共识设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的可插拔的区块链分层共识程序,所述可插拔的区块链分层共识程序,配置有实现可插拔的区块链分层共识方法。
另外,本发明还提供一种存储介质,所述存储介质上存储有可插拔的区块链分层共识程序。
由于,在现实情况中,在部署设备或程序时,某个程序的运行可以是实行所有步骤,也可以是只实行某一步骤,并通过多个程序配合来实现全部步骤,
所以,所述可插拔的区块链分层共识程序,在被执行时,实现可插拔的区块链分层共识方法中的全部或某一流程。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。
Claims (8)
1.可插拔的区块链分层共识方法,其特征在于,包括以下步骤:S1.前置共识层选择共识方式进行前置共识,获得前置共识区块;S2.适配层根据不同前置共识产生的块,依据所选前置共识的性质,选择该前置共识产生的某一或某些区块,作为后置共识层的输入;S3.后置共识层对适配层选出的区块进行后置共识,并得到后置共识最终确定性区块。
2.根据权利要求1所述的可插拔的区块链分层共识方法,其特征在于,步骤S3中后置共识为非开放确定性共识。
3.根据权利要求1所述的可插拔的区块链分层共识方法,其特征在于,步骤S1中,若需要去中心化程度高,则前置共识层选择开放确定性共识或是开放概率性共识;若打包者决出方式已定,则选择非开放概率性共识;若由特殊节点出块,则选择非开放确定性共识。
4.根据权利要求1所述的可插拔的区块链分层共识方法,其特征在于,步骤S2中,前置共识得到的若是最终确定性区块,则适配层选择前置共识最终确定性区块,作为后置共识的输入;前置共识若是由主节点出块的共识,且得到的是概率确定性区块,则适配层选择当轮或者规则允许范围内的主节点打包的区块,作为后置共识的输入;前置共识若是没有主节点,所有人都可参与的共识,且得到的是概率确定性区块,则适配层等待特定的时间或是等待特定个区块后,选择最新的前置共识最终确定性区块,作为后置共识的输入。
5.可插拔的区块链分层共识***,其特征在于,包括:
前置共识层模块,所述前置共识层模块用于选择共识方式进行前置共识,获得前置共识区块;
适配层模块,所述适配层模块用于根据适配方法,选择相应前置共识产生的区块,作为后置共识层的输入;
后置共识层模块,所述后置共识层模块用于对适配层选出的区块进行后置共识。
6.根据权利要求5所述的可插拔的区块链分层共识***,其特征在于,所述后置共识层模块通过非开放确定性共识,对适配层选出的区块进行后置共识,得到后置共识最终确定性区块。
7.可插拔的区块链分层共识设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的可插拔的区块链分层共识程序,所述可插拔的区块链分层共识程序,配置有实现如权利要求1至4中任一项所述的可插拔的区块链分层共识方法。
8.存储介质,其特征在于,所述存储介质上存储有可插拔的区块链分层共识程序,所述可插拔的区块链分层共识程序,在被执行时,实现如权利要求1至4中任一项所述的可插拔的区块链分层共识方法中的全部或某一流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210069079.8A CN114090306B (zh) | 2022-01-21 | 2022-01-21 | 可插拔的区块链分层共识方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210069079.8A CN114090306B (zh) | 2022-01-21 | 2022-01-21 | 可插拔的区块链分层共识方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114090306A CN114090306A (zh) | 2022-02-25 |
CN114090306B true CN114090306B (zh) | 2022-04-19 |
Family
ID=80309268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210069079.8A Active CN114090306B (zh) | 2022-01-21 | 2022-01-21 | 可插拔的区块链分层共识方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090306B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
CN111130875A (zh) * | 2019-12-20 | 2020-05-08 | 上海优扬新媒信息技术有限公司 | 一种区块链的共识方法、装置、设备及存储介质 |
CN112492016A (zh) * | 2020-11-23 | 2021-03-12 | 北京微芯区块链与边缘计算研究院 | 一种跨进程可扩展的共识方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107040585B (zh) * | 2017-02-22 | 2020-06-19 | 创新先进技术有限公司 | 一种业务校验的方法及装置 |
CN108847925B (zh) * | 2018-06-20 | 2020-09-15 | 深圳大学 | 一种基于树状结构的分片区块链生成方法 |
-
2022
- 2022-01-21 CN CN202210069079.8A patent/CN114090306B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
CN111130875A (zh) * | 2019-12-20 | 2020-05-08 | 上海优扬新媒信息技术有限公司 | 一种区块链的共识方法、装置、设备及存储介质 |
CN112492016A (zh) * | 2020-11-23 | 2021-03-12 | 北京微芯区块链与边缘计算研究院 | 一种跨进程可扩展的共识方法及*** |
Non-Patent Citations (1)
Title |
---|
基于区块链技术的通证模型的设计与分析;巫光福;《计算机科学》;20201231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114090306A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110868438B (zh) | 一种区块链网络*** | |
EP3676778B1 (en) | Constraints on inputs of an unlocking transaction in a blockchain | |
Mostéfaoui et al. | Signature-free asynchronous Byzantine consensus with t< n/3 and O (n2) messages | |
CN108200203B (zh) | 基于双层网络的区块链*** | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN109857580B (zh) | 区块链跨链合约调用方法、装置及存储介质 | |
CN111080449A (zh) | 区块链的跨链交易方法、管理节点、区块链网络 | |
CN112163950A (zh) | 一种方便扩展、节点资源复用的区块链链网构建方法、***及终端设备 | |
CN110766410B (zh) | 基于默克尔树的可信跨链事件构造与验证方法和设备 | |
CN110599166A (zh) | 一种区块链内获取交易依赖关系的方法及装置 | |
CN112486518B (zh) | 共识算法装配方法及装置 | |
CN114090306B (zh) | 可插拔的区块链分层共识方法、***、设备及存储介质 | |
CN109560961B (zh) | 一种基于叠加提高可用性的虚拟网络服务链部署方法 | |
CN111935026B (zh) | 一种数据传输方法、装置、处理设备及介质 | |
CN116957313A (zh) | 基于区块链的流程管理方法、区块链节点和服务器 | |
CN112766455A (zh) | 一种学习模型训练方法和*** | |
CN109933407B (zh) | 区块链dapp虚拟机、数据处理方法和计算设备 | |
Shneidman et al. | Using redundancy to improve robustness of distributed mechanism implementations | |
CN114785800B (zh) | 跨链通信方法、装置、存储介质及计算设备 | |
CN110489151A (zh) | 一种终端升级方法及*** | |
CN110502218B (zh) | 智能合约开发方法、装置、计算机设备及存储介质 | |
CN113850578A (zh) | 基于账户链和守护链的dag结构下的链上价值流转方法、***、设备及存储介质 | |
CN116361203A (zh) | 内存分配方法及装置、电子设备、计算机可读介质 | |
Liu et al. | Robust liveness-enforcing supervisor for Petri nets with unreliable resources based on mixed integer programming | |
Moser et al. | Population-ACO for the automotive deployment problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |