Processing math: 24%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于学习索引的图式区块链高效可验证查询机制

常健, 林立成, 李彬弘, 肖江, 金海

常健, 林立成, 李彬弘, 肖江, 金海. 基于学习索引的图式区块链高效可验证查询机制[J]. 计算机研究与发展, 2023, 60(11): 2455-2468. DOI: 10.7544/issn1000-1239.202330272
引用本文: 常健, 林立成, 李彬弘, 肖江, 金海. 基于学习索引的图式区块链高效可验证查询机制[J]. 计算机研究与发展, 2023, 60(11): 2455-2468. DOI: 10.7544/issn1000-1239.202330272
Chang Jian, Lin Licheng, Li Binhong, Xiao Jiang, Jin Hai. Efficient and Verifiable Query Mechanism of DAG Blockchain Based on Learned Index[J]. Journal of Computer Research and Development, 2023, 60(11): 2455-2468. DOI: 10.7544/issn1000-1239.202330272
Citation: Chang Jian, Lin Licheng, Li Binhong, Xiao Jiang, Jin Hai. Efficient and Verifiable Query Mechanism of DAG Blockchain Based on Learned Index[J]. Journal of Computer Research and Development, 2023, 60(11): 2455-2468. DOI: 10.7544/issn1000-1239.202330272
常健, 林立成, 李彬弘, 肖江, 金海. 基于学习索引的图式区块链高效可验证查询机制[J]. 计算机研究与发展, 2023, 60(11): 2455-2468. CSTR: 32373.14.issn1000-1239.202330272
引用本文: 常健, 林立成, 李彬弘, 肖江, 金海. 基于学习索引的图式区块链高效可验证查询机制[J]. 计算机研究与发展, 2023, 60(11): 2455-2468. CSTR: 32373.14.issn1000-1239.202330272
Chang Jian, Lin Licheng, Li Binhong, Xiao Jiang, Jin Hai. Efficient and Verifiable Query Mechanism of DAG Blockchain Based on Learned Index[J]. Journal of Computer Research and Development, 2023, 60(11): 2455-2468. CSTR: 32373.14.issn1000-1239.202330272
Citation: Chang Jian, Lin Licheng, Li Binhong, Xiao Jiang, Jin Hai. Efficient and Verifiable Query Mechanism of DAG Blockchain Based on Learned Index[J]. Journal of Computer Research and Development, 2023, 60(11): 2455-2468. CSTR: 32373.14.issn1000-1239.202330272

基于学习索引的图式区块链高效可验证查询机制

基金项目: 国家重点研发计划项目 (2021YFB2700700);湖北省重点研发计划项目 (2021BEA164);国家自然科学基金项目 (62072197);广东省重点研发计划项目(2020B0101090005)
详细信息
    作者简介:

    常健: 1992年生. 博士研究生. 主要研究方向为区块链、机器学习和分布式系统

    林立成: 2000年生. 硕士研究生. 主要研究方向为区块链、机器学习和分布式系统

    李彬弘: 1998年生. 硕士研究生. 主要研究方向为区块链、机器学习和分布式系统

    肖江: 1988年生. 博士,教授,博士生导师. CCF高级会员. 主要研究领域为区块链、分布式系统

    金海: 1965年生. 博士,教授,博士生导师. CCF副理事长,CCF会士. 主要研究领域为分布式系统

    通讯作者:

    肖江(jiangxiao@hust.edu.cn

  • 中图分类号: TP311

Efficient and Verifiable Query Mechanism of DAG Blockchain Based on Learned Index

Funds: This work was supported by the National Key Research and Development Program of China (2021YFB2700700), the Key Research and Development Program of Hubei Province (2021BEA164), the National Natural Science Foundation of China (62072197), and the Key Research and Development Program of Guangdong Province (2020B0101090005).
More Information
    Author Bio:

    Chang Jian: born in 1992. PhD candidate. His main research interests include blockchain, machine learning, and distributed systems

    Lin Licheng: born in 2000. Master candidate. His main research interests include blockchain, machine learning, and distributed systems

    Li Binhong: born in 1998. Master candidate. His main research interests include blockchain, machine learning, and distributed systems

    Xiao Jiang: born in 1988. PhD, professor, PhD supervisor. Senior member of CCF. Her main research interests include blockchain and distributed systems

    Jin Hai: born in 1965. PhD, professor, PhD supervisor. Vice chairman of CCF, fellow of CCF. His main research interest includes distributed systems

  • 摘要:

    区块链技术近年来受到了广泛关注,并应用于各个领域,数据查询是其在应用过程的一个重要技术,如物流链中的数据溯源等. 随着区块链系统中交易数据量的持续增长,支持高并发事务处理的图式区块链成为区块链技术的研究热点. 图式区块链的高并发区块使得数据查询难以像传统链式结构依次遍历,可以根据图式结构采用广度优先或深度优先遍历策略,但这种查询方式存在效率低、验证难等问题. 针对图式区块链数据查询的效率和可验证性问题,提出了一种基于学习索引的高效可验证的图式区块链查询机制Lever. 该机制通过引入学习索引技术对图式区块链中时序数据分布特征进行学习以实现对索引过程的优化,旨在提高图式区块链查询的效率和可验证性. 学习索引是通过学习数据分布来减少索引存储空间和查询时间的新型索引技术,将学习索引应用于图式区块链的纪元高度与时间戳的映射关系中,通过函数运算的方式定位查询数据,提高查询速度和效率. 同时,为了加快纪元内多个区块数据的过滤速度,在每个区块头部添加布隆过滤器,并为每个纪元生成一个聚合布隆过滤器,从而提高纪元内的数据遍历速度. 此外,为保证查询结果的正确性和完整性,该机制结合布隆过滤器和排序默克尔树生成可验证对象,通过部分默克尔树分支实现对布隆过滤器假阳性的不存在证明,有效减小验证对象的规模,从而提高图式区块链查询过程的数据传输效率. 实验结果表明,Lever能有效提高基于DAG的图式区块链查询效率和可验证性,与Conflux的基本查询机制相比,该机制的查询性能最高提升了10倍,可验证对象大小开销可以降低90%.

    Abstract:

    Blockchain system has been broadly applied and studied in the last few years with query being essential to facilitate a wide range of blockchain application scenarios such as data provenance in the logistics chain. As blockchain data continues to grow, the efficiency and verifiability of data query have become hot issues in blockchain research. The high concurrent blocks of the DAG-based blockchain make it difficult for queries to traverse sequentially like the traditional chain structure. Breadth-first or depth-first query strategies can be adopted according to the DAG structure, but this method has the problems of low efficiency and poor verification. We propose an efficient and verifiable query mechanism, called Lever, for DAG-based blockchains based on the learned index. The mechanism aims to improve the efficiency and verifiability of blockchain query by introducing learned index technology with the data distribution characteristic to optimize the indexing process in the blockchain. Learned index is a novel indexing technology that reduces the storage space and query time of indexes by learning the distribution of data. In this paper, learned index is applied to the mapping between epoch height and timestamp of the DAG-based blockchain, greatly improving query speed and efficiency. At the same time, in order to speed up the data filtering of multiple blocks in an epoch, a Bloom filter is added to the block header, and an aggregated Bloom filter is produced by miner for each epoch. In addition, to guarantee the authentication (i.e., correctness and completeness) of query results, the mechanism introduces a sorted Merkle tree to perform proof with the Merkle tree branch by combining the filtering and sorting processes, effectively reducing the size of the verification object (VO), thereby enhancing the verifiability of blockchain query. Experimental results show that Lever can effectively improve the efficiency and verifiability of DAG-based blockchain query, and Lever improves query performance by up to 10 times and reduces VO size overhead by 90% compared with the basic query mechanism of Conflux.

  • 区块链[1]是一种去中心化的分布式账本技术,具有不可篡改、去中心化和公开透明等特点. 随着区块链技术的应用与发展,数字身份和交易数据的重要性日益增加,同时也带来了更多隐私泄露的风险. 环签名概念最初由Rivest等人[2]提出,它允许一个实体代表一个潜在的签名者群体(称为环)签署消息,同时在环中保持匿名性. 与群签名相比,环签名被认为是简化的群签名[3]. 环签名不需要群管理员和其他环成员的合作或批准,可以实现自组织的匿名认证. 环签名在区块链隐私保护、匿名凭证、车辆自组织网络等方面都有许多应用. 门罗币[4]使用了可链接环签名[5]技术实现了交易方身份隐私保护. Bünz等人[6]结合了环签名技术,提出了一种基于账户模型的区块链隐私保护方案Zether.

    然而,文献[2-6]的方案基于公钥基础设施体系(public key infrastructure, PKI),用户公钥需要由可信证书颁发机构(certificate authority, CA)签署的证书进行认证. 在该体系中,证书的管理包括证书的吊销、存储、分发和验证,代价是较高的. 为解决该问题,Adi[7]在1984年提出了基于身份的公钥密码学(identity-based public key cryptography, ID-PKC). ID-PKC允许用户公钥是任何能够唯一标识用户的字符串(例如电子邮件地址),从而消除了证书的需要. 同时,引入了一个完全可信的密钥生成中心,根据用户的身份标识生成并发放用户私钥. 已有科研人员提出了基于身份的数字签名方案[8-10].

    SM9数字签名算法[11]是由中国国家密码管理局于2016年发布,并于2018年纳入国际标准的基于身份的密码算法. SM9数字签名算法采用了非对称双线性对技术,具有可证明的安全性和高效性[12],适用于各种需要身份认证和通信安全的场景,例如区块链、电子现金、电子投票等. 随着区块链系统国产化的应用需求不断增加,现有的国密算法已不能满足日益复杂的区块链应用需求. 已有科研人员提出了基于SM9标识密码算法的功能型密码算法[13-15]. 彭聪等人[16]提出了一种基于SM9标识密码算法的环签名方案. 然而,现有方案的计算开销和通信开销均随着环成员数量的增加而增加.

    本文的主要贡献有3个方面:

    1) 提出了一种基于SM9数字签名的常数级大小环签名方案,并基于该环签名算法设计了一种区块链隐私保护方案;

    2) 在随机谕言机模型下证明了本文方案满足不可伪造性和匿名性;

    3) 分析了本文方案的计算开销和通信开销,并与现有的方案做对比,实验分析结果表明本文方案实现了环签名大小不随环用户数量变化的需求,因而具有更高的实用性.

    Rivest等人[2]提出的环签名方案是基于RSA加密算法的. Abe等人[17]提出了基于离散对数问题的环签名方案. Wong等人[18]利用Reed-Solomon码的擦除校正技术和多项式插值之间的等价性提出了一种环签名方案. 为了抵抗量子计算机的攻击,Wang等人[19]提出了一种基于多变量的环签名方案,随后他们又利用基于格的无陷门签名方案[20]提出了一种基于格的环签名方案[21]. 为了减少签名大小,Dodis等人[22]利用基于单向域的累加器提出了首个常数级大小的环签名方案,且该方案所有身份验证的时间都与环成员数量无关.

    Zhang等人[23]提出了基于双线性对的基于身份的环签名方案. Herranz等人[24]提出了一种基于身份的环签名方案,并将他们的方案扩展到匿名子集场景. Awasthi等人[25]提出了一种基于身份的环签名方案和代理环签名方案. Nguyen[26]提出了一个基于双线性对的动态累加器方案,并基于此构建了一个具有常数级签名大小的基于身份环签名方案. Chow等人[27]提出了高效的基于身份的环签名方案,对于任意环成员数量仅需要2个双线性对计算,并在随机谕言机模型下证明对自适应选择的消息和身份攻击具有存在性不可伪造. 包嘉斌[28]提出了基于SM9标识密码算法的环签密方案. 邓浩明等人[29]提出了基于SM9标识密码算法的门限环签名方案.

    本节给出了符号约定、双线性对、数学困难问题、SM9数字签名算法、知识签名和动态累加器的概念.

    本文使用λ表示安全参数,ϵ表示可忽略函数,PPT表示概率多项式时间,pN为大素数,ZN={1,2,,N}Fp是阶为p的有限域,E(Fp)表示以Fp为基域的椭圆曲线,kP表示椭圆曲线上点Pk倍点,KGC表示密钥生成中心,ID表示用户身份标识.

    G1是由P1作为生成元的N阶加法循环群,G2是由P2作为生成元的N阶加法循环群,GT是阶为N的乘法循环群,双线性对是满足下列性质的一个映射e:G1×G2GT.

    1) 双线性. 对于任意的UG1,VG2a,bZN,都有e(aU,bV)=e(U,V)ab.

    2) 非退化性. 存在a,bZN,使得e(U,V)1.

    3) 可计算性. 对于所有UG1,VG2,存在多项式时间算法有效计算e(U,V).

    定义1. q-SDH问题(q-strong Diffie-Hellman problem, q-SDH). 对于UG1VG2,未知的aZN,给定U,V,aV,a2V,,aqV,PPT敌手输出(c,(a+c)1),其中cZN.

    定义2. 离散对数问题(discrete logarithm problem, DLP). 对于UG1,未知的aZN,给定W=aU,PPT敌手输出a.

    SM9数字签名算法包括4个算法,分别是系统初始化算法、密钥提取算法、签名算法和签名验证算法.

    1) 系统初始化算法. 输入安全参数λ,选取特定曲线生成参数t,构建椭圆曲线基域Fp,构建E(Fp)上的双线性对e:G1×G2GT,选择哈希函数H1(),H2():{0,1}ZN. KGC随机选取dZN作为签名主密钥msk,并计算主公钥Ppub=dP2. 最后,输出系统参数Params={e,G1,G2,GT,P1,P2,Ppub,H1,H2}作为以下算法的默认输入.

    2) 密钥提取算法. 给定用户A的身份标识IDA,为产生用户A的签名私钥dAID,KGC计算dAID=d(H1(IDA)+d)1P1,输出用户A的私钥dAID.

    3) 签名算法. 给定用户A的私钥dAID,消息m和主公钥Ppub,随机选取rZN,计算σ1=H2(me(P1,Ppub)r),σ2=(rσ1)dAID,输出签名值σ=(σ1,σ2).

    4) 签名验证算法. 给定主公钥Ppub,用户A的身份标识IDA,消息m和签名值σ,验证者计算P=H1(IDA)P2+Ppub,验证σ1=H2(me(σ2,P)e(P1,Ppub)σ1)是否成立,若成立,则σ为合法签名,否则签名无效.

    知识签名(signatures of knowledge, SoK)是一种证明系统,证明者可以证明知道某个论断而不泄露对应的证据,它可以用于构造数字签名方案来提供认证性、完整性和不可否认性. 例如,SoK{(x)|X=xP1}(m)表示证明者拥有知识x满足关系X=xP1,且不泄露x的真实值,并对消息m进行签名. 知识签名需要满足正确性、可靠性、零知识性和存在性不可伪造,它包含3个算法:

    1) 密钥生成. 输入安全参数λ,输出系统公开参数Params.

    2) 证明. 输入系统公开参数Params,消息m和关系(x,X)R,输出知识签名π.

    3) 验证. 给定消息m和知识签名π,输出accept,表明证明有效;反之,则证明无效.

    动态累加器可以让用户证明一个元素属于一个集合,而不用透露集合中的单个成员. 它可以用于匿名凭证、群签名和环签名等应用场景,可以实时地对集合状态进行更新,同时存储和计算规模不会随着元素数量的增加而受到影响. 本文结合了Nguyen[26]提出的动态累加器方案,包含以下4个算法:

    1) 累加器初始化算法. 按照2.2节定义双线性对e:G1×G2GT,随机选择sZNL={P1,sP1,s2P1,,sqP1},其中q是可以被累加器累加的最大上限值. 创建动态累加器实例,随机选择uZN,累加器值初始化为V0=uP1.

    2) 累加器评估算法. 给定累加器值V0和集合X={x1,,xk}ZN{d},k,累加器值\displaystyle \prod\limits_{i = 1}^k ({x_i} + d) {V_0}可以通过元组L在不知道s的情况下计算.

    3) 累加器成员增加算法. 增加成员x' \notin X,更新累加器值为V' = (x' + d)V,并更新证据W' = V + (x' - x)W.

    4) 累加器成员删除算法. 删除成员x' \in X,更新累加器值为V' = {(x' + d)^{ - 1}}V,并更新证据W' = {(x' - x)^{ - 1}}(W - V').

    本节介绍了如图1所示的基于身份环签名的系统模型和安全模型,并提出了基于SM9数字签名的常数级大小环签名方案.

    图  1  基于身份的环签名模型
    Figure  1.  Identity-based ring signature model

    基于身份的环签名包含3种角色:KGC、签名者和验证者. 其中可信的KGC负责初始化系统公开参数,并为用户生成对应其身份标识的私钥. 基于身份的环签名包含4个算法:

    1) 系统初始化算法Setup(\lambda ). 由KGC执行,输入安全参数\lambda ,输出系统公开参数Params和KGC的主密钥msk.

    2) 密钥提取算法Extract(ID,msk). 由KGC执行,输入用户身份标识ID和KGC主密钥msk,输出用户私钥{d_{ID}}.

    3) 环签名算法RS ign(m,{Y_n},{d_{ID}}). 由签名者执行,输入消息m,环用户标识集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},用户私钥{d_{ID}},输出环签名值\sigma .

    4) 签名验证算法{R V e ri f y}(m,\sigma ,{Y_n}). 由验证者执行,输入消息m,签名\sigma ,环用户集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},输出accept/reject.

    正确性. 对于环签名算法生成的签名,能够通过验证算法,即满足等式:

    Pr \left[ {{R V e ri f y}(m,\sigma ,{Y_n}) = {\rm{accept}} \left| \begin{gathered} S etup(\lambda ) \to (Params,msk) \\ Extract(ID,msk) \to {d_{ID}} \\ RS ign(m,{Y_n},{d_{ID}}) \to \sigma \\ \end{gathered} \right.} \right] = 1 .

    基于身份的环签名需要满足:1) 在自适应选择消息和身份攻击下的存在性不可伪造(existential unforgeability under adaptive chosen-message-and-identity attack, EUF-CMIA);2) 匿名性.

    定义3. EUF-CMIA. 使用模拟器{{\mathcal{S}}}与敌手{{\mathcal{A}}}之间的游戏来定义该性质.

    1) 系统初始化. {{\mathcal{S}}}调用Setup(\lambda )生成系统参数Params和KGC的主公私钥对({P_{{\text{pub}}}},msk). {{\mathcal{S}}}Params{P_{{\text{pub}}}}发送给敌手{{\mathcal{A}}}.

    2) 询问阶段. {{\mathcal{A}}}以自适应的方式进行3个查询:

    ①哈希谕言机查询. {{\mathcal{A}}}询问任意输入的哈希值.

    ②密钥提取查询. {{\mathcal{A}}}询问身份标识 ID {{\mathcal{S}}}返回对 应的私钥.

    ③签名查询. {{\mathcal{A}}}询问环用户集合{Y_n} =\left \{ I{D_1},I{D_2},…, \right. \left. I{D_n} \right\} 和一个消息m{{\mathcal{S}}}返回对应的签名\sigma .

    3) 伪造阶段. {{\mathcal{A}}}伪造挑战用户集合Y_n^* = \{ ID_1^*,ID_2^*,…, ID_n^*\}对消息{m^*}的签名{\sigma ^*}{{\mathcal{A}}}从未询问过Y_n^*对消息{m^*}的签名,且从未询问过Y_n^*中任何一个用户的私钥,伪造的签名值{\sigma ^*}可以通过验证算法,则敌手{{\mathcal{A}}} 赢得游戏.

    定义敌手{{\mathcal{A}}}赢得EUF-CMIA游戏的优势为Adv_\mathcal{A}^{{\rm{EUF}}} = Pr[RVerify({m^*},{\sigma ^*},Y_n^*) = {\text{accept}}]. 如果该优势可忽略,则称该方案是EUF-CMIA安全的.

    定义4. 匿名性. 使用模拟器{{\mathcal{S}}}与敌手{{\mathcal{A}}}之间的游戏来定义该性质.

    1) 系统初始化. {{\mathcal{S}}}调用Setup(\lambda )生成系统参数Params和KGC的主公私钥对({P_{{\text{pub}}}},msk). {{\mathcal{S}}}Params{P_{{\text{pub}}}}发送给{{\mathcal{A}}}.

    2) 询问阶段. {{\mathcal{A}}}以自适应的方式进行3个查询:

    ①哈希谕言机查询. {{\mathcal{A}}}询问任意输入的哈希值.

    ②密钥提取查询. {{\mathcal{A}}}询问身份标识ID{{\mathcal{S}}}返回对 应的私钥.

    ③签名查询. {{\mathcal{A}}}询问环用户集合{Y_n} = \{ I{D_1},I{D_2}, …, I{D_n}\} 和一个消息m{{\mathcal{S}}}返回对应的签名值\sigma .

    3) 挑战阶段. {{\mathcal{A}}}{{\mathcal{S}}}提交一个挑战用户集合Y_n^* = \{ ID_1^*,ID_2^*,…,ID_n^*\}和2个用户标识I{D_{{\delta _1}}},I{D_{{\delta _2}}} \in Y_n^*{{\mathcal{S}}}随机选择b \in \{ 0,1\} 并使用I{D_{{\delta _b}}}的私钥对消息{m^*}进行环签名,将签名值{\sigma ^*}发送给{{\mathcal{A}}}.

    4) 猜测阶段. {{\mathcal{A}}}输出一个{b'} \in \{ 0,1\} ,如果{b'} = b{{\mathcal{A}}}赢得游戏.

    定义敌手{{\mathcal{A}}}赢得游戏的优势为Adv_\mathcal{A}^{{\rm{ANO}}} = Pr[{b'} = b]. 如果该优势可忽略,则称该方案满足匿名性.

    1) 系统初始化算法Setup. 由KGC运行,输入安全参数λ,输出系统公开参数Params和KGC的主密钥msk. 参数选取同国密标准SM9数字签名算法.

    ①选取{G_1},{G_2},{G_3} \in {\mathbb{G}_1}.

    ②产生随机数 d \in \mathbb{Z}_N^* 作为主密钥msk,并计算主 公钥{P_{{\text{pub}}}} = d \cdot {P_2}.

    ③创建动态累加器实例,随机选择 u \in \mathbb{Z}_N^* ,累加 器值初始化为{V_0} = u \cdot {P_1}.

    ④随机选择 s \in \mathbb{Z}_N^* ,计算{S_{{\text{pub}}}} = s \cdot {P_2}L = \left\{ {P_1},s \cdot {P_1}, \right. \left. s^2 \cdot {P_1},…,{s^q} \cdot {P_1}\right\},其中q是可以被累加器累加的最 大上限值.

    ⑤公共参数为 Params = \left\{ \lambda ,{G_1},{G_2},{G_3},{P_1},{P_2},{P_{{\text{pub}}}},\right. \left.{S_{{\text{pub}}}}, {V_0},L,{H_1},{H_2}\right\},作为下面算法的默认输入.

    2) 密钥提取算法 Extract . 由KGC运行,输入用户A的身份标识I{D_A},KGC主密钥msk,输出用户A(签名者)的私钥d_{ID}^A.

    KGC计算用户A的私钥d_{ID}^A = d \cdot {({H_1}(I{D_A}) + d)^{ - 1}} \cdot {P_1}并发送给用户A.

    3) 环签名算法 RS ign . 由用户A运行,输入用户A的私钥d_{ID}^An个成员标识组成的环用户集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},待签名消息m,输出环签名值\sigma .

    ①对于i \in [1,n],计算{x_i} = {H_1}(I{D_i}),设{x_\delta } = {H_1}(I{D_A})1 \leqslant \delta \leqslant n.

    ②对集合X = \{ {x_1},{x_2},…,{x_n}\}n的最大值为q - 1,计算 V = \displaystyle\prod\limits_{i = 1}^n {({x_i} + s) \cdot {V_0}}. 注意 V 值的计算不需要知道s, 在已知L的情况下,V可以在多项式时间内被计算.

    ③计算证据{W_A} = \displaystyle\prod\limits_{i = 1,i \ne \delta }^n {({x_i} + s) \cdot {V_0}}.

    ④知识签名由两部分组成,用户A的证据{W_A}证明 {x_A} = {H_1}(I{D_A})确实在V中、用户A的私钥d_{ID}^A合法. 非交互式零知识证明

    \pi = S oK\left\{ {\left.\left( \begin{gathered} {x_A}, \\ d_{ID}^A, \\ {W_A} \\\end{gathered} \right) \right| \begin{gathered} e({W_A},{x_A} \cdot {P_2} + {S_{{\text{pub}}}}) = e(V,{P_2}) \wedge \\ e(d_{ID}^A,{x_A} \cdot {P_2} + {P_{{\text{pub}}}}) = e({P_1},{P_{{\text{pub}}}}) \\\end{gathered} } \right\}(m). 具体展开为:

    选取随机值{r_1},{r_2},{r_3} \in \mathbb{Z}_N^*,计算

    {A_1} = {r_1} \cdot {G_1} + {r_2} \cdot {G_2} + {r_3} \cdot {G_3};\qquad\qquad\qquad\quad\quad
    {A_2} = {W_A} + {r_1} \cdot {G_2};\qquad\qquad\qquad\qquad\qquad\qquad
    {A_3} = d_{ID}^A + {r_2} \cdot {G_3};\qquad\qquad\qquad\qquad\qquad\qquad
    {\alpha _1} = {r_1} \cdot {x_A};{\alpha _2} = {r_2} \cdot {x_A};{\alpha _3} = {r_3} \cdot {x_A};\qquad\qquad\quad

    \pi 等价于{\pi '}

    \pi ' = S o K \left\{ {\left( \begin{gathered} {r_1},{r_2}, \\ {r_3},{x_A}, \\ {\alpha _1},{\alpha _2}, \\ {\alpha _3} \\ \end{gathered} \right) \left| \begin{gathered} {A_1} = {r_1} \cdot {G_1} + {r_2} \cdot {G_2} + {r_3} \cdot {G_3} \wedge \\ {x_A} \cdot {A_1} = {\alpha _1} \cdot {G_1} + {\alpha _2} \cdot {G_2} + {\alpha _3} \cdot {G_3} \wedge \\ e({A_2},{S_{{\text{pub}}}})e{(V,{P_2})^{ - 1}} = \\ e{({A_2},{P_2})^{ - {x_A}}}e{({G_2},{S_{{\text{pub}}}})^{{r_1}}}e({G_2},\\{P_2})^{{\alpha _1}} \wedge e({A_3},{P_{{\text{pub}}}})e{({P_1},{P_{{\text{pub}}}})^{ - 1}} = \\ e{({A_3},{P_2})^{ - {x_A}}}e{({G_3},{P_{{\text{pub}}}})^{{r_2}}}e{({G_3},{P_2})^{{\alpha _2}}} \\ \end{gathered} \right.} \right\} ( m ).

    选取随机值{k_1},{k_2},…,{k_7} \in \mathbb{Z}_N^*,计算

    \begin{gathered} {T_1} = {k_1} \cdot {G_1} + {k_2} \cdot {G_2} + {k_3} \cdot {G_3}; \\ {T_2} = {k_4} \cdot {G_1} + {k_5} \cdot {G_2} + {k_6} \cdot {G_3} - {k_7} \cdot {A_1}; \\ {T_3} = e{({A_2},{P_2})^{ - {k_7}}}e{({G_2},{S_{{\text{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}; \\ {T_4} = e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}; \\ ch = {H_2}(Params\parallel {A_1},…,{A_3}\parallel {T_1},…,{T_4}\parallel m); \\ {s_1} = {k_1} + ch \cdot {r_1};{s_2} = {k_2} + ch \cdot {r_2}; \\ {s_3} = {k_3} + ch \cdot {r_3};{s_4} = {k_4} + ch \cdot {\alpha _1}; \\ {s_5} = {k_5} + ch \cdot {\alpha _2};{s_6} = {k_6} + ch \cdot {\alpha _3}; \\ {s_7} = {k_7} + ch \cdot {x_A}; \\ \end{gathered}

    ⑤输出消息m的签名值\sigma =\left (ch,{s_1},…,{s_7},{A_1},…,{A_3}, \right. \left.{T_1},…,{T_4},V\right).

    4) 签名验证算法 RVerify . 由验证者运行,输入消息m,签名值\sigma = (ch,{s_1},…,{s_7},{A_1},…, {A_3}, {T_1},…,{T_4},V),环用户标识集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},输出accept/reject.

    验证等式:

    \begin{gathered} \qquad{T_1} = {s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1}; \\\qquad {T_2} = {s_4} \cdot {G_1} + {s_5} \cdot {G_2} + {s_6} \cdot {G_3} - {s_7} \cdot {A_1}; \\\qquad {T_3} = e{({A_2},{P_2})^{ - {s_7}}}e{({G_2},{S_{{\text{pub}}}})^{{s_1}}}e{({G_2},{P_2})^{{s_4}}}e{({A_2},{S_{{\text{pub}}}})^{ - ch}}\\ \qquad e{(V,{P_2})^{ch}}; \\ \qquad {T_4} = e{({A_3},{P_2})^{ - {s_7}}}e{({G_3},{P_{{\text{pub}}}})^{{s_2}}}e{({G_3},{P_2})^{{s_5}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}\\ \qquad e{({P_1},{P_{{\text{pub}}}})^{ch}} . \\ \qquad \end{gathered}

    若等式成立,则签名有效,返回accept;否则,签名无效,返回reject.

    \begin{aligned} {T_1} = &{s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1} = \\ &({k_1} + ch \cdot {r_1}) \cdot {G_1} + ({k_2} + ch \cdot {r_2}) \cdot {G_2} + ({k_3} + ch \cdot \\ &{r_3}) \cdot {G_3} - ch \cdot {A_1} = {k_1} \cdot {G_1} + {k_2} \cdot {G_2} + {k_3} \cdot {G_3}; \end{aligned}
    \begin{aligned}{T_2} = &{s_4} \cdot {G_1} + {s_5} \cdot {G_2} + {s_6} \cdot {G_3} - {s_7} \cdot {A_1} = \\ & ({k_4} + ch \cdot {\alpha _1}) \cdot {G_1} + ({k_5} + ch \cdot {\alpha _2}) \cdot {G_2} + \\ & ({k_6} + ch \cdot {\alpha _3}) \cdot {G_3} - ({k_7} + ch \cdot {x_A}) \cdot {A_1} = \\ & ({k_4} + ch \cdot {r_1} \cdot {x_A}) \cdot {G_1} + ({k_5} + ch \cdot {r_2} \cdot {x_A}) \cdot {G_2} + \\ & ({k_6} + ch \cdot {r_3} \cdot {x_A}) \cdot {G_3} - ({k_7} + ch \cdot {x_A}) \cdot {A_1} = \\ &{k_4} \cdot {G_1} + {k_5} \cdot {G_2} + {k_6} \cdot {G_3} - {k_7} \cdot {A_1} + \\ &ch \cdot {r_1} \cdot {x_A} \cdot {G_1} + ch \cdot {r_2} \cdot {x_A} \cdot {G_2} + \\ & ch \cdot {r_3} \cdot {x_A} \cdot {G_3} - ch \cdot {x_A} \cdot ({r_1} \cdot {G_1} + {r_2} \cdot {G_2} + {r_3} \cdot {G_3}) = \\ & {k_4} \cdot {G_1} + {k_5} \cdot {G_2} + {k_6} \cdot {G_3} - {k_7} \cdot {A_1};\end{aligned}
    \begin{aligned} {T_3} = &e{({A_2},{P_2})^{ - {s_7}}}e{({G_2},{S_{{\rm{pub}}}})^{{s_1}}}e{({G_2},{P_2})^{{s_4}}}e{({A_2},{S_{{\rm{pub}}}})^{ - ch}}\cdot \\ &e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7} - ch \cdot {x_A}}}e{({G_2},{S_{{\rm{pub}}}})^{{k_1} + ch \cdot {r_1}}}\cdot\\ &e{({G_2},{P_2})^{{k_4} + ch \cdot {\alpha _1}}}e{({A_2},{S_{{\rm{pub}}}})^{ - ch}}e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}\cdot\\ &e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}e{({A_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ - ch}}\cdot\\ & e{({G_2},{S_{{\rm{pub}}}})^{ch \cdot {r_1}}}e{({G_2},{P_2})^{ch \cdot {r_1} \cdot {x_A}}}e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}\cdot \\ &e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}e{({A_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ - ch}} \cdot\\ &e{({G_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ch \cdot {r_1}}}e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}\cdot\\ &e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}} e{({r_1} \cdot {G_2} - {A_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ch}}\cdot\\ &e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}} \cdot \\ &e{({W_A},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ - ch}}e{(V,{P_2})^{ch}} = \\ &e{({A_2},{P_2})^{ - {k_7}}}e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}; \end{aligned}
    \begin{aligned} {T_4} =& e{({A_3},{P_2})^{ - {s_7}}}e{({G_3},{P_{{\text{pub}}}})^{{s_2}}}e{({G_3},{P_2})^{{s_5}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}\cdot\\ &e{({P_1},{P_{{\text{pub}}}})^{ch}} =e{({A_3},{P_2})^{ - {k_7} - ch \cdot {x_A}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2} + ch \cdot {r_2}}}\cdot\\ &e{({G_3},{P_2})^{{k_5} + ch \cdot {\alpha _2}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}e{({P_1},{P_{{\text{pub}}}})^{ch}} =\\ & e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}e{({A_3},{P_2})^{ - ch \cdot {x_A}}} \cdot\\ &e{({G_3},{P_{{\text{pub}}}})^{ch \cdot {r_2}}}e{({G_3},{P_2})^{ch \cdot {r_2} \cdot {x_A}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}e{({P_1},{P_{{\text{pub}}}})^{ch}} = \\ & e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}} e{({G_3},{P_2})^{{k_5}}}e{({r_2} \cdot {G_3} - {A_3},{P_2})^{ch \cdot {x_A}}} \cdot\\ &e{({G_3},{P_{{\text{pub}}}})^{ch \cdot {r_2}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}e{({P_1},{P_{{\text{pub}}}})^{ch}} = e{({A_3},{P_2})^{ - {k_7}}}\cdot\\ &e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}e{(d_{ID}^A,{x_A} \cdot {P_2} + {P_{{\text{pub}}}})^{ - ch}}\cdot\\ &e{({P_1},{P_{{\text{pub}}}})^{ch}} = e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}. \end{aligned}

    本节将给出基于SM9数字签名的环签名方案的安全性证明. 假设KGC是可信的,仅考虑恶意用户作为敌手. 假设q-SDH问题是困难的,本文使用的累加器方案满足抗碰撞性,其中q是累加器要累加元素的上限,文献[26]中给出了具体的证明,本文不再赘述.

    定理1. 在随机谕言机模型下,假设群{{G}_1}上的离散对数问题是困难的,本文方案中的知识签名\pi 满足完备性、可靠性和零知识性.

    证明.完备性可由4.1节得证. 本节只证明可靠性和零知识性.

    1)可靠性. 假设群{{\mathbb{G}}_1}上的离散对数问题是困难的,如果协议以可忽略的概率通过验证,PPT的证明者必须具有 {x_A},d_{ID}^A,{W_A} 的知识. 假设协议接受具有相同的承诺({A_1},…,{A_3},{T_1},…,{T_4})和2个不同的挑战和响应对(ch,{s_1},{s_2},…,{s_7})(c{h'},s_1',s_2',…,s_7').

    {t_i} = ({s_i} - s_i'){(c{h_i} - ch_i')^{ - 1}}i = 1,2,…,7,则

    {T_1} = {s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1};\; (1)
    {T_2} = {t_4} \cdot {G_1} + {t_5} \cdot {G_2} + {t_6} \cdot {G_3} - {t_7} \cdot {A_1};\;\quad\; (2)
    \begin{gathered} {T_3} = e{({A_2},{P_2})^{ - {t_7}}}e{({G_2},{S_{{\text{pub}}}})^{{t_1}}}e{({G_2},{P_2})^{{t_4}}}; \\ {T_4} = e{({A_3},{P_2})^{ - {t_7}}}e{({G_3},{P_{{\text{pub}}}})^{{t_2}}}e{({G_3},{P_2})^{{t_5}}}. \\ \end{gathered}

    根据式(1)(2),证明者具有o = ({t_4} - {t_7}{t_1}){G_1} + ({t_5} - {t_7}{t_2}){G_2} + ({t_6} - {t_7}{t_3}){G_3} \in {{\mathbb{G}}_1}. 在{{\mathbb{G}}_1}的离散对数假设下,意味着{t_4} = {t_7}{t_1}{t_5} = {t_7}{t_2}. 令{x_A} = {t_7}{W_A} = {A_2} - {t_1}{G_2}d_{ID}^A = {A_3} - {t_2}{G_3},则e({W_A},{x_A} \cdot {P_2} + {S_{{\text{pub}}}}) = e(V,{P_2})e(d_{ID}^A,{x_A} \cdot {P_2} + {P_{{\text{pub}}}}) = e({P_1},{P_{{\text{pub}}}}). 因此,证明者具有满足这些关系的知识 {x_A},d_{ID}^A,{W_A} .

    2)零知识性. 模拟器{{\mathcal{S}}}随机选择ch,{s_1},{s_2},…, {s_7} \in \mathbb{Z}_N^*{A_1},{A_2},{A_3} \in {{\mathbb{G}}_1},并计算

    \begin{gathered} {T_1} = {s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1}; \\ {T_2} = {s_4} \cdot {G_1} + {s_5} \cdot {G_2} + {s_6} \cdot {G_3} - {s_7} \cdot {A_1}; \\ {T_3} = e{({A_2},{P_2})^{ - {s_7}}}e{({G_2},{S_{{\text{pub}}}})^{{s_1}}}e{({G_2},{P_2})^{{s_4}}}e{({A_2},{S_{{\text{pub}}}})^{ - ch}}\cdot \\e{(V,{P_2})^{ch}}; \\ {T_4} = e{({A_3},{P_2})^{ - {s_7}}}e{({G_3},{P_{{\text{pub}}}})^{{s_2}}}e{({G_3},{P_2})^{{s_5}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}} \cdot\\e{({P_1},{P_{{\text{pub}}}})^{ch}} . \\ \end{gathered}

    可以得到模拟的分布与真实记录的分布相同. 证毕.

    定理2. 在随机谕言机模型下,假设q-SDH问题是困难的,累加器方案满足抗碰撞性,知识签名\pi 满足零知识性,我们的基于SM9签名的环签名方案满足匿名性.

    定理3. 在随机谕言机模型下,假设q-SDH问题是困难的,累加器方案满足抗碰撞性,知识签名\pi 满足可靠性,我们的基于SM9签名的环签名方案是EUF-CMIA安全的.

    证明.由于本文方案是基于非交互式零知识证明构造的知识签名方案,定理2和定理3可以很容易地从定理1的结论中得出,故省略. 证毕.

    本文对Hyperledger Fabric联盟链结构进行修改,利用提出的环签名方案,设计了一种区块链隐私保护方案. 用户通过使用该环签名签署交易提案,实现了交易发起方的身份隐私保护. 交易核心过程如图2所示.

    图  2  基于环签名的区块链交易流程
    Figure  2.  Blockchain transaction process based on ring signature

    该区块链隐私保护方案包含3个实体,即KGC、用户、区块链节点,其中区块链节点可以分为背书节点、排序节点和记账节点. 本文方案使用KGC替换了Fabric框架中的CA模块,避免了PKI体系带来的证书管理问题,在本文方案中KGC是可信的. 具体核心交易流程描述如下:

    ⓪ 由KGC执行Setup算法,完成系统初始化.

    ①用户向KGC提交自己的身份标识ID以请求用户密钥.

    ②KGC执行Extract算法,生成用户的私钥{d_{ID}}并发送给用户.

    ③用户在发送交易之前,先构造交易提案,随机选取n个成员标识组成的环用户集合{Y_n} = \{ I{D_1},I{D_2},\cdots, I{D_n}\} ,使用RSign算法对交易提案进行签署,并发送给背书节点.

    ④背书节点首先使用RVerify算法验证交易提案签名,根据背书策略,模拟交易执行,完成交易验证.

    ⑤背书节点对交易提案进行签名背书,并发送给交易发起方用户.

    ⑥用户收集到一定数量的背书签名后,发送交易给排序节点.

    ⑦排序节点对收集到的交易进行排序,构造交易区块.

    ⑧排序节点广播交易区块给其他节点.

    ⑨记账节点使用RVerify算法验证交易签名,验证背书签名.

    ⑩记账节点将确认后的交易区块写入公开账本.

    本节从计算开销和通信开销两方面对基于身份的环签名方案进行评估,将本文所提出的SM9环签名方案与文献[16]中的基于SM9标识密码算法的环签名方案和文献[27]所提出的基于身份的环签名方案进行了比较.

    在计算开销方面,主要考虑密钥提取、环签名算法和签名验证算法的计算开销. 本文使用256 b的BN曲线实例化双线性对,使用SHA-256算法实例化哈希函数,省略了耗时很短的哈希运算和加法运算. 首先在电脑端利用Miracl库测试1000次取平均值得到方案所需运算的,其中平台参数为DELL牌电脑,Windows 11操作系统,i7-10700 2.90 GHz处理器和16 GB内存. 为方便起见,表1给出了符号定义和运算耗时结果. 表2分析了3个方案的计算开销.

    表  1  符号定义和运行时间
    Table  1.  Symbol Definition and Running Time
    符号运算描述运行时间/ms
    HTPHash To Point4.95
    P{M}_{ {{\mathbb{G}} }_{1} }{\mathbb{G}}_1中的点乘1.73
    PM_{{\mathbb{G}}_2 }{{\mathbb{G}}_2}中的点乘5.19
    E_{{\mathbb{G}}_T }{\mathbb{G}}_T中的取幂19.07
    BP双线性对62.34
    {M}_{ {{\mathbb{G}}}_{T} }{\mathbb{G}}_T中的乘法0.04
    M{E}_{{\mathbb{Z}}_{N}^{*}} \mathbb{Z}_N^*中的模幂0.14
    M{I}_{ {\mathbb{Z} }_{N}^{*} } \mathbb{Z}_N^*中的模逆0.05
    下载: 导出CSV 
    | 显示表格
    表  2  环签名方案的计算开销对比
    Table  2.  Comparison of Computation Costs for Ring Signature Schemes
    方案密钥提取签名生成签名验证
    文献[27]方案HTPn \times HTP + 2n \times P{M_{ {{\mathbb{G}}_2} } }2BP + n \times P{M_{ {{\mathbb{G}}_2} } }
    文献[16]方案P M_{{\mathbb{G}}_{1} }+M{I}_{ {\mathbb{Z} }_{N}^{*} }2n \times P{M_{ {{\mathbb{G}}_1} } } + n\times BP + (n - 1) \times {M_{ {{\mathbb{G}}_T} } }n \times P{M_{ { {\mathbb{G}}_1} } } + n \times BP + n \times {M_{ { {\mathbb{G}}_T} } }
    本文方案P M_{{\mathbb{G}}_{1} }+M{I}_{ {\mathbb{Z} }_{N}^{*} }14 P M_{{\mathbb{G}}_{1} }+2 B P+4 M_{{\mathbb{G}}_{T} }+6 M E_{\mathbb{Z}_N^* }9 P{M_{ {{\mathbb{G}}_1} } } + 5 BP + 8 {M_{ {{\mathbb{G}}_T} } } + 10M{E_{\mathbb{Z}_N^*} }
    下载: 导出CSV 
    | 显示表格

    本文方案的签名生成算法需要计算14个{\mathbb{G}_1}点乘运算、6个双线性对运算、4个{\mathbb{G}_T}乘法运算和6个\mathbb{Z}_N^*模幂运算,耗时399.3 ms,使用预计算方法提高计算效率后,签名生成计算可以减少4个双线性对运算,仅需耗时149.9 ms. 签名验证算法需要计算9个{\mathbb{G}_1}点乘运算、10个双线性对运算、8个{\mathbb{G}_T}乘法运算和10个\mathbb{Z}_N^*模幂运算,耗时640.7 ms,使用预计算方法后,签名验证计算可以减少5个双线性对运算,仅需耗时329 ms.

    图3所示,本文方案在签名生成算法的计算开销是常数级别的,当环成员数量为10时,本文方案的计算开销与方案[27]相似.与基于SM9的环签名方案[16]相比,本文方案性能优势更加明显,当环成员数量为10时,本文方案签名生成算法的计算开销仅为方案[16]的22.7%.

    图  3  签名生成计算开销对比
    Figure  3.  Signature generation computational cost comparison

    图4所示,本文方案在签名验证算法的计算开销也是常数级别的.当环成员数量为10时,本文方案签名验证计算开销大约是方案[27]的2倍,不具有优势;当环成员数量超过40个时,本文方案签名验证计算开销与方案[27]相似.与基于SM9的环签名方案[16]相比,本文方案性能优势明显,当环成员数量为10时,本文方案签名验证计算开销仅为方案[16]的一半.

    图  4  签名验证计算开销对比
    Figure  4.  Signature verification computational cost comparison

    在通信开销方面,主要考虑主公钥、用户私钥、和签名的通信开销. 本文使用 \left| {{\mathbb{G}_1}} \right|,\left| {{\mathbb{G}_2}} \right|,\left| {{\mathbb{G}_T}} \right|,\left| {\mathbb{Z}_N^*} \right| 分别表示 {\mathbb{G}_1},{\mathbb{G}_2},{\mathbb{G}_T},\mathbb{Z}_N^* 中元素的比特位长. 其中, \left| {{\mathbb{G}_1}} \right| = 512 b,\left| {{\mathbb{G}_2}} \right| = 1\;024 b,\left| {{\mathbb{G}_T}} \right| = 3\;072 b, \left| {\mathbb{Z}_N^*} \right| = 256 b. 表3分析了3个方案的通信开销.

    表  3  环签名方案的通信开销对比
    Table  3.  Comparison of Communication Costs for Ring Signature Schemes b
    方案主公钥用户私钥签名
    文献[27]方案 \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| (n + 1)\left| {{\mathbb{G}_2}} \right|
    文献[16]方案 \left| {{\mathbb{G}_1}} \right| + \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| \left| {\mathbb{Z}_N^*} \right| + n\left| {{\mathbb{G}_1}} \right|
    本文方案 \left| {{\mathbb{G}_1}} \right| + \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| 8\left| {\mathbb{Z}_N^*} \right| + 6\left| {{\mathbb{G}_1}} \right| + 2\left| {{\mathbb{G}_T}} \right|
    下载: 导出CSV 
    | 显示表格

    图5所示,本文方案的签名通信开销是常数级别的,当环成员数量小于10时,本文方案与方案[27]相比不具有优势.当环成员数量小于20时,本文方案与方案[16]对比不具有优势.随着环成员数量的增长,本文方案的优势明显.

    图  5  签名通信开销对比
    Figure  5.  Comparison of signature communication cost

    环签名技术是一种重要的区块链身份隐私保护技术,基于身份的环签名方案具有广泛的应用场景,它可以避免PKI体系带来的证书管理问题,也具有环签名的匿名性和不可伪造性. 随着区块链系统国产化的应用需求,传统的国密算法已无法满足复杂的区块链应用需求,本文提出了一种基于SM9数字签名的环签名方案,并在随机谕言机模型下证明了其安全性,与现有的方案相比,本文方案性能优势明显. 当环成员数量大于20时,本文方案在签名通信开销上具有明显优势. 随着环签名算法对环用户数量增长的应用需求,本文方案具备更高的实用性,有效解决了区块链中的身份隐私泄露问题. 未来工作,将研究降低环签名通信开销,设计面向轻量级设备的基于身份环签名方案.

    作者贡献声明:安浩杨提出了算法方案并撰写论文;何德彪和包子健提出了指导意见;彭聪指导了实验分析部分;罗敏修改了论文.

  • 图  1   Lever系统架构

    Figure  1.   The achitecture of Lever

    图  2   纪元间的学习索引

    Figure  2.   Learned index between epochs

    图  3   纪元内聚合布隆过滤器

    Figure  3.   Intra-epoch aggregated Bloom filter

    图  4   区块内排序默克尔树

    Figure  4.   Intra-block sorted Merkle tree

    图  5   索引构建开销

    Figure  5.   The overhead of index building

    图  6   不同误差阈值对系统性能的影响

    Figure  6.   Impact of different error bounds on system performance

    图  7   不同区块数量下的查询延迟

    Figure  7.   Query latency with different number of blocks

    图  8   不同位长度下布隆过滤器的假阳性

    Figure  8.   False positive of Bloom filter at different bit lengths

    图  9   2 种情形下的可验证对象大小

    Figure  9.   The size of the verifiable object in two cases

  • [1]

    Nakamoto S. Bitcoin: A peer-to-peer electronic cash system [EB/OL]. [2019-09-27].https://bitcoin.org/bitcoin.pdf

    [2]

    Popov S. The tangle [EB/OL]. [2020-02-17]. http://www.descryptions.com/Iota.pdf

    [3]

    Churyumov, A. Byteball: A decentralized system for storage and transfer of value [EB/OL]. [2021-07-02].https://byteball.org/Byteball.pdf

    [4]

    Li Chenxing, Li Peilun, Zhou Dong, et al. A decentralized blockchain with high throughput and fast confirmation [C] //Proc of the USENIX Annual Technical Conf (ATC). Berkeley, CA: USENIX Association, 2020: 515−528

    [5]

    Xu Rui, Liu Zihao, Hu Huiqi, et al. An efficient secondary index for spatial data based on LevelDB [C] //Proc of the 25th Int Conf on Database Systems for Advanced Applications (DASFAA). Berlin: Springer, 2020: 750−754

    [6] 于戈,聂铁铮,李晓华,等. 区块链系统中的分布式数据管理技术——挑战与展望[J]. 计算机学报,2021,44(1):28−53

    Yu Ge, Nie Tiezheng, Li Xiaohua, et al. The challenge and prospect of distributed data management techniques in blockchain systems[J]. Chinese Journal of Computers, 2021, 44(1): 28−53 (in Chinese)

    [7]

    Chen Huashan, Pendleton M, Njilla L, et al. A survey on ethereum systems security: Vulnerabilities, attacks, and defenses[J]. ACM Computing Surveys, 2020, 53(3): 1−43

    [8]

    Jin Hai, Xiao Jiang. Towards trustworthy blockchain systems in the era of “Internet of value”: Development, challenges, and future trends[J]. Science China Information Sciences, 2022, 65: 1−11

    [9]

    Wang Qing, Lu Youyou, Shu Jiwu. Sherman: A write-optimized distributed B+ Tree index on disaggregated memory [C] //Proc of the 2022 Special Interest Group on Management of Data (SIGMOD). New York: ACM, 2022: 1033−1048

    [10] 张洲,金培权,谢希科. 学习索引:现状与研究展望[J]. 软件学报,2021,32(4):1129−1150 doi: 10.13328/j.cnki.jos.006168

    Zhang Zhou, Jin Peiquan, Xie Xike. Learned indexes: Current situations and research prospects[J]. Journal of Software, 2021, 32(4): 1129−1150 (in Chinese) doi: 10.13328/j.cnki.jos.006168

    [11]

    Chang Jian, Li Binhong, Xiao Jiang, et al. Anole: A lightweight and verifiable learned-based index for time range query on blockchain systems [C] //Proc of the 28th Int Conf on Database Systems for Advanced Applications (DASFAA). Berlin: Springer, 2023: 519−534

    [12] 周炜,王超,徐剑,等. 基于区块链的隐私保护去中心化联邦学习模型[J]. 计算机研究与发展,2022,59(11):2423−2436 doi: 10.7544/issn1000-1239.20220470

    Zhou Wei, Wang Chao, Xu Jian, et al. Privacy-Preserving and decentralized federated learning model based on the blockchain[J]. Journal of Computer Research and Development, 2022, 59(11): 2423−2436 (in Chinese) doi: 10.7544/issn1000-1239.20220470

    [13] 贾大宇,信俊昌,王之琼,等. 存储容量可扩展区块链系统的高效查询模型[J]. 软件学报,2019,30(9):2655−2670 doi: 10.13328/j.cnki.jos.005774

    Jia Dayu, Xin Junchang, Wang Zhiqiong, et al. ElasticQM: A query model for storage capacity scalable blockchain system[J]. Journal of Software, 2019, 30(9): 2655−2670 (in Chinese) doi: 10.13328/j.cnki.jos.005774

    [14]

    Ruan Pingcheng, Chen Gang, Dinh T T A, et al. Fine-grained, secure and efficient data provenance on blockchain systems[J]. Proceedings of the VLDB Endowment, 2019, 12(9): 975−988 doi: 10.14778/3329772.3329775

    [15]

    Zhang Ce, Xu Cheng, Xu Jianliang, et al. GEM2-Tree: A gas-efficient structure for authenticated range queries in blockchain [C] //Proc of the 35th Int Conf on Data Engineering (ICDE). Piscataway, NJ: IEEE, 2019: 842−853

    [16] 蔡磊,朱燕超,郭庆兴,等. 面向区块链的高效物化视图维护和可信查询[J]. 软件学报,2020,31(3):680−694 doi: 10.13328/j.cnki.jos.005914

    Cai Lei, Zhu Yanchao, Guo Qingxing, et al. Efficient materialized view maintenance and trusted query for blockchain[J]. Journal of Software, 2020, 31(3): 680−694 (in Chinese) doi: 10.13328/j.cnki.jos.005914

    [17]

    Gupta H, Hans S, Aggarwal K, et al. Efficiently processing temporal queries on hyperledger fabric [C] //Proc of the 34th Int Conf on Data Engineering (ICDE). Piscataway, NJ: IEEE, 2018: 1489−1494

    [18]

    Xu Cheng, Zhang Ce, Xu Jianliang. vChain: Enabling verifiable Boolean range queries over blockchain databases [C] //Proc of the 2019 Special Interest Group on Management of Data (SIGMOD). New York: ACM, 2019: 141−158

    [19]

    Dai Xiaohai, Xiao Jiang, Yang Wenhui, et al. LVQ: A lightweight verifiable query approach for transaction history in bitcoin [C] //Proc of the 40th Int Conf on Distributed Computing Systems (ICDCS). Piscataway, NJ: IEEE, 2020: 1020−1030

    [20]

    Zhang Ce, Xu Cheng, Wang Haixin, et al. Authenticated keyword search in scalable hybrid-storage blockchains [C] //Proc of the 37th Int Conf on Data Engineering (ICDE). Piscataway, NJ: IEEE, 2021: 996−1007

    [21]

    Hao Kun, Xin Junchang, Wang Zhiqiong, et al. Outsourced data integrity verification based on blockchain in untrusted environment[J]. World Wide Web, 2020, 23(4): 2215−2238 doi: 10.1007/s11280-019-00761-2

    [22]

    Shao Qifeng, Pang Shuaifeng, Zhang Zhao, et al. Authenticated range query using SGX for blockchain light clients [C] //Proc of the 25th Int Conf on Database Systems for Advanced Applications (DASFAA). Berlin: Springer, 2020: 306−321

    [23]

    Li Yang, Zheng Kai, Yan Ying, et al. EtherQL: A query layer for blockchain system [C] //Proc of the 22nd Int Conf on Database Systems for Advanced Applications (DASFAA). Berlin: Springer, 2017: 556−567

    [24]

    Peng Zhe, Wu Haotian, Xiao Bin, et al. VQL: Providing query efficiency and data authenticity in blockchain systems [C] //Proc of the 35th Int Conf on Data Engineering Workshops (ICDEW). Piscataway, NJ: IEEE, 2019: 1−6

    [25]

    Zhu Yanchao, Zhang Zhao, Jin Cheqing, et al. SEBDB: Semantics empowered blockchain database [C] //Proc of the 35th Int Conf on Data Engineering (ICDE). Piscataway, NJ: IEEE, 2019: 1820−1831

    [26] 张长贵,张岩峰,李晓华,等. 区块链新技术综述:图型区块链和分区型区块链[J]. 计算机科学,2020,47(10):2423−2436

    Zhang Changgui, Zhang Yanfeng, Li Xiaohua, et al. Survey of new blockchain techniques: DAG based blockchain and sharding based blockchai[J]. Computer Science, 2020, 47(10): 2423−2436 (in Chinese)

    [27]

    Yu Haifeng, Nikoli´c I, Hou Ruomu, et al. OHIE: Blockchain scaling made simple [C] //Proc of the 2020 IEEE Symp on Security and Privacy (S&P). Piscataway, NJ: IEEE, 2020: 90−105

    [28]

    Kraska T, Beutel A, Chi E H, et al. The case for learned index structures [C] //Proc of the 2018 Special Interest Group on Management of Data (SIGMOD). New York: ACM, 2018: 489−504

    [29] 许可,李彦彪,谢高岗,等. 基于混合计数布隆过滤器的高效数据名查找方法[J]. 计算机研究与发展,2023,60(5):1136−1150

    Xu Ke, Li Yanbiao, Xie Gaogang, et al. Efficient name lookup using hybrid counting Bloom filters[J]. Journal of Computer Research and Development, 2023, 60(5): 1136−1150 (in Chinese)

    [30]

    Athanassoulis M, Ailamaki A. BF-tree: Approximate tree indexing[J]. Proceedings of the VLDB Endowment, 2014, 7(14): 1881−1892 doi: 10.14778/2733085.2733094

  • 期刊类型引用(4)

    1. 侯泽超,董建刚. 去中心化场景下的隐私保护联邦学习优化方法. 计算机应用研究. 2024(08): 2419-2426 . 百度学术
    2. 郭倩,赵津,过弋. 基于分层聚类的个性化联邦学习隐私保护框架. 信息网络安全. 2024(08): 1196-1209 . 百度学术
    3. 兰浩良,王群,徐杰,薛益时,张勃. 基于区块链的联邦学习研究综述. 信息网络安全. 2024(11): 1643-1654 . 百度学术
    4. 洪朝群,张锴,张伟霖,罗进开,张珂杰. 基于区块链的差分隐私机制在公共数据要素化中的应用. 海峡科学. 2024(10): 95-104 . 百度学术

    其他类型引用(5)

图(9)
计量
  • 文章访问数:  422
  • HTML全文浏览量:  59
  • PDF下载量:  178
  • 被引次数: 9
出版历程
  • 收稿日期:  2023-04-02
  • 修回日期:  2023-06-11
  • 网络出版日期:  2023-07-12
  • 刊出日期:  2023-11-14

目录

/

返回文章
返回