建议和反馈

请填写你的反馈内容

一种私钥加密存储及恢复的技术方案

2020-05-20 ·2984次阅读 ·读完需要9分钟

加密钱包完全由私钥控制,如果私钥丢失,钱包将无法访问。 这在某种程度上是安全的。 但是,它在实际应用中会造成很多麻烦。 本文解决方案是提供一种方式备份及恢复私钥的方法。

一、背景

私钥非常重要,可以说是区块链世界的钥匙。当下主要用于控制虚拟数字资产,但预期未来可能扩展到各种资产、身份的控制上(比如汽车钥匙、数字身份、证书)。私钥一旦丢失,这些私钥的数字资产及控制权将全部丢失。同时,你还不能要求任何人或组织帮你找回自己的私钥。要想区块链知识与应用持续普及,私钥存储及恢复方案将成为区块链世界的基础配置。

本文的目的在于提供一种基于加密委托技术的区块链密钥保管及恢复方法,以解决现有用户密钥安全性不高或用户丢失后不能恢复的技术问题。此类解决方案应遵循以下三个标准:

外部特性:服务程序不能访问私钥。
可定制:即使在私钥丢失的情况下,用户也应该能够理解和配置恢复选项。
安全:不应该有简单的方法通过恢复选项劫持另一个人的私钥,只有真正拥有帐户的人才能恢复私钥。

二、现有解决方案

目前比较通用的私钥恢复方案有多种:

2.1 助记词

预先备份一份助记词(私钥的另一种形式),备份方式取决于用户自己。通常建议是抄写在纸上放在家里,有些要求严格的可能把这张纸放进保险柜。但这种解决方案还是面临 “单点失败” 的风险,比如,这张纸可能因为各种原因丢失。

2.2 Secret sharing

要做到去中心化的存储和恢复私钥,Secret sharing 是不错的解决方案。

它的原理是把一个秘密分散、加密存储在多个参与者那里,只有当达到一定数量的参与者的时候才能拼出原始秘密,而少量参与者本身无法获得这个秘密。这样既可以减少单一节点失败造成的风险,又能在一定条件下恢复私钥。

技术本身不难,难点是把存储和恢复过程标准化、产品化。存储在谁那里?恢复的时候怎么验证身份?如何保证存储人的动力,如何避免存储人联合起来欺诈私钥所有者。

行业里面有相关工具提供, 比如:Vault12 的解决方案是私钥持有人可以邀请亲朋好友作为保管人,每月支付保管费,可以根据保管数据的安全等级来设定恢复难易程度(比如不太关键的可以只要一个保管人确认来恢复,特别关键的可能要 3/5 来恢复),在恢复前需要朋友通过视频、电话等方式确认身份。整体说来,该方案比较完善、详细,具备灵活性和可操作性,也足够专注在密钥恢复上。

这个解决方案最大的问题是,一定数量的朋友组成员可以一起工作,从所有者那里窃取对帐户的访问权,即使所有者没有要求他们这样做。这就是为什么理想情况下,小组成员不应该知道小组中还有谁。而当用户真正需要找回私钥的时候,交互流程又显得过于复杂,体验大打折扣。

2.3 标准 KYC 程序

与现代银行对新客户执行 KYC 程序的方式类似,用户可以向 KYC 提供商表明自己的身份,以便重新获得资金。但是,用户需要执行一次已经设置好的过程,以便提供者知道地址背后的标识。

KYC 验证的不足是,该过程通常由第三方提供商(如 IDNOW)处理,这是一项成本高昂且有点违反区块链原则的工作。

三、技术实现方案

3.1 注册准备阶段

用户在本地对用户私钥进行加密,并向管理柜台提出注册申请;

刚开始的时候,用户需要保存用密码(password)加密过的私钥(private key),我们定义为 EPK1;同时,还需要保存用安全问题(security answers)加密过的可恢复内容,并用公钥再次加密,我们定义为 EPK2。

这些信息都保存到服务提供者数据库中。

因此,可以用以下公式表达它们之间的关系:



这样,在服务提供者的数据库里,保存了以下信息:

编号内容
1User Name
2Hashed User Password
3EPK1
4EPK2
5Security Q
6Vender Pubkey

3.2 用户注册流程

用户注册流程图如下:

主要步骤包括:

(1)将私钥在本地加密后(EPK1)保存;

(2)将用户密码在本地加密后(PassHash)保存;

(3)将用户设置的问题及答案,在本地用私钥加密后(EPK’),再使用平台公钥加密后(EPK2)保存;

(4)保存用户设置的问题(Security Q);

(5)保存平台公钥(PUBkey);

3.3 私钥恢复

如果用户密码(password)没有丢失,登录并获取私钥流程图如下:

主要步骤包括:

  1. 登录时输入 password,得到 passhash;

  2. 跟保存在数据库中的 passhash 比较,如果相同,返回 EPK1;

  3. 用户在本地使用 password 从 EPK1 解密出私钥;

  4. 用私钥进行本地签名,并发送交易到区块链网络;

3.4 登录并获取私钥

如果用户密码(password)丢失,或者想用新密码重新保存私钥,密码重置过程需重新保存数据库内容,流程图如下:

主要步骤包括:

  1. 登录时输入新密码 newpass,得到 passhash;

  2. 跟保存在数据库中的 passhash 比较,如果不相同,申请重新保存,此时得到平台私钥 (vendor privatekey);

  3. 从数据库拿出 EPK2,使用平台私钥解密,得到 EPK’;

  4. 此时用户需要回答数据库中的问题,回答(可以是生物特征比如指纹、或普通问题的答案)正确,可以从 EPK’中恢复私钥;

  5. 使用 newpass 和 privatekey 生成新的 EPK1,并更新数据库;

  6. 这样,用户下次就可以使用新密码进行私钥签名或发送交易了。


评论(0)问答(0)
请先登录或注册

请先登陆或注册

相关推荐

律师事务所文件管理难?泛圈企业云盘来解决

众众所周知,律师的职业素质是非常重要的,但越来越多的跨地区、跨国、跨律师事务所的合作案例也对律师事务所成员之间的协同办公效率提出了新的要求。使用泛圈企业云盘,右击邀请团队成员同步文件/文件夹,可以上传......
泛圈科技 · 2020-06-03
549阅读 · 0赞赏 · 0问答

Grin与BEAM之间技术公开对比

简    介Grin和BEAM是两个基于Mimblewimble协议的开源加密货币项目。Mimblewimble协议最初是由匿名用户使用笔名Tom Elvis Jedusor(《哈......
myself · 2020-06-03
642阅读 · 0赞赏 · 0问答

区块链真正价值在哪?看YottaChain王东临、比特大陆庄重深度解读

中国信息和通信技术研究院(CAICT)称,自区块链技术走红以来,全球已有超过8万个声称利用区块链技术的项目。数据统计显示,这其中只有8%的项目存活了下来。区块链打造了造富神话,吸引了很多人前仆后继投身......
YottaChain · 2020-06-02
128阅读 · 0赞赏 · 0问答

泛圈网盘聚焦公司数字化运营,推动企业云端高效信息化发展

科技是第一生产力,今年以来,国家层面屡次推动“新基建”。作为新基建架构的枢纽,云计算正在加速推动各行各业信息化的进程,并在互联网、运输、物流、金融、政府事务和教育等不同领域实现快速发展。而对企业级客户......
大话油塔 · 2020-06-02
128阅读 · 0赞赏 · 0问答

代码漏洞、黑客、市场波动、套利者:DeFi风险管理的范式

DeFi是指用智能合约实现的去中心化金融协议,包括资产交易、借贷、保险、各种衍生品等等;除信用服务外,现实中的金融服务都可以通过DeFi协议实现。这些协议都是去中心化、自动运转的,没有第三方机构在管理......
HBO · 2020-06-02
1180阅读 · 0赞赏 · 0问答

泛圈企业云盘是如何为汽车厂商提供云服务的呢?

汽车厂商需要经常与经销商、配套厂商、跨国伙伴进行信息交换。为了保证销售材料能够传达给经销商,大多数公司不得不采取一种比较笨的方法:将材料刻成光盘,然后通过快递发给每个经销商。这样不仅成本高、效率低还浪......
泛圈科技 · 2020-06-02
843阅读 · 0赞赏 · 0问答

海贼 king

2558

LK币

2

粉丝

32

笔记

感谢"海贼 king"

这篇精彩的笔记,目前已经帮助

  • 0
  • 2
  • 9
  • 8
  • 4
喜欢0
链客社群 加入

微博进入

商务合作>

广告投放>

公司名称:北京链客行科技有限公司

联系方式:010-67707199

ICP备案号:京ICP备18032136号

Copyright:链客区块链技术问答社区 版权所有

感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!