2. 北京邮电大学 计算机学院, 北京 100876
2. School of Computer Science, Beijing University of Posts and Telecommunications, Beijing 100876, China
区块链是一种去中心化的分布式账本系统, 其提供了在开放环境中存储信息、执行事务、执行功能和建立信任的创新方法[1], 广泛应用于全球部署的加密货币[2]、智能合约[3]、物联网[4-5]、智能电网[6-7]、供应链[8-9]等领域。区块链[10]、人工智能[11]和大数据[12]被认为是下一代金融科技发展的三大核心计算技术, 但将区块链作为底层技术的去中心化平台和应用通常面临账户管理难题, 由于没有可信第三方, 如果用户硬盘崩溃或病毒损坏数据或遗失携带密钥的设备而丢失与其钱包相关的私钥, 则将无法找回区块链账户上的资产[13-14]。许多比特币用户就因为密钥管理可用性差、恶意交换和钱包安全漏洞而遭受巨大损失[15]。2015年1月, 攻击者通过恶意软件进入Bitstamp热钱包, 窃取1.9万枚比特币。2016年8月, 攻击者利用Bitfinex交易所和BitGo公司的多重签名钱包中的安全漏洞窃取12万枚比特币。2017年7月, 攻击者利用以太坊多重签名钱包Parity的安全漏洞窃取约15万枚以太币[16]。因此, 提出一个切实可行的区块链账户管理方案是亟待解决的问题。
目前, 学术界针对区块链上的账户管理问题主要研究如何提高用户私钥生成、存储和使用阶段的安全性和便利性。在用户私钥生成阶段, 文献[17]提出随机种子结合密码的私钥生成方案, 利用存储在本地设备的随机种子和密码生成私钥。在私钥存储阶段, 研究人员提出本地存储、加密钱包、离线存储[18]、账户托管[19]和分层确定性钱包[20-21]等方案。在私钥使用阶段, 研究人员提出多重签名[22-23]和门限签名[24-25]方案。比特币在进行多重签名交易时, 需要由多重签名交易地址中N个成员中的M个成员签署才能生效, 其中M≤N, 若要变更多重签名交易策略, 则需要生成新的多重签名交易地址和脚本。在基于门限签名的账户管理方案中, 账户的私钥碎片分割成多份碎片分布在每个参与者手中, 实现一笔交易需要大于门限值份额的参与者共同签名, 并且可依据参与者的身份赋予参与者不同的权重。这类方案实现一笔交易需要多人共同参与, 能够有效增强账户的可靠性, 但管理各参与者的密钥是一大难题。文献[26]根据比特币兼容的门限秘密共享和属性基加密方案提出一种分布式比特币账户管理(DBAM)框架, 实现对企业和企业比特币账户的联合管理。文献[27]提出一个用于确保比特币钱包安全的最优阈值数字签名方案, 该方案仅需大于门限阈值的诚实节点即可保证方案的不可伪造性。
通过上述分析可看出, 现有研究多数为针对用户个人账户的私钥管理, 并且由用户个人选用不同方式保存私钥, 若用户不慎丢失私钥, 则将无法访问账户。因此, 本文提出一种基于门限密钥共享[28]的区块链账户私钥分布式管理方案。将私钥和用户设置的秘密口令相结合生成秘密, 再将秘密通过门限机制分割成多份碎片, 由网络中成员进行分布式保存, 网络节点的加入和退出都会对私钥碎片和门限值进行更新。但即使用户不慎丢失私钥, 只要收集超过门限阈值数量的密钥碎片再结合秘密口令就可恢复私钥, 并且由于本文方案中的门限值和秘密碎片随网络规模的变化更新, 因此攻击者难以在一个更新时期内收集到超过门限阈值的秘密碎片和用户设置的秘密口令以窃取用户私钥。
1 门限密码学本文采用基于Lagrange插值法的Shamir(t, n)门限秘密共享方案[29]。在该方案中, 利用多项式将秘密s分割成n份, 即秘密碎片s1, s2, …, sn, 成员只要收集到超过门限阈值t的秘密碎片就能恢复秘密s。取大素数q, 共享秘密s满足
1) 初始化:秘密分享者随机构造t-1阶多项式
2) 秘密分发:秘密分发者根据参与者公开身份识别ui并计算其份额
3) 秘密恢复:该阶段需要至少t个参与者参与才能恢复出正确的秘密。假定参与者u1, u2, …, ut提供其秘密碎片s1, s2, …, st, 根据拉格朗日插值公式, 参与者集合可以唯一确定多项式
在本文私钥管理方案中, 区块链网络采用实用拜占庭容错协议[30]达成一致性, 其算法流程如图 1所示。该算法包括请求(request)、预准备(pre-prepare)、准备(prepare)、确认(commit)和回复(reply)5个阶段。假定系统中故障节点数目为f, 当系统中故障节点占比小于1/3时, 实用拜占庭容错算法才能达成共识。在请求阶段, 客户端C向主节点0发送请求消息。在预准备阶段, 主节点0为客户端C的请求分配次序并向从节点1、从节点2、从节点3发送预准备消息, 节点对预准备消息检验并同意后进入准备阶段。在准备阶段, 诚实从节点1、诚实从节点2向节点0~节点3广播准备消息, 故障节点3不响应, 当收集到从不同节点广播且与预准备消息一致的2f+1个准备消息后, 进入确认阶段。在确认阶段, 诚实节点0、诚实节点1、诚实节点2向除自己以外的其他节点发送确认消息, 当收集到不同节点发送且与预准备消息一致的2f+1个确认消息后, 进入回复阶段。在回复阶段, 诚实节点0、诚实节点1、诚实节点2向客户端发送回复消息, 客户端收到2f+1个不同节点发送的响应消息时, 请求执行成功。
![]() |
Download:
|
图 1 实用拜占庭容错算法流程 Fig. 1 Procedure of practical Byzantine fault tolerance algorithm |
假定该区块链系统运行于网络规模为n的企业网络上, 企业员工使用私钥对企业事务进行审批处理并广播, 收到确认后达成一致。企业员工在加入区块链网络时, 将私钥根据门限秘密共享方案分割成n份碎片, 使用企业其他员工公钥加密并广播, 收到超过2/3的确认后达成一致。如果企业员工的私钥不慎丢失, 则在企业使用的区块链客户端广播请求私钥碎片并附带私钥碎片正确调用口令, 只要企业员工收集到超过门限阈值的私钥碎片就可根据拉格朗日插值法恢复私钥, 正常处理企业事务。
2.1 初始化设网络规模为n, q是一个大素数, 网络中的节点使用
步骤1 节点ui, i∈{1, 2, …, n}秘密选择多项式
步骤2
节点ui, i∈{1, 2, …, n}计算
步骤3 节点ui调用口令hash值、加密后私钥碎片和加密后私钥碎片hash值{hash(λi), hash(sski, j), Epkj(sski, j), j=1, 2, …, n}并通过客户端发送给主节点。在预准备阶段, 主节点将信息进行排序并发送给网络中的成员。在准备和预准备阶段, 网络中成员uj, j∈1, 2, …, n收到消息后使用其私钥skj解密Epkj(sski, j), 并计算hash[Dski(Epki(sski, j))]=hash(sski, j)。
若上式成立, uj向其他节点广播信息, 否则uj节点不广播信息。在确认阶段, 各节点对其他节点广播信息进行验证后, 向其他节点发送确认消息, 秘密保存{hash(λi), hash(sski, j), sski, j}并在回复阶段响应客户端。客户端若收集到
在初始化阶段完成后, 网络中的成员将自身私钥分割成n份私钥碎片并分别保存于网络节点处, 在私钥分配初始化过程中未能及时响应的节点可请求网络中其他节点获取自身需保存的密钥碎片并对其进行保存。私钥丢失成员至少需收集t=
当有新成员加入网络时, 新成员是网络中的第n+1个节点, 其公私钥对为{pkn+1, skn+1}, 标识为un+1。新成员构造
网络中其他成员需要为新加入节点分配密钥碎片并改变私钥碎片分配方程以改变私钥碎片共享的门限阈值。因此, 网络中其他成员构建新方程:
当网络中有成员退出时, 网络规模由n缩减至n-1, 网络中剩余成员需对私钥碎片方程进行更新, 剔除原有方程中的t-1阶项, 将原有的t-1阶方程更新为t-2阶方程
当网络成员uc的私钥丢失后, uc可创建一个临时账号加入网络, 密钥恢复后注销。其公私钥对为(pkc′, skc′), uc通过以下步骤恢复密钥:
步骤1 成员uc通过客户端向主节点发送密钥恢复请求, 并附加其密钥调用口令。
步骤2 主节点将该消息广播到网络中的其他节点, 网络中的其他节点在经过准备和协商阶段的验证后, 确认该信息的调用口令为正确, 响应客户端并对私钥碎片使用成员uc的临时账号公钥加密sskc, j, 将Epkc′(sskc, j)发送给成员uc。
步骤3 成员uc收到Epkc′(sskc, j)后利用私钥解密获取sskc, j, 计算其hash值hash(sskc, j), 并与之前存储的hash值进行对比, 若与之前存储碎片hash值一致, 则碎片为正确。在正确碎片数量达到门限阈值t后, 根据
步骤4 成员uc恢复密钥skc后, 变更其密钥碎片调用口令λc为λ′c, 并将其hash值hash(λ′c)通过客户端发送给主节点, 主节点发送给其他节点, 网络中节点确认消息正确后响应服务器并变更秘密存储的{hash(λc), hash(sskc, j), sskc, j}为{hash(λ′c), hash(sskc, j), sskc, j}。
3 安全性分析 3.1 抗合谋攻击分析当攻击者收集到的密钥碎片个数m小于门限阈值t时, 攻击者必须通过m个方程求解t个未知数, 由线性方程的基本知识可知, 其中至少有t-m个自由变量, 由于能得到正确秘密的概率最大为
密钥可恢复性是门限密钥的特性。用户收集到超过门限阈值的秘密碎片即可根据拉格朗日插值法恢复出分配的秘密ski+αi, 由于用户已知自己设置的口令αi, 因此对ski重新编码即可使用恢复的私钥。
3.3 抗单点失效分析由私钥和用户秘密口令组成的秘密被分割成n份存储在网络节点中, 用户仅需记住自己设置的秘密口令以及私钥碎片调用口令, 即可收集秘密碎片并在收集到超过门限阈值的秘密碎片后就能恢复秘密, 同时根据秘密口令和秘密恢复私钥。由于网络中只要存在超过门限阈值以上的正常节点系统就可正确运行, 因此单个节点的故障不会影响系统的正常运行。
3.4 匿名性分析不同于多重签名和门限签名方案完成一笔交易需要多个节点的签名, 本文中的私钥碎片持有者仅协助用户进行私钥恢复, 不参与用户交易事务, 账户由私钥所有者单节点控制, 保证网络中用户的匿名性。网络中成员仅已知其他成员的标识符、公钥以及地址, 无法了解其他成员的身份和隐私信息。
将本文方案与离线存储方案[18]、账户托管方案[19]、多重签名方案[22-23]、门限签名方案[24-25]进行安全性对比, 其结果如表 1所示。本文方案具有抗合谋攻击、抗单点失效、无可信中心、密钥可恢复、匿名、账户单节点控制特性, 可保证使用用户的账户安全以及隐私, 并在一定程度上保障用户的使用便利性。
![]() |
下载CSV 表 1 私钥管理方案安全性对比 Table 1 Security comparison of private key management schemes |
由于多项式的计算开销非常小, 因此本文对多项式的计算开销可忽略不计, 并且假设本文方案的网络规模为n。
在初始化阶段, 用户为目前网络中其他节点分配密钥碎片, 单个用户需要计算口令和私钥碎片的hash值, 私钥碎片使用其他节点公钥加密后的密文且进行n次加密运算和n+1次hash运算。网络中的其他节点对用户发送的私钥碎片密文进行解密, 并通过hash运算验证其完整性, 存储单个用户的私钥碎片需要进行一次解密运算和一次hash运算。存储网络中全部节点的私钥碎片需要进行n次解密运算和n次hash运算, 其计算开销与网络规模线性相关。
在节点加入阶段, 新加入节点需要为其他节点分配私钥碎片, 其他节点也需更新私钥碎片并为新加入节点分配私钥碎片。新加入节点在分配自身私钥碎片过程中进行n+1次加密运算和n+2次hash运算, 其他节点在重新分配自身私钥碎片的过程中进行n+1次加密运算和n+1次hash运算, 网络中的节点在接收并存储其他节点私钥碎片的过程中进行n+1次解密运算和n+1次hash运算。
在节点退出阶段, 节点退出网络, 网络中的剩余节点需更新私钥碎片和门限值。网络中的节点需要进行n-1次加密运算和n-1次hash运算重新分配自身私钥碎片, 在验证并存储网络中其他节点时需要进行n-1次解密运算和n-1次hash运算更新私钥碎片。
在密钥恢复阶段, 网络中的节点将用户临时账户公钥加密后的私钥碎片发送给用户, 用户使用私钥解密并通过拉格朗日插值法恢复密钥并更新调用口令。网络中的节点需要将用户私钥使用用户临时公钥加密, 其中进行一次加密运算。私钥丢失用户需要使用临时私钥解密私钥碎片, 并对其进行hash运算验证其是否为正确的私钥碎片, 通过拉格朗日插值法恢复私钥并更改私钥碎片调用口令, 该过程至少需要进行t次解密运算和t+1次hash运算, 其中t为密钥恢复门限阈值。
4.2 消息开销分析假设方案运行过程中有m个节点为无法正常运行节点, 其中, m < n/3, n为网络规模。在初始化阶段, 网络中节点存储一个节点的私钥碎片需要进行5轮交互, 请求、预准备、准备、协商和恢复阶段的消息开销分别为1、n-1、(n-m-1)(n-m)、(n-m)2和n-m, 整个流程的消息开销为2(n-m)2+n。在节点加入阶段, 网络规模变更为n+1, 方案运行过程中无法正常运行节点数目为m1 < (n+1)/3, 因此完成一个私钥碎片更新或新节点私钥碎片分配流程的消息开销为2(n+1-m1)2+n+1。在节点退出阶段, 网络规模变更为n-1, 方案运行过程中无法正常运行的节点数目为m2 < (n-1)/3, 因此完成一个私钥碎片更新或新节点私钥碎片分配流程的消息开销为2(n-1-m2)2+n-1。在私钥恢复阶段, 私钥丢失节点需要发送并实现两个请求, 因此消息开销为4(n-m)2+2n。
4.3 存储开销分析网络中用户需要保存自身私钥和其他节点的私钥碎片信息。由于私钥sk < q, 则私钥存储长度为Lq, Lq为大素数q的长度, 其他节点的私钥碎片信息中hash函数值相对素数长度可忽略不计, 因此网络中用户的存储开销为nLq, 与网络规模呈正相关。
4.4 网络负载分析本文使用Lencq表示Lq位数据加密后的密文长度, hash值相较于Lencq可忽略不计。在初始化阶段, n为网络规模, m < n/3是网络中无法正常运行的节点数目, 若执行一次私钥碎片分配的消息开销为2(n-m)2+n, 则其网络负载为[2(n-m)2+n]Lencq。在节点加入阶段, 网络规模变更为n+1, m1 < (n+1)/3是网络中无法正常响应的节点, 执行一次私钥碎片更新或新加入节点为网络其他节点分配私钥碎片的网络负载为[2(n+1-m1)2+n+1]Lencq。在节点退出阶段, 网络规模变更为n-1, 若m2 < (n+1)/3是网络中无法正常响应的节点, 则执行一次私钥碎片更新的网络负载为[2(n+1-m2)2+n-1]Lencq。
5 结束语为解决区块链上用户私钥丢失后恢复困难的问题, 本文提出一种基于门限秘密共享的私钥管理方案。用户将由私钥和秘密口令构成的秘密通过门限密钥机制分割成碎片, 通过实用拜占庭容错算法将碎片分发至网络中其他节点, 当用户私钥丢失后, 只要收集到超过门限阈值份额的秘密碎片并结合秘密口令就可恢复出私钥。安全性与效率分析结果表明, 本文方案满足抗合谋攻击、密钥可恢复性、抗单点失效、匿名性等需求, 并且计算开销和存储开销与区块链网络规模分别呈线性相关与正相关, 适用于小规模区块链网络上的用户管理私钥。下一步可将该方案中的实用拜占庭容错算法和Shamir门限秘密共享方案进行优化与改进, 提高共识算法的效率并降低私钥管理方案的计算和存储开销, 使其适用于大规模区块链网络。
[1] |
ZHANG Rui, XUE Rui, LIU Ling. Security and privacy on blockchain[J]. ACM Computing Surveys, 2019, 52(3): 1-34. |
[2] |
NAKAMOTO S.Bitcoin: a peer-to-peer electronic cash system[EB/OL].[2020-02-21].http://bitcoin.org/bitcoin.pdf.
|
[3] |
WANG Shuai, YUAN Yong, WANG Xiao, et al.An overview of smart contract: architecture, applications, and future trends[C]//Proceedings of 2018 IEEE Intelligent Vehicles Symposium.Washington D.C., USA: IEEE Press, 2018: 108-113.
|
[4] |
DAI Hongning, ZHENG Zibin, ZHANG Yan. Blockchain for Internet of Things:a survey[J]. IEEE Internet of Things Journal, 2019, 6(5): 8076-8094. DOI:10.1109/JIOT.2019.2920987 |
[5] |
OUADDAH A, MOUSANNIF H, ELKALAM A, et al. Access control in the Internet of Things:big challenges and new opportunities[J]. Computer Networks, 2017, 112: 237-262. DOI:10.1016/j.comnet.2016.11.007 |
[6] |
GUAN Zhitao, SI Guanlin, ZHANG Xiaosong, et al. Privacy-preserving and efficient aggregation based on blockchain for power grid communications in smart communities[J]. IEEE Communications Magazine, 2018, 56(7): 82-88. DOI:10.1109/MCOM.2018.1700401 |
[7] |
HENG Xingchen, DONG Can, LIN Kequan, et al. Blockchain-based algorithm for distributed power bidding transaction[J]. Computer Engineering, 2020, 46(2): 35-40, 47. (in Chinese) 衡星辰, 董灿, 林克全, 等. 基于区块链的分布式电力竞价交易算法[J]. 计算机工程, 2020, 46(2): 35-40, 47. |
[8] |
KIM H M, LASKOWSKI M. Toward an ontology-driven blockchain design for supply-chain provenance[J]. Intelligent Systems in Accounting, Finance and Management, 2018, 25(1): 18-27. DOI:10.1002/isaf.1424 |
[9] |
KSHETRI N. 1blockchain's roles in meeting key supply chain management objectives[J]. International Journal of Information Management, 2018, 39: 80-89. DOI:10.1016/j.ijinfomgt.2017.12.005 |
[10] |
FERRAG M A, DERDOUR M, MUKHERJEE M, et al. Blockchain technologies for the Internet of Things:research issues and challenges[J]. IEEE Internet of Things Journal, 2019, 6(2): 2188-2204. DOI:10.1109/JIOT.2018.2882794 |
[11] |
DEIG C R, KANWAR A, THOMPSON R F. Artificial intelligence in radiation oncology[J]. Hematology/Oncology Clinics of North America, 2019, 33(6): 1095-1104. DOI:10.1016/j.hoc.2019.08.003 |
[12] |
LIANG Y J, ZHENG X L, ZENG D D. A survey on big data-driven digital phenotyping of mental health[J]. Information Fusion, 2019, 52: 290-307. DOI:10.1016/j.inffus.2019.04.001 |
[13] |
CONTI M, KUMAR E S, LAL C, et al. A survey on security and privacy issues of Bitcoin[J]. IEEE Communications Surveys & Tutorials, 2018, 20(4): 3416-3452. |
[14] |
ZHANG Liang, LIU Baixiang, ZHANG Ruyi, et al. Overview of blockchain technology[J]. Computer Engineering, 2019, 45(5): 1-12. (in Chinese) 张亮, 刘百祥, 张如意, 等. 区块链技术综述[J]. 计算机工程, 2019, 45(5): 1-12. |
[15] |
KROMBHOLZ K, JUDMAYER A, GUSENBAUER M, et al.The other side of the coin: user experiences with Bitcoin security and privacy[C]//Proceedings of International Conference on Financial Cryptography and Data Security.Berlin, Germany: Springer, 2016: 555-580.
|
[16] |
List of Bitcoin heists, thefts, hacks, scams, and losses[EB/OL].[2020-02-21].https://bitcointalk.org/index.php?topic=83794.0.
|
[17] |
LIU Yi, LI Ruilin, LIU Xingtong, et al.An efficient method to enhance Bitcoin wallet security[C]//Proceedings of the 11th IEEE International Conference on Anti-counterfeiting, Security, and Identification.Washington D.C., USA: IEEE Press, 2017: 26-29.
|
[18] |
ESKANDARI S, CLARK J, BARRERA D, et al.A first look at the usability of Bitcoin key management[C]//Proceedings of 2015 Network and Distributed System Security Symposium.San Diego, USA: [S.l.], 2015: 40-50.
|
[19] |
GURI M.BeatCoin: leaking private keys from air-gapped cryptocurrency wallets[C]//Proceedings of 2018 IEEE International Conference on Internet of Things(iThings) and IEEE Green Computing and Communications(GreenCom) and IEEE Cyber, Physical and Social Computing(CPSCom) and IEEE Smart Data(SmartData).Washington D.C., USA: IEEE Press, 2018: 1308-1316.
|
[20] |
ELIASI B, JAVDAN A.Comparison of blockchain e-wallet implementations[EB/OL].[2020-02-21].http://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1350402&dswid=3763.
|
[21] |
GUTOSKI G, STEBILA D.Hierarchical deterministic Bitcoin wallets that tolerate key leakage[C]//Proceedings of International Conference on Financial Cryptography and Data Security.Berlin, Germany: Springer, 2015: 497-504.
|
[22] |
MAXWELL G, POELSTRA A, SEURIN Y, et al. Simple Schnorr multi-signatures with applications to Bitcoin[J]. Designs, Codes and Cryptography, 2019, 87(9): 2139-2164. DOI:10.1007/s10623-019-00608-x |
[23] |
AITZHAN N Z, SVETINOVIC D. Security and privacy in decentralized energy trading through multi-signatures, blockchain and anonymous messaging streams[J]. IEEE Transactions on Dependable and Secure Computing, 2018, 15(5): 840-852. DOI:10.1109/TDSC.2016.2616861 |
[24] |
BONEH D, GENNARO R, GOLDFEDER S.Using level-1 homomorphic encryption to improve threshold DSA signatures for Bitcoin wallet security[C]//Proceedings of International Conference on Cryptology and Information Security.Berlin, Germany: Springer, 2019: 352-377.
|
[25] |
DIKSHIT P, SINGH K.Efficient weighted threshold ECDSA for securing Bitcoin wallet[C]//Proceedings of 2017 ISEA Asia Security and Privacy Conference.Washington D.C., USA: IEEE Press, 2017: 1-9.
|
[26] |
ZHOU Xiuwen, WU Qianhong, QIN Bo, et al.Distributed Bitcoin account management[C]//Proceedings of 2016 IEEE Trustcom/BigDataSE/ISPA.Washington D.C., USA: IEEE Press, 2016: 105-112.
|
[27] |
GENNARO R, GOLDFEDER S, NARAYANAN A.Threshold-optimal DSA/ECDSA signatures and an application to Bitcoin wallet security[C]//Proceedings of International Conference on Applied Cryptography and Network Security.Berlin, Germany: Springer, 2016: 156-174.
|
[28] |
ZHANG En, ZHU Junzhe, LI Gongli, et al. Outsourcing hierarchical threshold secret sharing scheme based on reputation[J]. Security and Communication Networks, 2019(12): 221-229. |
[29] |
SHAMIR A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612-613. DOI:10.1145/359168.359176 |
[30] |
THAI Q T, YIM J C, YOO T W, et al. Hierarchical Byzantine fault-tolerance protocol for permissioned blockchain systems[J]. The Journal of Supercomputing, 2019, 75(11): 7337-7365. DOI:10.1007/s11227-019-02939-x |
[31] |
LIU Yaxue, YANG Xiaobao, LIU Yuan, et al. A blockchain-based multi-application certificate system model[J]. Computer Engineering, 2020, 46(9): 44-53. (in Chinese) 刘亚雪, 杨小宝, 刘圆, 等. 一种基于区块链的多应用证书系统模型[J]. 计算机工程, 2020, 46(9): 44-53. |
[32] |
KHALILI M, DAKHILALIAN M, SUSILO W. Efficient chameleon hash functions in the enhanced collision resistant model[J]. Information Sciences, 2020, 510: 155-164. DOI:10.1016/j.ins.2019.09.001 |