原标题: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
如今,钱包相信他们的RPC提供商会告诉他们有关链的任何信息。这是一个漏洞,有两个方面:
RPC提供商可能会尝试通过向他们提供虚假信息来窃取金钱,例如关于市场价格
RPC提供者可以提取有关用户正在与之交互的应用程序和其他帐户的私人信息
理想情况下,我们希望堵住这两个漏洞。为了解决第一个问题,我们需要L1和L2的标准化轻客户端,它们可以直接验证Blockchain共识。Helios已经为L1做到了这一点,并且一直在做一些初步工作来支持一些特定的L2。为了正确覆盖所有L2,我们需要一个标准,通过该标准,代表L2(也用于特定于链的地址)的配置合约可以声明一个函数,也许以类似于ERC-3668的方式,包含获取最近的stateroots,并根据这些州stateroots证明和收据。这样我们就可以拥有一个通用的轻客户端,允许钱包安全地验证L1和L2上的任何状态或事件。
为了隐私,当今唯一现实的方法是运行您自己的完整节点。然而,现在L2正在进入人们的视野,运行所有内容的完整节点变得越来越困难。这里相当于轻客户端的是私有信息检索(PIR)。PIR涉及保存所有数据副本的服务器和向服务器发送加密请求的客户端。服务器对所有数据执行计算,返回客户端所需的数据,并加密到客户端的密钥,而不会向服务器透露客户端访问了哪条数据。
解决方案(3)特别强大,因为它与隐私很好地结合在一起。在正常的“隐私解决方案”中,用户有一个秘密s,“叶子值”L发布在链上,并且用户证明L=hash(s,1)和N=hash(s,2)对于某些(从未透露)他们控制的秘密。无效器N被发布,确保同一叶子的未来支出失败,而不会泄露L。这取决于用户保证s的安全。恢复友好的隐私解决方案会说:s是链上的位置(例如地址和存储槽),并且用户必须证明状态查询:L=hash(sload(s),1)。
用户安全中最薄弱的环节通常是dapp。大多数时候,用户通过访问网站与应用程序交互,网站隐式地从服务器实时下载用户界面代码,然后在浏览器中执行。如果服务器被黑客攻击,或者DNS被黑客攻击,用户将获得界面的虚假副本,这可能会诱骗用户执行任意操作。交易模拟等钱包功能对于降低风险非常有帮助,但它们还远非完美。
理想情况下,我们会将生态系统转移到链上内容版本控制:用户将通过其ENS名称访问dapp,该名称将包含接口的IPFS哈希值。更新接口需要来自多重签名或DAO的链上交易。钱包会向用户显示他们是否正在与更安全的链上界面或安全性较低的Web2界面进行交互。钱包还可以向用户显示他们是否正在与安全链交互(例如阶段1+、多重安全审核)。
对于注重隐私的用户,钱包还可以添加偏执模式,要求用户点击接受HTTP请求,而不仅仅是web3操作:
偏执模式可能的界面模型
更先进的方法是超越HTML+Javascript,并用专用语言(可能是Solidity或Vyper上相对较薄的覆盖层)编写dapp的业务逻辑。然后,浏览器可以自动生成任何所需功能的UI。OKContract已经在这样做了。
另一个方向是加密经济信息防御:dapp开发者、安全公司、链部署者和其他人可以设立一笔保证金,如果dapp被黑客攻击或以高度误导性的方式伤害用户,则该保证金将支付给受影响的用户。由一些链上裁决DAO。钱包可以向用户显示基于债券大小的分数。更长远的未来
以上都是在传统界面的背景下进行的,其中涉及指向和单击事物以及将事物输入到文本字段中。然而,我们也正处于范式发生更深刻变化的风口浪尖:
人工智能,这可能会导致我们从点击式打字范式转向“说出你想做的事情,机器人就会弄清楚”的范式;
脑机接口,既有眼动追踪等“温和”方法,也有更直接甚至侵入性的技术(参见:今年第一位Neuralink患者);
客户端主动防御:Brave浏览器主动保护用户免受广告、跟踪器和许多其他不良对象的侵害。许多浏览器、插件和加密钱包都有整个团队积极致力于保护用户免受各种安全和隐私威胁。这些“积极的守护者”在未来十年只会变得更加强大。
这三种趋势共同将导致人们对界面工作方式进行更深入的重新思考。通过自然语言输入、眼球追踪,或者最终更直接的脑机接口,再加上你的历史记录(也许包括短信,只要所有数据都在本地处理),“钱包”可以清楚直观地了解什么你想做的事。然后,人工智能可以将这种直觉转化为具体的“行动计划”:一系列链上和链下交互来完成你想要的事情。这可以大大减少对第三方用户界面的需求。如果用户确实与第三方应用程序(或其他用户)进行交互,人工智能应该代表用户进行对抗性思考,识别任何威胁并提出避免威胁的行动计划。理想情况下,这些人工智能应该有一个开放的生态系统,由具有不同偏见和激励结构的不同群体产生。
这些更激进的想法依赖于当今极其不成熟的技术,因此我今天不会将我的资产放入依赖它们的钱包中。然而,类似的事情似乎很明显是未来的趋势,因此值得开始朝这个方向更积极地探索。
免责声明:Vitalik:我所认为理想状态的Ethereum钱包是什么样的?文章转发自互联网,版权归其所有。
文章内容不代表本站立场和任何投资暗示。加密货币市场极其波动,风险很高,可能不适合所有投资者。在投资加密货币之前,请确保自己充分了解市场和投资的风险,并考虑自己的财务状况和风险承受能力。此外,请遵循您所在国家的法律法规,以及遵守交易所和钱包提供商的规定。对于任何因使用加密货币所造成的投资损失或其他损失,本站不承担任何责任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM