CN112132579A - 一种区块链共识节点更新方法及装置 - Google Patents
一种区块链共识节点更新方法及装置 Download PDFInfo
- Publication number
- CN112132579A CN112132579A CN202011060280.7A CN202011060280A CN112132579A CN 112132579 A CN112132579 A CN 112132579A CN 202011060280 A CN202011060280 A CN 202011060280A CN 112132579 A CN112132579 A CN 112132579A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- consensus node
- sub
- 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.)
- Granted
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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种区块链共识节点更新方法及装置,该方法包括主共识节点构造共识节点轮换交易,共识节点轮换交易包括可通过零知识证明进行验证的第一随机信息,发起针对共识节点轮换交易的共识流程,共识流程用于任一从共识节点对共识节点轮换交易中的第一随机信息进行验证,在确定共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换,第二数量小于等于第一数量。通过设定固定数量的共识委员节点,如此有助于提升共识算法的可扩展性,并基于第一随机信息确定主共识节点构造的共识委员节点轮换交易是否合法,如此可以确保共识委员节点轮换的安全性和不可预测性。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种区块链共识节点更新方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
目前区块链系统共识算法主要基于博弈论和分布式一致性原理,前者包括POW、POS,后者包括PBFT等共识算法。POW共识算法虽然可扩展性高,但交易确认时延很长(1个小时左右)、吞吐量低、耗电多、出块慢(10分钟出一个区块),因此不适用于交易吞吐量大、交易时延要求低的联盟链场景。POS共识算法虽然提升了共识效率、能耗低,并且降低了共识达成时间,但存在依赖参与方的权益、共识规则复杂、掺杂人为因素、易产生安全漏洞等问题,会导致区块链频繁硬分叉,因此同样不适用于无权益概念联盟链场景。Algorand、ontology等共识算法基于权益随机选取若干节点参与共识,能支撑大规模节点,但不适用于无权益的联盟链场景。
PBFT等基于分布式一致性原理的共识算法吞吐量高、不耗电、交易确认时延低达秒级、有最终一致性保证,性能可达到联盟链场景需求,且PBFT算法安全性高,可以解决拜占庭问题,因此适用于联盟链场景。然而PBFT共识算法网络复杂度高(与节点数目的平方成正比)、可支撑的网络规模有限,极大地限制了联盟链的节点规模。
综上,目前亟需一种区块链共识节点更新方法,用以提升共识算法的可扩展性,并可以确保共识节点轮换的安全性。
发明内容
本发明实施例提供了一种区块链共识节点更新方法及装置,用以提升共识算法的可扩展性,并可以确保共识节点轮换的安全性。
第一方面,本发明实施例提供了一种区块链共识节点更新方法,适用于设定有第一数量的共识节点的联盟链,所述方法包括:
主共识节点构造共识节点轮换交易;所述共识节点轮换交易包括可通过零知识证明进行验证的第一随机信息;
所述主共识节点发起针对所述共识节点轮换交易的共识流程;所述共识流程用于任一从共识节点对所述共识节点轮换交易中的所述第一随机信息进行验证;
所述主共识节点在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换;所述第二数量小于等于所述第一数量。
上述技术方案中,通过设定固定数量的共识委员节点,如此,共识算法网络复杂度与节点规模无关,有效地消除了节点规模对共识算法网络复杂度的影响,并有助于提升共识算法的可扩展性,使得联盟链系统可支撑更大节点规模,同时也有效地消除了多节点联合作恶的可能性。再通过构造包含有第一随机信息的共识节点轮换交易,以便从共识节点通过验证第一随机信息来确定主共识节点构造的共识委员节点轮换交易是否合法,如此可以确保共识委员节点轮换的安全性和不可预测性,并可以避免恶意节点随意生成对自己有利的随机数生成公私钥对导致的安全风险。并在确定共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换,如此可以确保随机公平地对共识委员节点进行轮换,从而可以实现对共识委员节点的安全轮换。
可选地,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述随机数证明通过如下方式生成,包括:
所述主共识节点确定最新区块的哈希值在椭圆曲线上对应的坐标点值;
所述主共识节点根据所述坐标点值和所述主共识节点的私钥生成所述第一子证明;
所述主共识节点根据随机数、随机数公钥及所述第一子证明,生成所述第二子证明;所述随机数公钥是基于所述主共识节点的私钥生成的;所述随机数是通过所述椭圆曲线选取的;
所述主共识节点根据所述随机数、所述第二子证明和所述主共识节点的私钥生成所述第三子证明。
可选地,根据公式(1)确定所述第一子证明:
gamma=hsk…………………………………………………………………………(1)
根据公式(2)确定所述第二子证明:
c=hash(g,h,verifiable_pk,gamma,gk,hk)………………………………(2)
根据公式(3)确定所述第三子证明:
s=(k-c*sk)mod q……………………………………………………………(3)
其中,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,sk为所述主共识节点的私钥,c为所述第二证明,g为所述椭圆曲线上的生成元,verifiable_pk为所述随机数公钥,k为所述随机数,s为所述第三子证明,q为所述椭圆曲线的大素数阶。
上述技术方案中,通过根据坐标点值和主共识节点的私钥生成第一子证明,并根据随机数、随机数公钥及第一子证明,生成第二子证明,如此可以有助于后续从共识节点根据第二子证明验证主共识节点是否存在恶意伪造随机数信息,并可以避免主共识节点随意生成对自己有利的随机数信息导致的安全风险,从而可以确保共识委员节点轮换的安全性和不可预测性。
可选地,所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名。
可选地,所述主共识节点构造共识节点轮换交易,包括:
所述主共识节点确定所述共识节点轮换交易的发起地址为所述主共识节点,所述共识节点轮换交易的目的地址为共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约;
所述主共识节点根据所述发起地址、所述目的地址和所述第一随机信息,构造所述共识节点轮换交易。
上述技术方案中,通过根据发起地址、目的地址和第一随机信息,来构造共识节点轮换交易,如此可以有助于后续从共识节点通过验证区块内共识节点轮换交易是否由主共识节点产生来确定识节点轮换交易是否合法,从而可以避免主共识节点恶意产生共识节点轮换交易以从中获利。
可选地,所述根据设定的替换策略,对第二数量的共识节点进行替换,包括:
所述主共识节点按照设定算法,更新各共识节点的第一排序及各验证节点的第二排序;各验证节点为所述联盟链中除各共识节点之外的节点;
所述主共识节点按照所述替换策略,将所述第一排序中的所述第二数量的共识节点替换为验证节点,并将所述第二排序中的所述第二数量的验证节点替换为共识节点。
上述技术方案中,通过按照替换策略,将第一排序中的第二数量的共识节点替换为验证节点,并将第二排序中的第二数量的验证节点替换为共识节点,如此可以确保对共识委员节点进行随机公平的轮换,并可以确保共识委员节点轮换的不可预测性,从而可以避免存在共识节点恶意不进行轮换的风险。
第二方面,本发明实施例提供了一种区块链共识节点更新方法,适用于设定有第一数量的共识节点的联盟链,所述方法包括:
从共识节点获取主共识节点发起的共识节点轮换交易;所述共识节点轮换交易包括第一随机信息;
所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的;
所述从共识节点在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
上述技术方案中,通过验证第一随机信息来确定共识节点轮换交易是否为主共识节点合法发起的,如此可以避免主共识节点随意生成对自己有利的随机数信息导致的安全风险,从而可以确保共识委员节点轮换的安全性。并在确定共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换,如此可以确保随机公平地对共识委员节点进行轮换,从而可以实现对共识委员节点的安全轮换。
可选地,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的,包括:
所述从共识节点根据所述第二子证明、所述第三子证明及随机数公钥,生成第一子验证;
所述从共识节点根据所述第一子证明、所述第二子证明及所述第三子证明生成第二子验证;
所述从共识节点根据所述第一子证明、所述随机数公钥、所述第一子验证和所述第二子验证,生成第三子验证;
所述从共识节点确定所述第三子验证与所述第二子证明是否相同,从而确定所述共识节点轮换交易是否为所述主共识节点合法发起的。
可选地,根据公式(4)确定所述第一子验证:
u=verifiable_pkc*gs…………………………………………………………(4)
根据公式(5)确定所述第二子验证:
v=gammac*hs…………………………………………………………………(5)
根据公式(6)确定所述第三子验证:
c′=hash(g,h,verifiable_pk,gamma,u,v)………………………………(6)
其中,u为所述第一子验证,verifiable_pk为所述随机数公钥,c为所述第二子证明,s为所述第三子证明,g为椭圆曲线上的生成元,v为所述第二子验证,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,c′为所述第三子验证。
上述技术方案中,通过根据第一子证明、第二子证明及第三子证明生成第二子验证,并根据第一子证明、随机数公钥、第一子验证和第二子验证,生成第三子验证,如此可以有助于从共识节点通过验证第三子验证是否与第二子证明相同,来确定随机数信息是否有效,从而可以避免主共识节点随意生成对自己有利的随机数信息导致的安全风险,并可以确保共识委员节点轮换的安全性和不可预测性。
可选地,所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名;
所述方法还包括:
所述从共识节点对所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名进行验证。
上述技术方案中,通过最新区块的哈希值、随机数公钥及主共识节点对随机数证明的签名进行验证,可以进一步验证共识节点轮换交易的合法性,从而可以确保共识委员节点轮换的安全性。
可选地,所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的之前,还包括:
所述从共识节点确定所述共识节点轮换交易的发起地址是所述主共识节点,且所述共识节点轮换交易的目的地址是共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约。
上述技术方案中,通过验证共识节点轮换交易的发起地址是否为主共识节点的地址,且验证共识节点轮换交易的目的地址是否为共识轮换合约地址,来确定识节点轮换交易是否合法,从而可以避免主共识节点恶意产生共识节点轮换交易以从中获利,并可以确保共识委员节点轮换的安全性。
可选地,所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的之前,还包括:
所述从共识节点确定所述共识节点轮换交易是否满足发起共识轮换的触发条件。
上述技术方案中,通过验证共识节点轮换交易是否满足发起共识轮换的触发条件,如此可以防止主共识节点随意发起共识节点轮换交易,从而可以避免主共识节点恶意产生共识节点轮换交易以从中获利。
第三方面,本发明实施例还提供了一种区块链共识节点更新装置,适用于设定有第一数量的共识节点的联盟链,所述装置包括:
构造单元,用于构造共识节点轮换交易;所述共识节点轮换交易包括可通过零知识证明进行验证的第一随机信息;
处理单元:用于发起针对所述共识节点轮换交易的共识流程;所述共识流程用于任一从共识节点对所述共识节点轮换交易中的所述第一随机信息进行验证;在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换;所述第二数量小于等于所述第一数量。
可选地,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述处理单元具体用于:
确定最新区块的哈希值在椭圆曲线上对应的坐标点值;
根据所述坐标点值和所述主共识节点的私钥生成所述第一子证明;
根据随机数、随机数公钥及所述第一子证明,生成所述第二子证明;所述随机数公钥是基于所述主共识节点的私钥生成的;所述随机数是通过所述椭圆曲线选取的;
根据所述随机数、所述第二子证明和所述主共识节点的私钥生成所述第三子证明。
可选地,所述处理单元具体用于:
根据公式(1)确定所述第一子证明:
gamma=hsk…………………………………………………………………………(1)
根据公式(2)确定所述第二子证明:
c=hash(g,h,verifiable_pk,gamma,gk,hk)………………………………(2)
根据公式(3)确定所述第三子证明:
s=(k-c*sk)mod q……………………………………………………………(3)
其中,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,sk为所述主共识节点的私钥,c为所述第二证明,g为所述椭圆曲线上的生成元,verifiable_pk为所述随机数公钥,k为所述随机数,s为所述第三子证明,q为所述椭圆曲线的大素数阶。
可选地,所述处理单元具体用于:
所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名。
可选地,所述处理单元具体用于:
确定所述共识节点轮换交易的发起地址为所述主共识节点,所述共识节点轮换交易的目的地址为共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约;
根据所述发起地址、所述目的地址和所述第一随机信息,构造所述共识节点轮换交易。
可选地,所述处理单元具体用于:
按照设定算法,更新各共识节点的第一排序及各验证节点的第二排序;各验证节点为所述联盟链中除各共识节点之外的节点;
按照所述替换策略,将所述第一排序中的所述第二数量的共识节点替换为验证节点,并将所述第二排序中的所述第二数量的验证节点替换为共识节点。
第四方面,本发明实施例还提供了一种区块链共识节点更新装置,适用于设定有第一数量的共识节点的联盟链,所述装置包括:
获取单元:用于获取主共识节点发起的共识节点轮换交易;所述共识节点轮换交易包括第一随机信息;
确定单元,用于通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的;在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
可选地,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述确定单元具体用于:
根据所述第二子证明、所述第三子证明及随机数公钥,生成第一子验证;
根据所述第一子证明、所述第二子证明及所述第三子证明生成第二子验证;
根据所述第一子证明、所述随机数公钥、所述第一子验证和所述第二子验证,生成第三子验证;
确定所述第三子验证与所述第二子证明是否相同,从而确定所述共识节点轮换交易是否为所述主共识节点合法发起的。
可选地,所述确定单元具体用于:
根据公式(4)确定所述第一子验证:
u=verifiable_pkc*gs…………………………………………………………(4)
根据公式(5)确定所述第二子验证:
v=gammac*hs…………………………………………………………………(5)
根据公式(6)确定所述第三子验证:
c′=hash(g,h,verifiable_pk,gamma,u,v)………………………………(6)
其中,u为所述第一子验证,verifiable_pk为所述随机数公钥,c为所述第二子证明,s为所述第三子证明,g为椭圆曲线上的生成元,v为所述第二子验证,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,c′为所述第三子验证。
可选地,所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名;
所述确定单元还用于:
对所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名进行验证。
可选地,所述确定单元还用于:
确定所述共识节点轮换交易的发起地址是所述主共识节点,且所述共识节点轮换交易的目的地址是共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约。
可选地,所述确定单元还用于:
确定所述共识节点轮换交易是否满足发起共识轮换的触发条件。
第五方面,本发明实施例提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行区块链共识节点更新方法。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行区块链共识节点更新方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种主共识节点的系统架构的示意图;
图2为本发明实施例提供的一种区块链共识节点更新方法的流程示意图;
图3为本发明实施例提供的一种区块链共识节点更新装置的结构示意图;
图4为本发明实施例提供的另一种区块链共识节点更新装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面首先对本发明实施例中涉及的部分用语进行解释说明,以便于本领域技术人员进行理解。
(1)区块:是过程区块链的基本单元,由包含元数据的区块头和包含交易数据的区块体构成。其中,区块头主要包括父区块的哈希。
(2)区块链:是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。此外,区块链的核心理念有两个:一个是密码学技术,另一个是去中心化思想。基于这两个理念做到区块链上的历史信息无法被篡改。区块链中的一个区块由块头和块体组成。其中,块头主要包括该区块高度h、上一个区块的hash等,而块体主要存储交易数据。
(3)节点:网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链网络共识和账本维护的能力。
(4)共识节点:可参与共识出块的节点,主要功能包括:将交易池内的交易打包成区块、执行交易、运行共识算法、并将达成共识的区块写入账本。
(5)共识算法:区块链网络中的各个节点通过一种算法对一批交易进行确认,并确保所有节点对这批数据具有一致的确认结果,这种算法就是区块链的共识算法。目前常见的共识算法包括实用拜占庭容错共识算法(PBFT,Practical Byzantine FaultTolerance)和副本容错共识算法(Raft,Replication and Fault Tolerant)。
(6)PBFT共识算法:可以在少数节点作恶(如伪造消息)场景中达成共识,它采用签名、签名验证、哈希等密码学算法确保消息传递过程中的防篡改性、防伪造性、不可抵赖性,并优化了前人工作,将拜占庭容错算法复杂度从指数级降低到多项式级别。在一个由(3*f+1)个节点构成的系统中,只要有不少于(2*f+1)个非恶意节点正常工作,该系统就能达成一致性。比如7个节点的系统中允许2个节点出现拜占庭错误。
(7)联盟链:是指有若干机构或组织共同参与管理的区块链,他们各自运行着一个或多个节点,之中的数据只允许系统内不同的机构进行读取和发送交易,并且共同记录交易数据。联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络;各机构组织组成利益相关的联盟,共同维护区块链的健康运转。
如上介绍了本发明实施例中涉及的部分用语,下面对本发明实施例涉及的技术特征进行介绍。
为了便于理解本发明实施例,首先以图1中示出的系统架构为例说明适用于本发明实施例主共识节点的系统架构。如图1所示,该系统架构可以包括共识打包模块101、交易生成器102、随机数生成器103、共识引擎104、区块执行器105和存储模块106。
其中,共识打包模块101用于发起共识委员节点轮换交易请求,并将最新区块的哈希值和主共识节点的私钥发送给随机数生成器103进行生成随机数证明;用于对随机数证明进行签名并根据最新区块的哈希值、主共识节点的随机数公钥签名后的随机数证明和随机数证明确定出随机数信息;以及用于获取共识委员节点轮换交易,并将共识委员节点轮换交易打包成区块。
交易生成器102用于根据随机数信息构建共识委员节点轮换交易,并将共识委员节点轮换交易发送给共识打包模块101。
随机数生成器103用于根据最新区块的哈希值和主节点的私钥生成随机数证明,并将随机数证明发送给共识打包模块101。
共识引擎104用于将共识打包模块101打包的区块发送给所有从共识节点。
区块执行器105用于执行区块,并将区块执行结果返回给共识引擎104。
存储模块106用于对达成共识并提交的区块进行存储。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种区块链共识节点更新方法的流程,该流程可以由区块链共识节点更新装置执行。
如图2所示,该流程具体包括:
步骤201,主共识节点构造共识节点轮换交易。
步骤202,所述主共识节点发送共识节点轮换交易给从共识节点。
步骤203,所述从共识节点对所述共识节点轮换交易中的所述第一随机信息进行验证。
步骤204,所述从共识节点将所述共识节点轮换交易验证成功的消息通知给所述主共识节点。
步骤205,所述主共识节点在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
步骤206,所述从共识节点在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
上述步骤201中,该共识节点轮换交易可以包括最新区块的哈希值、随机数公钥、主共识节点对随机数证明的签名以及可通过零知识证明进行验证的第一随机信息。且,该第一随机信息可以包括第一子证明、第二子证明和第三子证明。
在主共识节点发起共识节点轮换交易请求前,需要构造共识节点轮换交易。对共识节点轮换交易进行构造的过程可以为:主共识节点确定共识节点轮换交易的发起地址为主共识节点,以及确定共识节点轮换交易的目的地址为共识轮换合约地址。再根据发起地址、目的地址和第一随机信息,构造共识节点轮换交易。其中,共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约。
此外,主共识节点可以根据最新区块的哈希值在椭圆曲线上确定出对应的坐标点值,并根据坐标点值和主共识节点的私钥生成第一子证明。再根据随机数、随机数公钥及第一子证明,生成第二子证明,该随机数公钥是基于主共识节点的私钥生成的;该随机数是通过椭圆曲线选取的。然后根据随机数、第二子证明和主共识节点的私钥生成第三子证明。其中,可以根据下述公式(1)确定第一子证明:
gamma=hsk…………………………………………………………………………(1)
根据公式(2)确定第二子证明:
c=hash(g,h,verifiable_pk,gamma,gk,hk)………………………………(2)
根据公式(3)确定第三子证明:
s=(k-c*sk)mod q……………………………………………………………(3)
其中,gamma为第一证明,h为最新区块的哈希值对应的坐标点值,sk为主共识节点的私钥,c为第二证明,g为椭圆曲线上的生成元,verifiable_pk为随机数公钥,k为随机数,s为第三子证明,q为椭圆曲线的大素数阶。
上述步骤202和步骤203中,主共识节点发起针对共识节点轮换交易的共识流程,以便任一从共识节点对共识节点轮换交易中的第一随机信息进行验证。具体地,从共识节点获取主共识节点发起的共识节点轮换交易,该共识节点轮换交易包括第一随机信息。再根据第二子证明、第三子证明及随机数公钥,生成第一子验证,并根据第一子证明、第二子证明及第三子证明生成第二子验证。之后根据第一子证明、随机数公钥、第一子验证和所述第二子验证,生成第三子验证。然后确定第三子验证与第二子证明是否相同,从而确定共识节点轮换交易是否为主共识节点合法发起的,如此可以确保共识委员节点轮换的安全性和不可预测性,并可以避免恶意节点随意生成对自己有利的随机数生成公私钥对导致的安全风险。其中,可以根据公式(4)确定第一子验证:
u=verifiable_pkc*gs…………………………………………………………(4)
根据公式(5)确定第二子验证:
v=gammac*hs…………………………………………………………………(5)
根据公式(6)确定第三子验证:
c′=hash(g,h,verifiable_pk,gamma,u,v)………………………………(6)
其中,u为第一子验证,verifiable_pk为随机数公钥,c为第二子证明,s为第三子证明,g为椭圆曲线上的生成元,v为第二子验证,gamma为第一证明,h为最新区块的哈希值对应的坐标点值,c′为第三子验证。
需要说明的是,从共识节点也会对共识节点轮换交易中的最新区块的哈希值、随机数公钥及主共识节点对随机数证明的签名进行验证。
此外,在从共识节点通过第一随机信息确定共识节点轮换交易是否为主共识节点合法发起的之前,会进行判断共识节点轮换交易的发起地址是否为主共识节点,且共识节点轮换交易的目的地址是否为共识轮换合约地址,以及判断共识节点轮换交易是否满足发起共识轮换的触发条件,并在确定共识节点轮换交易的发起地址是主共识节点,且共识节点轮换交易的目的地址为共识轮换合约地址,以及确定后共识节点轮换交易满足发起共识轮换的触发条件后,才通过第一随机信息对共识节点轮换交易的合法性进行确定,如此可以防止主共识节点随意发起共识节点轮换交易,从而可以避免主共识节点恶意产生共识节点轮换交易以从中获利。其中,该共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约;触发条件可以为当前区块的块高距离上次轮换共识节点产生的区块的块高相差预设数量,该预设数量(相当于共识节点轮换周期)可以根据实际应用场景需要进行设置并可以根据实际需求进行动态调整。
上述步骤204、步骤205和步骤206中,从共识节点将共识节点轮换交易验证成功的消息通知给主共识节点后,相当于所有共识节点都知道共识节点轮换交易验证通过的消息,此时主共识节点可以按照设定算法,更新各共识节点的第一排序及各验证节点的第二排序,如此可以打乱初始共识节点列表,有助于确保初始共识节点选取的随机性。再按照替换策略,将第一排序中的第二数量的共识节点替换为验证节点,并将第二排序中的第二数量的验证节点替换为共识节点,如此基于主共识节点产生的不可篡改的可验证随机数来对共识节点进行轮换,可以确保共识节点轮换的随机性和不可预测性,进一步可以提升系统安全。同样地,从共识节点也可以按照设定算法,更新各共识节点的第一排序及各验证节点的第二排序,如此可以打乱初始共识节点列表,有助于确保初始共识节点选取的随机性。再按照替换策略,将第一排序中的第二数量的共识节点替换为验证节点,并将第二排序中的第二数量的验证节点替换为共识节点,如此基于主共识节点产生的不可篡改的可验证随机数来对共识节点进行轮换,可以确保共识节点轮换的随机性和不可预测性,进一步可以提升系统安全。其中,各验证节点为联盟链中除各共识节点之外的节点;第一数量、第二数量均可以根据实际应用场景进行设置并可以根据实际需求进行动态调整。
下面对本发明实施例中进行共识委员节点轮换的具体实施过程进行描述。
(1)系统初始化:
在确保共识委员节点选取的安全性、不可预测性的同时,也为了确保随机数生成节点的可追踪、可验证性,本发明实施例采用可验证的随机数生成算法,用于生成并记录各节点的可验证随机数公钥信息,从而可以避免恶意节点随意生成对自己有利的随机数并根据该随机数生成公私钥对所导致的安全风险。
本发明实施例基于椭圆曲线Ed25519产生可验证的随机数。设G是椭圆曲线Ed25519在大素数阶上的子群,子群G的生成元为g(g是椭圆曲线Ed25519上的一个点,通常表示为g(x,y),子群G内的每个元素均可通过生成元g进行幂运算生成),大素数阶为q,大素数长度为256。系统初始化具体过程为:
Step1:所有节点从证书加载公私钥对[sk,pk],各节点的私钥sk用于对PBFT消息进行签名,并将各节点的公钥pk作为各节点的唯一编号NodeID。
Step2:所有节点均可基于私钥sk产生可验证随机数公钥,即随机数公钥verifiable_pk=gsk。
Step3:将各节点的节点编号到各节点的可验证随机数公钥的映射信息map(NodeID,verifiable_pk)记录在系统合约中。其中,每个节点均可访问该系统合约并获取指定节点(比如主节点)的可验证随机数公钥。
需要说明的是,为了防止恶意节点提前预测到共识委员节点,本发明实施例在系统初始化时基于创世块哈希和各节点的NodeID打乱所有节点顺序,并从中选出epoch_sealer_num个节点作为共识委员节点。
(2)主节点发起共识委员节点轮换:
本发明实施例中,在共识委员节点的每轮共识过程中,PBFT共识算法仅选取epoch_sealer_num个节点作为共识委员节点参与PBFT共识,并且为了确保系统的安全性,每经过epoch_block_num个区块后,会进行一次共识委员节点轮换,将epoch_sealer_roate_num个共识委员节点替换为验证节点,并将epoch_sealer_roate_num个验证节点选举为共识委员节点。由于共识委员节点的数目维持为epoch_sealer_num,因此PBFT共识算法的共识网络复杂度与节点规模无关,从而可以保证共识算法的可扩展性,使得联盟链系统可支撑更大节点规模,并且采用密码学算法可以确保共识节点选取的安全性、机密性,以确保区块链系统性能、吞吐量、安全性。其中,节点包括共识委员节点和验证节点,共识委员节点用于执行PBFT共识算法的共识流程,可以被选为Leader产生区块;验证节点不执行PBFT共识算法的共识流程,仅进行区块验证;为了确保系统的安全性以及系统的性能,epoch_sealer_num、epoch_block_num、epoch_sealer_roate_num等系统参数可以根据实际应用场景进行动态调整。
此外,共识委员节点的轮换由Leader(主共识节点)发起,每产生epoch_block_num个区块,Leader就会发起一次共识委员节点轮换。其中,Leader发起共识委员节点轮换的具体过程为:
a、Leader产生可验证的随机数信息。
Leader在发起共识委员节点轮换过程中,首先会将最新区块的哈希值block_hash和Leader的私钥sk作为输入,输入到随机数生成器,生成可验证随机数证明。为了保证生成可验证随机数证明的安全性,本发明实施例基于椭圆曲线Ed25519产生可验证的随机数。设G是椭圆曲线Ed25519在大素数阶上的子群,子群G的生成元为g(g是椭圆曲线Ed25519上的一个点,通常表示为g(x,y),子群G内的每个元素均可通过生成元g进行幂运算生成),大素数阶为q,大素数长度为256。其中,生成可验证随机数证明的具体过程为:
Step1:采用通用做法将最新的区块哈希值block_hash转化为椭圆曲线Ed25519上的一个点h,这个h通常表示为(x,y)。其中,x和y均是256位。
Step2:计算大数gamma=hsk。由于离散对数困难问题,通过Leader的私钥sk可以计算出大数gamma,但通过大数gamma很难推导出Leader的私钥sk,从而可以确保Leader的私钥sk的不可破解性。
Step3:从[0,q-1]中随机选取出一个256位随机数k,用于保证最终生成的随机数证明具有不可重放性。
Step4:计算c=hash(g,h,verifiable_pk,gamma,gk,hk)。
Step5:计算s=(k-c*sk)mod q,由于随机数k无法被验证方获知,因此无法通过s推导出Leader的私钥sk,可以确保Leader的私钥sk的安全性。
Step6:生成随机数证明,即随机数证明random_proof={gamma,c,s}。
Step7:使用Leader的私钥sk对随机数证明进行签名,产生签名random_proof_sign=sign(sk,random_proof)。
Step8:输出带有签名的可验证随机数信息random_info=(block_hash,random_proof,verifiable_pk,random_proof_sig)。
需要说明的是,考虑到算法的安全性,这里的哈希算法统一采用sha3,签名算法统一采用椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA),当然本发明实施例对此并不作限制,也可以采用其它哈希算法或签名算法。
b、Leader基于可验证随机数信息构建共识委员节点轮换交易。
在上述步骤a生成可验证随机数信息后,Leader会基于生成的随机数信息并构建共识委员节点轮换交易rotating_tx,该轮换交易中带有随机数信息random_info。
c、Leader打包并广播共识委员节点轮换交易。
Leader将生成的共识委员节点轮换交易rotating_tx打包为区块中最后一笔交易,并将区块组装于PBFT算法的Prepare包中,将该Prepare包传递给共识引擎。共识引擎在收到Prepare包后,将Prepare包广播给所有从共识节点,所有从共识节点运行PBFT算法的共识流程,并触发共识委员节点轮换流程。
(3)共识委员节点轮换。
由于共识委员节点轮换是在共识和执行共识委员节点轮换交易的过程中实现的,则共识委员节点轮换的过程具体为:
a、验证共识委员节点轮换交易。
所有从共识节点收到Leader的Prepare包后,从Prepare包内解码出区块。若判断当前轮需要轮换共识委员节点,则进一步验证区块内的最后一笔交易是否由Leader产生。其中,验证的过程具体为:
Step1:验证交易由Leader产生,即交易的发起者地址必须是Leader的地址,且交易中带有Leader的签名。
Step2:验证交易调用的是共识节点管理合约,即交易的目标地址必须是共识委员管理合约的地址。其中,共识节点管理合约可用于验证Leader发起的共识委员节点轮换交易是否合法;共识节点管理合约中还存储有各节点的NodeID。
b、执行共识委员节点轮换交易。
共识委员节点轮换交易调用共识委员节点管理合约以便实现共识委员节点轮换功能。其中,共识委员节点轮换交易调用共识委员节点管理合约进行共识委员节点轮换的过程具体为:
1、判断当前区块高度是否需要轮换共识委员节点。
为防止Leader恶意生成并打包共识委员节点轮换交易以从中获利,所有从共识节点在执行共识委员节点管理交易时,首先判断当前块高是否满足共识委员节点轮换条件,即判断当前区块距离上次轮换共识委员节点是否相差epoch_block_num个区块,如果满足,则继续验证随机数。否则说明该笔交易是Leader恶意产生的交易,就会直接返回,不做任何共识委员节点轮换操作。
2、验证共识委员节点轮换交易。
为了防止Leader故意做恶,确保共识委员节点轮换的安全性,在对共识委员节点进行轮换前,需要验证共识委员轮换交易。其中,验证共识委员轮换交易的过程具体为:
Step1:从解码的区块中获取共识委员节点轮换交易rotating_tx,并从中解码出random_info=(block_hash,random_proof,verifiable_pk,random_proof_sig)。
Step2:验证random_info中的区块哈希值block_hash是否等于最新区块的哈希值。如果相等,则继续进行后续的验证步骤,否则直接返回,不做共识委员节点轮换操作。
Step3:从random_info中获取可验证随机数公钥verifiable_pk,并访问系统合约获取Leader的可验证随机数公钥verifiable_pk。然后再判断从random_info中获取的可验证随机数公钥verifiable_pk是否是Leader的可验证随机数公钥Verifiable_pk,若从random_info中获取的可验证随机数公钥verifiable_pk不等于Leader的可验证随机数公钥verifiable_pk,则说明Leader伪造了可验证随机数公私钥对,就会直接返回,不做共识委员节点轮换操作。否则就会继续进行后续的验证步骤。
Step4:从random_info中获取可验证随机数证明random_proof和可验证随机数签名random_proof_sig,然后使用Leader的公钥pk验证签名,如果签名无效,则说明Leader伪造了签名,就会直接返回,不做共识委员节点轮换操作。否则继续进行后续验证步骤。
Step5:从random_info中获取可验证随机数证明random_proof,并解码可验证随机数证明random_proof,获取{gamma,c,s}。
Step6:基于解码获取的{c,s}以及随机数生成方的公钥verifiable_pk,计算u=verifiable_pkc*gs。并根据随机数证明的生成过程,可以推导出u=verifiable_pkc*gs=gc*sk*g(k-c*sk)=gk。
Step7:采用通用做法将最新区块的哈希值block_hash转化为椭圆曲线Ed25519上的一个点h,这个h通常表示为(x,y),x和y均是256位。
Step8:计算v=gammac*hs,根据随机数证明生成过程,可推导出v=gammac*hs=hc *sk*h(k-c*sk)=hk。
Step9:计算c′=hash(g,h,verifiable_pk,gamma,u,v)。
Step10:由于c=hash(g,h,verifiable_pk,gamma,gk,hk),并根据以上推导可知,有效的随机数证明需要满足c′==c。因此在验证随机数证明时需要判断c′是否等于c。如果,则说明随机数证明有效,然后可以进一步计算出可验证随机数verifiable_random=hash(gamma),否则说明是Leader恶意伪造的随机数,不做共识委员节点轮换操作。
3、轮换共识委员节点。
在经过上述步骤1和步骤2的验证后,完全排除了Leader和其它恶意节点故意伪造随机数证明的情况,从而可以消除恶意攻击的可能性,然后接着开始进行轮换共识委员节点。其中,对共识委员节点进行轮换的具体过程为:
Step1:基于步骤2生成的可验证随机数verifiable_random,采用洗牌算法(比如Fisher-Yates Shuffle算法、Knuth-Durstenfeld Shuffle算法、Inside-Out Algorithm算法等),打乱共识委员节点的顺序,该算法以共识委员节点列表working Sealer List和可验证随机数verifiable_random作为输入,对workingSealerList内的节点运行epoch_sealer_num次随机置换操作,每次均是交换第i个共识节点working Sealer List[i]与随机选取的共识节点working Sealer List[hash(working SealerList[i]+verifiable_random)%m]的位置,如此可以打乱初始共识节点列表,有助于确保初始共识节点选取的随机性。其中,m为节点的总数。例如,交换第一个共识节点,则假设根据hash(workingSealerList[0]+verifiable_random)%m计算出的值为3,因此需要将共识委员节点列表中第一个共识节点的位置和第四个共识节点的位置进行互换。
Step2:基于步骤2生成的可验证随机数verifiable_random,采用洗牌算法,打乱验证节点的顺序,该算法以验证节点列表(verification node list)和可验证随机数verifiable_random作为输入,对验证节点列表内的节点运行n次(n为验证节点列表中验证节点的个数)随机置换操作,每次均是交换第j个验证节点verification node list[j]与随机选取的验证节点verification node list[hash(verification node list[j]+verifiable_random)%m]的位置。
Step3:从打乱顺序的共识委员节点列表中选取前epoch_sealer_rotate_num个节点,将其更新为验证节点;从打乱顺序的验证节点列表选取前epoch_sealer_rotate_num个验证节点,将其更新为共识委员节点,如此基于主共识节点产生的不可篡改的可验证随机数来对共识节点进行轮换,可以确保共识节点轮换的随机性和不可预测性,进一步可以提升系统安全。
Step4:当带有共识节点轮换交易的区块打成共识并落盘后,下一轮共识直接加载新的共识节点参与PBFT的共识流程。
需要说明的是,本发明实施例还可以不采用洗牌算法对共识委员节点列表和验证节点列表的顺序进行打乱,而是随机地从共识委员节点列表中选取epoch_sealer_rotate_num个节点,将其更新为验证节点,并随机地从验证节点列表中选取epoch_sealer_rotate_num个验证节点,将其更新为共识委员节点,或者随机地从共识委员节点列表中选取epoch_sealer_rotate_num个节点,将其更新为验证节点,并从验证节点列表中选取前epoch_sealer_rotate_num个验证节点,将其更新为共识委员节点。
上述实施例表明,通过设定固定数量的共识委员节点,如此,共识算法网络复杂度与节点规模无关,有效地消除了节点规模对共识算法网络复杂度的影响,并有助于提升共识算法的可扩展性,使得联盟链系统可支撑更大节点规模,同时也有效地消除了多节点联合作恶的可能性。再通过构造包含有第一随机信息的共识节点轮换交易,以便从共识节点通过验证第一随机信息来确定主共识节点构造的共识委员节点轮换交易是否合法,如此可以确保共识委员节点轮换的安全性和不可预测性,并可以避免恶意节点随意生成对自己有利的随机数生成公私钥对导致的安全风险。并在确定共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换,如此可以确保随机公平地对共识委员节点进行轮换,从而可以实现对共识委员节点的安全轮换。
基于相同的技术构思,图3示例性的示出了本发明实施例提供的一种区块链共识节点更新装置,该装置可以执行区块链共识节点更新方法的流程。
如图3所示,该装置包括:
构造单元301,用于构造共识节点轮换交易;所述共识节点轮换交易包括可通过零知识证明进行验证的第一随机信息;
处理单元302:用于发起针对所述共识节点轮换交易的共识流程;所述共识流程用于任一从共识节点对所述共识节点轮换交易中的所述第一随机信息进行验证;在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换;所述第二数量小于等于所述第一数量。
可选地,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述处理单元302具体用于:
确定最新区块的哈希值在椭圆曲线上对应的坐标点值;
根据所述坐标点值和所述主共识节点的私钥生成所述第一子证明;
根据随机数、随机数公钥及所述第一子证明,生成所述第二子证明;所述随机数公钥是基于所述主共识节点的私钥生成的;所述随机数是通过所述椭圆曲线选取的;
根据所述随机数、所述第二子证明和所述主共识节点的私钥生成所述第三子证明。
可选地,所述处理单元302具体用于:
根据公式(1)确定所述第一子证明:
gamma=hsk…………………………………………………………………………(1)
根据公式(2)确定所述第二子证明:
c=hash(g,h,verifiable_pk,gamma,gk,hk)………………………………(2)
根据公式(3)确定所述第三子证明:
s=(k-c*sk)mod q……………………………………………………………(3)
其中,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,sk为所述主共识节点的私钥,c为所述第二证明,g为所述椭圆曲线上的生成元,verifiable_pk为所述随机数公钥,k为所述随机数,s为所述第三子证明,q为所述椭圆曲线的大素数阶。
可选地,所述处理单元302具体用于:
所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名。
可选地,所述处理单元302具体用于:
确定所述共识节点轮换交易的发起地址为所述主共识节点,所述共识节点轮换交易的目的地址为共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约;
根据所述发起地址、所述目的地址和所述第一随机信息,构造所述共识节点轮换交易。
可选地,所述处理单元302具体用于:
按照设定算法,更新各共识节点的第一排序及各验证节点的第二排序;各验证节点为所述联盟链中除各共识节点之外的节点;
按照所述替换策略,将所述第一排序中的所述第二数量的共识节点替换为验证节点,并将所述第二排序中的所述第二数量的验证节点替换为共识节点。
基于相同的技术构思,图4示例性的示出了本发明实施例提供的另一种区块链共识节点更新装置,该装置可以执行区块链共识节点更新方法的流程。
如图4所示,该装置包括:
获取单元401:用于获取主共识节点发起的共识节点轮换交易;所述共识节点轮换交易包括第一随机信息;
确定单元402,用于通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的;在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
可选地,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述确定单元402具体用于:
根据所述第二子证明、所述第三子证明及随机数公钥,生成第一子验证;
根据所述第一子证明、所述第二子证明及所述第三子证明生成第二子验证;
根据所述第一子证明、所述随机数公钥、所述第一子验证和所述第二子验证,生成第三子验证;
确定所述第三子验证与所述第二子证明是否相同,从而确定所述共识节点轮换交易是否为所述主共识节点合法发起的。
可选地,所述确定单元402具体用于:
根据公式(4)确定所述第一子验证:
u=verifiable_pkc*gs…………………………………………………………(4)
根据公式(5)确定所述第二子验证:
v=gammac*hs…………………………………………………………………(5)
根据公式(6)确定所述第三子验证:
c′=hash(g,h,verifiable_pk,gamma,u,v)………………………………(6)
其中,u为所述第一子验证,verifiable_pk为所述随机数公钥,c为所述第二子证明,s为所述第三子证明,g为椭圆曲线上的生成元,v为所述第二子验证,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,c′为所述第三子验证。
可选地,所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名;
所述确定单元402还用于:
对所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名进行验证。
可选地,所述确定单元402还用于:
确定所述共识节点轮换交易的发起地址是所述主共识节点,且所述共识节点轮换交易的目的地址是共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约。
可选地,所述确定单元402还用于:
确定所述共识节点轮换交易是否满足发起共识轮换的触发条件。
基于相同的技术构思,本发明实施例提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行区块链共识节点更新方法。
基于相同的技术构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行区块链共识节点更新方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种区块链共识节点更新方法,其特征在于,适用于设定有第一数量的共识节点的联盟链,所述方法包括:
主共识节点构造共识节点轮换交易;所述共识节点轮换交易包括可通过零知识证明进行验证的第一随机信息;
所述主共识节点发起针对所述共识节点轮换交易的共识流程;所述共识流程用于任一从共识节点对所述共识节点轮换交易中的所述第一随机信息进行验证;
所述主共识节点在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换;所述第二数量小于等于所述第一数量。
2.如权利要求1所述的方法,其特征在于,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述随机数证明通过如下方式生成,包括:
所述主共识节点确定最新区块的哈希值在椭圆曲线上对应的坐标点值;
所述主共识节点根据所述坐标点值和所述主共识节点的私钥生成所述第一子证明;
所述主共识节点根据随机数、随机数公钥及所述第一子证明,生成所述第二子证明;所述随机数公钥是基于所述主共识节点的私钥生成的;所述随机数是通过所述椭圆曲线选取的;
所述主共识节点根据所述随机数、所述第二子证明和所述主共识节点的私钥生成所述第三子证明。
3.如权利要求2所述的方法,其特征在于,根据公式(1)确定所述第一子证明:
gamma=hsk…………………………………………………………………………(1)
根据公式(2)确定所述第二子证明:
c=hash(g,h,verifiable_pk,gamma,gk,hk)………………………………(2)
根据公式(3)确定所述第三子证明:
s=(k-c*sk)mod q……………………………………………………………(3)
其中,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,sk为所述主共识节点的私钥,c为所述第二证明,g为所述椭圆曲线上的生成元,verifiable_pk为所述随机数公钥,k为所述随机数,s为所述第三子证明,q为所述椭圆曲线的大素数阶。
4.如权利要求1所述的方法,其特征在于,所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名。
5.如权利要求1至4任一项所述的方法,其特征在于,所述主共识节点构造共识节点轮换交易,包括:
所述主共识节点确定所述共识节点轮换交易的发起地址为所述主共识节点,所述共识节点轮换交易的目的地址为共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约;
所述主共识节点根据所述发起地址、所述目的地址和所述第一随机信息,构造所述共识节点轮换交易。
6.如权利要求1至4任一项所述的方法,其特征在于,所述根据设定的替换策略,对第二数量的共识节点进行替换,包括:
所述主共识节点按照设定算法,更新各共识节点的第一排序及各验证节点的第二排序;各验证节点为所述联盟链中除各共识节点之外的节点;
所述主共识节点按照所述替换策略,将所述第一排序中的所述第二数量的共识节点替换为验证节点,并将所述第二排序中的所述第二数量的验证节点替换为共识节点。
7.一种区块链共识节点更新方法,其特征在于,适用于设定有第一数量的共识节点的联盟链,所述方法包括:
从共识节点获取主共识节点发起的共识节点轮换交易;所述共识节点轮换交易包括第一随机信息;
所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的;
所述从共识节点在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
8.如权利要求7所述的方法,其特征在于,所述第一随机信息包括第一子证明、第二子证明和第三子证明;
所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的,包括:
所述从共识节点根据所述第二子证明、所述第三子证明及随机数公钥,生成第一子验证;
所述从共识节点根据所述第一子证明、所述第二子证明及所述第三子证明生成第二子验证;
所述从共识节点根据所述第一子证明、所述随机数公钥、所述第一子验证和所述第二子验证,生成第三子验证;
所述从共识节点确定所述第三子验证与所述第二子证明是否相同,从而确定所述共识节点轮换交易是否为所述主共识节点合法发起的。
9.如权利要求8所述的方法,其特征在于,根据公式(4)确定所述第一子验证:
u=verifiable_pkc*gs…………………………………………………………(4)
根据公式(5)确定所述第二子验证:
v=gammac*hs…………………………………………………………………(5)
根据公式(6)确定所述第三子验证:
c′=hash(g,h,verifiable_pk,gamma,u,v)………………………………(6)
其中,u为所述第一子验证,verifiable_pk为所述随机数公钥,c为所述第二子证明,s为所述第三子证明,g为椭圆曲线上的生成元,v为所述第二子验证,gamma为所述第一证明,h为所述最新区块的哈希值对应的坐标点值,c′为所述第三子验证。
10.如权利要求7所述的方法,其特征在于,所述共识节点轮换交易中还包括以下至少一项:所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名;
所述方法还包括:
所述从共识节点对所述最新区块的哈希值、所述随机数公钥及所述主共识节点对所述随机数证明的签名进行验证。
11.如权利要求7至10任一项所述的方法,其特征在于,所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的之前,还包括:
所述从共识节点确定所述共识节点轮换交易的发起地址是所述主共识节点,且所述共识节点轮换交易的目的地址是共识轮换合约地址;所述共识轮换合约是各共识节点在执行共识节点轮换时遵循的合约。
12.如权利要求7至10任一项所述的方法,其特征在于,所述从共识节点通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的之前,还包括:
所述从共识节点确定所述共识节点轮换交易是否满足发起共识轮换的触发条件。
13.一种区块链共识节点更新装置,其特征在于,适用于设定有第一数量的共识节点的联盟链,所述装置包括:
构造单元,用于构造共识节点轮换交易;所述共识节点轮换交易包括可通过零知识证明进行验证的第一随机信息;
处理单元:用于发起针对所述共识节点轮换交易的共识流程;所述共识流程用于任一从共识节点对所述共识节点轮换交易中的所述第一随机信息进行验证;在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换;所述第二数量小于等于所述第一数量。
14.一种区块链共识节点更新装置,其特征在于,适用于设定有第一数量的共识节点的联盟链,所述装置包括:
获取单元:用于获取主共识节点发起的共识节点轮换交易;所述共识节点轮换交易包括第一随机信息;
确定单元,用于通过所述第一随机信息确定所述共识节点轮换交易是否为所述主共识节点合法发起的;在确定所述共识节点轮换交易共识成功后,根据设定的替换策略,对第二数量的共识节点进行替换。
15.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行权利要求1至12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011060280.7A CN112132579B (zh) | 2020-09-30 | 2020-09-30 | 一种区块链共识节点更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011060280.7A CN112132579B (zh) | 2020-09-30 | 2020-09-30 | 一种区块链共识节点更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112132579A true CN112132579A (zh) | 2020-12-25 |
CN112132579B CN112132579B (zh) | 2022-08-12 |
Family
ID=73843534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011060280.7A Active CN112132579B (zh) | 2020-09-30 | 2020-09-30 | 一种区块链共识节点更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112132579B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749409A (zh) * | 2021-01-06 | 2021-05-04 | 上海能链众合科技有限公司 | 一种区块链中基于随机数的加密方法 |
CN113254526A (zh) * | 2021-03-02 | 2021-08-13 | 中国信息通信研究院 | 区块链共识方法、装置及系统 |
CN113837758A (zh) * | 2021-09-27 | 2021-12-24 | 深圳前海微众银行股份有限公司 | 一种区块链系统的共识方法及装置 |
CN114499846A (zh) * | 2022-01-20 | 2022-05-13 | 浙江吉利控股集团有限公司 | 验证节点分配方法、装置、设备及存储介质 |
CN114710504A (zh) * | 2022-03-31 | 2022-07-05 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中共识节点的轮换方法、节点和区块链系统 |
CN115664716A (zh) * | 2022-09-27 | 2023-01-31 | 北京航空航天大学 | 基于置换证明的多链领导者隐蔽分配方法及装置 |
WO2023115873A1 (zh) * | 2021-12-20 | 2023-06-29 | 深圳前海微众银行股份有限公司 | 基于区块链的数据处理方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737375A (zh) * | 2018-04-13 | 2018-11-02 | 中山大学 | 一种区块链共识方法及系统 |
CN108810077A (zh) * | 2018-04-19 | 2018-11-13 | 深圳市网心科技有限公司 | 区块链共识处理方法、电子装置及计算机可读存储介质 |
CN109167661A (zh) * | 2018-09-27 | 2019-01-08 | 福建福链科技有限公司 | 一种应用于联盟链的拜占庭容错共识方法及终端 |
CN109617699A (zh) * | 2019-01-16 | 2019-04-12 | 北京沃东天骏信息技术有限公司 | 一种密钥生成方法、区块链网络服务平台及存储介质 |
CN111630826A (zh) * | 2019-06-05 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 共识系统和方法 |
WO2020182134A1 (zh) * | 2019-03-11 | 2020-09-17 | 京东方科技集团股份有限公司 | 区块链共识任务协调方法、区块链共识任务协调装置、区块链共识任务处理方法、区块链节点装置、区块链系统和存储介质 |
CN113407632A (zh) * | 2021-06-26 | 2021-09-17 | 南京搜文信息技术有限公司 | 一种基于pbft的委托权益证明区块链共识算法 |
-
2020
- 2020-09-30 CN CN202011060280.7A patent/CN112132579B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737375A (zh) * | 2018-04-13 | 2018-11-02 | 中山大学 | 一种区块链共识方法及系统 |
CN108810077A (zh) * | 2018-04-19 | 2018-11-13 | 深圳市网心科技有限公司 | 区块链共识处理方法、电子装置及计算机可读存储介质 |
CN109167661A (zh) * | 2018-09-27 | 2019-01-08 | 福建福链科技有限公司 | 一种应用于联盟链的拜占庭容错共识方法及终端 |
CN109617699A (zh) * | 2019-01-16 | 2019-04-12 | 北京沃东天骏信息技术有限公司 | 一种密钥生成方法、区块链网络服务平台及存储介质 |
WO2020182134A1 (zh) * | 2019-03-11 | 2020-09-17 | 京东方科技集团股份有限公司 | 区块链共识任务协调方法、区块链共识任务协调装置、区块链共识任务处理方法、区块链节点装置、区块链系统和存储介质 |
CN111630826A (zh) * | 2019-06-05 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 共识系统和方法 |
CN113407632A (zh) * | 2021-06-26 | 2021-09-17 | 南京搜文信息技术有限公司 | 一种基于pbft的委托权益证明区块链共识算法 |
Non-Patent Citations (2)
Title |
---|
孙毅等: "区块链技术发展及应用:现状与挑战", 《中国工程科学》 * |
赵倩: "基于PBFT算法的区块链用户隐私数据保护与查找问题研究", 《甘肃科技纵横》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749409A (zh) * | 2021-01-06 | 2021-05-04 | 上海能链众合科技有限公司 | 一种区块链中基于随机数的加密方法 |
CN112749409B (zh) * | 2021-01-06 | 2024-03-08 | 上海零数众合信息科技有限公司 | 一种区块链中基于随机数的加密方法 |
CN113254526A (zh) * | 2021-03-02 | 2021-08-13 | 中国信息通信研究院 | 区块链共识方法、装置及系统 |
CN113254526B (zh) * | 2021-03-02 | 2024-07-05 | 中国信息通信研究院 | 区块链共识方法、装置及系统 |
CN113837758A (zh) * | 2021-09-27 | 2021-12-24 | 深圳前海微众银行股份有限公司 | 一种区块链系统的共识方法及装置 |
WO2023115873A1 (zh) * | 2021-12-20 | 2023-06-29 | 深圳前海微众银行股份有限公司 | 基于区块链的数据处理方法及设备 |
CN114499846A (zh) * | 2022-01-20 | 2022-05-13 | 浙江吉利控股集团有限公司 | 验证节点分配方法、装置、设备及存储介质 |
CN114710504A (zh) * | 2022-03-31 | 2022-07-05 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中共识节点的轮换方法、节点和区块链系统 |
WO2023185046A1 (zh) * | 2022-03-31 | 2023-10-05 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中共识节点的轮换方法、节点和区块链系统 |
CN115664716A (zh) * | 2022-09-27 | 2023-01-31 | 北京航空航天大学 | 基于置换证明的多链领导者隐蔽分配方法及装置 |
CN115664716B (zh) * | 2022-09-27 | 2024-05-03 | 北京航空航天大学 | 基于置换证明的多链领导者隐蔽分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112132579B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112132579B (zh) | 一种区块链共识节点更新方法及装置 | |
JP7289298B2 (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
KR101727525B1 (ko) | 블록체인 기반 분산 저장 방법 및 이를 이용한 장치 | |
CA3037833C (en) | System and method for information protection | |
US10819505B2 (en) | System and method for information protection | |
CN110213059B (zh) | 一种随机数的生成方法、生成装置及存储介质 | |
JP2020515087A5 (zh) | ||
EP3563553A1 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
CN111159745B (zh) | 一种适用于区块链的验证方法及装置 | |
CN111080296B (zh) | 一种基于区块链系统的验证方法及装置 | |
CN111566680A (zh) | 有消息凭证的区块链 | |
CN113779606A (zh) | 一种降低隐私泄露风险的信息校验方法及系统 | |
CN115168902A (zh) | 一种分组可验证的链式隐私保护联邦学习方法及装置 | |
US20230108083A1 (en) | Transaction verification system and method of operation thereof | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
CN112184245A (zh) | 一种跨区块链的交易身份确认方法及装置 | |
CN111224950A (zh) | 数据交换方法、系统和计算机存储介质 | |
CN111784338A (zh) | 信息处理方法、装置、系统及存储介质 | |
CN111769945A (zh) | 基于区块链的拍卖处理方法和区块链节点 | |
CN111566681A (zh) | 快速且分区弹性的区块链 | |
CN112990928B (zh) | 一种数字货币交易数据的安全保护方法 | |
CN115131018A (zh) | 基于区块链的隐私交易的方法及相关产品 | |
AU2019101581A4 (en) | System and method for information protection | |
Maharramov et al. | The Dusk network whitepaper | |
JP2021530172A (ja) | 分散型システムの処理ステップを制御するための、コンピュータにより実施されるシステム及び方法 |
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 |