CN111988290B - 用户余额隐私保护和授权监管下的交易删除方法及系统 - Google Patents
用户余额隐私保护和授权监管下的交易删除方法及系统 Download PDFInfo
- Publication number
- CN111988290B CN111988290B CN202010778239.7A CN202010778239A CN111988290B CN 111988290 B CN111988290 B CN 111988290B CN 202010778239 A CN202010778239 A CN 202010778239A CN 111988290 B CN111988290 B CN 111988290B
- Authority
- CN
- China
- Prior art keywords
- transaction
- transfer
- balance
- public
- supervisor
- 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
- 238000013475 authorization Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012217 deletion Methods 0.000 title claims abstract description 24
- 230000037430 deletion Effects 0.000 title claims abstract description 24
- 238000012546 transfer Methods 0.000 claims abstract description 264
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 76
- 230000006870 function Effects 0.000 claims abstract description 47
- 241000122205 Chamaeleonidae Species 0.000 claims abstract description 32
- 230000000977 initiatory effect Effects 0.000 claims abstract description 16
- 239000003999 initiator Substances 0.000 claims description 38
- 238000012795 verification Methods 0.000 claims description 35
- 238000012544 monitoring process Methods 0.000 claims description 27
- 238000012790 confirmation Methods 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/3236—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 cryptographic hash functions
-
- 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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供了一种适用于联盟链的用户余额隐私保护和授权监管下的交易删除方法及系统,包括:参与各方的初始化步骤:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;转账的发起步骤:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方。本发明为了使授权监管方可对区块链上的恶意信息进行修订并不影响已有的区块链的链接信息,本发明的方案同时使用变色龙哈希函数和传统密码哈希函数,借助变色龙哈希函数的找碰撞算法,由此授权监管方可以对承载恶意信息的区块进行修订而保持所修订的区块的原哈希值不变,不影响有效区块的正确性。
Description
技术领域
本发明涉及区块链技术领域,具体地,涉及用户余额隐私保护和授权监管下的交易删除方法及系统。尤其地,涉及一种适用于联盟链的用户余额隐私保护和授权监管下的交易删除方案。
背景技术
1.1区块链及联盟链
1)区块链,本质上是一个去中心化的或多中心化的、公共的分布式总账,是以时间先后顺序排列的数据区块。区块链中,每一个区块中保存的是若干条交易记录,使用密码学的方法生成区块以保证其中数据不可篡改、不可伪造、可以验证;使用共识算法使全网所有节点完成对区块的认可。区块链按照参与记账节点的开放程度可分为:任何节点都可以参与交易验证、区块创建及共识过程的公有链;指定的参与方独享记账权的私有链;预先指定一些节点作为记账节点,其他接入节点可参与交易的联盟链。
2)联盟链,是共识过程受到预选节点控制的区块链,只针对某个特定群体的成员和有限的第三方开放。其内部指定多个预选节点为记账人,每个块的生成由所有的预选的记账节点共同决定。不同于公链的完全去中心化,联盟链在某种程度上只属于联盟内部的成员所有,数据的访问权限一般只限于联盟内的机构及其用户,不默认公开。联盟链的节点数目有限,角色明确,因此,较于公链,达成共识的速度要快,即处理交易的速度要快。联盟链兼顾了公有链的去中心化、私有链的高效,同时对监管友好。这里假定联盟链中采用的是以比特币的链式结构为代表的记账结构。
1.2基本技术模块
1)承诺算法
①成员:承诺方和接收方。
②目的:承诺方向接收方承诺一个值。接收方可以在承诺打开后,验证承诺方所承诺的值。在承诺打开之前,接收方和其他人均不能知道承诺值,
③算法组成
承诺生成算法Comm:由承诺方运行。承诺方使用盲化因子r生成对值v的承诺cm。要求承诺值不会泄露关于原消息的任何信息。公式表达为cm=Comm(v,r)。
承诺打开及验证算法Ver:由接收方运行,在承诺方提供v和r后,接收方打开及验证承诺。公式表达为b=Ver(v,r,cm),b∈{0,1}。
b=0表示所输入的参数未能打开承诺cm,验证失败;
b=1表示所输入的参数可以正确打开cm,接收方可以确信收到的v即是承诺方承诺的消息,验证成功;
如附图1所示,要求承诺方提供的v和r必须与生成cm的v和r完全一致,即在承诺打开阶段,承诺方无法对承诺的内容v进行修改。
④Pedersen commitment:此承诺方案是一种具有加法同态性的承诺方案。若承诺cm1,cm2分别是使用盲化因子r1,r2对值v1,v2的承诺,使cm3=cm1·cm2。则cm3为使用盲化因子r1+r2对值v1+v2的承诺。
2)非交互零知识证明NIZK
①成员:证明方和验证方。
②性质:
完备性:在非交互式的证明过程中。给定某个NP问题(称为语言L),则属于L的每个断言(或称一个实例)x,都有自己的证据w。则对于每个属于L的实例x,证明方一定可以利用w,生成能使验证方确信x∈L的证明;
健壮性:对每个不属于L的实例,任何(恶意的)证明方均不能(或仅能以可忽略的概率)使验证方相信x∈L;
零知识性:对语言L中的每个实例,验证方从验证过程中学到的知识均可在验证方本地生成,即验证方不能得到除“x∈L”之外的任何信息。
③算法组成(如附图2所示)
证明生成算法Prove:由证明方运行。证明方使用实例x和证据w,计算Π=Prove(x,w)。生成证明Π;
证明验证算法Verf:由验证方运行。验证方利用收到的Π,计算b=Verf(x,Π),b∈{0,1},验证实例x是否属于语言L。
b=0表示证明方提供的证据无法证明实例x属于语言L;
b=1表示验证方可相信实例x属于语言L。
3)变色龙哈希函数
①变色龙哈希函数是一种带有“后门”的密码学哈希函数。
②变色龙哈希函数可以人为设下一个“私钥”,通过使用此“私钥”就很容易找到碰撞。
③算法组成
a.哈希值生成算法CHash:由哈希公钥hk的所有者运行。算法输入消息m,并随机生成一个检查字符串ξ,利用hk计算变色龙哈希函数值为:h=CHash(hk,m,ξ);
b.哈希值验证算法CHVer:由可以获得哈希公钥hk的任何人运行。算法输入消息m,检查字符串ξ,变色龙哈希函数h,利用hk计算:b=CHVer(hk,m,(h,ξ)),b∈{0,1}。
b=0表示哈希值h并非消息m对应的变色龙哈希值,验证不通过;
b=1表示哈希值h为消息m对应的变色龙哈希值,验证通过;
c.找碰撞算法CHCol:由变色龙哈希私钥tk的所有者运行。算法输入原始消息m、原始检查字符串ξ、变色龙哈希函数的值h、新的消息m’,利用tk计算ξ'=CHCol(tk,(h,m,ξ),m'),从而得到新的检查字符串ξ'。算法所生成的检查字符串ξ'满足CHash(hk,m',ξ')=h,即利用变色龙哈希私钥tk,可以找到哈希函数的碰撞。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种用户余额隐私保护和授权监管下的交易删除方法及系统。
根据本发明提供的一种用户余额隐私保护和授权监管下的交易删除方法,其特征在于,包括
参与各方的初始化步骤:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;
转账的发起步骤:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方;
记账节点记账步骤:记账节点接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
转账的接收步骤:转账接收方接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
授权监管方的授权监管步骤:授权监管方监察用户余额,并且可对包含恶意交易信息的交易进行删除。
优选地,所述定义成员节点的角色分类及功能:
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户;
所述授权监管方是整个联盟链交易的监管者。在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额;
所述记账节点是联盟链中预先选定的多个节点。记账节点参与记账共识与账本的同步。联盟链中区块的生成由记账节点间通过安全共识协议决定。
所述普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成。
优选地,所述生成成员节点的公私钥:
由可信第三方作为负责发放和管理数字证书的权威机构进行身份认证;
所述可信第三方承担公钥体系中公钥的合法性检验的责任;
所述成员节点通过与证书颁发机构的交互获得自己的公私钥对以及对应的公钥证书,符号标记如下:
授权监管方M:公私钥对记为(PKM,SKM);
优选地,所述生成授权监管方的监管参数:
由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来;
所述授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员;
所述授权监管方生成NIZK所用的公共参数,并广播给全体成员;
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)};
其中,
x的证据w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
cmi=Comm(vi,ri),i∈{1,2,3};
v1-v2=v3,vi≥0,i∈{1,2,3};
对L中的一个实例x,借助其证据w,生成证明,记为Π。
优选地,所述转账的发起步骤:
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π);
其中,
cm1,cm2,cm3均表示对金额的承诺;
r1为转帐发起方本地存储的一个数值;
r2,r3为转账发起方所选择的两个随机数;
转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地;
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方;
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证;
转账发起方利用证据w=(ri,vi,r,r'),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π。
优选地,所述记账节点记账步骤:
设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm'1,记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
对于转账接收方,记账节点计算交易后其余额承诺cm'3=cm'1·cm2。cm'3即是对转账接收方的原余额与接收到的转账金额的和的承诺值,记账节点将维护的转账接收方的余额的承诺cm'1替换为cm'3。
优选地,所述转账的接收步骤:
设当前转账接收方的余额为v',余额的承诺所使用的本地存储的盲化因子为r'1。转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y2中所加密金额与cm2中所承诺金额一致;
计算r'3=r'1+r2,并存储在本地。接收方接收转账交易后的余额为v'3=v'+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r'3。
优选地,所述授权监管方的授权监管步骤:
步骤S1:授权监管方监察用户余额:
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2);
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y中所加密金额与cm2中所承诺金额一致;
由于授权监管方知道各用户初始余额情况与交易金额情况,因而授权监管方根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额;
步骤S2:授权监管方删除包含恶意交易信息的区块中的恶意交易信息;
记账节点利用安全共识协议将交易信息打包成区块,设Block S1,S2,S3为相邻的三个区块,其中Block S2包含了恶意交易信息,授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
根据本发明提供的一种用户余额隐私保护和授权监管下的交易删除系统,包括
参与各方的初始化模块:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;
转账的发起模块:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方;
记账节点记账模块:记账节点接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
转账的接收模块:转账接收方接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
授权监管方的授权监管模块:授权监管方监察用户余额,并且可对包含恶意交易信息的交易进行删除;
所述定义成员节点的角色分类及功能:
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户;
所述授权监管方是整个联盟链交易的监管者。在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额;
所述记账节点是联盟链中预先选定的多个节点。记账节点参与记账共识与账本的同步。联盟链中区块的生成由记账节点间通过安全共识协议决定。
所述普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成;
所述生成成员节点的公私钥:
由可信第三方作为负责发放和管理数字证书的权威机构进行身份认证;
所述可信第三方承担公钥体系中公钥的合法性检验的责任;
所述成员节点通过与证书颁发机构的交互获得自己的公私钥对以及对应的公钥证书,符号标记如下:
授权监管方M:公私钥对记为(PKM,SKM);
所述生成授权监管方的监管参数:
由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来;
所述授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员;
所述授权监管方生成NIZK所用的公共参数,并广播给全体成员;
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)};
其中,
x的证据w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
cmi=Comm(vi,ri),i∈{1,2,3};
v1-v2=v3,vi≥0,i∈{1,2,3};
对L中的一个实例x,借助其证据w,生成证明,记为Π;
所述转账的发起模块:
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π);
其中,
cm1,cm2,cm3均表示对金额的承诺;
r1为转帐发起方本地存储的一个数值;
r2,r3为转账发起方所选择的两个随机数;
转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地;
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方;
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证;
转账发起方利用证据w=(ri,vi,r,r'),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π;
所述记账节点记账模块:
设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm'1,记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
对于转账接收方,记账节点计算交易后其余额承诺cm'3=cm'1·cm2。cm'3即是对转账接收方的原余额与接收到的转账金额的和的承诺值,记账节点将维护的转账接收方的余额的承诺cm'1替换为cm'3;
所述转账的接收模块:
设当前转账接收方的余额为v',余额的承诺所使用的本地存储的盲化因子为r'1。转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y2中所加密金额与cm2中所承诺金额一致;
计算r'3=r'1+r2,并存储在本地。接收方接收转账交易后的余额为v'3=v'+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r'3;
所述授权监管方的授权监管模块包括:
模块S1:授权监管方监察用户余额:
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2);
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y中所加密金额与cm2中所承诺金额一致;
由于授权监管方知道各用户初始余额情况与交易金额情况,因而授权监管方根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额;
模块S2:授权监管方删除包含恶意交易信息的区块中的恶意交易信息:
记账节点利用安全共识协议将交易信息打包成区块,设Block S1,S2,S3为相邻的三个区块,其中Block S2包含了恶意交易信息,授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的用户余额隐私保护和授权监管下的交易删除方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
本发明为了使授权监管方可对区块链上的恶意信息进行修订并不影响已有的区块链的链接信息,本发明的方案同时使用变色龙哈希函数和传统密码哈希函数,借助变色龙哈希函数的找碰撞算法,由此授权监管方可以对承载恶意信息的区块进行修订而保持所修订的区块的原哈希值不变,不影响有效区块的正确性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的承诺打开示意图。
图2为本发明提供的算法组成示意图。
图3为本发明提供的成员节点的公私钥生成示意图。
图4为本发明提供的转账的发起示意图。
图5为本发明提供的记账节点维护的用户余额变化示意图。
图6为本发明提供的区块哈希值的计算方式示意图。
图7为本发明提供的交易双方盲化因子的变化示意图。
图8为本发明提供的区块间关系示意图。
图9为本发明提供的区块间的变化示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种用户余额隐私保护和授权监管下的交易删除方法,其特征在于,包括
参与各方的初始化步骤:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;
转账的发起步骤:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方;
记账节点记账步骤:记账节点接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
转账的接收步骤:转账接收方接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
授权监管方的授权监管步骤:授权监管方监察用户余额,并且可对包含恶意交易信息的交易进行删除。
具体地,所述定义成员节点的角色分类及功能:
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户;
所述授权监管方是整个联盟链交易的监管者。在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额;
所述记账节点是联盟链中预先选定的多个节点。记账节点参与记账共识与账本的同步。联盟链中区块的生成由记账节点间通过安全共识协议决定。
所述普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成。
具体地,所述生成成员节点的公私钥:
由可信第三方作为负责发放和管理数字证书的权威机构进行身份认证;
所述可信第三方承担公钥体系中公钥的合法性检验的责任;
所述成员节点通过与证书颁发机构的交互获得自己的公私钥对以及对应的公钥证书,符号标记如下:
授权监管方M:公私钥对记为(PKM,SKM);
具体地,所述生成授权监管方的监管参数:
由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来;
所述授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员;
所述授权监管方生成NIZK所用的公共参数,并广播给全体成员;
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)};
其中,
x的证据w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
cmi=Comm(vi,ri),i∈{1,2,3};
v1-v2=v3,vi≥0,i∈{1,2,3};
对L中的一个实例x,借助其证据w,生成证明,记为Π。
具体地,所述转账的发起步骤:
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π);
其中,
cm1,cm2,cm3均表示对金额的承诺;
r1为转帐发起方本地存储的一个数值;
r2,r3为转账发起方所选择的两个随机数;
转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地;
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方;
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证;
转账发起方利用证据w=(ri,vi,r,r'),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π。
具体地,所述记账节点记账步骤:
设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm'1,记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
对于转账接收方,记账节点计算交易后其余额承诺cm'3=cm'1·cm2。cm'3即是对转账接收方的原余额与接收到的转账金额的和的承诺值,记账节点将维护的转账接收方的余额的承诺cm'1替换为cm'3。
具体地,所述转账的接收步骤:
设当前转账接收方的余额为v',余额的承诺所使用的本地存储的盲化因子为r'1。转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y2中所加密金额与cm2中所承诺金额一致;
计算r'3=r'1+r2,并存储在本地。接收方接收转账交易后的余额为v'3=v'+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r'3。
具体地,所述授权监管方的授权监管步骤:
步骤S1:授权监管方监察用户余额:
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2);
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y中所加密金额与cm2中所承诺金额一致;
由于授权监管方知道各用户初始余额情况与交易金额情况,因而授权监管方根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额;
步骤S2:授权监管方删除包含恶意交易信息的区块中的恶意交易信息;
记账节点利用安全共识协议将交易信息打包成区块,设Block S1,S2,S3为相邻的三个区块,其中Block S2包含了恶意交易信息,授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
根据本发明提供的一种用户余额隐私保护和授权监管下的交易删除系统,包括
参与各方的初始化模块:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;
转账的发起模块:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方;
记账节点记账模块:记账节点接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
转账的接收模块:转账接收方接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
授权监管方的授权监管模块:授权监管方监察用户余额,并且可对包含恶意交易信息的交易进行删除;
所述定义成员节点的角色分类及功能:
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户;
所述授权监管方是整个联盟链交易的监管者。在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额;
所述记账节点是联盟链中预先选定的多个节点。记账节点参与记账共识与账本的同步。联盟链中区块的生成由记账节点间通过安全共识协议决定。
所述普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成;
所述生成成员节点的公私钥:
由可信第三方作为负责发放和管理数字证书的权威机构进行身份认证;
所述可信第三方承担公钥体系中公钥的合法性检验的责任;
所述成员节点通过与证书颁发机构的交互获得自己的公私钥对以及对应的公钥证书,符号标记如下:
授权监管方M:公私钥对记为(PKM,SKM);
所述生成授权监管方的监管参数:
由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来;
所述授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员;
所述授权监管方生成NIZK所用的公共参数,并广播给全体成员;
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)};
其中,
x的证据w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
cmi=Comm(vi,ri),i∈{1,2,3};
v1-v2=v3,vi≥0,i∈{1,2,3};
设EncPk(m,r)代表用公钥加密算法Enc、公钥PK、随机数r加密消息m,则定义y=EncPK1(v2||r2,r),y2=EncPK2(v2||r2,r');
对L中的一个实例x,借助其证据w,生成证明,记为Π;
所述转账的发起模块:
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π);
其中,
cm1,cm2,cm3均表示对金额的承诺;
r1为转帐发起方本地存储的一个数值;
r2,r3为转账发起方所选择的两个随机数;
转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地;
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方;
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证;
转账发起方利用证据w=(ri,vi,r,r'),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π;
所述记账节点记账模块:
设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm'1,记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
对于转账接收方,记账节点计算交易后其余额承诺cm'3=cm'1·cm2。cm'3即是对转账接收方的原余额与接收到的转账金额的和的承诺值,记账节点将维护的转账接收方的余额的承诺cm'1替换为cm'3;
所述转账的接收模块:
设当前转账接收方的余额为v',余额的承诺所使用的本地存储的盲化因子为r'1。转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y2中所加密金额与cm2中所承诺金额一致;
计算r'3=r'1+r2,并存储在本地。接收方接收转账交易后的余额为v'3=v'+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r'3;
所述授权监管方的授权监管模块包括:
模块S1:授权监管方监察用户余额:
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2);
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y中所加密金额与cm2中所承诺金额一致;
由于授权监管方知道各用户初始余额情况与交易金额情况,因而授权监管方根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额;
模块S2:授权监管方删除包含恶意交易信息的区块中的恶意交易信息;
记账节点利用安全共识协议将交易信息打包成区块,设Block S1,S2,S3为相邻的三个区块,其中Block S2包含了恶意交易信息,授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的用户余额隐私保护和授权监管下的交易删除方法的步骤。
下面通过优选例对本发明进行更为具体地说明。
优选例1:
下面通过一个实例来说明此适用于联盟链的用户余额隐私保护和授权监管下的交易删除方案。
参与角色为授权监管方M、记账节点N、普通用户Alice、Bob。在初始化过程中,授权监管方M的公私钥对为(PKM,SKM)、授权监管方M的变色龙哈希函数的哈希公私钥对为(hk,tk)、记账节点N的公私钥对为(PKN,SKN)、Alice的公私钥对为(PKA,SKA)、Bob的公私钥对为(PKB,SKB)。
实例具体为Alice目前余额为20代币,Bob目前余额5代币,Alice将向Bob转账10代币,且当前记账节点维护的Alice的账户余额的承诺为cmA,Bob的账户余额的承诺为cmB。交易的大致流程如下:
1)Alice使用本地存储的rA1与选取的随机数rA2,rA3,计算对于当前余额20、转账金额10、转账后余额10的承诺cmA1=Comm(20,rA1),cmA2=Comm(10,rA2),cmA3=Comm(10,rA3)。
3)Alice执行Prove(x,w)得到证明Π,其中w=(rA1,rA2,rA3,20,10,10,r,r'),x=(cmA1,cmA2,cmA3,y,y2)。
4)Alice将交易消息trans=(cmA1,cmA2,cmA3,y,y2,Π)发送给记账节点、M和Bob,并将rA3保存在本地。
5)N收到交易消息后执行Verf(x,Π)验证此交易消息的正确性。
若此交易消息不正确,则拒绝交易;
若此交易消息是正确的,则将维护的Alice的余额的承诺cmA替换为cmA3;将维护的Bob的余额的承诺cmB替换为cmB·cmA2。
6)Bob收到交易消息后执行Verf(x,Π)验证此交易消息的正确性,其中实例x=(cmA1,cmA2,cmA3,y,y2)。
若此交易消息不正确则拒绝交易;
7)M收到交易消息后执行Verf(x,Π)验证此交易消息的正确性,其中实例x=(cmA1,cmA2,cmA3,y,y2)。
若此交易消息不正确则拒绝交易;
8)一段时间后,记账节点间通过安全共识协议将交易信息打包成区块。若授权监管方M发现某区块上的交易含有恶意交易信息,则删除该交易,重新计算该区块的MerkelTree Root的值,并使用变色龙哈希函数的私钥tk计算出新的检查字符串,更新所修订的区块的Merkel Tree Root的值和检查字符串的值,完成授权监管下对包含恶意交易信息的区块中的恶意交易信息的删除。
在联盟链交易过程中,为保证用户隐私,并平衡授权监管的需求及对抗恶意用户,拟实现如下功能:
1)记账节点可以通过安全共识协议完成记账功能但不知道用户间每笔交易的金额和各个用户的余额。
2)授权监管方可以监察用户余额。
3)授权监管方可以删除任意区块中包含的恶意交易。
我们提出了一种适用于联盟链的用户余额隐私保护和授权监管下的交易删除方案。方案在不暴露普通用户账户余额和普通用户间交易金额的情况下,可使记账节点完成记账,即记账节点不需知道交易金额便可验证交易有效性。同时,授权监管方可以查看任意普通用户的余额,并对区块上的恶意信息进行修订且不会改变已有的区块链的链接信息,不影响整个区块链的安全性。
为实现以上目标,本方案将Pedersen Commitment、非交互式零知识证明NIZK以及变色龙哈希相结合。交易发起方使用Pedersen Commitment保证交易金额的隐私性和交易的可验证性;同时,交易发起方将交易监管及确认所需信息以公钥加密的形式发送给授权监管方和转账接收方;为保证交易的正确性是可验证的,交易发起方以NIZK方式生成交易的正确性的证明并附在交易信息中。
记账节点收到交易信息及所附的证明,可通过非交互式零知识证明NIZK来验证交易的正确性。
此外,为了使授权监管方可对区块链上的恶意信息进行修订并不影响已有的区块链的链接信息,我们的方案同时使用变色龙哈希函数和传统密码哈希函数。借助变色龙哈希函数的找碰撞算法,由此授权监管方可以对承载恶意信息的区块进行修订而保持所修订的区块的原哈希值不变,不影响有效区块的正确性。
优选例2:
对于此适用于联盟链的用户余额隐私保护和授权监管下的交易删除方案,按照联盟链交易的流程分为五个部分:参与各方的初始化、转账的发起、记账节点记账、转账的接收、授权监管方的授权监管。
参与各方的初始化:
1)成员节点的角色分类及功能定义
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户。
①授权监管方:授权监管方是整个联盟链交易的监管者。在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额。
②记账节点:记账节点是联盟链中预先选定的多个节点。记账节点参与记账共识与账本的同步。联盟链中区块的生成由记账节点间通过安全共识协议决定。
③普通用户:普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成。
2)成员节点的公私钥生成
如附图3所示,此方案中的身份认证是由可信第三方作为负责发放和管理数字证书的权威机构。可信第三方承担公钥体系中公钥的合法性检验的责任。成员节点通过与证书颁发机构的交互获得自己的公私钥对以及对应的公钥证书,符号标记如下。
①授权监管方M:公私钥对记为(PKM,SKM)
3)授权监管方的监管参数生成:
①由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来。
②由授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员。
③由授权监管方生成NIZK所用的公共参数,并广播给全体成员。
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)}。其中x的证据
w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
a.cmi=Comm(vi,ri),i∈{1,2,3};
b.v1-v2=v3,vi≥0,i∈{1,2,3};
对L中的一个实例x,借助其证据w,生成证明,记为Π。
转账的发起:
转账交易是由普通用户发起的,交易信息被发送给记账节点、授权监管方和转账接收方。利用交易信息,记账节点会形成区块及维护对用户余额的承诺;授权监管方可监管用户余额;转账接收方可以确认交易金额并更新自己的账户信息。
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π)。
cm1,cm2,cm3均表示对金额的承诺。r1为转帐发起方本地存储的一个数值,r2,r3为转账发起方所选择的两个随机数。转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地。
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方。转账发起方选择随机数r和r',作为公钥加密的参数,分别用于使用授权监管方公钥PKM对(v2,r2)加密得到密文y,即使用交易接收方UR的公钥对(v2,r2)加密得到密文y2,
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证。转账发起方利用证据w=(ri,vi,r,r'),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π。
记账节点记账:
假设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm'1。记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π)。
1)使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2)。
2)若该交易消息不合法,则拒绝此交易。
若该交易消息合法:
①对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
②对于转账接收方,记账节点计算交易后其余额承诺cm'3=cm'1·cm2。cm'3即是对转账接收方的原余额与接收到的转账金额的和的承诺值。记账节点将维护的转账接收方的余额的承诺cm'1替换为cm'3。
这里由于金额以承诺的形式出现在交易信息中,记账节点并不知交易双方具体余额及交易的转账金额,但仍可利用Pedersen Commitment的同态性来记录用户帐户余额的变更情况。
3)一定时间后,记账节点间通过安全共识协议将交易信息打包成区块。对于任一区块S’,其区块哈希值的计算方式如附图6虚线框中所示:
其中:
hk表示变色龙哈希函数所使用的哈希公钥;
HashPrev表示前一区块的区块哈希值;
Nonce值为区块生成的相关参数;
Merkel Tree Root表示当前区块所包含的交易信息所形成的Merkel Tree Root的值;
Check string是变色龙哈希的参数,便于寻找碰撞。
H()表示传统哈希函数;
CH()表示变色龙哈希函数,这里将(S,x)作为一个整体,用作变色龙哈希生成的消息输入;
若上述符号带有下标,则是为了区别对应于不同区块的参数。
转账的接收:
假设当前转账接收方的余额为v',余额的承诺所使用的本地存储的盲化因子为r'1。转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π)。
1)使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2)。
2)若该交易消息不合法,则拒绝此交易。
若该交易消息合法:
①表明y2中所加密金额与cm2中所承诺金额一致。
③计算r'3=r'1+r2,并存储在本地。接收方接收转账交易后的余额为v'3=v'+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r'3。
3)转账交易完成前后,转账交易的发起方和转账交易的接收方所存储的分别对应于当前余额的承诺所使用的盲化因子的变化如附图7所示。
授权监管方的授权监管:
授权监管方可以监察用户余额,并且可对包含恶意交易信息的交易进行删除。
1)授权监管方监察用户余额
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π)。
①使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2)。
②若该交易消息不合法,则拒绝此交易。
若该交易消息合法:
a.表明y中所加密金额与cm2中所承诺金额一致。
c.由于授权监管方知道各用户初始余额情况与交易金额情况,因而其可根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额。
2)授权监管方删除包含恶意交易信息的区块中的恶意交易信息
3)记账节点利用安全共识协议将交易信息打包成区块,区块间关系如附图8所示(设恶意交易信息包含在Block S2中):
Block S1,S2,S3为相邻的三个区块。其中Block S2包含了恶意交易信息。授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
①授权监管方删除恶意信息,并利用剩余交易信息重新计算区块Block S2的Merkel Tree Root的值,得到x'2。
②授权监管方利用自己所掌握的变色龙哈希函数的哈希私钥tk针对新的MerkelTree Root x'2,计算ξ'2=CHCol(tk,(h2,S1||x2,ξ2),S1||x'2),得到新的检查字符串,其中h2=CHash(hk,S2||x2,ξ2),即Block S2的原变色龙哈希值。新的检查字符串ξ'2满足CHash(hk,S2||x'2,ξ')=h2。
③更新Block S2的Merkel Tree Root部分为x'2,Check String部分为ξ'2,即完成对Block S2的修订。
区块间的变化如附图9所示。由此,在不影响其他区块正确性的前提下授权监管方实现了对包含恶意交易信息的区块中的恶意交易信息的删除。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (9)
1.一种用户余额隐私保护和授权监管下的交易删除方法,其特征在于,包括
参与各方的初始化步骤:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;
转账的发起步骤:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方;
记账节点记账步骤:记账节点接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
转账的接收步骤:转账接收方接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
授权监管方的授权监管步骤:授权监管方监察用户余额,并且可对包含恶意交易信息的交易进行删除;
所述生成授权监管方的监管参数:
由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来;
所述授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员;
所述授权监管方生成NIZK所用的公共参数,并广播给全体成员;
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)};
其中,
x的证据w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
cmi=Comm(vi,ri),i∈{1,2,3};
v1-v2=v3,vi≥0,i∈{1,2,3};
对L中的一个实例x,借助其证据w,生成证明,记为Π。
2.根据权利要求1所述的用户余额隐私保护和授权监管下的交易删除方法,其特征在于,所述定义成员节点的角色分类及功能:
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户;
所述授权监管方是整个联盟链交易的监管者, 在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额;
所述记账节点是联盟链中预先选定的多个节点, 记账节点参与记账共识与账本的同步, 联盟链中区块的生成由记账节点间通过安全共识协议决定;
所述普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成。
4.根据权利要求1所述的用户余额隐私保护和授权监管下的交易删除方法,其特征在于,所述转账的发起步骤:
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π);
其中,
cm1,cm2,cm3均表示对金额的承诺;
r1为转帐发起方本地存储的一个数值;
r2,r3为转账发起方所选择的两个随机数;
转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地;
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方;
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证;
转账发起方利用证据w=(ri,vi,r,r′),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π。
5.根据权利要求1所述的用户余额隐私保护和授权监管下的交易删除方法,其特征在于,所述记账节点记账步骤:
设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm′1,记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
对于转账接收方,记账节点计算交易后其余额承诺cm′3=cm′1·cm2, cm′3即是对转账接收方的原余额与接收到的转账金额的和的承诺值,记账节点将维护的转账接收方的余额的承诺cm′1替换为cm′3。
6.根据权利要求1所述的用户余额隐私保护和授权监管下的交易删除方法,其特征在于,所述转账的接收步骤:
设当前转账接收方的余额为v′,余额的承诺所使用的本地存储的盲化因子为r′1, 转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y2中所加密金额与cm2中所承诺金额一致;
计算r′3=r′1+r2,并存储在本地, 接收方接收转账交易后的余额为v′3=v′+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r′3。
7.根据权利要求1所述的用户余额隐私保护和授权监管下的交易删除方法,其特征在于,所述授权监管方的授权监管步骤:
步骤S1:授权监管方监察用户余额:
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2);
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y中所加密金额与cm2中所承诺金额一致;
由于授权监管方知道各用户初始余额情况与交易金额情况,因而授权监管方根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额;
步骤S2:授权监管方删除包含恶意交易信息的区块中的恶意交易信息;
记账节点利用安全共识协议将交易信息打包成区块,设Block S1,S2,S3为相邻的三个区块,其中Block S2包含了恶意交易信息,授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
8.一种用户余额隐私保护和授权监管下的交易删除系统,其特征在于,包括
参与各方的初始化模块:定义成员节点的角色分类及功能,生成成员节点的公私钥,生成授权监管方的监管参数;
转账的发起模块:令普通用户发起转账交易,将转账交易信息发送给记账节点、授权监管方和转账接收方;
记账节点记账模块:记账节点接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
转账的接收模块:转账接收方接收转账交易信息,验证收到的转账交易信息是否合法,若合法则接受交易,若不合法则拒绝交易;
授权监管方的授权监管模块:授权监管方监察用户余额,并且可对包含恶意交易信息的交易进行删除;
所述定义成员节点的角色分类及功能:
联盟链中的主要角色有三种:授权监管方、记账节点、普通用户;
所述授权监管方是整个联盟链交易的监管者。在此方案中授权监管方默认已知各普通用户在联盟链中的初始的账户余额;
所述记账节点是联盟链中预先选定的多个节点。记账节点参与记账共识与账本的同步。联盟链中区块的生成由记账节点间通过安全共识协议决定。
所述普通用户参与联盟链中的交易,并将交易提交给记账节点,但不参与记账行为或区块生成;
所述生成成员节点的公私钥:
由可信第三方作为负责发放和管理数字证书的权威机构进行身份认证;
所述可信第三方承担公钥体系中公钥的合法性检验的责任;
所述成员节点通过与证书颁发机构的交互获得自己的公私钥对以及对应的公钥证书,符号标记如下:
授权监管方M:公私钥对记为(PKM,SKM);
所述生成授权监管方的监管参数:
由授权监管方生成变色龙哈希函数的公私钥对(hk,tk),并将哈希公钥hk发送给全体记账节点,将哈希私钥tk保存下来;
所述授权监管方生成Pedersen Commitment的公共参数,并广播给全体成员;
所述授权监管方生成NIZK所用的公共参数,并广播给全体成员;
针对NIZK,规定语言L={x|x=(cm1,cm2,cm3,y,y2)};
其中,
x的证据w=(r1,r2,r3,v1,v2,v3,r,r′),满足:
cmi=Comm(vi,ri),i∈{1,2,3};
v1-v2=v3,vi≥0,i∈{1,2,3};
对L中的一个实例x,借助其证据w,生成证明,记为Π;
所述转账的发起模块:
转账交易消息格式为:trans=(cm1,cm2,cm3,y,y2,Π);
其中,
cm1,cm2,cm3均表示对金额的承诺;
r1为转帐发起方本地存储的一个数值;
r2,r3为转账发起方所选择的两个随机数;
转帐发起方计算关于自身当前余额v1、转账金额v2,以及交易后自身余额v3的承诺cmi=Comm(vi,ri),i∈{1,2,3},并将r3保存在本地;
y,y2用于将交易金额v2及对交易金额承诺所使用的随机数r2通过公钥加密的方式发送给授权监管方和转账接收方;
Π用于其他节点使用NIZK证明验证算法对此交易消息合法性的进行验证;
转账发起方利用证据w=(ri,vi,r,r′),i∈{1,2,3},通过NIZK证明生成算法Prove(w,x)计算关于实例x=(cm1,cm2,cm3,y,y2)∈L的证明Π;
所述记账节点记账模块:
设当前记账节点所维护的转账发起方的余额的承诺为cm,转账接收方的余额的承诺为cm′1,记账节点收到交易消息trans,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
对于转账发起方,记账节点将维护的发送方的余额的承诺cm替换为cm3;
对于转账接收方,记账节点计算交易后其余额承诺cm′3=cm′1·cm2, cm′3即是对转账接收方的原余额与接收到的转账金额的和的承诺值,记账节点将维护的转账接收方的余额的承诺cm′1替换为cm′3;
所述转账的接收模块:
设当前转账接收方的余额为v′,余额的承诺所使用的本地存储的盲化因子为r′1, 转账接收方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2):
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y2中所加密金额与cm2中所承诺金额一致;
计算r′3=r′1+r2,并存储在本地, 接收方接收转账交易后的余额为v′3=v′+v2,对应转账接收方当前的余额承诺所使用的盲化因子为r′3;
所述授权监管方的授权监管模块包括:
模块S1:授权监管方监察用户余额:
当授权监管方收到交易消息trans后,得到(cm1,cm2,cm3,y,y2,Π);
使用Π通过NIZK验证算法Verf(x,Π)验证该交易消息是否合法,其中实例x=(cm1,cm2,cm3,y,y2);
若该交易消息不合法,则拒绝此交易;
若该交易消息合法:
表明y中所加密金额与cm2中所承诺金额一致;
由于授权监管方知道各用户初始余额情况与交易金额情况,因而授权监管方根据该余额以及交易金额更新与这笔交易相关的用户的账户信息,从而得到用户的最新余额;
模块S2:授权监管方删除包含恶意交易信息的区块中的恶意交易信息;
记账节点利用安全共识协议将交易信息打包成区块,设Block S1,S2,S3为相邻的三个区块,其中Block S2包含了恶意交易信息,授权监管方需要在保证整个区块链的区块间链接信息不变的前提下,完成对Block S2的修订,即删除Block S2中的恶意交易,且不影响其他区块。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的用户余额隐私保护和授权监管下的交易删除方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010778239.7A CN111988290B (zh) | 2020-08-05 | 2020-08-05 | 用户余额隐私保护和授权监管下的交易删除方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010778239.7A CN111988290B (zh) | 2020-08-05 | 2020-08-05 | 用户余额隐私保护和授权监管下的交易删除方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111988290A CN111988290A (zh) | 2020-11-24 |
CN111988290B true CN111988290B (zh) | 2022-10-14 |
Family
ID=73445054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010778239.7A Active CN111988290B (zh) | 2020-08-05 | 2020-08-05 | 用户余额隐私保护和授权监管下的交易删除方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111988290B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112488725B (zh) * | 2020-12-25 | 2022-04-05 | 杭州复杂美科技有限公司 | 隐私授权转账方法、设备和存储介质 |
CN112598411B (zh) * | 2020-12-25 | 2023-05-30 | 杭州复杂美科技有限公司 | 可撤回的隐私授权转账方法、设备和存储介质 |
CN113094432B (zh) * | 2021-04-06 | 2022-06-03 | 湖北央中巨石信息技术有限公司 | 基于相同预制规则的多方异步共识方法及系统 |
CN113162938B (zh) * | 2021-04-26 | 2023-10-10 | 电子科技大学 | 一种基于区块链的抗后门攻击的公共参数产生方法 |
CN114154982B (zh) * | 2021-08-16 | 2022-07-01 | 北京天德科技有限公司 | 一种基于区块链和大数据平台的实时结算和监管方法 |
CN113657972A (zh) * | 2021-08-31 | 2021-11-16 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的物品交易方法、计算机装置及存储介质 |
CN113781073B (zh) * | 2021-11-10 | 2022-03-04 | 南京邮电大学 | 一种基于矩阵联盟链的可隐藏实名的资助方法 |
CN114461623B (zh) * | 2022-01-27 | 2024-08-27 | 东南大学 | 一种许可链上授权的非交易有害数据完全擦除方法 |
CN115378600B (zh) * | 2022-07-27 | 2024-07-23 | 浪潮云信息技术股份公司 | 一种基于离散对数的可验证变色龙哈希验证方法 |
CN115622728A (zh) * | 2022-08-05 | 2023-01-17 | 贵州大学 | 一种基于dlin加密的可审计联盟链隐私保护方案 |
CN115801259B (zh) * | 2022-11-10 | 2023-06-09 | 上海零数众合信息科技有限公司 | 事务监管方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2479343A1 (en) * | 2002-03-19 | 2003-10-02 | Chameleon Network Inc. | Portable electronic authorization system and method |
CN107911216B (zh) * | 2017-10-26 | 2020-07-14 | 矩阵元技术(深圳)有限公司 | 一种区块链交易隐私保护方法及系统 |
CN110059494B (zh) * | 2019-04-17 | 2020-11-03 | 深圳启元信息服务有限公司 | 一种区块链交易数据的隐私保护方法及区块链系统 |
CN110648229B (zh) * | 2019-08-07 | 2022-05-17 | 中国科学院信息工程研究所 | 一种半公开的区块链系统及交易方法 |
CN110933045A (zh) * | 2019-11-08 | 2020-03-27 | 中国电子科技网络信息安全有限公司 | 一种基于承诺的区块链数字资产隐私保护方法 |
-
2020
- 2020-08-05 CN CN202010778239.7A patent/CN111988290B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111988290A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111988290B (zh) | 用户余额隐私保护和授权监管下的交易删除方法及系统 | |
US12003616B2 (en) | Rapid distributed consensus on blockchain | |
US11799637B2 (en) | Methods and systems for blockchain-implemented event-lock encryption | |
Zhang et al. | Security and privacy on blockchain | |
Hanifatunnisa et al. | Blockchain based e-voting recording system design | |
CN110288480B (zh) | 一种区块链的私密交易方法及装置 | |
JP2021507564A (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
CN110110555A (zh) | 一种区块链中的投票方法及装置 | |
CN111709749A (zh) | 一种具有条件隐私保护的可追踪区块链交易系统 | |
CN112487468B (zh) | 基于区块链的可追踪的完全匿名电子投票方法及系统 | |
CN110149304A (zh) | 一种适用于联盟链的支持身份可追踪的高效匿名认证方法和系统 | |
CN112801664A (zh) | 基于区块链的智能合约供应链可信服务方法 | |
CN111091380B (zh) | 一种基于好友隐蔽验证的区块链资产管理方法 | |
Akbarfam et al. | Dlacb: Deep learning based access control using blockchain | |
CN117036027A (zh) | 基于区块链的绿色电力消费认证数据处理方法及相关设备 | |
CN112990928B (zh) | 一种数字货币交易数据的安全保护方法 | |
Hu et al. | IvyRedaction: Enabling Atomic, Consistent and Accountable Cross-Chain Rewriting | |
CN116094797B (zh) | 一种基于安全多方计算的分布式身份信任管理方法 | |
Rao et al. | VAPKI: A blockchain-based identification system with validation and authentication | |
Song et al. | Traceable revocable anonymous registration scheme with zero-knowledge proof on blockchain | |
Takahashi et al. | VeloCash: Anonymous Decentralized Probabilistic Micropayments With Transferability | |
Darabi et al. | Identity Chain | |
CN117473557B (zh) | 一种可信设置方法及装置 | |
Xu et al. | A Dynamic Blockchain-Based Mutual Authenticating Identity Management System for Next-Generation Network | |
Luo | Efficient and Fine-grained Redactable Blockchain Supporting Accountability and Updating Policies |
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 |