如何让以太坊DAPP用户恢复丢失的私钥

在以太坊上,私钥用于访问帐户、签署消息等。一旦你失去对私钥的访问权,你将失去对该帐户存储的所有资金的访问权。这与丢失信用卡密码有什么不同?你不能要求银行给你一个新的密码,因为以太坊上不存在银行。你的资金仍被记入你在区块链上的地址,但你无法提取它们。

以太坊区块链上的账户和dapp服务旨在去中心化,没有人代表你保管访问代码。

将你的私钥存储在数据库中的服务可以随时访问你的资金,就像银行一样,这与以太坊社区试图实现的目标正好相反。

那么,我们如何协调以太坊的去中心化调用要求和用户对支持服务的需求呢?

对于去中心化的服务提供者来说,作为金融保管人也具有很强的法律含义。我们自己的案例:DAPACT正在低收入国家现有贷款代理的基础上建立一个信贷服务平台。我们将自己定义为一家软件公司,一个合法注册的为本地贷方提供即插即用技术的平台。

获得用户资金将使我们成为金融服务提供商而不是软件公司,这意味着当地金融监管机构会对我们进行审查。这最终将转化为要求在每个有DAPACT的国家都有某种银行执照和资本存款。

在纯DAPPS服务中,一旦你丢失了你的私钥,就绝对没有办法重新访问你的资金。用户需要注意将他们的恢复密码备份到安全的地方。最有效的办法是把密码写三次,把硬拷贝放在不同的地方。

某些用户往往会丢失或根本不备份这个密码短语。这对所有DAPPS开发人员来说都是一个重大问题,尤其是对于DAPACT,因为我们处理的是那些对技术了解不多的人群。因此,必须为我们的用户提供可恢复性解决方案。

必须向用户提供适合其理解去中心化系统的私钥可恢复性解决方案。

此类可恢复性解决方案应遵循以下三个标准:

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

现有解决方案

以下是以太坊社区的用户体验设计师正在实施、改进或探索的解决方案的概述,从最新推出的开始。

多人签名

多人签名钱包允许设置多个所有者n。如果需要少于n个所有者,其余所有者可以在失去访问权的情况下替换所有者。然而,此解决方案需要至少3个所有者或所有者设备(交易需要2个确认)以及所有者之间的高度信任。

助记符

助记词(又称种子短语或密码短语)是一系列可以从密码学上派生私钥的单词。用户需要自己备份恢复记忆,并确保其安全,以便在丢失时重新生成私钥。

此恢复选项是以太坊地址和钱包的标准配置。在高级DAPPS用户中,助记法已经成为一种很好理解的机制,但是知识较少的用户应该有不同的选择。记忆法和保存它们的地方一样安全。写在一张纸上,它们会暴露在火灾和洪水、被盗等灾害中。

生物特征数据

该行业的一个可行解决方案是指纹、虹膜扫描或人脸识别等生物特征数据。生物特征数据不能像纸上的密码一样“丢失”。如果苹果和三星在生物识别领域投入了这么多资金,那它一定是一个伟大的解决方案,对吧?

这个选项的问题是,一旦一个人的生物特征数据向公众公开,就再也不能用它来保护一个帐户,因为你不能像改变密码或切换帐户那样真正地改变你的指纹。随着人脸识别成为主流,甚至在Github上有一个基于OpenCV的repo协议,这种可能性变得越来越可信。

生物识别的另一个缺点是,不同的指纹传感器会变得相当模糊,不完全匹配——例如,如果用户割伤自己,那么可能会出现问题。

社会关系恢复

用户可以确定一组能够代表他们恢复对其帐户的访问权限的朋友(即,他们中的每个人都拥有一个签名,这些签名组合在一起可以授予对该帐户的访问权限)。只有当所有朋友都同意时,帐户所有者才被替换。

这个解决方案最大的问题是,朋友组可以一起工作,从所有者那里窃取对帐户的访问权,即使所有者没有要求他们这样做。这就是为什么理想情况下,小组成员不应该知道小组中还有谁。

微信成功实现了某种社会恢复方案,允许密码恢复:当用户丢失密码时,微信要求用户在联系人列表中选择一个大名单中的人。知道微信包含合理的银行信息,这无疑是DAPPS的一个好线索。

标准KYC程序

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

此解决方案已用于令牌交换操作(例如nimiq)。KYC验证通常由第三方提供商(如IDNOW)处理,这是一项成本高昂且有点违反区块链原则的工作。

瘫痪证明

这个新概念也被称为时间锁恢复和最后手段恢复。如果对帐户的访问丢失,可以将其进行标记。此外,标记为“丢失”的人可能会存入押金。现在开始一个时间段,在此时间段之后,帐户将被替换。在此期间,实际账户所有人可以通过交易证明账户实际上没有丢失。如果是这样,攻击者将丢失转移到帐户的存款。

随着越来越多的设计师进入区块链空间,人们希望有一个伟大的头脑会想出密码密钥管理的杀手用户体验。或者谁知道呢,也许是一个中年历史学家提出了一些古老的骑士把戏来获得安全黄金定律。

目前,根据我们的3个标准(外部性、可定制性、安全性),许多解决方案(或它们的组合)显示出良好的潜力。一旦社区同意可接受的可恢复性解决方案,就需要在整个生态系统中一致地采用通用的设计语言和标准化的最佳实践,以便DAPPS用户习惯于可恢复性模式。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是如何让DAPP用户恢复丢失的私钥

转载于:https://my.oschina.net/u/2275217/blog/3063359

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移动互联网时代,微信、支付宝等新型支付方式,冲击了传统的现金交易方式,移动支付,改变了人们的生活方式。而数字经济时代,顺应数据经济的发展,伴随着区块链技术而来的数字货币钱包也必将冲击资产管理方式。那么到底什么是数字货币钱包呢?01钱包的概念1.区块链钱包(BlockChain Wallet)区块链钱包(Block Chain Wallet):是密钥的管理工具,只包含密钥而不是确切的某个代币;钱包中包含了成对的私钥公钥用户私钥进行交易,从而证明了该用户拥有交易的输出权;而输出的交易信息则被存储在区块链中;用户在使用钱包时,你的Keystore, 助记词, 明文私钥,都是钱包;Keystore 是你加了”锁”的钱包,而助记词和明文私钥是完全暴露在外的钱包,没有任何安全性可言,所以在使用助记词和明文私钥时,一定要注意保密。2.钱包中的几个概念钱包一般包括:公钥私钥、助记词、Keystore、密码;本质上,钱包和钥匙是对应关系,固定的钥匙直接可以打开在网络上属于自己的钱包,但为了避免传输过程中信息泄密,密码学家又运用非对称加密技术,发明了公钥私钥公钥主要用于传输,私钥用于解密,简单解释就是,公钥是我们的银行卡,私钥就是该银行卡密码。私钥= Keystore+密码,私钥是由56位包含数字和区分大小写的字母组成,为方便资产交易,一般采用简单密码加上Keystore就能便捷转移我们额数字资产。助记词,是加密了的私钥,是为了便于导出Keystore而发明的。02钱包的分类1.软件钱包和硬件钱包钱包在形态上,可以划分成为软件钱包和硬件钱包。软件钱包就是一个APP,装在我们的手机上或者是可以装在我们的电脑上面。硬件钱包就是专门有一个设备来存储这个私钥,涉及到签名的这些功能也在这个硬件设备上完成。2.冷钱包和热钱包按是否在线来划分,我们可以把钱包分为冷钱包和热钱包。硬件钱包不一定100%就是冷钱包。我们说的冷钱包是指私钥和签名这个动作是永远离线的。所以说冷钱包也有可能是以硬件形态来形成,也有可能是以一个软件来形成。因此很多钱包APP都支持冷热分离的操作。3.on-chain即发生在链上,给一个钱包地址发送数字货币,这笔交易在全网被广播、被确认、被打包进区块。称为on-chain交易;on-chain钱包需要自己保管私钥。4.off-chain通常经过交易所进行交易时off-chain的,本人并无私钥私钥由交易所托管。5.全节点钱包除了保存私钥外,全节点钱包还保存了所有区块的数据,著名的是bitcoin-core。6.中心化钱包顾名思义,就是在交易过程中通过某平台或银行机构等交易的钱包,如oklink提供的保险柜。7.轻钱包只保存跟自己相关的数据的去中心化钱包。03基本功能典型的数字资产钱包主要能完成哪些功能呢?第一是存掌管区块链资产的钥匙,我们称之为叫存私钥。第二它可以查询你的资产,根据你的这个私钥公钥还有地址,可以到区块链上查询到你有多少个比特币等数字货币。第三,就是从钱包转账时,会使用到转账过程中需要的签名,和向区块链网络广播的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值