一种基于MPC的可社交恢复数字身份的方法与流程
- 国知局
- 2024-08-02 13:56:54
本发明涉及区块链,特别是涉及一种基于mpc的可社交恢复数字身份的方法。
背景技术:
1、由于web3是建立在去中心化和开放的核心理念之上的,所以对于区块链上的应用,用户需要承担更多的责任来维护自己的账号。用户用私钥来控制和管理数字身份或数字资产,只有用私钥来进行签名,其他人才能通过验证该签名来确认这是私钥所有者的意图,最终会在区块链全网广播与确认。在web3中,用户可通过掌握私钥独立管理其资产,无需将资产和数据交到别人的手里。也因此私钥的保管成为一大难题。如果他们失去了自己的私钥,在大多数情况下,没有中央机构或服务提供商可以帮助他们恢复他们的账户或他们的资金。如果对手窃取了他们的钥匙,并转移了资金,那么就没有像信用卡欺诈保护计划那样的缓解措施,另外web3的交互操作门槛高一直是大规模采用的最大障碍之一。
2、一个数字身份由账户所有者的公钥pk表示,在大多数区块链应用中,账户使用公钥的附加操作来反映,例如哈希公钥。在正常情况下,账户持有者使用与pk相关联的私钥sk在区块链上创建交易。例如,创建一个签名σ(m),其中m是执行从账户持有者余额中转移价值或执行一些只有账户持有者有权执行的智能合约操作的指令,以此对区块链进行交互。
3、对于账户持有者的私钥的保管有以下几种技术方案:
4、1、自托管方案:
5、如图1所示:大多数现有的加密货币和区块链自托管钱包将密钥完全存储在客户的移动设备或浏览器扩展程序中,或者专用硬件中。优点是安全性高,但私钥一旦丢失则无法找回。
6、2、中心化托管方案:
7、如图2所示:个人和机构用户可选择使用中心化托管方案,例如交易所或信息资产托管服务。这种方法的优点是将管理密钥的负担从客户转移到交易所,以防止密钥被盗或丢失。交易所并不会直接托管用户的私钥,而是通过自己的系统和技术来管理用户的数字资产。用户在交易所注册账户后,会获得一个账户地址,交易所会将用户的数字资产存储在自己的地址中。当用户需要进行交易时,交易所会使用自己的私钥进行签名和验证,而不是使用用户的私钥。这种方式可以提高用户的安全性,因为用户的私钥不会暴露在网络上,但同时也意味着用户需要信任交易所来管理自己的数字资产。此外,一个真正关心安全的好交易所比一个普通用户或专业领域不在安全方面的组织更不容易被攻破。这样的交易所还可以部署反欺诈措施、限制交易金额的政策以减轻冒充攻击的损害等。
8、3、基于mpc-tss的方案:
9、如图3所示:在账户所有者和外部实体之间分割密钥,并通过运行高级加密协议进行操作,生成签名而不必将密钥组合在一起。因此,即使从账户设备中窃取用于签署交易的密钥份额,账户所有者的密钥仍然受到保护,因为单个密钥份额没有另一个份额是无意义的,而且外部实体不能在没有客户的情况下生成签名,因为他们也只持有一个份额。这意味着其不能拥有客户的密钥或资金,具有所有相关的好处。
10、但是,上述三种对于账户持有者的私钥的保管均存在一定缺陷:
11、1、自托管的方案:
12、自托管方案可以实现对其密钥的完全控制,但在操作和安全方面都存在问题。在操作方面,传统的自托管解决方案需要自己负责管理所有密钥,包括防止密钥丢失或被盗。基于硬件的解决方案需要对硬件的访问进行强有力的控制,并制定备份密钥材料的策略。备份策略通常使用hd钱包,并将种子映射到助记词中进行备份。然而,机构持有的加密货币可能非常大,依靠在某个安全的地方打印在单张纸上的助记词备份是不可接受的,因为这样会带来风险,需要组织使用多种备份方法和站点。员工流动进一步加剧了这些困难,因为潜在的不满意的员工可能会带来风险。从安全角度来看,使用密钥转移资金或类似操作的任何使用都会增加风险。如果密钥存储在像移动电话或笔记本电脑这样的单个设备上,则可能容易受到攻击。投资于具有特定领域专业知识的重要专门安全团队并不是合理的,备份和防止密钥丢失与安全和防止密钥被盗之间经常存在矛盾。
13、2、中心化托管的方案:
14、一个值得信任的托管方可以有一系列的保护措施,然而这种方案也存在一定的问题。首先,并非所有的托管方都是平等的,现实生活中仍然可以看到一些交易所被攻破并破产,导致客户失去资金,这完全超出了他们的控制范围。其次,加密货币的去中心化愿景,即各方通过持有自己的密钥来持有自己的资金,这点不与交易所托管方法相一致。此外,像nft和web3这样的个人资产在集中交易所中的存储问题很大,因为交易所通常会将资产汇集在一起(在这种情况下是不可能的)。最后,web3基础设施的整个目的是保证用户可以访问他们的资产,而不完全依赖于任何单个第三方。
15、3、基于mpc-tss的方案:
16、mpc-tss方案提供了出色的可用性和安全性。但是在极端情况下仍会出现问题,即外部实体与账户所有者都丢失了私钥部分。在这种形式下,两者都无法独立操作。目前大部分mpc钱包采用的是mpc-tss阈值签名方案,虽然安全可靠,但是实际使用和交互上过程比较繁琐麻烦,各个外部实体不会拥有完整的私钥,mpc-tss方案通常需要进行大量的计算和通信,特别是在参与方数量较多或计算规模较大的情况下。这可能导致较高的计算开销和延迟。mpc-tss方案在处理大规模计算或大量参与方时可能面临扩展性挑战,随着参与方数量的增加,计算和通信开销可能会显著增加,导致性能下降。
17、综上可知,上述前两种方案会产生大规模的采用障碍。其中,自托管方案的缺点在于操作和安全方面存在问题,需要对访问进行强有力的控制,备份和防止密钥丢失与安全和防止密钥被盗之间经常存在矛盾,使用密钥转移资金或类似操作的任何使用都会增加风险,安全性差。中心化托管方案的缺点在于托管方会存在被攻破并破产的风险,安全性差,而且加密货币的去中心化愿景与中心化托管方案不一致。针对第三种方案(基于mpc-tss的方案),mpc-tss控制eoa交易过程繁琐。
技术实现思路
1、针对上述问题,本发明提供了一种账号社交恢复、批量交易简单、可编程性强、安全性高的基于mpc的可社交恢复数字身份的方法。它采用mpc-sss实现私钥恢复,使用户可以拥有完整私钥,即使私钥即在外部实体与账户所有者都丢失私钥部分导致mpc无法恢复完整私钥,也可使用dkim(domain keys identified mail)技术去社交恢复私钥,并使用零知识证明(zero-knowledge proof)的bullet proofs技术保护社交恢复过程和结果的安全性。
2、本发明的技术方案是:一种基于mpc的可社交恢复数字身份的方法,包括以下步骤:
3、步骤10、判断用户是否拥有完整私钥;
4、若拥有完整私钥,用户使用私钥控制eoa,eoa的地址将作为用于管理智能合约账户的owner地址;建立社交恢复所用到的验证值,智能合约账户可签署签名交易并广播到ethereum或者其他区块链网络中;
5、若没有拥有完整私钥,通过mpc-sss结合规定数量的外部实体协助恢复完整私钥;
6、步骤20、区块链网络中的节点会验证交易的有效性,并将其添加到区块链上,且智能合约账户的状态将被更新;
7、步骤30、mpc是否成功恢复完整私钥;
8、若成功恢复完整私钥,则返回完整私钥给用户;
9、若没有成功恢复完整私钥,则用户通过mail server转发,向智能合约账户发送一个包含用户身份验证信息的邮件,智能合约账户收到邮件后,使用dkim与zkp的技术方案bullet proofs验证邮件,以确保验证结果的有效性;
10、步骤40、判断邮件是否通过验证,
11、若邮件通过验证,则是智能合约地址的所有者owner,更换新的owner地址,并更新智能合约账户的验证信息,更换新的私钥,实现新的私钥访问智能合约账户;
12、若邮件没有通过验证,则不是智能合约地址的所有者owner,邮件所包含的验证值错误,请求重发。
13、在进一步的技术方案中,在步骤10中,
14、规定数量的外部实体为本地、服务器以及云端;
15、用户将私钥通过mpc-sss技术分割成多个部分,并将这些部分分享给本地、服务器以及云端。
16、在进一步的技术方案中,在步骤30中,
17、bullet proofs基于pederson commitments,即pederson承诺,pederson承诺的计算公式如下:
18、c=gm*hrmodp;
19、其中,c为commitment,为pederson承诺,g、h与p是公开的公共参数;p是在pedersen承诺的生成过程中使用的一个大素数,这个素数通常是根据特定的安全性和性能要求选择;m为需要隐藏的值,r为随机数;g和h为两个属于一个大素数阶群的生成元,用于计算承诺值。
20、在进一步的技术方案中,在步骤30中,
21、pederson承诺拥有离散对数问题和隐藏属性的性质,bullet proofs在其基础上提出了一种优化后的向量内积承诺,可以使验证方相信承诺c中包含一个在一定范围内的数字v,而不揭露v的值;
22、利用这个特性可以在邮件中加入bullet proofs的验证值进行保护,以确保邮件发送者是sca的所有者;此算法证明了如下的关系:
23、{(g,h∈g,v,n;v,r∈zp):v=gvhr∩v∈[0,2n-1]}; ⑴
24、其中g、h、g、v都是公开信息,v和r作为所保护的验证值。
25、在进一步的技术方案中,在步骤30中,
26、bullet proofs在社交恢复中的形式化证明流程,包括以下步骤:
27、步骤a、准备阶段,
28、假设在建立sca时验证节点随机选择交给用户用于零知识体系所需构造的挑战参数,将用户社交恢复所用到验证值作为v,以下为用户操作:
29、步骤a1、构造两个向量al和ar,使得al满足:
30、<al,2n>=v,ar=al-1n;
31、步骤a2、基于pederson承诺构造一个al与ar的承诺a:
32、
33、步骤a3、随机选取盲因子sl,sr;
34、步骤a4、与步骤a2一样,构造一个承诺s:
35、
36、步骤a5、随机选取t1,t2,构造关于t(x)一次项和二次项系数的承诺:
37、
38、步骤a6、接着分别计算如下值:
39、
40、
41、
42、τx=τ2*x2+τ1+z2*γ;
43、
44、步骤a7、向验证方发送a,s,t1,t2,τx,μ,t(x),l(x),r(x);
45、步骤b、验证阶段,
46、以下为验证方操作:
47、步骤b1、验证t(x),判断:
48、
49、步骤b2、根据a和s生成l(x)和r(x)的承诺p:
50、
51、
52、步骤b3、通过承诺p检查l和r两个向量是否正确:
53、p?=hμgl(h`)r;
54、步骤b4、检查l与r的内积来验证t(x):
55、t(x)?=<l,r>;
56、若步骤b1-b4判断全部正确,即证明了秘密值v∈[0,2n-1]。
57、在进一步的技术方案中,在步骤30中,
58、dkim实现社交恢复的过程,进一步改进的步骤为:
59、步骤c1、将v分为v1和v2使得v1+v2=v,同样地,将随机数r也分为r1和r2;
60、步骤c2、由m1,r1与m2,r2两个数值对分别通过bullet proofs所要验证的关系⑴,即为{(g,h∈g,v,n;v,r∈zp):v=gvhr∩v∈[0,2n-1]},得到v1与v2两个结果,建立sca时预留v1;
61、步骤c3、当mpc-sss恢复私钥失败时使用新的私钥签名一个新的owner地址,生成新的随机数r并重新将v和r分为v3,v4与r3,r4两个数值对,根据这两数值对生成承诺v3与v4;
62、步骤c4、向sca发送验证邮件,邮件包含数值对v2、r2、bullet proofs的验证值、新的owner地址以及用于下一次社交恢复验证的v3;
63、步骤c5、基于算法的同态性,sca收到邮件后验证节点可以将用户透露的<v2,r2>通过同样的计算公式得到v2,接着将预留的承诺v1与计算得到的v2相乘得出新的v`;
64、步骤c6、将v`参与步骤b、验证阶段中判断式⑵,即为若最终bullet proofs验证结果成功则将owner地址更换为邮件中送过来的新owner地址,并且更新sca中的信息,同时更换v1为v3并设置新的挑战参数用于下一次验证。
65、本发明的有益效果是:
66、1、账号社交恢复:与eoa(外部账号)不同,sca的安全性不完全依赖于助记词或者私钥,sca的所有者可以指定多个设备、人员、云端或者第三方服务器作为数字身份监护人。如果监护人丢失凭证,用户可以使用mpc-sss与dkim技术设置新的私钥去访问sca。
67、2、批量交易:去中心化交易所上进行两种代币的简单交换需要进行两次单独的交易:首先用户需要使用自己的私钥进行签名,以批准dapp使用他们想要交换的代币,然后签署交易才能执行交换。除此之外,还有其他更复杂的web3交易需要签名者的三个或者更多标准才能进行交互。本方案可以使用sca批量处理多个交易并一次性批准所有交易,可以使defi(decentralized finance)交易像传统金融交易一样简单。
68、3、可编程性:使用eoa时必须手动启动或者签署dapp上的每笔交易,无法自动执行。对于sca,因为sca为智能合约账户,可以定义一系列的参数,例如对特定代币的访问、支出限制、持续时间、gas限制、基于预定义的触发器执行的特定操作等等。
69、4、安全性:基于mpc-sss技术将私钥分成多个部分,并分配给多个实体进行托管,从而提高了私钥的安全性。mpc的引入不仅可以大幅度提高安全性,并且可以降低用户的使用门槛。但如果mpc使用不当,例如出现私钥分片存储不当等问题,仍然可能造成私钥的泄露和资产的损失。对应这个缺点,方案使用dkim验证恢复私钥、零知识证明保护验证过程和结果,进一步提高了安全性。
本文地址:https://www.jishuxx.com/zhuanli/20240801/241197.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。