CN112436944B - 一种基于pow的区块链共识方法及装置 - Google Patents
一种基于pow的区块链共识方法及装置 Download PDFInfo
- Publication number
- CN112436944B CN112436944B CN202011231832.6A CN202011231832A CN112436944B CN 112436944 B CN112436944 B CN 112436944B CN 202011231832 A CN202011231832 A CN 202011231832A CN 112436944 B CN112436944 B CN 112436944B
- Authority
- CN
- China
- Prior art keywords
- block
- anonymous
- consensus
- node
- attribute value
- 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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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
Abstract
本发明公开了一种基于POW的区块链共识方法及装置,其中方法为:第一匿名节点若确定所述第一匿名节点满足预设条件,则生成第一共识零知识证明;所述第一匿名节点至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块;所述第一匿名节点将所述第一区块发送至各第二匿名节点。上述方法应用于金融科技(Fintech)时,可以在不泄露实际身份信息情况下进行区块共识,那么较高属性值的节点不容易受到针对性的恶意攻击。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种基于POW的区块链共识方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。目前金融科技领域和区块链(blockchain)领域联系较为紧密。基于工作量证明(Proof-of-Work,PoW)共识算法的区块链是一种较为常见的区块链。基于PoW共识算法的区块链的共识过程中,共识区块是面向区块链的用户公开的。
但一些信息是较为敏感的信息,如共识区块由哪个区块链节点出块,常表征了区块链节点的属性值,如果泄露可能导致被攻击者锁定高属性值的目标。这就给区块链带来了一定的隐私风险,常出块的区块链节点容易受到恶意攻击,从而拖垮整个区块链的性能,这是一个亟待解决的问题。
发明内容
本发明提供一种基于POW的区块链共识方法及装置,解决了现有技术中常出块的区块链节点容易受到恶意攻击的问题。
第一方面,本发明提供一种基于POW的区块链共识方法,包括:第一匿名节点若确定所述第一匿名节点满足预设条件,则生成第一共识零知识证明;所述第一共识零知识证明至少用于验证以下信息的正确性:共识验证信息、第一属性值承诺和第一匿名身份信息;所述第一属性值承诺是至少根据第一实际属性值得到的隐匿信息;所述第一匿名身份信息是至少根据所述第一匿名节点的第一实际身份信息得到的;所述预设条件是根据PoW共识算法的特性设定的;所述第一匿名节点至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块;所述第一匿名节点将所述第一区块发送至各第二匿名节点。
上述方式下,由于所述第一区块是至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺生成的,通过第一共识零知识证明可以在不泄露实际身份信息和实际属性值的基础上,对所述第一区块进行验证,从而可以在不泄露实际身份信息情况下进行区块共识,那么较高属性值的节点不容易受到针对性的恶意攻击。
可选的,所述第一匿名节点按照以下方式确定所述第一匿名节点满足预设条件:所述第一匿名节点根据所述第一实际属性值确定所述第一匿名节点的第一工作量证明难度值;所述第一匿名节点在预设数域内持续更新工作量证明因子,并根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件;所述预设条件是基于所述第一工作量证明难度值设定的;所述工作量证明因子满足所述预设条件的概率和所述第一实际属性值呈正相关。
上述方法中,从而在遵循POW共识算法基础上设置所述预设条件,自适应地在区块链中选择出块的节点,提升了选择出块节点的效率。
可选的,所述根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件,包括:所述第一匿名节点根据所述工作量证明因子和所述待出块区块内容,生成第一哈希值;若所述第一匿名节点确定所述第一哈希值小于第一工作量证明难度值,则确定所述第一匿名节点满足预设条件。
上述方法中,通过在每个区块中设置第一工作量证明难度值,且通过第一工作量证明难度值自适应地选择出共识区块,提升了选择出块节点的效率。
可选的,所述第一匿名节点在预设数域内持续更新工作量证明因子的过程中,在生成的工作量证明因子未使得所述第一匿名节点满足所述预设条件的期间,若所述第一匿名节点收到了所述各第二匿名节点中任一第二匿名节点的第二区块,则所述第一匿名节点验证所述第二区块;若验证通过,则所述第一匿名节点将所述第二区块作为共识区块。
上述方法中,在生成的工作量证明因子未使得所述第一匿名节点满足所述预设条件的期间,通过所述第二区块的验证,确定其是否为共识区块,从而可以独立地一直更新工作量证明因子,如果有通过验证的第二区块则不必生成第一区块,从而提升了共识区块的共识效率。
可选的,所述第一区块为所述区块链的第i时期中第三区块与第四区块之间的待共识区块;所述第三区块为所述区块链的第i时期中的第一个待共识区块;所述第四区块为所述区块链的第i时期中的最后一个待共识区块;所述第一匿名身份信息为所述第一匿名节点在所述区块链的第i时期的匿名身份信息;所述第一属性值承诺为所述第一匿名节点在所述区块链的第i时期的属性值承诺。
上述方式下,通过设置不同时期来绑定匿名身份信息和属性值承诺,而且在第一个区块和第三区块与第四区块之间采用特定的方式生成,从而进一步地增加易出块节点的破解的难度。
可选的,在所述区块链的第i时期结束后,还包括:所述第一匿名节点生成第二匿名身份信息,作为所述第一匿名节点在所述区块链的第i+1时期的匿名身份信息;所述第一匿名节点生成第二属性值承诺,作为所述第一匿名节点在所述区块链的第i+1时期的属性值承诺。
上述方式下,在所述区块链的第i时期结束后,生成第i+1时期的新的匿名身份信息和属性值承诺,从而进一步地增加易出块节点的破解的难度。
可选的,所述第三区块是由所述第一匿名节点生成的,所述第一匿名节点按照以下方式生成第三区块:所述第一匿名节点根据所述第一共识零知识证明、所述共识验证信息、所述第一匿名身份信息和所述第一属性值承诺,生成第三区块。
上述方式下,第一个区块中,只填入所述第一共识零知识证明等必要的身份验证信息,从而节约了第三区块的空间。
可选的,所述第四区块是由所述第一匿名节点生成的,所述第一匿名节点按照以下方式生成第四区块:所述第一匿名节点根据所述第一共识零知识证明、所述共识验证信息、所述待出块区块内容、所述第一匿名身份信息、所述第一属性值承诺、第三匿名身份信息和第三属性值承诺,生成第四区块;所述第三匿名身份信息为在所述区块链的第i+1时期中待加入匿名节点的匿名身份信息;所述第三属性值承诺是至少根据所述待加入匿名节点在所述区块链的第i+1时期中的实际属性值得到的隐匿信息。
上述方式下,对于第i+1时期中待加入匿名节点,直接在第i时期的最后一个区块中完成共识,以声明第i+1时期中参与区块的合法性,从而增加了区块链的工作效率。
第二方面,本发明提供一种基于POW的区块链共识装置,包括:共识模块,用于若确定第一匿名节点满足预设条件,则生成第一共识零知识证明;所述第一共识零知识证明至少用于验证以下信息的正确性:共识验证信息、第一属性值承诺和第一匿名身份信息;所述第一属性值承诺是至少根据第一实际属性值得到的隐匿信息;所述第一匿名身份信息是至少根据第一匿名节点的第一实际身份信息得到的;所述预设条件是根据PoW共识算法的特性设定的;以及至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块;数据传输模块。用于将所述第一区块发送至各第二匿名节点。
可选的,所述共识模块具体用于:根据所述第一实际属性值确定所述第一匿名节点的第一工作量证明难度值;在预设数域内持续更新工作量证明因子,并根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件;所述预设条件是基于所述第一工作量证明难度值设定的;所述工作量证明因子满足所述预设条件的概率和所述第一实际属性值呈正相关。
可选的,所述共识模块具体用于:根据所述工作量证明因子和所述待出块区块内容,生成第一哈希值;若确定所述第一哈希值小于第一工作量证明难度值,则确定所述第一匿名节点满足预设条件。
可选的,所述共识模块还用于:在预设数域内持续更新工作量证明因子的过程中,在生成的工作量证明因子未使得所述第一匿名节点满足所述预设条件的期间,若所述数据传输模块收到了所述各第二匿名节点中任一第二匿名节点的第二区块,则验证所述第二区块;若验证通过,则将所述第二区块作为共识区块。
可选的,所述第一区块为所述区块链的第i时期中第三区块与第四区块之间的待共识区块;所述第三区块为所述区块链的第i时期中的第一个待共识区块;所述第四区块为所述区块链的第i时期中的最后一个待共识区块;所述第一匿名身份信息为所述第一匿名节点在所述区块链的第i时期的匿名身份信息;所述第一属性值承诺为所述第一匿名节点在所述区块链的第i时期的属性值承诺。
可选的,在所述区块链的第i时期结束后,所述共识模块还用于:生成第二匿名身份信息,作为所述第一匿名节点在所述区块链的第i+1时期的匿名身份信息;生成第二属性值承诺,作为所述第一匿名节点在所述区块链的第i+1时期的属性值承诺。
可选的,所述第三区块是由所述第一匿名节点生成的,所述共识模块还用于:按照以下方式生成第三区块:根据所述第一共识零知识证明、所述共识验证信息、所述第一匿名身份信息和所述第一属性值承诺,生成第三区块。
可选的,所述第四区块是由所述第一匿名节点生成的,所述共识模块还用于:按照以下方式生成第四区块:根据所述第一共识零知识证明、所述共识验证信息、所述待出块区块内容、所述第一匿名身份信息、所述第一属性值承诺、第三匿名身份信息和第三属性值承诺,生成第四区块;所述第三匿名身份信息为在所述区块链的第i+1时期中待加入匿名节点的匿名身份信息;所述第三属性值承诺是至少根据所述待加入匿名节点在所述区块链的第i+1时期中的实际属性值得到的隐匿信息。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于POW的区块链共识方法对应的流程示意图;
图2为本发明实施例提供的一种基于POW的区块链共识系统的系统架构示意图;
图3为本发明实施例提供的一种基于POW的区块链共识方法对应的具体流程示意图;
图4为本发明实施例提供的一种基于POW的区块链共识装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面首先给出本申请中出现的名词及释义。
ZKP(Zero-Knowledge Proof,零知识证明):证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
zk-SNARK(zero-knowledge succinct non-interactive argument ofknowledge,简洁化的非交互式计算可靠的零知识证明):是零知识证明的一种实现方式,它允许用户以非交互式的方式提供证明,且该证明可以用很短的时间验证。
(佩德森)Pedersen承诺:一种密码学承诺。包含两个阶段:在承诺阶段,它允许承诺方通过承诺函数COMM(m,r)将消息正整数m通过密文的形式发送,r为随机正整数,它可以保证承诺方不会修改消息的同时对他人隐藏消息本身;在打开阶段,承诺方可以公开消息,接收端以此来验证消息是否和承诺阶段一致。Pedersen承诺满足隐藏性(Hiding),绑定性(Binding)和同态性(homomorphic)。我们主要会利用其中的同态性即COMM(a,b)+COMM(c,d)=COMM(a+c,b+d)。
客户:使用区块链进行记账的用户。
验证者:进行交易验证,将认证后的交易打包进区块链的节点。
ID(Identity,身份证标识号):代表验证者的标识号。
PoW(Proof-of-Work,工作量证明):是一种对应服务与资源滥用、或是拒绝服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。常用于区块链中的公有链。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,和区块链(blockchain)领域联系较为紧密。在PoW共识算法的区块链中,共识区块是面向区块链的用户公开的。但一些信息是较为敏感的信息,如果泄露可能导致被攻击者锁定高属性值的目标。这就给区块链带来了一定的隐私风险,这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图1所示,本申请提供一种基于POW的区块链共识方法。
步骤101:第一匿名节点若确定所述第一匿名节点满足预设条件,则生成第一共识零知识证明。
步骤102:所述第一匿名节点至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块。
步骤103:所述第一匿名节点将所述第一区块发送至各第二匿名节点。
步骤101~步骤103中,所述第一共识零知识证明至少用于验证以下信息的正确性:共识验证信息、第一属性值承诺和第一匿名身份信息;所述第一属性值承诺是至少根据第一实际属性值得到的隐匿信息;所述第一匿名身份信息是至少根据所述第一匿名节点的第一实际身份信息得到的;所述预设条件是根据PoW共识算法的特性设定的。
一种可选实施方式(以下称为时期的实施方式)中,可以引入时期,所述第一区块为所述区块链的第i时期中第三区块与第四区块之间的待共识区块;所述第三区块为所述区块链的第i时期中的第一个待共识区块;所述第四区块为所述区块链的第i时期中的最后一个待共识区块。
所述第一匿名身份信息为所述第一匿名节点在所述区块链的第i时期的匿名身份信息;所述第一属性值承诺为所述第一匿名节点在所述区块链的第i时期的属性值承诺。
上述方式下,通过设置不同时期来绑定匿名身份信息和属性值承诺,而且在第一个区块即第三区块与最后一个区块即第四区块之间的第一区块,采用特定的方式生成,从而进一步地增加易出块节点的破解的难度。
需要说明的是,图1示出的方法引入时期后,可以通过图2示出的系统架构具体实现。图2示出的系统架构包含三个模块:隐私保护的属性值承诺和数值操作模块,隐私保护的基于属性的共识模块,隐私保护的身份和属性值承诺更换模块。具体工作流程如图2所示,通过图2示出的系统架构可以在步骤101~步骤103的方法中引入时期。
具体来说,将时间分为不同的时期,每个时期(如第i时期,是某一个时期)仅允许经过认证的匿名节点(本申请中,也可以称为验证者)加入区块链。在每个时期开始前,当验证者加入区块链后,它将会通过隐私保护的身份和属性值承诺更换模块拥有匿名身份信息和属性值承诺(如属性值承诺为Pedersen承诺)。
匿名节点(验证者)之间会互相确认在这个时期参与的所有验证者的匿名身份信息和属性值承诺。在时期开始后,每个验证者都会观察其他验证者的行为并通过隐私保护的属性值承诺和数值操作模块来对每一个验证者进行属性值承诺的更新。
每经过一段时间(如每次新增的共识区块后),验证者若为领导节点,便将交易和所有验证者更新的属性值承诺打包进入区块中并发布,所有验证者通过隐私保护的共识模块来验证并确认正确的区块并将达成共识的区块加入最终的区块链中。
当到了该时期的结束时,验证者可以选择通过隐私保护的身份和属性值承诺更换模块来更换自己的匿名身份信息和属性值承诺,此后验证者可以进入到下一个时期进行区块链的验证和维护;验证者也可以选择退出区块链。
基于时期的实施方式,第三区块可以按照以下方式生成:
所述第一匿名节点根据所述第一共识零知识证明、所述共识验证信息、所述第一匿名身份信息和所述第一属性值承诺,生成第三区块。
上述方式下,第一个区块中,只填入所述第一共识零知识证明等必要的身份验证信息,从而节约了第三区块的空间。
基于时期的实施方式,第四区块可以按照以下方式生成:
所述第一匿名节点根据所述第一共识零知识证明、所述共识验证信息、所述待出块区块内容、所述第一匿名身份信息、所述第一属性值承诺、第三匿名身份信息和第三属性值承诺,生成第四区块;所述第三匿名身份信息为在所述区块链的第i+1时期中待加入匿名节点的匿名身份信息。
所述第三属性值承诺是至少根据所述待加入匿名节点在所述区块链的第i+1时期中的实际属性值得到的隐匿信息。
上述方式下,对于第i+1时期中待加入匿名节点,直接在第i时期的最后一个区块中完成共识,以声明第i+1时期中参与区块的合法性,从而增加了区块链的工作效率。
基于时期的实施方式,还可以执行如下步骤:
所述第一匿名节点生成第二匿名身份信息,作为所述第一匿名节点在所述区块链的第i+1时期的匿名身份信息;所述第一匿名节点生成第二属性值承诺,作为所述第一匿名节点在所述区块链的第i+1时期的属性值承诺。
具体来说,在匿名节点(验证者)工作过程中,它会观察验证者的行为并依此为其他验证者打分,其他验证者亦会对该验证者的行为进行监督并进行打分。在基于承诺的BFT共识中,验证者的行为可以定义为对于交易认证的投票,它从每一笔交易认证中获得的承诺值为S*V,其中V是交易金额(正整数),S是奖励系数(整数)。
当验证者和最终区块上的该笔交易认证结果交易一致则奖励系数为1。而当认证结果不一致则为负数-10,意味着验证者没有正确履行自己的责任或对系统作恶,因此扣除一定分数。本方案主要着重在隐私保护,并不是在如何通过行为进行承诺值计算,因此不会限定承诺值计算的方法且可以适用于保护各种不同的承诺值方案的隐私。
举例来说,在两个区块中该验证者获得的分数为整数ΔR,其他验证者可以通过将COMM(ΔR,0)加到上来得到正确的承诺值承诺。由Pedersen承诺的同态性可得因此对承诺的加法操作可以将获得的分数正确的加到未被揭示的承诺值R上。
一种可选实施方式下,步骤101中可以按照以下方式(下面称为工作量证明因子的实施方式)确定所述第一匿名节点满足预设条件:
所述第一匿名节点根据所述第一实际属性值确定所述第一匿名节点的第一工作量证明难度值;所述第一匿名节点在预设数域内持续更新工作量证明因子,并根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件。
所述预设条件是基于所述第一工作量证明难度值设定的;所述工作量证明因子满足所述预设条件的概率和所述第一实际属性值呈正相关。
举例来说,根据所述第一实际属性值R确定所述第一匿名节点的第一工作量证明难度值D的关系为D=10*R-1,第一实际属性值R为10,那么第一工作量证明难度值D便为99。工作量证明因子为nonce,预设数域为[1,10000],nonce在预设数域内随机取值,预设数域按照预设映射关系映射的值域为[1,200],预设映射关系可以设置为非单调的函数关系,以免第一匿名节点随机取值。预设条件为,nonce映射得到的数值在区间[1,2*D]内,显然,R越大,D越大,所述工作量证明因子满足所述预设条件的概率就越大。
工作量证明因子的实施方式中,具体来说,根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件的具体过程可以如下:
所述第一匿名节点根据所述工作量证明因子和所述待出块区块内容,生成第一哈希值;若所述第一匿名节点确定所述第一哈希值小于第一工作量证明难度值,则确定所述第一匿名节点满足预设条件。
上述实施方式可以通过隐私保护的共识模块实现,本模块可以让匿名节点(验证者)在共识中工作量证明的难度和属性值相关。验证者可以通过zk-SNARK证明自己的合法性,同时不需要透露自己的属性值给其他验证者,其他验证者可以快速地验证这一证明而不需要知道该验证者的属性值。
该模块的流程如下图3所示。
(1)验证者通过自己的属性值决定自己挖掘的难度正整数D。例如,当自己的属性在正整数Li和正整数Hi之间的时候,它挖掘出的区块的哈希值需要小于正整数Di;
(2)验证者会将正整数nonce从0开始增加,每加一次会判断包含nonce的区块的哈希值是否满足挖掘难度D,即H(B||nonce)<D,其中B为除了共识证明域的区块内容。
工作量证明因子的实施方式中,具体来说,还可能出现如下情形:
所述第一匿名节点在预设数域内持续更新工作量证明因子的过程中,在生成的工作量证明因子未使得所述第一匿名节点满足所述预设条件的期间,若所述第一匿名节点收到了所述各第二匿名节点中任一第二匿名节点的第二区块,则所述第一匿名节点验证所述第二区块;若验证通过,则所述第一匿名节点将所述第二区块作为共识区块。
上述实施方式在图3中的步骤如下:
(3)若找到正确的nonce,则验证者用zk-SNARK生成π1,并将其放在区块的共识证明域上。π1包含了以下信息的证明:1)ID是按照正确的公式生成。2)属性值R对应的难度D是正确的。3)H(B||nonce)<D,其中B为除了公式证明域的区块内容。验证者将正确的区块发送给其他验证者并进行下一轮区块的挖掘。
(4)若验证者还未找到正确的nonce时,当其在收到其他验证者发送的区块后验证π1,若正确则将该区块加入到区块链中。若不正确则继续寻找nonce。
如图4所示,本发明提供一种基于POW的区块链共识装置,包括:共识模块401,用于若确定第一匿名节点满足预设条件,则生成第一共识零知识证明;所述第一共识零知识证明至少用于验证以下信息的正确性:共识验证信息、第一属性值承诺和第一匿名身份信息;所述第一属性值承诺是至少根据第一实际属性值得到的隐匿信息;所述第一匿名身份信息是至少根据第一匿名节点的第一实际身份信息得到的;所述预设条件是根据PoW共识算法的特性设定的;以及至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块;数据传输模块402。用于将所述第一区块发送至各第二匿名节点。
可选的,所述共识模块401具体用于:根据所述第一实际属性值确定所述第一匿名节点的第一工作量证明难度值;在预设数域内持续更新工作量证明因子,并根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件;所述预设条件是基于所述第一工作量证明难度值设定的;所述工作量证明因子满足所述预设条件的概率和所述第一实际属性值呈正相关。
可选的,所述共识模块401具体用于:根据所述工作量证明因子和所述待出块区块内容,生成第一哈希值;若确定所述第一哈希值小于第一工作量证明难度值,则确定所述第一匿名节点满足预设条件。
可选的,所述共识模块401还用于:在预设数域内持续更新工作量证明因子的过程中,在生成的工作量证明因子未使得所述第一匿名节点满足所述预设条件的期间,若所述数据传输模块402收到了所述各第二匿名节点中任一第二匿名节点的第二区块,则验证所述第二区块;若验证通过,则将所述第二区块作为共识区块。
可选的,所述第一区块为所述区块链的第i时期中第三区块与第四区块之间的待共识区块;所述第三区块为所述区块链的第i时期中的第一个待共识区块;所述第四区块为所述区块链的第i时期中的最后一个待共识区块;所述第一匿名身份信息为所述第一匿名节点在所述区块链的第i时期的匿名身份信息;所述第一属性值承诺为所述第一匿名节点在所述区块链的第i时期的属性值承诺。
可选的,在所述区块链的第i时期结束后,所述共识模块401还用于:生成第二匿名身份信息,作为所述第一匿名节点在所述区块链的第i+1时期的匿名身份信息;生成第二属性值承诺,作为所述第一匿名节点在所述区块链的第i+1时期的属性值承诺。
可选的,所述第三区块是由所述第一匿名节点生成的,所述共识模块401还用于:按照以下方式生成第三区块:根据所述第一共识零知识证明、所述共识验证信息、所述第一匿名身份信息和所述第一属性值承诺,生成第三区块。
可选的,所述第四区块是由所述第一匿名节点生成的,所述共识模块401还用于:按照以下方式生成第四区块:根据所述第一共识零知识证明、所述共识验证信息、所述待出块区块内容、所述第一匿名身份信息、所述第一属性值承诺、第三匿名身份信息和第三属性值承诺,生成第四区块;所述第三匿名身份信息为在所述区块链的第i+1时期中待加入匿名节点的匿名身份信息;所述第三属性值承诺是至少根据所述待加入匿名节点在所述区块链的第i+1时期中的实际属性值得到的隐匿信息。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的基于POW的区块链共识方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的基于POW的区块链共识方法及任一可选方法被执行。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种基于POW的区块链共识方法,其特征在于,包括:
第一匿名节点根据第一实际属性值确定所述第一匿名节点的第一工作量证明难度值;所述第一匿名节点在预设数域内持续更新工作量证明因子,并根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件,若满足所述预设条件,则生成第一共识零知识证明;所述预设条件是基于所述第一工作量证明难度值设定的;所述工作量证明因子满足所述预设条件的概率和所述第一实际属性值呈正相关;所述第一共识零知识证明至少用于验证以下信息的正确性:共识验证信息、第一属性值承诺和第一匿名身份信息;所述第一属性值承诺是至少根据所述第一实际属性值得到的隐匿信息;所述第一匿名身份信息是至少根据所述第一匿名节点的第一实际身份信息得到的;所述预设条件是根据PoW共识算法的特性设定的;
所述第一匿名节点至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块;
所述第一匿名节点将所述第一区块发送至各第二匿名节点。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件,包括:
所述第一匿名节点根据所述工作量证明因子和所述待出块区块内容,生成第一哈希值;
若所述第一匿名节点确定所述第一哈希值小于第一工作量证明难度值,则确定所述第一匿名节点满足预设条件。
3.如权利要求1所述的方法,其特征在于,还包括:
所述第一匿名节点在预设数域内持续更新工作量证明因子的过程中,在生成的工作量证明因子未使得所述第一匿名节点满足所述预设条件的期间,若所述第一匿名节点收到了所述各第二匿名节点中任一第二匿名节点的第二区块,则所述第一匿名节点验证所述第二区块;
若验证通过,则所述第一匿名节点将所述第二区块作为共识区块。
4.如权利要求1至3任一项所述的方法,其特征在于,所述第一区块为所述区块链的第i时期中第三区块与第四区块之间的待共识区块;所述第三区块为所述区块链的第i时期中的第一个待共识区块;所述第四区块为所述区块链的第i时期中的最后一个待共识区块;所述第一匿名身份信息为所述第一匿名节点在所述区块链的第i时期的匿名身份信息;所述第一属性值承诺为所述第一匿名节点在所述区块链的第i时期的属性值承诺。
5.如权利要求4所述的方法,其特征在于,在所述区块链的第i时期结束后,还包括:
所述第一匿名节点生成第二匿名身份信息,作为所述第一匿名节点在所述区块链的第i+1时期的匿名身份信息;
所述第一匿名节点生成第二属性值承诺,作为所述第一匿名节点在所述区块链的第i+1时期的属性值承诺。
6.如权利要求4所述的方法,其特征在于,所述第三区块是由所述第一匿名节点生成的,所述第一匿名节点按照以下方式生成第三区块:
所述第一匿名节点根据所述第一共识零知识证明、所述共识验证信息、所述第一匿名身份信息和所述第一属性值承诺,生成第三区块。
7.如权利要求4所述的方法,其特征在于,所述第四区块是由所述第一匿名节点生成的,所述第一匿名节点按照以下方式生成第四区块:
所述第一匿名节点根据所述第一共识零知识证明、所述共识验证信息、所述待出块区块内容、所述第一匿名身份信息、所述第一属性值承诺、第三匿名身份信息和第三属性值承诺,生成第四区块;
所述第三匿名身份信息为在所述区块链的第i+1时期中待加入匿名节点的匿名身份信息;所述第三属性值承诺是至少根据所述待加入匿名节点在所述区块链的第i+1时期中的实际属性值得到的隐匿信息。
8.一种基于POW的区块链共识装置,其特征在于,包括:
共识模块,用于根据第一实际属性值确定第一匿名节点的第一工作量证明难度值;在预设数域内持续更新工作量证明因子,并根据所述第一工作量证明难度值和所述工作量证明因子确定所述第一匿名节点是否满足预设条件,若满足所述预设条件,则生成第一共识零知识证明;所述预设条件是基于所述第一工作量证明难度值设定的;所述工作量证明因子满足所述预设条件的概率和所述第一实际属性值呈正相关;所述第一共识零知识证明至少用于验证以下信息的正确性:共识验证信息、第一属性值承诺和第一匿名身份信息;所述第一属性值承诺是至少根据所述第一实际属性值得到的隐匿信息;所述第一匿名身份信息是至少根据所述第一匿名节点的第一实际身份信息得到的;所述预设条件是根据PoW共识算法的特性设定的;以及
至少根据所述第一共识零知识证明、所述共识验证信息、待出块区块内容、所述第一匿名身份信息和所述第一属性值承诺,生成第一区块,并将所述第一区块作为共识区块;
数据传输模块,用于将所述第一区块发送至各第二匿名节点。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011231832.6A CN112436944B (zh) | 2020-11-06 | 2020-11-06 | 一种基于pow的区块链共识方法及装置 |
PCT/CN2021/126991 WO2022095779A1 (zh) | 2020-11-06 | 2021-10-28 | 一种基于pow的区块链共识方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011231832.6A CN112436944B (zh) | 2020-11-06 | 2020-11-06 | 一种基于pow的区块链共识方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112436944A CN112436944A (zh) | 2021-03-02 |
CN112436944B true CN112436944B (zh) | 2023-04-07 |
Family
ID=74699367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011231832.6A Active CN112436944B (zh) | 2020-11-06 | 2020-11-06 | 一种基于pow的区块链共识方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112436944B (zh) |
WO (1) | WO2022095779A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112436944B (zh) * | 2020-11-06 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
CN113487400B (zh) * | 2021-06-04 | 2022-10-11 | 长春工业大学 | 基于诚实度双向选择的金融授信共识方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109035029A (zh) * | 2018-07-27 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 基于区块链的资产转移方法及装置、电子设备 |
CN109858281A (zh) * | 2019-02-01 | 2019-06-07 | 杭州云象网络技术有限公司 | 一种基于零知识证明的区块链账户模型隐私保护方法 |
CN110602077A (zh) * | 2019-09-03 | 2019-12-20 | 成都信息工程大学 | 一种基于信任评估的量子区块链网络匿名选举方法及系统 |
CN110933088A (zh) * | 2019-12-02 | 2020-03-27 | 深圳启元信息服务有限公司 | 一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质 |
CN111428249A (zh) * | 2020-01-20 | 2020-07-17 | 中国科学院信息工程研究所 | 一种基于区块链保护用户隐私的匿名注册方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124403A (zh) * | 2017-04-14 | 2017-09-01 | 朱清明 | 区块链中共识区块的生成方法与计算设备 |
US20190370793A1 (en) * | 2018-06-04 | 2019-12-05 | Decentralized Finance Labs, Inc. | Hybrid consensus for blockchain using proof of work and proof of stake |
ES2863559T3 (es) * | 2018-11-07 | 2021-10-11 | Advanced New Technologies Co Ltd | Protección de datos de cadena de bloques en base al modelo de billete de cuenta con prueba de conocimiento cero |
US20200311695A1 (en) * | 2019-03-27 | 2020-10-01 | International Business Machines Corporation | Privacy-preserving gridlock resolution |
CN112436944B (zh) * | 2020-11-06 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
-
2020
- 2020-11-06 CN CN202011231832.6A patent/CN112436944B/zh active Active
-
2021
- 2021-10-28 WO PCT/CN2021/126991 patent/WO2022095779A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109035029A (zh) * | 2018-07-27 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 基于区块链的资产转移方法及装置、电子设备 |
CN109858281A (zh) * | 2019-02-01 | 2019-06-07 | 杭州云象网络技术有限公司 | 一种基于零知识证明的区块链账户模型隐私保护方法 |
CN110602077A (zh) * | 2019-09-03 | 2019-12-20 | 成都信息工程大学 | 一种基于信任评估的量子区块链网络匿名选举方法及系统 |
CN110933088A (zh) * | 2019-12-02 | 2020-03-27 | 深圳启元信息服务有限公司 | 一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质 |
CN111428249A (zh) * | 2020-01-20 | 2020-07-17 | 中国科学院信息工程研究所 | 一种基于区块链保护用户隐私的匿名注册方法和系统 |
Non-Patent Citations (3)
Title |
---|
Privacy-Preserving Pre-Consensus Protocol for Blockchains;Y. Yasusaka等;《2019 IEEE International Conference on Big Data and Smart Computing (BigComp)》;20190404;全文 * |
区块链理论研究进展;单进勇等;《密码学报》;20181015(第05期);全文 * |
零知识证明应用到区块链中的技术挑战;李康等;《大数据》;20180115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022095779A1 (zh) | 2022-05-12 |
WO2022095779A9 (zh) | 2022-09-15 |
CN112436944A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leng et al. | Blockchain security: A survey of techniques and research directions | |
EP3563553B1 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
CN112437049B (zh) | 一种基于bft的区块链共识方法及装置 | |
CN110288480B (zh) | 一种区块链的私密交易方法及装置 | |
CN110572262A (zh) | 区块链联盟链构建方法、装置及系统 | |
CN111130795B (zh) | 一种基于区块链技术的多级签名方法 | |
CN112367174B (zh) | 一种基于属性值的区块链共识方法及装置 | |
CN108418783A (zh) | 一种保护区块链智能合约隐私的方法、介质 | |
CN113569294B (zh) | 一种零知识证明方法及装置、电子设备、存储介质 | |
TW201944757A (zh) | 適於提升即時離線區塊鏈交易安全性的電腦實施系統與方法 | |
Nakanishi et al. | Unlinkable divisible electronic cash | |
Zhu et al. | Hybrid blockchain design for privacy preserving crowdsourcing platform | |
CN112436944B (zh) | 一种基于pow的区块链共识方法及装置 | |
CN109743182B (zh) | 基于区块链的智能合约核准方法及系统 | |
CN112488682B (zh) | 一种区块链的三方转账方法及装置 | |
CN114358782A (zh) | 区块链交易审计方法、装置、设备及存储介质 | |
CN111640018B (zh) | 一种区块链交易存在性验证方法及装置 | |
CN114760071B (zh) | 基于零知识证明的跨域数字证书管理方法、系统和介质 | |
CN114691669A (zh) | 一种电子存证方法、装置、电子设备及存储介质 | |
Zhao et al. | Fuzzy identity-based dynamic auditing of big data on cloud storage | |
Longo et al. | On the security of the blockchain BIX protocol and certificates | |
Baniata et al. | Prifob: a privacy-aware fog-enhanced blockchain-based system for global accreditation and credential verification | |
CN111861737B (zh) | 基于区块链的风控模型优化方法、装置和计算机设备 | |
CN113328854A (zh) | 基于区块链的业务处理方法及系统 | |
Gupta et al. | Towards computationally sound symbolic analysis of key exchange protocols |
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 |