CN111010280B - 一种基于群签名的可监管区块链构造方法 - Google Patents
一种基于群签名的可监管区块链构造方法 Download PDFInfo
- Publication number
- CN111010280B CN111010280B CN201911248844.7A CN201911248844A CN111010280B CN 111010280 B CN111010280 B CN 111010280B CN 201911248844 A CN201911248844 A CN 201911248844A CN 111010280 B CN111010280 B CN 111010280B
- Authority
- CN
- China
- Prior art keywords
- user
- transaction
- block chain
- group
- private key
- 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/3247—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 digital signatures
- H04L9/3255—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 digital signatures using group based signatures, e.g. ring or threshold 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
- 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
- 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/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/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
-
- 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
Abstract
本专利提出一种基于群签名的可监管区块链构造方法,包括群管理员、区块链用户和区块链验证节点,其中区块链用户需要向群管理员注册获得用户私钥,并使用用户私钥生成群签名、使用本地的秘密数生成知识证明,而区块链验证节点则使用群公钥验证群签名、并验证交易中的知识证明,从而确保所有区块链的交易都是注册过的用户生成的,且能够防止用户的双花,群管理员通过群私钥和群签名可以恢复用户的身份,实现监管。本发明可以同时实现用户交易的不可追踪性、不可链接性和可监管性,解决区块链的可监管问题,直接应用于采用UTXO模式的区块链,通过对此类区块链进行适应性改造,提供可监管性。
Description
技术领域
本发明涉及计算机应用技术领域,特别是区块链技术的可监管技术,涉及一种基于群签名的可监管区块链构造方法。
背景技术
区块链发展的一个方向是用户的隐私保护。CryptoNote定义了两个用户隐私保护的属性——不可追踪性和不可链接性。不可追踪性是指一个交易输入的所有可能发送者都是等价的;不可链接性是指对于任意的两个交易输出无法证明它们的交易接收方是同一个人。早期的交易采用假名技术保护用户身份,达不到不可追踪性。CryptoNote通过可链接环签名实现不可追踪性和双花检测,通过一次性地址实现不可链接性,进而通过Bulletproofs、Borromean等协议实现交易金额的保密。Zcash通过知识证明等技术实现交易双方身份和交易金额的保密,确保交易的不可追踪性和不可链接性。Mimble-Wimble改变了交易的结构,通过承诺技术隐藏了交易的身份和金额。
在隐私保护技术发展的同时,可监管性被忽略了。强隐私保护只是便利了犯罪分子进行洗钱、诈骗和勒索等犯罪活动。这在事实上阻碍了区块链技术的正常发展。有研究者注意到了这个问题,提出了弱化隐私保护的方案。例如Li等人提出了“Traceable Monero:Anonymous Cryptocurrency with Enhanced Accountability”,2019年4月发表在期刊《IEEE Transactions on Dependable and Secure Computing》,其中Monero是CryptoNote的一类实现。该论文使得愿意被监管的用户可以被监管者追踪。但这与金融行业对账户持有人的强化审查(KYC)原则还有一段距离,还实现不了对用户的监管。
发明内容
针对现有区块链交易难以监管的问题,本发明引入群签名和知识证明,矿工节点验证交易时验证群签名,因此区块链用户只能先注册后使用,而注册过程就给监管机构提供了审查用户的机会。使用群签名的主要问题是需要防止双花,我们设计了知识证明,采用了类似 CryptoNote的一次性地址,确保区块链的安全性,防止双花的出现。在必要的时候,监管部门利用群私钥通过群签名可查看并追踪可疑的交易,给出可疑交易的参与用户,实现可监管。
本发明的目的在于设计一种基于群签名的可监管区块链构造方法,区块链的一般用户具有与CryptoNote之类的区块链相同的隐私性,即不可追踪性和不可链接性,对于群管理员而言,可以对交易监管,明确交易参与人的真实身份。本发明可以同时实现用户交易的不可追踪性、不可链接性和可监管性,解决区块链的可监管问题,直接应用于采用UTXO模式的区块链,通过对此类区块链进行适应性改造,提供可监管性。
为实现上述目的,本发明给出如下方法:
一种基于群签名的可监管区块链构造方法,包括群管理员GM、区块链用户DU1,…,DUnu和区块链验证节点VN1,…,VNnn,其中nu和nn是任意自然数,且随着区块链系统的运行,nu和nn的数值可以动态变化,包括以下步骤:
A)系统初始化:所述群管理员GM设置系统参数para,公开群公钥gpk,安全保存群私钥gsk;
B)用户注册:在任意时刻,所述区块链用户DUi向所述群管理员GM注册身份信息,并与所述群管理员GM交互以获得用户私钥uski,并本地生成秘密数α'和转账地址A';其中,1≤i≤nu;
C)用户生成一次性地址:当区块链用户DUj,1≤j≤nu,j≠i,给所述区块链用户DUi转账时,1≤i≤nu,i≠j,所述区块链用户DUj需要与所述区块链用户DUi交互,生成所述区块链用户DUi的一次性地址A和转账所需要的交易公钥B,并且所述区块链用户DUi能够识别交易中的一次性地址是否属于用户DUi,所谓属于用户DUi的一次性地址意思是用户DUi能够生成该一次性地址的离散对数;
D)用户转账:所述区块链用户DUi使用用户私钥uski、本地秘密数α',生成群签名和该群签名与该一次性地址绑定的知识证明,并使用该群签名和知识证明构造交易,发送交易给区块链验证节点;
E)验证交易:区块链验证节点使用群公钥gpk验证接收的交易是否有效,如果有效则完成交易上链;
F)监管交易:群管理员GM在需要时使用群私钥gsk打开交易的群签名以查找该交易发起方的身份,实现对交易的监管。
上述步骤A)包括:
A1)所述群管理员GM设置系统参数para=(G1,G2,g1,g2,e,p),其中p为素数,G1和G2是p阶的循环群,G1和G2中的运算表示为乘法,g1是G1的生成元,g2是G2的生成元, e是在G1和G2上定义的双线性对映射;
A2)所述群管理员GM从G1中随机选取元素h和w,从模p的整数环Zp中随机选取非零数ξ1,ξ2和λ;
A4)所述群管理员GM选择两个安全的散列函数H1和H2,其中H1映射到整数环Zp, H2映射到群G1;
A5)所述群管理员设置群公钥gpk=(G1,G2,g1,g2,e,p,h,u,v,w,ω,H1,H2)和群私钥gsk= (ξ1,ξ2,λ),其中群公钥gsk公开,群私钥由所述群管理员GM本地安全保存,例如保存在本地的加密数据库中。
上述步骤B)包括:
B1)在任意时刻,所述区块链用户DUi,向所述群管理员GM安全的注册自己的真实身份,例如区块链用户DUi通过加密的安全通信链路发送其身份识别信息至群管理员GM;
B2)所述群管理员GM验证所述区块链用户DUi的身份信息是否有效且未注册,若有效且未注册,则继续执行,否则退出,在核实身份信息是否注册时,GM可以在本地的保密数据库中检索DUi提交的身份信息是否存在来判断是否注册;
B4)所述群管理员GM安全的把用户私钥uski交给所述区块链用户DUi,并安全保存用户私钥和用户真实身份,例如GM通过加密的安全通信链路发送DUi的用户私钥到DUi,并保存DUi的身份真实身份和DUi的用户私钥到GM本地的保密数据库;
B5)所述区块链用户DUi从整数环Zp中随机选取一个非零数作为本地秘密数α',并与用户私钥uski在本地安全保存,接下来所述区块链用户DUi生成转账地址A'=wα'。
上述述步骤C)包括:
C1)当所述区块链用户DUj给所述区块链用户DUi转账时,所述区块链用户DUj从整数环Zp中随机选取非零数β',计算此次转账所需要的交易公钥B=wβ';其中i≠j;
C2)所述区块链用户DUj与所述区块链用户DUi交互,获得所述区块链用户DUi的转账地址A',计算共享秘密k0=H1(A'β'),一种可能的交互方式是用户DUj扫描用户DUi生成的关于转账地址A'的二维码;
上述步骤D)包括:
D1)所述区块链用户DUi设置每一个转账对象的一次性地址和转账金额,计算基本转账金额总需求,例如DUi按照上述步骤C1)生成交易公钥,然后按照步骤C2)到C3)生成每个转账对象的一次性地址,并对每个一次性地址输入转账金额,然后按照比特币的交易结构形成交易输出列表,列表中的每个交易输出包括转账金额和一次性地址,根据交易输出列表, DUi计算所述交易中交易输出的总金额;
D2)所述区块链用户DUi选择N个属于所述区块链用户DUi的可转账的一次性地址,确保所选择的一次性地址锁定的转账金额之和大于或等于基本转账金额总需求,所述N个一次性地址表示为A1,...,AN,其中N是自然数,当所述转账金额大于交易输出的总金额时,DUi向交易输出列表中添加一个新的一次性地址和转账金额,作为找零输出;
D3)所述区块链用户DUi对所述步骤D2)选择的每一个一次性地址进行混淆,从所述区块链中寻找M个可混淆的一次性地址,对于某个特定的一次性地址Ak,1≤k≤N,这M个可混淆的一次性地址表示为其中M是任意自然数。如果可混淆的一次性地址的转账金额是明文的,需要与Ak的转账金额相同。之后所述区块链用户DUi对和Ak排序,建立一个容量为M+1的一次性地址列表Alist,不失一般性,设Ak在该列表中处于第i*个位置,即特别的,因为有N个一次性地址,因此有对应的N个一次性地址列表,所有地址列表中的所有地址的输出索引构成了N个交易输入。这N个交易输入形成的交易输入列表、交易公钥和交易输出列表形成交易消息Tx的主要内容,每一个地址的输出索引是该地址所在交易的标识号TxID和该地址所在输出交易在交易输出列表中的序号;
D5)所述区块链用户DUi从整数环Zp中随机选取一个非零数β,计算G1中的三个群元素T2=vβ和计算两个整数环Zp中的元素δ1=xiαk和δ2=xiβ,其中IDi是用户私钥uski的第一个部分,xi是用户私钥uski的第二个部分,同样,该过程对所述步骤D2)选择的每一个一次性地址计算一次;
D7)所述区块链用户DUi计算哈希值c=H1(T1,T2,T3,R1,R2,R3,R4,R5,Tx),其中Tx表示所述区块链用户DUi所构造的交易消息,包括N×(M+1)个与一次性地址相关的交易输入列表和针对每一个转账对象的交易输出列表,对于所述步骤D2)选择的每一个一次性地址上述过程都要计算一次;
D8)所述区块链用户DUi计算响应值sα=rα+cαk、sβ=rβ+cβ、sx=rx+cxi、 得到针对一次性地址Ak的群签名(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2),对于所述步骤D2)选择的每一个一次性地址都会生成一个群签名;
D9)所述区块链用户DUi生成知识证明,证明针对一次性地址Ak的群签名的第一个元素 T1关于u的离散对数与一次性地址列表Alist中的某一个地址关于w的离散对数相同,知识证明生成过程包括以下步骤,该过程对所述步骤D2)选择的每一个一次性地址都执行一次:
D91)对于一次性地址列表Alist中的第q个位置的元素,当q≠i*时,从整数环Zp中随机选取两个非零数sq和cq,计算G1中的两个群元素和当q=i*时,从整数环Zp中随机选取非零数rp,计算G1中的两个群元素和其中 1≤q≤M+1;
D10)所述区块链用户DUi生成针对一次性地址Ak的群签名和所述群签名与所述一次性地址Ak绑定的知识证明(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2,c1,s1,…,cM+1,sM+1),形成针对所述一次性地址Ak的有效转账证明;
D11)当所述区块链用户DUi生成针对N个一次性地址的所有有效转账证明之后,所述区块链用户DUi生成交易,并发送交易至任意区块链验证节点,例如发送给区块链节点VNv, 1≤v≤nn。
上述步骤E)包括:
E1)区块链验证节点VNv,1≤v≤nn,接收到交易后,对于所述交易的每一个输入,验证群签名部分第一个元素是否已经记录在所述区块链中,如果已经记录过,则判断所述交易无效;
E2)区块链验证节点VNv,对于交易的每一个输入使用群公钥gpk验证群签名,如果群签名无效则判断所述交易无效,用(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2)表示某个输入的群签名,验证过程包括如下步骤:
E3)区块链验证节点VNv,对于交易的每一个输入还需要验证知识证明,如果知识证明无效则判断交易无效,用(c1,s1,…,cM+1,sM+1)表示某个输入的知识证明,则区块链验证节点VNv计算和1≤q≤M+1,然后验证等式是否成立,若不成立,则所述交易无效;
E4)区块链验证节点VNv验证了交易的每一个交易输入的群签名和知识证明之后,如果全部有效,则认为交易有效,把所述交易按照所述区块链的共识算法完成上链。
上述步骤F)包括:
F1)所述群管理员GM对于可疑交易,获取所述可疑交易的每一个交易输入,并使用每一个交易输入的群签名的前三个元素和群私钥gsk还原参与用户的用户私钥uski的第一个部分,以(T1、T2、T3)表示某个输入的群签名的前三个元素,计算用户私钥uski的第一个部分其中ξ1和ξ2是群私钥gsk的第一个元素和第二个元素;
F2)所述群管理员GM获得用户私钥uski的第一个部分后,通过本地安全存储的用户真实身份和用户私钥找到用户的真实身份,实现对交易的监管,例如从本地保密数据库中以用户私钥uski的第一个部分为索引寻找用户真实身份。
本发明具有以下优点:
本发明在区块链中引入群签名,使得交易对于一般用户具有不可追踪性和不可链接性,而监管部门可通过群私钥打开群签名并查看交易发起方的真实身份,实现监管部门对于交易参与人的监管;
附图说明
图1是本发明基于群签名的可监管区块链构造方法示意图。
图2是本发明基于群签名的可监管区块链交易结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于群签名的可监管区块链构造方法,能够解决区块链系统中的交易难以被监管的问题。本发明可以作为CryptoNote的替代实现,适用于UTXO模型的区块链。
实施例1:
设央行提供群签名服务器,由群管理员GM维护。央行用户使用央行的区块链,用户数量动态变化,例如某个时刻nu=10000,设央行部署100个验证节点,所以nn=100。下面以区块链用户DUi、DUj和验证节点VNv来阐述本实施例。
A)系统初始化。GM选用Pairing-Based Cryptography(PBC)库中的d224参数确定系统参数para中的(G1,G2,e,p),其中素数p为 15028799613985034465755506450771561352583254744125520639296541195021,另外随机选择G1和G2中的两个元素做为g1和g2,确定系统参数para=(G1,G2,g1,g2,e,p)。之后GM从 G1中随机选取元素h和w,从模p的整数环Zp中随机选取非零数ξ1,ξ2和λ,计算G1中的两个元素和计算G2中的一个元素之后GM采用SHA-256算法作为基本的散列函数,然后把散列结果分别生成整数环Zp中的元素和G1中的元素,形成散列函数H1和H2。最后GM设置群公钥gpk=(G1,G2,g1,g2,e,p,h,u,v,w,ω,H1,H2)和群私钥gsk= (ξ1,ξ2,λ),群私钥保存在本地加密数据库中。
B)用户注册。DUi采用SSL/TLS协议与群签名服务器建立安全通道,向群管理员GM注册真实身份信息,包括身份证号码、手机信息、生物识别信息等,GM需要与公安机关的数据库核对用户的信息,确保用户信息有效,在确认用户实名接入后,GM在本地数据库中查重,例如以身份证号码来查重,确保用户不会重复注册。之后,GM从整数环Zp中随机选取非零数xi,计算G1群中的元素设置用户私钥uski=(IDi,xi)并通过安全通道返回给DUi,GM安全保存用户的真实身份和用户私钥到本地加密数据库中。之后用户DUi从整数环Zp中随机选取一个非零数作为本地秘密数α',设置转账地址A'=wα'。DUi在需要时可以生成任意新的本地秘密数并计算新的转账地址。用户DUi安全的存储用户私钥uski和本地秘密数。
DUj类似的也获得用户私钥,也会生成DUj的本地秘密数和转账地址。
C)用户生成一次性地址。我们通过DUj希望给DUi转账来说明交易中一次性地址的计算方法。当区块链用户DUj给所述区块链用户DUi转账时,DUj通过扫二维码获得DUi的转账地址A',DUj从整数环Zp中随机选取非零数β',计算此次转账所需要的交易公钥B=wβ',计算共享秘密k0=H1(A'β'),DUj计算此次转账的一次性地址
DUj使用该一次性地址构造转账交易,如果交易构造成功了,验证节点验证交易后可以把该交易放到央行区块链中,那么DUi通过访问区块链可以看到该交易。因为一次性地址和DUi的转账地址不同,DUi需要通过该交易中包含的交易公钥B,计算恢复转账地址,根据恢复的转账地址与本地的转账地址是否有相同的,就能够判断一个交易是不是向DUi转帐了,即判断一个一次性地址是否是属于DUi。
D)用户转账。我们通过DUi生成转账交易来说明转账交易的生成过程。注意在上面的步骤C)中,我们假设DUj给DUi转账已完成。DUj生成转账交易的过程我们并没有涉及,但是其过程与DUi生成转账交易的过程是类似的。概括的讲,该过程是“用户DUi使用用户私钥uski、本地秘密数α',生成群签名和该群签名与该一次性地址绑定的知识证明,并使用该群签名和知识证明形成交易,发送交易给区块链验证节点”。具体如下:
D1)设用户DUi给一个转账对象例如DUx转账。那么DUi按照上述步骤C)生成DUx的一次性地址和此次交易的交易公钥,此次交易需求的总金额就是给DUx转账的金额,设置为valx,这里的x显然是小于nu的一个自然数。交易公钥放到图2交易公钥的位置,DUx的一次性地址和转账金额放到图2的一个交易输出中。
D2)用户DUi选择1个属于DUi的可转账一次性地址,确保该地址的转账金额vali≥valx。该一次性地址表示为A1,如果valx比vali大太多,DUi自己生成一个新的转账地址,然后按照按照上述步骤C)生成新的一次性地址作为找零地址。新的一次性地址和找零的转账金额放到图2的一个交易输出中。
D3)为了提供不可追踪性,区块链用户DUi对A1进行混淆,从区块链中寻找3个可混淆的一次性地址,表示为简单起见,假设这三个地址的转账金额与A1的转账金额相同。之后,DUi对和A1排序,建立一个容量为4的一次性地址列表Alist,不失一般性,设A1在该列表中处于第2个位置,即之后用户DUi在区块链中找到这4个一次性地址的输出索引,构造一个交易输入的部分内容。一次性地址的输出索引是该地址所在交易的标识号TxID和该地址所在交易输出的序号,例如A1的输出索引表示为(TxID1,0)。交易输入的内容和该交易的交易公钥,交易的两个交易输出形成交易的主要内容Tx。其中交易公钥是在步骤D1)生成的,如图2所示,一个交易只有一个交易公钥。
下述步骤D4)到D8)是为了可监管性,生成群签名。
D7)用户DUi计算哈希值c=H1(T1,T2,T3,R1,R2,R3,R4,R5,Tx);
之后为了防止双花,用户DUi需要生成知识证明。
D9)用户DUi生成知识证明,证明针对一次性地址Ak的群签名的第一个元素T1关于u的离散对数与一次性地址列表Alist中的某一个地址关于w的离散对数相同,知识证明生成过程包括以下步骤:
D91)对于一次性地址列表Alist中的第q个位置的元素,当q≠2时,从整数环Zp中随机选取两个非零数sq和cq,计算G1中的两个群元素和当q=2时,从整数环Zp中随机选取非零数rp,计算G1中的两个群元素和其中1≤q≤4;
D10)用户DUi生成针对一次性地址Ak的群签名和所述群签名与所述一次性地址A1绑定的知识证明(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2,c1,s1,…,c4,s4),形成针对所述一次性地址A1的有效转账证明;
D11)用户DUi把群签名和转账证明嵌入交易的输入中,形成转账交易,并发送交易至验证节点VNv。
E)验证交易。验证节点VNv使用群公钥gpk验证接收的交易是否有效,如果有效则完成交易上链,具体来看
E1)验证节点VNv接收到交易后,检查该交易中群签名的第一个元素是否已经记录在区块链中,如果已经记录过,则判断所述交易无效;
E2)验证节点VNv使用群公钥gpk验证群签名,如果群签名无效则判断所述交易无效,用(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2)表示某个该群签名,具体验证过程包括如下步骤:
E3)验证节点VNv验证知识证明,如果知识证明无效则判断交易无效,用(c1,s1,…,cM+1, sM+1)表示该交易的知识证明,则VNv计算和1≤q≤4,然后验证等式是否成立;若不成立,则所述交易无效;
E4)验证节点VNv验证了交易的群签名和知识证明之后,如果全部有效,则认为交易有效,然后把交易按照区块链的共识算法完成上链。
F)监管交易。群管理员GM在需要时使用群私钥gsk打开交易的群签名以查找该交易发起方的身份,实现对交易的监管。
F1)假设群管理员认为一个交易可疑,群管理员GM获取该交易的群签名的前三个元素,使用群私钥gsk还原该交易生成方用户私钥uski的第一个部分,以(T1、T2、T3)表示某个输入的群签名的前三个元素,计算用户私钥uski的第一个部分其中ξ1和ξ2是群私钥gsk的第一个元素和第二个元素;
F2)群管理员GM获得用户私钥uski的第一个部分后,通过本地安全存储的用户真实身份和用户私钥找到用户的真实身份,实现对交易的监管。
实施例2:
实施例2与实施例1基本相同,不同之处在于区块链系统增加用户注册中心和交易监管中心。其中,用户注册由所述用户注册中心提供服务,监管交易由交易监管中心提供服务。
群私钥(ξ1,ξ2,λ)分为两个部分:所述用户注册中心持有λ,所述交易监管中心持有ξ1和ξ2。拥有群私钥的任一部分参数的成员必须加密存储所述群私钥的参数。
实施例3:
实施例3与实施例1基本相同,不同之处在于区块链系统采用了SHA-3或SM3等哈希算法做为基本的散列函数。
实施例4:
实施例4与实施例1基本相同,不同之处在于区块链系统采用了Bulletproofs、Borromean 协议等算法隐藏真实的交易输出金额。
实施例5:
实施例5与实施例1基本相同,不同之处在于用户的数量、验证节点的数量、用户构造的交易所包含的输入和输出的数量不同。
实施例6:
实施例6与实施例1基本相同,不同之处在于交易的一次性地址生成方式不同,例如采用密钥传输的方式用密文做交易公钥。
Claims (1)
1.一种基于群签名的可监管区块链构造方法,包括群管理员GM、区块链用户DU1,…,DUnu和区块链验证节点VN1,…,VNnn,其中nu和nn是任意自然数,且随着区块链系统的运行,nu和nn的数值动态变化,该方法包括以下步骤:
A)系统初始化:所述群管理员GM设置系统参数para,公开群公钥gpk,安全保存群私钥gsk;
所述步骤A)包括:
A1)所述群管理员GM设置系统参数para=(G1,G2,g1,g2,e,p),其中p为素数,G1和G2是p阶的循环群,G1和G2中的运算表示为乘法,g1是G1的生成元,g2是G2的生成元,e是在G1和G2上定义的双线性对映射;
A2)所述群管理员GM从G1中随机选取元素h和w,从模p的整数环Zp中随机选取非零数ξ1,ξ2和λ;
A4)所述群管理员GM选择两个安全的散列函数H1和H2,其中H1映射到整数环Zp,H2映射到群G1;
A5)所述群管理员设置群公钥gpk=(G1,G2,g1,g2,e,p,h,u,v,w,ω,H1,H2)和群私钥gsk=(ξ1,ξ2,λ),其中群公钥gsk公开,群私钥由所述群管理员GM本地安全保存;
B)用户注册:在任意时刻,所述区块链用户DUi向所述群管理员GM注册身份信息,并与所述群管理员GM交互以获得用户私钥uski,并本地生成秘密数α'和转账地址A';其中,1≤i≤nu;
所述步骤B)包括:
B1)在任意时刻,所述区块链用户DUi,向所述群管理员GM安全的注册自己的真实身份;
B2)所述群管理员GM验证所述区块链用户DUi的身份信息是否有效且未注册,若有效且未注册,则继续执行,否则退出;
B4)所述群管理员GM安全的把用户私钥uski交给所述区块链用户DUi,并安全保存用户私钥和用户真实身份;
B5)所述区块链用户DUi从整数环Zp中随机选取一个非零数作为本地秘密数α',并与用户私钥uski在本地安全保存,接下来所述区块链用户DUi设置转账地址A'=wα';
C)用户生成一次性地址:当区块链用户DUj,1≤j≤nu,j≠i,给所述区块链用户DUi转账时,1≤i≤nu,i≠j,所述区块链用户DUj需要与所述区块链用户DUi交互,生成所述区块链用户DUi的一次性地址A和转账所需要的交易公钥B,并且所述区块链用户DUi能够识别一次性地址是否属于所述区块链用户DUi;
所述步骤C)包括:
C1)当所述区块链用户DUj给所述区块链用户DUi转账时,所述区块链用户DUj从整数环Zp中随机选取非零数β',计算此次转账所需要的交易公钥B=wβ';其中i≠j;
C2)所述区块链用户DUj与所述区块链用户DUi交互,获得所述区块链用户DUi的转账地址A',计算共享秘密k0=H1(A'β');
D)用户转账:所述区块链用户DUi使用用户私钥uski、本地秘密数α',生成群签名和该群签名与该一次性地址绑定的知识证明,并使用该群签名和知识证明构造交易,发送交易给区块链验证节点;
所述步骤D)包括:
D1)所述区块链用户DUi设置每一个转账对象的一次性地址和转账金额,计算基本转账金额总需求;
D2)所述区块链用户DUi选择N个属于所述区块链用户DUi的可转账的一次性地址,确保所选择的一次性地址锁定的转账金额之和大于或等于基本转账金额总需求,所述N个一次性地址表示为A1,...,AN;其中N是自然数;
D3)所述区块链用户DUi对所述步骤D2)选择的每一个一次性地址进行混淆,从所述区块链中寻找M个可混淆的一次性地址,对于某个特定的一次性地址Ak,1≤k≤N,这M个可混淆的一次性地址表示为其中M是任意自然数,所述区块链用户DUi对和Ak排序,建立一个容量为M+1的一次性地址列表Alist,不失一般性,设Ak在该列表中处于第i*个位置,即
D5)所述区块链用户DUi从整数环Zp中随机选取一个非零数β,计算G1中的三个群元素T2=vβ和计算两个整数环Zp中的元素δ1=xiαk和δ2=xiβ,其中IDi是用户私钥uski的第一个部分,xi是用户私钥uski的第二个部分;
D7)所述区块链用户DUi计算哈希值c=H1(T1,T2,T3,R1,R2,R3,R4,R5,Tx),其中Tx表示所述区块链用户DUi所构造的交易消息,包括N×(M+1)个与一次性地址相关的交易输入列表和针对每一个转账对象的交易输出列表;
D9)所述区块链用户DUi生成知识证明,证明针对一次性地址Ak的群签名的第一个元素T1关于u的离散对数与一次性地址列表Alist中的某一个地址关于w的离散对数相同,知识证明生成过程包括以下步骤:
D91)对于一次性地址列表Alist中的第q个位置的元素,当q≠i*时,从整数环Zp中随机选取两个非零数sq和cq,计算G1中的两个群元素和当q=i*时,从整数环Zp中随机选取非零数rp,计算G1中的两个群元素和其中1≤q≤M+1;
D10)所述区块链用户DUi生成针对一次性地址Ak的群签名和所述群签名与所述一次性地址Ak绑定的知识证明(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2,c1,s1,…,cM+1,sM+1),形成针对所述一次性地址Ak的有效转账证明;
D11)当所述区块链用户DUi生成针对N个一次性地址的所有有效转账证明之后,所述区块链用户DUi生成交易,并发送交易至任意区块链验证节点;
E)验证交易:区块链验证节点使用群公钥gpk验证接收的交易是否有效,如果有效则完成交易上链;
所述步骤E)包括:
E1)区块链验证节点VNv,1≤v≤nn,接收到交易后,对于所述交易的每一个输入,验证群签名部分第一个元素是否已经记录在所述区块链中,如果已经记录过,则判断所述交易无效;
E2)区块链验证节点VNv,对于交易的每一个输入使用群公钥gpk验证群签名,如果群签名无效则判断所述交易无效,用(T1,T2,T3,c,sα,sβ,sx,sδ1,sδ2)表示某个输入的群签名,验证过程包括如下步骤:
E3)区块链验证节点VNv,对于交易的每一个输入还需要验证知识证明,如果知识证明无效则判断交易无效,用(c1,s1,…,cM+1,sM+1)表示某个输入的知识证明,则区块链验证节点VNv计算和1≤q≤M+1,然后验证等式是否成立,若不成立,则所述交易无效;
E4)区块链验证节点VNv验证了交易的每一个输入的群签名和知识证明之后,如果全部有效,则认为交易有效,然后把所述交易按照所述区块链的共识算法完成上链;
F)监管交易:群管理员GM在需要时使用群私钥gsk打开交易的群签名以查找该交易发起方的身份,实现对交易的监管;
所述步骤F)包括:
F1)所述群管理员GM对于可疑交易,获取所述可疑交易的每一个交易输入,并使用每一个交易输入的群签名的前三个元素和群私钥gsk还原参与用户的用户私钥uski的第一个部分,以(T1、T2、T3)表示某个输入的群签名的前三个元素,计算用户私钥uski的第一个部分其中ξ1和ξ2是群私钥gsk的第一个元素和第二个元素;
F2)所诉群管理员GM获得用户私钥uski的第一个部分后,通过本地安全存储的用户真实身份和用户私钥找到用户的真实身份,实现对交易的监管。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911248844.7A CN111010280B (zh) | 2019-12-09 | 2019-12-09 | 一种基于群签名的可监管区块链构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911248844.7A CN111010280B (zh) | 2019-12-09 | 2019-12-09 | 一种基于群签名的可监管区块链构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111010280A CN111010280A (zh) | 2020-04-14 |
CN111010280B true CN111010280B (zh) | 2021-07-30 |
Family
ID=70115757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911248844.7A Active CN111010280B (zh) | 2019-12-09 | 2019-12-09 | 一种基于群签名的可监管区块链构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111010280B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132577B (zh) * | 2020-09-16 | 2021-10-08 | 建信金融科技有限责任公司 | 一种基于区块链的多重监管的交易处理方法及装置 |
CN112184960B (zh) * | 2020-09-28 | 2022-08-02 | 杭州安恒信息技术股份有限公司 | 一种智能锁控制方法、装置、智能锁、系统和存储介质 |
CN112235278B (zh) * | 2020-10-10 | 2022-03-25 | 杭州溪塔科技有限公司 | 一种监管交易者地址信息的方法、装置及电子设备 |
CN113450224B (zh) * | 2021-07-13 | 2024-02-27 | 成都质数斯达克科技有限公司 | 基于utxo模型的事务处理方法、装置、设备及存储介质 |
CN114553547A (zh) * | 2022-02-24 | 2022-05-27 | 福建福链科技有限公司 | 一种可监管区块链传感器的数据认证方法与系统 |
CN114389821B (zh) * | 2022-03-22 | 2022-06-17 | 北京百度网讯科技有限公司 | 基于区块链的签名监管方法、装置、设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395349A (zh) * | 2017-08-16 | 2017-11-24 | 深圳国微技术有限公司 | 一种基于自认证公钥体制的区块链网络密钥分发方法 |
CN107483198A (zh) * | 2017-09-25 | 2017-12-15 | 中国科学院信息工程研究所 | 一种可监管的区块链系统及方法 |
CN109409890A (zh) * | 2018-11-13 | 2019-03-01 | 华瓴(南京)信息技术有限公司 | 一种基于区块链的电力交易系统及方法 |
CN109636599A (zh) * | 2018-11-07 | 2019-04-16 | 广西师范大学 | 基于群签名的许可区块链隐私保护和监管方法 |
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
CN110009354A (zh) * | 2019-04-04 | 2019-07-12 | 郑州师范学院 | 一种区块链中基于群签名的投票方法 |
WO2019195407A1 (en) * | 2018-04-05 | 2019-10-10 | Ares Technologies, Inc. | Systems and methods for authenticating a digitally signed assertion using verified evaluators |
CN110502931A (zh) * | 2019-08-15 | 2019-11-26 | 广东工业大学 | 一种基于区块链的互联网仲裁和隐私保护方法 |
-
2019
- 2019-12-09 CN CN201911248844.7A patent/CN111010280B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395349A (zh) * | 2017-08-16 | 2017-11-24 | 深圳国微技术有限公司 | 一种基于自认证公钥体制的区块链网络密钥分发方法 |
CN107483198A (zh) * | 2017-09-25 | 2017-12-15 | 中国科学院信息工程研究所 | 一种可监管的区块链系统及方法 |
WO2019195407A1 (en) * | 2018-04-05 | 2019-10-10 | Ares Technologies, Inc. | Systems and methods for authenticating a digitally signed assertion using verified evaluators |
CN109636599A (zh) * | 2018-11-07 | 2019-04-16 | 广西师范大学 | 基于群签名的许可区块链隐私保护和监管方法 |
CN109409890A (zh) * | 2018-11-13 | 2019-03-01 | 华瓴(南京)信息技术有限公司 | 一种基于区块链的电力交易系统及方法 |
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
CN110009354A (zh) * | 2019-04-04 | 2019-07-12 | 郑州师范学院 | 一种区块链中基于群签名的投票方法 |
CN110502931A (zh) * | 2019-08-15 | 2019-11-26 | 广东工业大学 | 一种基于区块链的互联网仲裁和隐私保护方法 |
Non-Patent Citations (1)
Title |
---|
基于双线性对的无证书群签名方案的研究;陈亚萌;《中国优秀硕士学位论文全文数据库信息科技辑》;20181215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111010280A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010280B (zh) | 一种基于群签名的可监管区块链构造方法 | |
JP7164580B2 (ja) | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 | |
TWI760149B (zh) | 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰 | |
CN109478280B (zh) | 区块链实现的方法和系统 | |
JP6871380B2 (ja) | 情報保護のシステム及び方法 | |
JP5562687B2 (ja) | 第1のユーザによって第2のユーザに送信される通信の安全化 | |
CN103095453B (zh) | 应用私有集合交集的公钥加密的布隆过滤器 | |
KR20200036884A (ko) | 임계치 디지털 시그니처 방법 및 시스템 | |
CN107124268A (zh) | 一种可抵抗恶意攻击的隐私集合交集计算方法 | |
CN107248909A (zh) | 一种基于sm2算法的无证书安全签名方法 | |
Gong et al. | A novel one-time password mutual authentication scheme on sharing renewed finite random sub-passwords | |
CN111563733B (zh) | 一种用于数字钱包的环签名隐私保护系统及方法 | |
Faisal et al. | The evolution of embedding metadata in blockchain transactions | |
CN109547461A (zh) | 基于p2p对称密钥池的抗量子计算区块链保密交易系统和方法 | |
CN106657002A (zh) | 一种新型防撞库关联时间多密码的身份认证方法 | |
CN110740034B (zh) | 基于联盟链的qkd网络认证密钥生成方法及系统 | |
CN114417419A (zh) | 具有安全授权和隐私保护的外包云存储医疗数据聚合方法 | |
TWI381696B (zh) | 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證 | |
CN111541538B (zh) | 数据传输方法及装置、服务器、计算机设备和存储介质 | |
CN116633560B (zh) | 一种面向区块链组播交易模式的隐私保护与监管方法 | |
Kale et al. | Undeniable signature scheme: A survey | |
Kethepalli et al. | Reinforcing Security and Usability of Crypto-Wallet with Post-Quantum Cryptography and Zero-Knowledge Proof | |
Dolev | Overlay security: Quantum-safe communication over the internet infrastructure | |
Hussain et al. | Blockchain basic architecture components and considerations | |
Nayyef et al. | Attribute Based Authentication System using Homomorphic Encryption |
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 |