The average cryptocurrency user today faces a difficult choice between centralized custodial wallets, which are notoriously prone to spontaneous collapse, or cumbersome self-custody solutions, which if not managed properly can cause a total loss of funds. In this paper, we present a "best of both worlds" cryptocurrency wallet design that looks like, and inherits the user experience of, a centralized custodial solution, while in fact being entirely decentralized in design and implementation. In our design, private keys are not stored on any device, but are instead derived directly from a user's authentication factors, such as passwords, soft tokens (e.g., Google Authenticator), hard tokens (e.g., YubiKey), or out-of-band authentication (e.g., SMS). Public parameters (salts, one-time pads, etc.) needed to access the wallet can be safely stored in public view, such as on a public blockchain, thereby providing strong availability guarantees. Users can then simply "log in" to their decentralized wallet on any device using standard credentials and even recover from lost credentials, thereby providing the usability of a custodial wallet with the trust and security of a decentralized approach.
翻译:现今的普通加密货币用户面临着两难选择:要么使用中心化托管钱包(这类钱包容易突然崩溃,臭名昭著),要么采用繁琐的自我托管方案(若管理不当,可能导致资金全部损失)。本文提出了一种“两全其美”的加密货币钱包设计方案,它在用户界面和使用体验上与中心化托管方案无异,但设计与实现却完全去中心化。在我们的设计中,私钥并不存储在任何设备上,而是直接根据用户的认证因素生成,例如密码、软令牌(如谷歌身份验证器)、硬令牌(如YubiKey)或带外认证(如短信)。访问钱包所需的公参数(盐值、一次性密码本等)可安全地存储在公开可见的位置(例如公共区块链上),从而提供强可用性保障。用户只需在任何设备上使用标准凭证“登录”其去中心化钱包,甚至能从凭证丢失中恢复,因而兼具托管钱包的易用性与去中心化方案的可信度和安全性。