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

在网存储系统研究综述

汪庆, 李俊儒, 舒继武

汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
引用本文: 汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
Citation: Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. DOI: 10.7544/issn1000-1239.202220865
汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865
引用本文: 汪庆, 李俊儒, 舒继武. 在网存储系统研究综述[J]. 计算机研究与发展, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865
Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865
Citation: Wang Qing, Li Junru, Shu Jiwu. Survey on In-Network Storage Systems[J]. Journal of Computer Research and Development, 2023, 60(11): 2681-2695. CSTR: 32373.14.issn1000-1239.202220865

在网存储系统研究综述

基金项目: 国家自然科学基金项目(61832011)
详细信息
    作者简介:

    汪庆: 1997年生. 博士. 主要研究方向为存储系统和内存系统

    李俊儒: 1997年生. 博士研究生. 主要研究方向为可编程网络和分布式存储系统

    舒继武: 1968年生. 博士,教授,博士生导师. 主要研究方向为非易失内存存储系统与技术、存储安全与可靠性、并行与分布式计算

    通讯作者:

    舒继武(shujw@tsinghua.edu.cn

  • 中图分类号: TP302

Survey on In-Network Storage Systems

Funds: This work was supported by the National Natural Science Foundation of China (61832011).
More Information
    Author Bio:

    Wang Qing: born in 1997. PhD. His main research interests include storage systems and memory systems

    Li Junru: born in 1997. PhD candidate. His main research interests include programmable network and distributed storage systems

    Shu Jiwu: born in 1968. PhD, professor, PhD supervisor. His main research interests include non-volatile memory systems and technologies, storage security and reliability, and parallel and distributed computing

  • 摘要:

    以可编程交换机和智能网卡为代表的可编程网络设备在数据中心被越来越广泛地应用,它们支持在网络数据传输路径上执行自定义的数据处理逻辑,这为构建高性能的在网存储系统带来了新的机遇. 然而,可编程网络设备的硬件资源限制较多,如何充分发挥它们的优势、最大限度地加速存储系统仍面临着诸多挑战. 系统地综述了在网存储系统的研究进展,首先介绍了可编程网络设备的硬件结构与性能特征,并基于此总结了构建高性能在网存储系统面临的两大挑战:软硬件分工以及系统容错. 然后根据可编程网络设备执行的任务(缓存、协调、调度、聚合)对现有的在网存储系统进行分类和阐述,并以多个在网存储系统为实例分析对应的设计难点以及软件技术. 最后指明了在网存储系统进一步研究中需要着重探索的问题,包括交换机与网卡的协同、安全、多租户以及自动卸载.

    Abstract:

    Programmable network devices, represented by programmable switches and SmartNICs, are increasingly used in modern data centers to support the execution of customized data processing logic on network data transmission paths, which brings new opportunities for building high-performance in-network storage systems. However, programmable network devices have hardware resource limitations (e.g., limited expressive powers and small memory space), and there are still many challenges to fully utilize their advantages and maximize the acceleration of storage systems. We systematically review the recent research progress of in-network storage systems. First, we describe the hardware architecture and performance characteristics of programmable network devices, and based on this, we summarize two major challenges in building high-performance in-network storage systems: 1) division of labor between hardware and software, 2) fault tolerance of the storage systems. Then, according to the tasks performed by programmable network devices (data caching, distributed coordination, request scheduling, data aggregation), we classify and describe existing in-network storage systems. Moreover, using several examples of in-network storage systems, we analyze corresponding design difficulties and software technologies. Finally, we indicate open problems that need to be explored in further research on in-network storage systems, including switch-NIC collaboration, data security, multi-tenancy, and automatic function offloading.

  • 区块链[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   RMT可编程交换机的硬件架构

    Figure  1.   Hardware architecture of RMT programmable switch

    图  2   PMNet的数据更新协议

    Figure  2.   Data update protocol of PMNet

    图  3   NetCache的架构

    Figure  3.   Architecture of NetCache

    图  4   Concordia的架构

    Figure  4.   Architecture of Concordia

    图  5   Eris的事务提交过程

    Figure  5.   Transaction commit process of Eris

    图  6   SwitchTx的事务处理流程

    Figure  6.   Transaction processing workflow of SwitchTx

    图  7   AlNiCo的架构

    Figure  7.   Architecture of AlNiCo

    图  8   AlNiCo的RPC框架

    Figure  8.   RPC framework of AlNiCo

    图  9   R2P2的架构

    Figure  9.   Architecture of R2P2

    图  10   NetEC的架构

    Figure  10.   Architecture of NetEC

    表  1   4种智能网卡的对比

    Table  1   Comparison Among Four Types of SmartNICs

    类型性能易用性表达能力
    基于ARM CPU
    基于NP
    基于ASIC
    基于FPGA
    下载: 导出CSV

    表  2   交换机表达能力优化方案总结

    Table  2   Summary of Switch Expressiveness Optimizations

    优化方面主要措施典型方案
    内存空间提高内存共享程度dRMT[11],MP5[12],TEA[13]
    计算部件优化数据表达格式FPISA[14]
    执行语义提供新型编程模型Packet transactions[15]
    下载: 导出CSV

    表  3   4种在网存储系统的对比

    Table  3   Comparison of Four Types of In-Network Storage Systems

    对比方面在网数据缓存系统在网数据协调系统在网数据调度系统在网数据聚合系统
    网络硬件交换机/网卡交换机/网卡交换机/网卡交换机
    网络硬件处理内容数据元数据元数据数据
    网络硬件内存需求
    复杂度
    通用性
    主要场景键值缓存分布式协议远程过程调用纠删码、AI训练
    典型系统NetCache[16],KV-Direct[20]Concordia[10],SwitchTx[21]R2P2[17],AlNiCo[22]NetEC[23]
    下载: 导出CSV

    表  4   基于可编程交换机的缓存系统总结

    Table  4   Summary of Caching Systems Based on Programmable Switches

    系统针对场景可靠性扩展性支持写
    NetCache负载均衡
    DistCache负载均衡
    NetChain协调服务
    下载: 导出CSV

    表  5   在网缓存一致性系统对比

    Table  5   Comparison of In-Network Cache Coherence Systems

    系统针对场景系统接口通用性
    Concordia分布式共享内存用户态读写
    Pegasus分布式对象对象接口
    Mind分离式内存OS虚拟内存
    下载: 导出CSV

    表  6   在网事务系统对比

    Table  6   Comparison of In-Network Transaction Systems

    系统网络设备扩展性通用性并发控制协议
    Eris交换机确定性执行
    SwitchTx交换机乐观并发控制
    Xenic网卡乐观并发控制
    下载: 导出CSV

    表  7   在网数据调度系统对比

    Table  7   Comparison of In-Network Date Scheduling Systems

    系统网络设备调度对象请求类型一致性
    AlNiCo网卡多核事务请求
    R2P2交换机多机通用请求
    RackSched交换机多核/多机通用请求
    Harmonia交换机多机副本读
    FLAIR交换机多机副本读
    下载: 导出CSV

    表  8   在网数据聚合系统对比

    Table  8   Comparison of In-Network Data Aggregation Systems

    系统交换机硬件支持稀疏数据支持自定义类型
    NetECRTM
    SwitchMLRTM
    ATPRTM
    OmniReduceRTM
    iSwitchFPGA
    FlarePsPIN
    下载: 导出CSV
  • [1]

    Seagate. The digitization of the world: From edge to core [EB/OL]. [2022-09-20].https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf

    [2]

    Nvidia. ConnectX-6 [EB/OL]. [2022-09-20].https://www.nvidia.com/en-us/networking/ethernet/connectx-6/

    [3]

    Bosshart P, Gibb G, Kim H S, et al. Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN[J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 99−110 doi: 10.1145/2534169.2486011

    [4]

    Intel. Intel Tofino intelligent fabric processors [EB/OL]. [2022-09-20].https://www.intel.com/content/www/us/en/products/network-io/programmable-ethernet-switch/tofino-3-product-brochure.html

    [5]

    NVIDIA. NVIDIA BlueField data processing units [EB/OL]. [2022-09-20].https://www.nvidia.com/en-us/networking/products/data-processing-unit/

    [6]

    Netronome. Agilio CX SmartNICs [EB/OL]. [2022-09-20].https://www.netronome.com/products/agilio-cx/

    [7]

    Nvidia. ConnectX SmartNICs [EB/OL]. [2022-09-20].https://www.nvidia.com/en-us/networking/ethernet/innova-2-flex/

    [8]

    Nvidia. Innova-2 Flex [EB/OL]. [2022-09-20].https://www.nvidia.com/en-au/networking/ethernet-adapters/

    [9] 马潇潇,杨帆,王展,等. 智能网卡综述[J]. 计算机研究与发展,2022,59(1):1−21

    Ma Xiaoxiao, Yang Fan, Wang Zhan, et al. Survey on smart network interface card[J]. Journal of Computer Research and Development, 2022, 59(1): 1−21 (in Chinese)

    [10]

    Wang Qing, Lu Youyou, Xu Erci, et al. Concordia: Distributed shared memory with in-network cache coherence[C]//Proc of the 19th USENIX Conf on File and Storage Technologies. Berkeley, CA: USENIX Association, 2021: 277−292

    [11]

    Chole S, Fingerhut A, Ma Sha, et al. dRMT: Disaggregated programmable switching[C/OL]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2017 [2023-02-09].https://doi.org/10.1145/3098822.3098823

    [12]

    Shrivastav V. Stateful multi-pipelined programmable switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2022: 663−676

    [13]

    Kim D, Liu Zaoxing, Zhu Yibo, et al. TEA: Enabling state-intensive network functions on programmable switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2020: 90−106

    [14]

    Yuan Yifan, Alama O, Fei Jiawei, et al. Unlocking the power of inline floating-point operations on programmable switches[C]//Proc of the 19th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2022: 683−700

    [15]

    Sivaraman A, Cheung A, Budiu M, et al. Packet transactions: High-level programming for line-rate switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2016: 15−28

    [16]

    Jin Xin, Li Xiaozhou, Zhang Haoyu, et al. NetCache: Balancing key-value stores with fast in-network caching[C]//Proc of the 26th Symp on Operating Systems Principles. New York: ACM, 2017: 121−136

    [17]

    Kogias M, Prekas G, Ghosn A, et al. R2P2: Making RPCs first-class datacenter citizens[C]//Proc of the 44th USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2019: 863−880

    [18]

    Seemakhupt K, Liu Sihang, Senevirathne Y, et al. PMNet: In-network data persistence[C]//Proc of the 48th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2021: 804−817

    [19]

    Kim D, Nelson J, Ports D R K, et al. RedPlane: Enabling fault-tolerant stateful in-switch applications[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2021: 223−244

    [20]

    Li Bojie, Ruan Zhenyuan, Xiao Wencong, et al. KV-Direct: High-performance in-memory key-value store with programmable NIC[C]//Proc of the 26th Symp on Operating Systems Principles. New York: ACM, 2017: 137−152

    [21]

    Li Junru, Lu Youyou, Zhang Yiming, et al. SwitchTx: Scalable in-network coordination for distributed transaction processing[C]//Proc of the 48th Int Conf on Very Large Databases. New York: ACM, 2022: 2881−2894

    [22]

    Li Junru, Lu Youyou, Wang Qing, et al. AlNiCo: SmartNIC-accelerated contention-aware request scheduling for transaction processing[C]//Proc of the 47th USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2022: 951−966

    [23]

    Qiao Yi, Kong Xiao, Zhang Menghao, et al. Towards in-network acceleration of erasure coding[C]//Proc of the Symp on SDN Research. New York: ACM, 2020: 41−47

    [24]

    Fan Bin, Lim H, Andersen D G, et al. Small cache, big effect: Provable load balancing for randomly partitioned cluster services[C]//Proc of the 2nd ACM Symp on Cloud Computing. New York: ACM, 2011: 264−275

    [25]

    Cormode G, Muthukrishnan S. An improved data stream summary: The count-min sketch and its applications[J]. Journal of Algorithms, 2005, 55(1): 58−75 doi: 10.1016/j.jalgor.2003.12.001

    [26]

    Luo Lailong, Guo Deke, Ma R T B, et al. Optimizing Bloom filter: Challenges, solutions, and comparisons[J]. IEEE Communications Surveys & Tutorials, 2018, 21(2): 1912−1949

    [27]

    Liu Zaoxing, Bai Zhihao, Liu Zhenming, et al. DistCache: Provable load balancing for large-scale storage systems with distributed caching[C]//Proc of the 17th USENIX Conf on File and Storage Technologies. Berkeley, CA: USENIX Association, 2019: 143−157

    [28]

    Jin Xin, Li Xiaozhou, Zhang Haoyu, et al. NetChain: Scale-free sub-RTT coordination[C]//Proc of the 15th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2018: 35−49

    [29]

    Van Renesse R, Schneider F B. Chain replication for supporting high throughput and availability[C]// Proc of the 6th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2004: 91−104

    [30]

    Sun Shangyi, Zhang Rui, Yan Ming, et al. SKV: A SmartNIC-offloaded distributed key-value store[C]//Proc of IEEE Int Conf on Cluster Computing. Piscataway, NJ: IEEE, 2022: 132−142

    [31]

    Li Jialin, Nelson J, Michael E, et al. Pegasus: Tolerating skewed workloads in distributed storage with in-network coherence directories[C]//Proc of the 14th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2020: 387−406

    [32]

    Lee S, Yu Yanpeng, Tang Yupeng, et al. Mind: In-network memory management for disaggregated data centers[C]//Proc of the 28th ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2021: 488−504

    [33]

    Yu Zhuolong, Zhang Yiwen, Braverman V, et al. NetLock: Fast, centralized lock management using programmable switches[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2020: 126−138

    [34]

    Li Jialin, Michael E, Ports D R K. Eris: Coordination-free consistent transactions using in-network concurrency control[C]//Proc of the 26th Symp on Operating Systems Principles. New York: ACM, 2017: 104−120

    [35]

    Schuh H N, Liang Weihao, Liu Ming, et al. Xenic: SmartNIC-Accelerated Distributed Transactions[C]//Proc of the 28th ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2021: 740−755

    [36]

    Cowling J, Liskov B. Granola: Low-overhead distributed transaction coordination[C]//Proc of the 37th USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2012: 223−235

    [37]

    Kung H T, Robinson J T. On optimistic methods for concurrency control[J]. ACM Transactions on Database Systems, 1981, 6(2): 213−226 doi: 10.1145/319566.319567

    [38]

    Celis P, Larson P A, Munro J I. Robin hood hashing[C]//Proc of the 26th Annual Symp on Foundations of Computer Science. Piscataway, NJ: IEEE, 1985: 281−288

    [39]

    Kim J, Jang I, Reda W, et al. LineFS: Efficient SmartNIC offload of a distributed file system with pipeline parallelism[C]//Proc of the 28th ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2021: 756−771

    [40]

    Zhu Hang, Kaffes K, Chen Zixu, et al. RackSched: A microsecond-scale scheduler for rack-scale computers[C]//Proc of the 14th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2020: 1225−1240

    [41]

    Kaffes K, Chong T, Humphries J T, et al. Shinjuku: Preemptive scheduling for μ second-scale tail latency[C]//Proc of the 16th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2019: 345−360

    [42]

    Zhu Hang, Bai Zhihao, Li Jialin, et al. Harmonia: Near-linear scalability for replicated storage with in-network conflict detection[C]//Proc of the 45th Int Conf on Very Large Databases. New York: ACM, 2019: 375−388

    [43]

    Takruri H, Kettaneh I, Alquraan A, et al. FLAIR: Accelerating reads with consistency-aware network routing[C]//Proc of the 17th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2020: 723−737

    [44]

    Plank J S. A tutorial on Reed-Solomon coding for fault-tolerance in RAID-like systems[J]. Software: Practice and Experience, 1997, 27(9): 995−1012 doi: 10.1002/(SICI)1097-024X(199709)27:9<995::AID-SPE111>3.0.CO;2-6

    [45]

    Shvachko K, Kuang H, Radia S, et al. The Hadoop distributed file system[C]//Proc of the 26th Symp on Mass Storage Systems and Technologies. Piscataway, NJ: IEEE, 2010: 133−142

    [46]

    Sapio A, Canini M, Ho C Y, et al. Scaling distributed machine learning with in-network aggregation[C]//Proc of the 18th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2021: 785−808

    [47]

    Lao C L, Le Yanfang, Mahajan K, et al. ATP: In-network aggregation for multi-tenant learning[C]//Proc of the 18th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2021: 741−761

    [48]

    Fei Jiawei, Ho C Y, Sahu A N, et al. Efficient sparse collective communication and its application to accelerate distributed deep learning[C]//Proc of the ACM Special Interest Group on Data Communication. New York: ACM, 2021: 676−691

    [49]

    Li Youjie, Liu Iou-Jen, Yuan Yifan, et al. Accelerating distributed reinforcement learning with in-switch computing[C]//Proc of the 46th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2019: 279−291

    [50]

    De Sensi D, Di Girolamo S, Ashkboos S, et al. Flare: Flexible in-network allreduce[C]//Proc of the Int Conf for High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2021: 14−29

    [51]

    Di Girolamo S, Kurth A, Calotoiu A, et al. A RISC-V in-network accelerator for flexible high-performance low-power packet processing[C]//Proc of the 48th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2021: 958−971

    [52]

    Li Huancheng, Hao Mingzhe, Novakovic S, et al. LeapIO: Efficient and portable virtual NVMe storage on ARM socs[C]//Proc of the 25th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 591−605

    [53]

    Nishtala R, Fugal H, Grimm S, et al. Scaling Memcache at Facebook[C]//Proc of the 10th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2013: 385−398

    [54]

    Weil S A, Brandt S A, Miller E L, et al. Ceph: A scalable, high-performance distributed file system[C]//Proc of the 7th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA: USENIX Association, 2006: 307−320

  • 期刊类型引用(4)

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

    其他类型引用(5)

图(10)  /  表(8)
计量
  • 文章访问数:  540
  • HTML全文浏览量:  50
  • PDF下载量:  268
  • 被引次数: 9
出版历程
  • 收稿日期:  2022-10-08
  • 修回日期:  2023-03-05
  • 网络出版日期:  2023-08-01
  • 刊出日期:  2023-10-31

目录

/

返回文章
返回