CN108241968B - 前置机参与区块链共识的方法 - Google Patents
前置机参与区块链共识的方法 Download PDFInfo
- Publication number
- CN108241968B CN108241968B CN201710185465.2A CN201710185465A CN108241968B CN 108241968 B CN108241968 B CN 108241968B CN 201710185465 A CN201710185465 A CN 201710185465A CN 108241968 B CN108241968 B CN 108241968B
- Authority
- CN
- China
- Prior art keywords
- data
- height
- consensus
- transaction
- block
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000012795 verification Methods 0.000 claims abstract description 19
- 238000005192 partition Methods 0.000 claims description 23
- 239000012634 fragment Substances 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000012856 packing Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000007547 defect Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
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/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了前置机参与区块链共识的方法。前置机取2/3及以上的共识节点的最大高度H,加1作为最新的区块高度,将新的交易数据发送给其他所有的共识节点,共识节点验证后将验证结果发送给其他所有的共识节点,通过投票共识后,各共识节点再将达成共识的新区块发送给前置节点,前置节点将未写入区块的交易数据以更新的高度发送给共识节点。
Description
技术领域
本发明涉及区块链技术。
背景技术
现有区块链技术数据传输冗余多,共识效率低。
发明内容
为了克服上述现有技术的不足,本发明提供了一种前置机参与区块链的共识方法,通过分区分片的前置机来接收交易数据,可保证在受攻击的情况下,有多个通道能进入共识节点,共识节点只需接收前置机发送经过验证的交易数据,而共识节点之间只需要传输验证结果即可,大幅度减少数据传输及提高区块链共识的效率。
本发明所采用的技术方案是:
1、前置机参与区块链共识的方法,区块链生成新区块的步骤如下;
步骤S1,前置机取2/3及以上的共识节点的最大高度H,加1作为最新的区块高度;
步骤S2,前置机接收交易指令,验证交易签名是否正确及是否符合交易条件,如支付不能超过该支付地址余额,验证通过后附加步骤S1确定的区块高度H+1,签名后发送给其他所有的共识节点,前置机在确定新的H+1高度作为本轮共识的区块高度,可以约定一个超时时间t1,超过超时时间后不再以H+1区块高度发送交易数据;
步骤S3,若共识节点验证交易签名符合条件,则将验证结果发送给其他所有的共识节点,共识节点收到H+1高度的第一个数据后,约定一个超时时间t2,超过超时时间后不再接收任何H+1高度的数据;
步骤S4,每个共识节点收到其他节点发过来的验证结果,累计投票,达到一定的票数后,生成高度为H+1的新区块,新的H+1区块头哈希计算时包含前一高度为H的区块的头哈希值;
步骤S5,每个共识节点将高度为H+1新区块发送到前置节点,可包括余额状态信息;
步骤S6,前置机比较出已发送的H+1高度的交易数据中未被写入共识区块H+1的交易数据,作为H+2高度的数据,连同新收到的数据发送给所有的共识节点,可规定每个区块发送数据的上限,超过上限的交易数据会归到H+3高度的数据等到下一轮发送。
2、前置机可将支出地址分区,如支付地址的前二位00、01、10、11分4个区,每个支付地址分区后再将交易哈希分片,按附图2步骤如下;
步骤S1,用户将交易发送给支付账户地址的分区所在的那些前置机,每台前置机可以规定每个区块高度传送的最大笔数,分区用户数量越多分配的前置机越多,可按交易哈希值来对用户数量的级别来取模,比如北京3台前置机,每个北京支付地址的交易,根据不同的交易哈希值取3的模,可以对应不同的前置机,即使部分前置机损坏或被攻击,用户还可以变换交易哈希值通过其他前置机进入区块链共识节点;
步骤S2,每个支出地址分区下的交易哈希分片的交易数据都是完全独立的,在对签名进行校验及正确计算余额后,可依次或按同一高度的数据打包发送给所有的区块链共识节点;
步骤S3,所有的共识节点收到所有前置机发送的同一高度的但完全独立的交易数据,可以多线程校验及计算余额,可以将分区分片的交易结果分送给其他所有的共识节点进行投票,若共识节点的验证结果和前置机验证结果一致,再加一个本共识节点的私钥签名即可,若有不一致的数据,则需要剔除,将剔除的数据及共识结果的哈希值传送给其他共识节点,以便对比投票;
步骤S4,共识节点对分区分片的数据分别投票达成共识结果后,打包发给对应的分片前置节点,分片前置节点对该分片的数据对比后,把前次已发送但未写入区块的数据再次验证,通过验证的交易数据按下一个高度发送给所有的共识节点。
3、对于每个高度传送交易数据的时候,把交易哈希值的某几位写入位图表,让用户同时提供不同的交易哈希值,前置机选一个使之不与其他交易的位图重叠,或者放入后面或后面几个区块高度的位图表,前置机可以按位图表的位置来放置各交易哈希值,并计算梅克尔树的哈希值,前置机把数据传送给共识节点后,可以通过位图表和梅克尔树的哈希值快速对比数据的一致性,获取遗漏数据,或剔除不一致的数据。
与现有技术相比,本发明的有益效果是通过分区分片的前置机来接收交易数据,可保证在受攻击的情况下,有多个通道能进入共识节点,共识节点只需接收前置机发送经过验证的交易数据,而共识节点之间只需要传输验证结果即可,大幅度提高共识效率。
附图说明
图1为前置机参与区块链共识方法的说明图;
图2为前置机分区和分片验证和传输交易数据的说明图。
具体实施方式
下面结合附图1和附图2对本发明进一步说明。
前置机可将支出地址分区,如支付地址的前二位00、01、10、11分4个区,每个支付地址分区后再将交易哈希分片,如附图2,北京(3个前置机)、上海(4个前置机)、杭州(2个前置机)、深圳(3个前置机);
步骤S1,用户将交易发送给支付账户地址的分区所在的那些前置机,每台前置机可以规定每个区块高度传送的最大笔数,分区用户数量越多分配的前置机越多,可按交易哈希值来对用户数量的级别来取模,比如北京3台前置机,每个北京支付地址的交易,根据不同的交易哈希值取3的模,可以对应不同的前置机,即使部分前置机损坏或被攻击,用户还可以变换交易哈希值通过其他前置机进入区块链共识节点;
步骤S2,前置机取2/3及以上的共识节点的最大高度H,加1作为最新的区块高度,前置机接收交易指令,验证交易签名是否正确及是否符合交易条件,如支付不能超过该支付地址余额,验证通过后附加区块高度H+1,签名后发送给其他所有的共识节点,前置机在确定新的H+1高度作为本轮共识的区块高度,可以约定一个超时时间t1,超过超时时间后不再以H+1区块高度发送交易数据;每个支出地址分区下的交易哈希分片的交易数据都是完全独立的,在对签名进行校验及正确计算余额后,可依次或按同一高度的数据打包发送给所有的区块链共识节点;
步骤S3,所有的共识节点A、B、C收到所有前置机发送的同一高度H+1的但完全独立的交易数据,可以多线程校验及计算余额汇总,可以将分区分片的交易结果分送给其他所有的共识节点进行投票,若共识节点的验证结果和前置机验证结果一致,再加一个本共识节点的私钥签名即可,若有不一致的数据,则需要剔除,将剔除的数据及共识结果的哈希值传送给其他共识节点,以便对比投票,共识节点收到H+1高度的第一个数据后,约定一个超时时间t2,超过超时时间后不再接收任何H+1高度的数据;
步骤S4,每个共识节点收到其他节点发过来的验证结果,累计投票,达到一定的票数后,生成高度为H+1的新区块,新的H+1区块头哈希计算时包含前一高度为H的区块的头哈希值,共识节点对分区分片的数据分别投票达成共识结果后,打包发给对应的分片前置节点,可包括余额状态信息。
步骤S5,分片前置节点对该分片的数据对比后,把前次已发送但未写入区块的数据再次验证,通过验证的交易数据按下一个高度发送给所有的共识节点,对于每个高度传送交易数据的时候,把交易哈希值的某几位写入位图表,让用户同时提供不同的交易哈希值,前置机选一个使之不与其他交易的位图重叠,或者放入后面或后面几个区块高度的位图表,前置机可以按位图表的位置来放置各交易哈希值,并计算梅克尔树的哈希值,前置机把数据传送给共识节点后,可以通过位图表和梅克尔树的哈希值快速对比数据的一致性,获取遗漏数据,或剔除不一致的数据。
前置机比较出已发送的H+1高度的交易数据中未被写入共识区块H+1的交易数据,作为H+2高度的数据,连同新收到的数据发送给所有的共识节点,可规定每个区块发送数据的上限,超过上限的交易数据会归到H+3高度的数据等到下一轮发送。
本发明的目的是引入前置机对共识交易数据进行分区分片预处理,将校验过的数据再发送到共识服务器,共识服务器之间主要传送共识结果。
本方法较好地分散了处理交易数据的负荷,提高了区块链的共识效率。
Claims (3)
1.前置机参与区块链共识的方法,其特征在于,区块链生成新区块的步骤如下:
步骤S1,前置机取2/3及以上的共识节点的最大高度H,加1作为最新的区块高度;
步骤S2,前置机接收交易指令,验证交易签名是否正确及是否符合交易条件,验证通过后附加步骤S1确定的区块高度H+1,签名后发送给其他所有的共识节点,前置机在确定新的H+1高度作为本轮共识的区块高度,约定一个超时时间t1,超过超时时间后不再以H+1区块高度发送交易数据;其中,所述是否符合交易条件包括:支付金额是否不超过该支付地址余额;
步骤S3,若共识节点验证交易签名符合条件,则将验证结果发送给其他所有的共识节点,共识节点收到H+1高度的第一个数据后,约定一个超时时间t2,超过超时时间后不再接收任何H+1高度的数据;
步骤S4,每个共识节点收到其他节点发过来的验证结果,累计投票,达到一定的票数后,生成高度为H+1的新区块,新的H+1区块头哈希计算时包含前一高度为H的区块的头哈希值;
步骤S5,每个共识节点将高度为H+1新区块发送到前置机,包括余额状态信息;
步骤S6,前置机比较出已发送的H+1高度的交易数据中未被写入共识区块H+1的交易数据,作为H+2高度的数据,连同新收到的数据发送给所有的共识节点,规定每个区块发送数据的上限,超过上限的交易数据会归到H+3高度的数据等到下一轮发送。
2.根据权利要求1所述的前置机参与区块链共识的方法,其特征在于,前置机将支出地址分区,每个支付地址分区后再将交易哈希分片;其中,所述前置机将支出地址分区包括:根据支付地址的前二位分为4个区00、01、10、11;所述前置机将支出地址分区,每个支付地址分区后再将交易哈希分片的步骤如下:
步骤S1,用户将交易发送给支付账户地址的分区所在的那些前置机,每台前置机规定每个区块高度传送的最大笔数,分区用户数量越多分配的前置机越多,按交易哈希值来对用户数量的级别来取模以对应不同的前置机,即使部分前置机损坏或被攻击,用户变换交易哈希值通过其他前置机进入区块链共识节点;
步骤S2,每个支出地址分区下的交易哈希分片的交易数据都是完全独立的,在对签名进行校验及正确计算余额后,依次或按同一高度的数据打包发送给所有的区块链共识节点;
步骤S3,所有的共识节点收到所有前置机发送的同一高度的但完全独立的交易数据,多线程校验及计算余额,将分区分片的交易结果分送给其他所有的共识节点进行投票,若共识节点的验证结果和前置机验证结果一致,再加一个本共识节点的私钥签名即可,若有不一致的数据,则需要剔除,将剔除的数据及共识结果的哈希值传送给其他共识节点,以便对比投票;
步骤S4,共识节点对分区分片的数据分别投票达成共识结果后,打包发给对应的分片前置机,分片前置机对该分片的数据对比后,把前次已发送但未写入区块的数据再次验证,通过验证的交易数据按下一个高度发送给所有的共识节点。
3.根据权利要求1-2任一项所述的前置机参与区块链共识的方法,其特征在于,对于每个高度的区块在传送交易数据的时候,把交易哈希值的某几位写入位图表,让用户同时提供不同的交易哈希值,前置机选一个使之不与其他交易的位图重叠,或者放入后一个区块高度的位图表,或,后面几个区块高度的位图表,前置机按位图表的位置来放置各交易哈希值,并计算梅克尔树的哈希值,前置机把数据传送给共识节点后,通过位图表和梅克尔树的哈希值快速对比数据的一致性,获取遗漏数据,或剔除不一致的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710185465.2A CN108241968B (zh) | 2017-03-26 | 2017-03-26 | 前置机参与区块链共识的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710185465.2A CN108241968B (zh) | 2017-03-26 | 2017-03-26 | 前置机参与区块链共识的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241968A CN108241968A (zh) | 2018-07-03 |
CN108241968B true CN108241968B (zh) | 2020-08-14 |
Family
ID=62703132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710185465.2A Expired - Fee Related CN108241968B (zh) | 2017-03-26 | 2017-03-26 | 前置机参与区块链共识的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241968B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241279A (zh) * | 2017-06-22 | 2017-10-10 | 北京天德科技有限公司 | 一种基于多级缓冲队列的区块链交易限流方法 |
CN108985740B (zh) * | 2018-07-07 | 2021-08-06 | 夸克链科技(深圳)有限公司 | 高性能共识算法的实现方法 |
CN109408551B (zh) * | 2018-08-06 | 2021-07-06 | 杭州复杂美科技有限公司 | 数据查询方法及系统、共识方法及系统、设备和存储介质 |
CN109034807B (zh) * | 2018-08-15 | 2021-07-06 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
CN109410045B (zh) * | 2018-08-30 | 2020-08-14 | 杭州复杂美科技有限公司 | 一种平行链共识方法、设备和存储介质 |
CN109165945B (zh) * | 2018-09-07 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
CN108876384B (zh) * | 2018-09-19 | 2021-11-05 | 联动优势科技有限公司 | 一种交易数据的处理方法及装置 |
CN109379343B (zh) * | 2018-09-27 | 2020-12-18 | 福建福链科技有限公司 | 一种区块链的异构共识方法及终端 |
CN109274674B (zh) * | 2018-09-27 | 2021-03-23 | 福建福链科技有限公司 | 一种具有高安全性的区块链异构共识方法及终端 |
CN111047439B (zh) * | 2018-10-12 | 2024-05-14 | 北京邦天信息技术有限公司 | 一种基于区块链的交易处理方法 |
CN109377225A (zh) * | 2018-10-30 | 2019-02-22 | 杭州复杂美科技有限公司 | 交易分配方法、共识方法、设备和存储介质 |
CN109447804B (zh) * | 2018-10-30 | 2020-08-14 | 杭州复杂美科技有限公司 | 交易分流方法、设备和存储介质 |
CN109698750B (zh) * | 2018-11-08 | 2021-06-11 | 平安科技(深圳)有限公司 | 区块链的区块生成方法、装置、设备及可读存储介质 |
CN111182009B (zh) * | 2018-11-09 | 2023-06-20 | 北京天德科技有限公司 | 一种区块链交易消息多汇点分发的方法 |
CN109508295B (zh) * | 2018-11-14 | 2021-11-09 | 联动优势科技有限公司 | 区块链共识算法测试方法、装置、计算装置和存储介质 |
CN109685488A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 转账交易分片处理方法、设备和存储介质 |
CN111797168A (zh) * | 2020-07-09 | 2020-10-20 | 杭州复杂美科技有限公司 | 区块并行处理方法、设备和存储介质 |
CN113746638B (zh) * | 2021-09-03 | 2023-04-07 | 杭州复杂美科技有限公司 | Nft存储方法、nft还原方法、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180276269A1 (en) * | 2015-01-27 | 2018-09-27 | Clusterpoint Group Limited | Transaction processing in distributed database management system |
CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106504091B (zh) * | 2016-10-27 | 2018-06-29 | 深圳壹账通智能科技有限公司 | 区块链上交易的方法及装置 |
CN106529951A (zh) * | 2016-12-30 | 2017-03-22 | 杭州云象网络技术有限公司 | 一种联盟链网络下采用异步方式的节点共识验证方法 |
-
2017
- 2017-03-26 CN CN201710185465.2A patent/CN108241968B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN108241968A (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241968B (zh) | 前置机参与区块链共识的方法 | |
CN106548349B (zh) | 交易信息验证方法及系统 | |
CN109345388B (zh) | 区块链智能合约验证方法、装置及存储介质 | |
CN108961052B (zh) | 区块链数据的验证方法、存储方法、装置、设备和介质 | |
CN109542888B (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
WO2019019056A1 (zh) | 前置机参与区块链共识的方法 | |
WO2020191935A1 (zh) | 一种区块链跨链通信方法、系统、电子设备及存储介质 | |
US11526616B1 (en) | Method to verify the execution integrity of an application in a target device | |
CN110505305B (zh) | 一种区块链分片方法、装置及区块链系统 | |
WO2020173287A1 (en) | Systems and methods for determining network shards in blockchain network | |
KR101798119B1 (ko) | 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 | |
CN113553375B (zh) | 一种面向图式区块链的分片存储装置及方法 | |
CN109246176A (zh) | 软件定义网络中基于区块链的多控制器同步方法及装置 | |
CN110543488B (zh) | 一种验证节点更新方法、装置及设备 | |
CN111949672A (zh) | 一种支持物联网数据增量更新的区块链存储方法 | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
CN112398949B (zh) | 交易确认方法、系统、装置和计算机设备 | |
CN113888164A (zh) | 区块链交易池实现方法、装置、计算机设备和存储介质 | |
CN112487091A (zh) | 一种确定区块链共识节点的方法及装置 | |
CN113935070B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
CN112132574B (zh) | 区块链数据校验方法、数据处理方法、装置及设备 | |
CN111695885A (zh) | 基于减小交易输入的数字凭证区块链压缩方法 | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
CN111147477B (zh) | 一种基于区块链网络的验证方法及装置 | |
GB2577383A (en) | Method and device for obtaining a proof of work in a computer network |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200814 |