CN107688945B - 一种基于延迟状态共识的高效许可链的设计方法 - Google Patents
一种基于延迟状态共识的高效许可链的设计方法 Download PDFInfo
- Publication number
- CN107688945B CN107688945B CN201710684961.2A CN201710684961A CN107688945B CN 107688945 B CN107688945 B CN 107688945B CN 201710684961 A CN201710684961 A CN 201710684961A CN 107688945 B CN107688945 B CN 107688945B
- Authority
- CN
- China
- Prior art keywords
- block
- root
- consensus
- state
- transaction
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Character Discrimination (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于延迟状态共识的高效许可链的设计方法,该区块链中,异步处理交易排序及共识、状态计算的操作,每个节点使用一个进程进行交易排序及共识,另一个进程进行状态计算,使这两类耗时操作都可以完全地独立利用出块间隔时间,而不是串行处理共用出块间隔时间。并且在交易量大的峰值期,如果状态计算跟不上,可以先对交易列表进行打包和共识,状态共识可以延后不止一个区块,最大限度地提高了区块链的计算能力和吞吐量。
Description
技术领域
本发明在原有区块链模型的基础之上,讨论了在许可链情境下,如何处理交易排序、状态计算和状态共识的顺序问题,以求最大限度地提高区块链的计算能力和吞吐量。
背景技术
区块链是一种新的分布式技术,用户发起一个个的交易,出块节点验证交易的合法性,并将交易排序并打包成块后,广播给其他节点进行共识。目前的区块链***是同步进行交易排序和状态共识的,均在一个块内达成。
比特币的区块只存储交易列表,而未花费货币列表作为全链的状态并没有在区块里有一个显示的记录。出块人打包交易时,校验的范围包括交易签名,还包括该交易的输入是否在全链的状态里,如果是未花费货币则为合法交易,并打包交易并广播。其他节点保留了同样的本地未花费货币列表,做同样的校验,并修改本地状态。区块的交易排序,状态计算和状态共识是同步的,在一个区块内完成。
以太坊的区块存储了交易列表,回执root,最新状态root。以太坊的出块节点在打包交易时,逐个验证交易的签名,并计算用户的余额是否足够进行转账和支付手续费,如果满足则加入区块中,并修改本地的状态,最终将回执和最新状态进行Merkle PatriciaTree的存证处理生成两个root存储于当前块中,并广播给其他节点验证。其他节点根据待验证块的交易列表和自己本地的状态,进行计算,比对回执root和最新状态root,如果一致则为合法区块。区块的交易排序,状态计算和状态共识也是同步的,在一个区块内完成。
目前的公有链一般存在一定的出块时间间隔,比如以太坊就是15秒左右,但如果是同步的交易排序和状态共识,那么出块节点需要在这15秒期间,首先花费一半的时间验证其他出块节点广播过来的区块链,再在这一区块的基础上花费一半的时间计算下一个新区块。如果是许可链,则可能还不到一半的时间,因为多轮投票共识还需要消耗很多网络时间,所以单个区块的计算时间大概只有出块间隔的三分之一。
在公有链的情境下,如果节点只是简单验证签名就打包交易,而不进行状态计算,则可能会有很多无效的交易被打包入块,比如余额不足以支付计算消耗的手续费等。而许可链情境下,用户均有实际身份,而且***内有简化的余额模型和计算消耗模型,不会出现大规模恶意发送无效交易的情况,所以可以将交易不经过计算直接打包入区块,将计算通过异步的情况完成,但如果不进行状态共识,又无法保证节点间状态的一致,所以可以采用延后共识的方法,将状态root记录在后面的区块中。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于延迟状态共识的高效许可链。
本发明的目的是通过以下技术方案实现的:一种基于延迟状态共识的高效许可链,所述区块链中,异步处理交易排序及共识、状态计算的操作,每个节点使用一个进程进行交易排序及共识,另一个进程进行状态计算,
其中,所述交易排序的步骤如下:
步骤1:将所需的数据置入创世块中,生成创世块状态root_0,许可链从创世块启动。
步骤2:所有节点生成本地空状态列表root_list,用于存放已经完成计算的状态,同步创世块后,将root_list中的第一个元素root_list[0]设置为root_0,并设置当前已完成共识的高度consensus_h为0。
步骤3:用户发送交易,签名后广播给共识节点。
步骤4:出块节点将出高度为H(H≥1)的区块时,首先收集用户交易,验证交易的用户权限和交易签名,但不进行计算,直接打包进区块中,并取出root_list中下标(该下标指列表root_list中的元素从0开始的序号)大于等于consensus_h的状态子列表root_delta(可以为空),将root_delta作为前序状态也放置于块中。
步骤5:出块节点签名高度为H的区块并广播给其他的节点,并将consensus_h设置为H。
区块共识的步骤如下:
步骤1:节点在收到广播的高度为H的区块时,首先验证区块内交易的用户权限和交易签名,并从自己root_list中取出下标大于等于consensus_h的区块根组成的一个子集root_delta’, 若root_delta’元素个数小于收到的区块中root_delta的元素个数,则等待一定时间后重取。
步骤2:节点比对root_delta’和root_delta的所有状态,如果一致,则表示状态共识验证通过,将该区块作为合法区块进行后续投票等操作,并设置consensus_h为H。
进一步地,所述状态计算的方法如下:
步骤1:所有节点监听共识完成后的新区块,若收到这样的区块,即将该区块放入等待计算的队列中,并按区块高度逐一递增的顺序进行计算。
步骤2:节点每计算完一个区块后,就将最新的状态添加到root_list的队尾。并更新状态高度state_h,并将该区块从等待计算的队列中删除。
本发明的有益效果在于:本发明异步处理交易排序,状态计算和状态共识的操作,使节点可以使用一个进程consensus进行交易排序和对历史块状态的共识,另一个进程chain进行状态计算,使这两类耗时操作都可以完全地独立利用出块间隔时间,而不是串行处理地共用出块间隔时间。并且在交易量大的峰值期,如果状态计算跟不上,可以先对交易列表进行打包和共识,状态共识可以延后不止一个区块,最大限度地提高区块链的计算能力和吞吐量。
附图说明
图1为高效许可链的架构图;
图2为延迟共识的示意图。
具体实施方式
区块链中的每一个节点会进行如下两个进程:
1.交易排序和对历史块状态共识的进程consensus:对新交易进行排序、验证、打包出块,并广播给其他节点,其他节点进行状态共识。共识高度记为consensus_h,即当前节点已完成共识的区块链的高度。具体如下:
(1)交易排序:
步骤1:将所需的数据置入创世块中,生成创世块状态root_0,许可链从创世块启动。
步骤2:所有节点生成本地空状态列表root_list,用于存放已经完成计算的状态,同步创世块后,将root_list中的第一个元素root_list[0]设置为root_0,并设置当前已完成共识的高度consensus_h为0。
步骤3:用户发送交易,签名后广播给共识节点。
步骤4:出块节点将出高度为H(H≥1)的区块时,首先收集用户交易,验证交易的用户权限和交易签名,但不进行计算,直接打包进区块中,并取出root_list中下标(该下标指列表root_list中的元素从0开始的序号)大于等于consensus_h的状态子列表root_delta(可以为空),将root_delta作为前序状态也放置于块中。
步骤5:出块节点签名高度为H的区块并广播给其他的节点,并将consensus_h设置为H。
(2)对历史块状态的共识:
步骤1:节点在收到广播的高度为H的区块时,首先验证区块内交易的用户权限和交易签名,并从自己root_list中取出下标大于等于consensus_h的区块根组成的一个子集root_delta’, 若root_delta’元素个数小于收到的区块中root_delta的元素个数,则等待一定时间后重取。
步骤2:节点比对root_delta’和root_delta的所有状态,如果一致,则表示状态共识验证通过,将该区块作为合法区块进行后续投票等操作,并设置consensus_h为H。
2.计算进程chain: 收到共识完的新块,并对新区块逐一进行状态计算,将计算后得出的状态放入状态列表root_list中的队尾。root_list的长度即状态高度state_h。具体流程如下:
步骤1:所有节点监听共识完成后的新区块,若收到这样的区块,即将该区块放入等待计算的队列中,并按区块高度逐一递增的顺序进行计算。
步骤2:节点每计算完一个区块后,就将最新的状态添加到root_list的队尾。并更新状态高度state_h,并将该区块从等待计算的队列中删除。
如图2所示,在某一特定时刻下,状态高度state_h往往会比共识高度consensus_h延后。如按照图2的例子,在T1时刻,已完成共识的高度为1,状态高度为0,即状态共识延迟了1个高度;在T2时刻,已完成共识的高度为3,状态高度为2,即状态共识延迟了1个高度;在T3时刻,已完成共识的高度为4,状态高度为2,即状态共识延迟了2个高度。
下面结合实施例对本发明作进一步说明。
1.交易排序及共识进程:
节点Node A: 当前consensus_h为2,收到新交易通知,执行以下步骤:
(1) 收集新交易、交易排序、验证,但不做状态计算。
(2)出高度为3的新块blk_3, 设置blk_3的前序状态root_delta, root_delta为root_list中下标大于等于2的元素组成的子列表,根据root_list的进度快慢,可分析如下不同情形:
root_list | root_delta |
[root_0,root_1,root_2] | [root_2] |
[root_0,root_1] | 空 |
[root_0] | 空 |
(3)广播给别的节点,并更新consensus_h为3
节点Node B:当前consensus_h为2,收到广播的blk_3,假定blk_3中的前序状态为[root_2]。执行以下步骤:
(1)验证区块,并从本地root_list中取出下标大于等于3的状态构成本地的root_delta’。
(2)将root_delta’与blk_3中的root_delta做比对,可分析如下不同情形:
2.计算进程:
节点Node I,当前的root_list为[root_0,root_1],收到共识完成的新块blk2,blk3,执行以下步骤:
(1)计算blk2,得到新状态root_2,加入root_list中。
(2)计算blk3,得到新状态root_3,加入root_list中。
Claims (2)
1.一种基于延迟状态共识的许可链的设计方法,其特征在于,区块链中,异步处理交易排序及共识、状态计算的操作,每个节点使用一个进程进行交易排序及共识,另一个进程进行状态计算;
其中,交易排序的步骤如下:
步骤1:将所需的数据置入创世块中,生成创世块状态root_0,许可链从创世块启动;
步骤2:所有节点生成本地空状态列表root_list,用于存放已经完成计算的状态,同步创世块后,将root_list中的第一个元素root_list[0]设置为root_0,当前已完成共识的高度consensus_h为0;
步骤3:用户发送交易,签名后广播给共识节点;
步骤4:出块节点将出高度为H的区块时,其中H≥1,首先收集用户交易,验证交易的用户权限和交易签名,但不进行计算,直接打包进区块中,并取出root_list中下标,该下标指列表root_list中的元素从0开始的序号,大于等于consensus_h的状态子列表root_delta,root_delta可以为空,将root_delta作为前序状态也放置于块中;
步骤5:出块节点签名高度为H的区块并广播给其他的节点,并将consensus_h设置为H;
区块共识的步骤如下:
步骤1:节点在收到广播的高度为H的区块时,首先验证区块内交易的用户权限和交易签名,并从自己root_list中取出下标大于等于consensus_h的区块根组成的一个子集root_delta’, 若root_delta’元素个数小于收到的区块中root_delta的元素个数,则等待一定时间后重取;
步骤2:节点比对root_delta’和root_delta的所有状态,如果一致,则表示状态共识验证通过,将该区块作为合法区块进行后续投票操作,并设置consensus_h为H。
2.根据权利要求1所述设计方法,其特征在于,所述状态计算的方法如下:
步骤1:所有节点监听共识完成后的新区块,若收到这样的区块,即将该区块放入等待计算的队列中,并按区块高度逐一递增的顺序进行计算;
步骤2:节点每计算完一个区块后,就将最新的状态添加到root_list的队尾;并更新状态高度state_h,并将该区块从等待计算的队列中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710684961.2A CN107688945B (zh) | 2017-08-11 | 2017-08-11 | 一种基于延迟状态共识的高效许可链的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710684961.2A CN107688945B (zh) | 2017-08-11 | 2017-08-11 | 一种基于延迟状态共识的高效许可链的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107688945A CN107688945A (zh) | 2018-02-13 |
CN107688945B true CN107688945B (zh) | 2020-04-10 |
Family
ID=61153312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710684961.2A Active CN107688945B (zh) | 2017-08-11 | 2017-08-11 | 一种基于延迟状态共识的高效许可链的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107688945B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765142B (zh) * | 2018-03-29 | 2020-07-31 | 深圳市网心科技有限公司 | 电子装置、多区块链整合控制方法和计算机可读存储介质 |
CN108512775A (zh) * | 2018-04-16 | 2018-09-07 | 杭州秘猿科技有限公司 | 一种排序交易队列的方法及装置 |
CN110473088B (zh) * | 2018-05-09 | 2022-06-03 | 本无链科技(深圳)有限公司 | 一种基于区块链的波段式数据处理方法及*** |
CN110569395B (zh) * | 2018-05-18 | 2024-07-23 | 北京天德科技有限公司 | 一种稳定可靠的区块链拜占庭共识流程设计方法 |
CN109101662B (zh) * | 2018-09-18 | 2021-05-14 | 百度在线网络技术(北京)有限公司 | 区块生成方法、装置、设备及存储介质 |
CN109636389B (zh) * | 2018-12-13 | 2020-09-22 | 东软集团股份有限公司 | 区块链出块时间的确定方法、装置、设备及存储介质 |
WO2020172881A1 (zh) * | 2019-02-28 | 2020-09-03 | 云图有限公司 | 区块生成方法、装置、计算机设备和存储介质 |
KR102354776B1 (ko) | 2019-03-04 | 2022-01-25 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 트랜잭션 데이터를 처리를 위해 블록체인 시스템에 제공하기 위한 방법 및 디바이스 |
CN110189161B (zh) * | 2019-04-26 | 2022-06-17 | 华中科技大学 | 用于实现营销标签共享的区块链共识方法及*** |
CN110245956B (zh) * | 2019-05-15 | 2022-07-05 | 众安信息技术服务有限公司 | 一种基于异步多链的区块链交易确认方法及*** |
CN110517029B (zh) * | 2019-08-29 | 2024-02-23 | 深圳市迅雷网络技术有限公司 | 区块链跨链交易验证的方法、装置、设备及区块链*** |
CN110659988B (zh) * | 2019-09-10 | 2022-11-18 | 杭州秘猿科技有限公司 | 区块链共识与执行的并行处理方法、装置和电子设备 |
CN110648136B (zh) * | 2019-09-10 | 2022-06-03 | 杭州秘猿科技有限公司 | 共识与交易同步的并行处理方法、装置和电子设备 |
CN111523895A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
CN112417038B (zh) * | 2020-11-10 | 2021-07-13 | 深圳百纳维科技有限公司 | 一种基于海洋运输的异步区块构造方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞***产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及*** |
CN106920167A (zh) * | 2017-02-24 | 2017-07-04 | 北京航空航天大学 | 一种基于p2p金融的区块链机制与共识算法 |
CN106936589A (zh) * | 2017-04-21 | 2017-07-07 | 杭州秘猿科技有限公司 | 一种无中心的许可链平行分片方法及交易方法 |
CN107017992A (zh) * | 2017-03-29 | 2017-08-04 | 杭州秘猿科技有限公司 | 一种基于双链结构的高性能联盟区块链 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140408A1 (en) * | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
-
2017
- 2017-08-11 CN CN201710684961.2A patent/CN107688945B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106920167A (zh) * | 2017-02-24 | 2017-07-04 | 北京航空航天大学 | 一种基于p2p金融的区块链机制与共识算法 |
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞***产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及*** |
CN107017992A (zh) * | 2017-03-29 | 2017-08-04 | 杭州秘猿科技有限公司 | 一种基于双链结构的高性能联盟区块链 |
CN106936589A (zh) * | 2017-04-21 | 2017-07-07 | 杭州秘猿科技有限公司 | 一种无中心的许可链平行分片方法及交易方法 |
Non-Patent Citations (1)
Title |
---|
"基于区块链的应用***开发方法研究";蔡维德;《软件学报》;20170222;第1474-1486页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107688945A (zh) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688945B (zh) | 一种基于延迟状态共识的高效许可链的设计方法 | |
CN109102120B (zh) | 复杂场景下基于区块链的能源***优化方法 | |
CN111629039B (zh) | 一种区块链共识方法及客户端、背书节点、排序节点 | |
CN108269090B (zh) | 基于无协商随机抽签的用于区块链***的共识方法和装置 | |
CN111726303B (zh) | 一种流量控制方法、装置以及计算设备 | |
CN109889397B (zh) | 抽签方法、区块生成方法、设备及存储介质 | |
CN110737664A (zh) | 一种区块链节点同步的方法及装置 | |
CN111130790B (zh) | 基于区块链节点网络的共识出块方法 | |
CN113822672B (zh) | 一种基于零知识证明的区块链共识方法 | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN111670564B (zh) | 一种信息处理方法及区块链节点 | |
CN113114496A (zh) | 一种基于分片技术的区块链可扩展性问题解决方法 | |
CN114265898A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN113568974A (zh) | 基于区块链***的分片共识方法、设备以及可读存储介质 | |
CN110855475B (zh) | 一种基于区块链的共识资源切片方法 | |
CN117745433B (zh) | 基于改进pbft共识机制的能源区块链节点共识方法 | |
CN114745131A (zh) | 一种区块链的pbft改进共识算法 | |
CN114219650A (zh) | 一种低交易延迟的区块链共识方法 | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 | |
CN110473088B (zh) | 一种基于区块链的波段式数据处理方法及*** | |
CN111445329A (zh) | 一种区块链交易处理方法及*** | |
CN114297680A (zh) | 一种用于物联网环境的区块链跨链共识方法和*** | |
CN116401071B (zh) | 一种用于边缘计算的资源分配方法及*** | |
CN115118436B (zh) | 区块链共识方法及装置、存储介质及电子设备 | |
CN116055064B (zh) | 区块链分片中多区块同时共识方法、***、介质及设备 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200324 Address after: 310012 no.1001, 10 / F, block a, Huaxing Times Square, No.478, Wensan Road, Xihu District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Xita Technology Co.,Ltd. Address before: 310013 Huaxi times square A, No. 478, Wensanlu Road, Hangzhou, Xihu District, Zhejiang 702 Applicant before: CRYPTAPE Co.,Ltd. |