原标题:WhatIwouldlovetoseeinawallet
作者:Vitalik,Ethereum创始人;编译:邓通,金色财经
特别感谢LirazSiri、YoavWeiss以及ImToken、Metamask和OKX开发人员的反馈和审核。
Ethereum基础设施堆栈的一个关键层是钱包,但经常被核心L1研究人员和开发人员低估。钱包是用户和Ethereum世界之间的窗口,用户只能从Ethereum及其应用程序提供的任何去中心化、审查阻力、安全、隐私或其他属性中受益,前提是钱包本身也具有这些属性。
最近,我们看到Ethereum钱包在改善用户体验、安全性和功能方面取得了很大进展。这篇文章的目的是给出我自己对理想的Ethereum钱包应具备的一些特性的看法。这并不是一个完整的列表;它反映了我的密码朋克倾向,它专注于安全和隐私,并且几乎可以肯定它在用户体验方面是不完整的。然而,我认为愿望清单在优化用户体验方面不如简单地根据反馈进行部署和迭代有效,因此我认为关注安全和隐私属性是最有价值的。跨L2交易的用户体验
现在有一个越来越详细的改善跨L2用户体验的路线图,该路线图有短期部分和长期部分。在这里,我将谈论短期部分:即使在今天理论上仍然可以实施的想法。
核心思想是(i)内置跨L2发送,以及(ii)链特定地址和支付请求。您的钱包应该能够为您提供一个地址(遵循本ERC草案的风格),如下所示:
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045@optimism.eth
当某人(或某些应用程序)向您提供这种格式的地址时,您应该能够将其粘贴到钱包的“收件人”字段中,然后单击“发送”。钱包应该以任何可能的方式自动处理发送的数据:
如果您在目标链上已经有足够的所需类型的Tokens,请直接发送Tokens;
如果您在另一条链(或多个其他链)上有所需类型的Tokens,请使用ERC-7683(实际上是跨链DEX)等协议来发送Tokens;
如果您在同一条链或其他链上有不同类型的Tokens,请使用DEX将它们转换为正确链上的正确类型的Tokens并发送它们。这应该需要用户的明确许可:用户将看到他们支付了多少费用,以及接收者收到了多少费用。
左边的“错误”是无意的。然而,当我看到它时,我意识到它非常适合上下文,所以我决定保留它。
十多年来,我首选的解决方案是社交恢复和带有分级访问控制的多重签名钱包。用户的帐户有两层密钥:主密钥和N个监护人(例如N=5)。主键是能够进行低价值和非财务操作。大多数监护人需要执行(i)高价值操作,例如发送帐户中的全部价值,或(ii)更改主密钥或任何监护人。如果需要,可以允许主键通过时间锁执行高价值操作。
以上是基本设计,可以进行扩展。会话密钥和ERC-7715等权限机制可以帮助支持不同应用程序的便利性和安全性之间的不同平衡。更复杂的监护人架构,例如在不同阈值下具有多个时间锁定持续时间,可以帮助最大限度地提高成功恢复合法帐户的机会,同时最大限度地降低盗窃风险。监护人应该是谁或什么?
对于经验丰富的Crypto用户社区中的经验丰富的加密用户来说,一个可行的选择是您的朋友和家人的密钥。如果您要求每个人为您提供一个新的地址,那么没有人需要知道他们是谁——事实上,您的监护人甚至不需要知道彼此是谁。如果他们没有向你通风报信,他们串通一气的可能性很小。然而,对于大多数新用户来说,此选项不可用。
第二种选择是机构监护人:专门提供服务的公司,只有在他们得到来自您的请求的其他确认时才会签署交易。一个确认码,或为高价值用户一个视频通话。很长一段时间以来,人们一直在尝试制作这些东西。我在2013年介绍了CryptoCorp。然而,到目前为止,这类公司还不是很成功。
第三种选择是多种个人设备(例如手机、桌面、硬件钱包)。这是可行的,但对于没有经验的用户来说,设置和管理起来也很困难。同时还有设备丢失或被盗的风险,尤其是当它们位于同一位置时。
最近,我们开始看到越来越多的基于密钥的钱包。密码只能备份在你的设备上,使它们成为一种个人设备解决方案,或者备份在云中,使它们的安全性依赖于密码安全、机构和可信硬件假设的复杂混合。实际上,对于普通用户来说,密钥是一种有价值的安全增益,但它们本身不足以保护用户的毕生积蓄。
幸运的是,有了ZK-SNARK,我们还有第四种选择:ZK包装的中心化ID。这种类型包括zk-email、AnonAadhaar、MynaWallet等等。基本上,您可以采用多种形式(公司或政府)中心化ID,并将其转换为Ethereum地址,您只能通过生成证明拥有中心化ID的ZK-SNARK来发送交易。
可能的安全界面模型
请注意,如今zk-email面临的一个实际挑战是它依赖于DKIM签名,该签名使用每隔几个月轮换一次的密钥,并且这些密钥本身并未由任何其他机构签名。这意味着如今的zk-email具有超出提供商本身的某种程度的信任要求;如果zk-email在受信任的硬件内使用TLSNotary来验证更新的密钥,则可以减少这种情况,但这并不理想。希望电子邮件提供商能够开始直接签署其DKIM密钥。今天,我建议一位监护人使用zk-email,但不建议大多数监护人使用:不要将资金存储在zk-email损坏意味着您无法使用资金的设置中。新用户和应用内钱包
新用户实际上不希望在第一次注册体验中输入大量监护人。因此,钱包应该为他们提供一个非常简单的选择。一种自然的途径是在其电子邮件地址上使用zk-email、本地存储在用户设备上的密钥(可能是万能密钥)以及提供商持有的备份密钥,进行2-of-3的选择。随着用户变得更有经验或积累更多资产,在某些时候应该提示他们添加更多监护人。
钱包集成到应用程序中是不可避免的,因为试图吸引非加密用户的应用程序不希望用户同时下载两个新应用程序(应用程序本身,加上Ethereum钱包)带来混乱的用户体验。然而,许多应用程序钱包的用户应该能够将他们的所有钱包链接在一起,这样他们就只需担心一个“访问控制问题”。最简单的方法是采用分层方案,其中有一个快速的“链接”过程,允许用户将其主钱包设置为所有应用内钱包的监护人。Farcaster客户端Warpcast已经支持这一点:
该技术的一个优点是,它不仅是保护隐私的资产转移的自然途径,也是保护隐私的身份的自然途径。身份已经发生在链上:任何使用身份证明门控的应用程序(例如GitcoinGrants)、任何Tokens门控聊天、Ethereum遵循协议等等都是链上身份。我们希望这个生态系统也能保护隐私。这意味着用户的链上活动不应收集在一个地方:每个项目都应单独存储,并且用户的钱包应该是唯一具有“全局视图”的东西,可以同时看到您的所有证明。原生的每用户多账户生态系统有助于实现这一目标,EAS和Zupass等链下证明协议也是如此。
这代表了中期内Ethereum隐私的务实愿景。尽管可以在L1和L2引入一些功能以使隐私保护传输更加高效和可靠,但它现在就可以实现。一些隐私倡导者认为,唯一可以接受的事情是所有事物的完全隐私:加密整个EVM。我认为这可能是理想的长期结果,但它需要对编程模型进行更根本的重新思考,而且目前还没有达到准备在Ethereum上部署的成熟水平。我们确实需要默认隐私以获得足够大的匿名集。然而,首先关注(i)账户之间的转账,以及(ii)身份和与身份相关的用例(例如私有证明)是务实的第一步,更容易实现,而且钱包现在就可以开始使用。Ethereum钱包也需要成为数据钱包
任何有效的隐私解决方案的一个后果是,无论是用于支付、身份还是其他用例,它都会产生用户存储链下数据的需求。这在TornadoCash中很明显,它要求用户保存每张代表0.1-100ETH存款的“票据”。更现代的隐私协议有时会在链上保存加密的数据,并使用单个私钥对其进行解密。这是有风险的,因为如果密钥泄露,或者量子计算机变得可行,数据就会全部公开。EAS和Zupass等链下证明对链下数据存储的需求更为明显。
钱包不仅需要成为存储链上访问权限的软件,还需要成为存储您的私人数据的软件。非加密世界也越来越认识到这一点,例如。请参阅TimBerners-Lee 2小时之前
Copyright © 2021.Company 元宇宙weizhangshensu.cn All rights reserved.元宇宙weizhangshensu.cn