主页 > 创建imtoken钱包流程 > 以太坊钱包简史

以太坊钱包简史

创建imtoken钱包流程 2023-03-12 05:34:28

可组合钱包的重要性

siteethfans.org 以太坊钱包官网_以太坊钱包官网_以太坊钱包下载官网2.0

我过去曾经解释过中心化应用程序(dApps)的产品可组合性。 当然,我使用了一个非常简单的堆叠图:

以太坊钱包官网_siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0

其实有两层我省略了,分别是钱包和SDK; 此外,可以添加与“链”相关的层:

以太坊钱包官网_以太坊钱包下载官网2.0_siteethfans.org 以太坊钱包官网

在本文中,我将讨论为什么这些额外的复杂性会导致视角的转变:可组合钱包将对用户和开发人员产生越来越重要的影响。 一般来说,人们只有在产品开发的“最后一公里”时才会想到钱包,即当开发团队决定连接尽可能多的钱包时(假设该团队负责两个产品的智能合约后端,这也负责前端)。 目前这不是什么大问题,因为大多数 dApp 在用户交互方面都很简单(即授权 + 存款、拍卖/购买和交换)。 在交互之前/之后没有太多需要管理或表示的东西。

但是我们的生态会变得更加复杂,那我们该怎么办呢? 在可预见的未来,我们都将开始以代币的形式管理自己的数字身份,比如技能、信用评分、社交圈等等。 这在访问我们今天使用的标准协议、管理更复杂的网络和用户关系以及相应的市场之前创建了一个额外的交互步骤。 考虑到这个前景,我们问自己:每个产品自己管理一个特定的前景是否合理? 在 Web 2.0 时代做到这一点的方法是创建另一个应用程序市场/网站,但我不希望有另一个网站来跟踪我如何管理我的身份和我使用的网络。 在我看来,如此私密的事情应该在钱包层完成,因为在这种环境下,个人自主权和隐私是第一位的。

虽然我不介意跳转到不同的网站以使用不同的协议,但我也不想使用多个钱包来管理链上交互的不同部分。 这是愚蠢的,每增加一个都是额外的安全风险。 但是,如果我只使用一种类型的钱包,那么我就会将自己与该钱包背后的开发团队的内在风险联系起来——更不用说总是会有他们尚未开发的新功能。 请记住,我们已经处在一个快速发展的世界中,没有团队可以成为一切的主人。

这就是我们需要钱包可组合性的原因。 虽然我想直接进入,但我还没有介绍钱包的组成部分。 在谈论 DeFi 和许多以太坊 dApp 时,我们已经有了“货币构建块”这个术语; 因此,我将钱包的可组合性模块称为“访问乐高积木”。

以太坊钱包下载官网2.0_以太坊钱包官网_siteethfans.org 以太坊钱包官网

以太坊钱包下载官网2.0_以太坊钱包官网_siteethfans.org 以太坊钱包官网

四个级别中的每个级别都应允许用户灵活地选择产品,并且每个级别都应提供由产品提供商定制的构建块。

这里有很多东西需要深入挖掘,所以让我们快速浏览一下加密货币钱包的历史,以更好地了解这些构建块以及我们今天使用的高级钱包服务是如何形成的。

以太坊钱包简史

第一个以太坊钱包的灵感来自 Mist 团队制作的比特币 Qt 钱包。

以太坊钱包官网_siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0

图片来源

Mist 钱包看起来与 Qt 非常相似。 是一款软件,需要下载,然后才能导出交易数据,还支持区块同步/区块浏览:

siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0_以太坊钱包官网

图片来源

这个钱包其实是想把一个以太坊节点能做的一切都打包成一个软件——需要安装很多依赖,整体用户体验不好。 到 2016 年,MetaMask 出现了,它是首批基于浏览器的钱包之一。 从此dApp可以和钱包解耦,只需要嵌入到钱包的连接方式中即可。 随着生态系统的发展,这变得非常重要,因为单个团队过去(现在仍然)很难跟踪所有 EIP 和代币/协议开发的进度。 我想指出的是,虽然这增加了 dApp 产品的可组合性,但这并不是上面“通道构建框图”中提到的钱包内的智能合约集成。 这部分直到 WalletConnect 等新的集成方式出现后才有所改变。

以太坊钱包官网_siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0

以太坊钱包官网_以太坊钱包下载官网2.0_siteethfans.org 以太坊钱包官网

钱包连接嵌入示例

这样一来,钱包的一些责任和负担就被移除了,现在它的重点变成了交易构建、签名和维护与区块链的连接。 我不想深究,但交易构建意味着一些交易参数是从 dApp 接收的,而其他参数则完全在钱包的控制之下。 这将我们带到了钱包可用的 RPC 调用(也称为“提供者”),最初由 EIP-1193 定义。 dApp可以向钱包发送目标地址、数据、gas limit/price、value等参数,但无法控制chain ID、sender address、nonce等与钱包安全相关的参数。

使用这种新型钱包,我们有两种更复杂的用户体验:

记住其他用户/朋友的地址很困难、不安全且容易出现人为错误

除非您非常熟悉函数选择器和数据/参数的哈希值,否则交易附带的字节码是不可读的。 如果您没有合同的 ABI,那您就请客了。

为了解决第一点,ENS 于 2016/2017 年与 EIP-137 一起推出,成为我们的第一个社交构建块。 现在,大家可以用一个网站域名来代表自己的以太坊地址(比如vitalik.eth),在消息/转账中使用,避免输入长地址。 这只是社交智能合约层的一部分; 其余的需要更多的努力来解耦/启用可组合性。

关于第二点,Parity 创建了一个被用户广泛使用的“方法注册表”,用于在钱包的签名界面中给出人类可读的信息。 EIP-712 在这里发挥着重要作用,尽管它最近才获得更多关注。 尽管如此,即使有这些设置,也很难保证您的浏览器没有被黑客攻击或被诱骗显示不真实的交易/信息。 这是使用热钱包的最大问题之一(即始终连接到互联网并且不与计算机环境的其余部分隔离的钱包服务)。

一个常见的解决方案是硬件钱包,由 Ledger 首创,始于 2014 年。MetaMask 在 2018 年的第一天增加了硬件钱包支持,正式将安全层和交易层/连接层解耦。 我们稍后会再谈这个,因为 Ledger 作为冷藏钱包非常棒,但一些较新的产品也有了很大改进。

siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0_以太坊钱包官网

右上方是一个 Ledger 钱包

与此同时,我们看到许多复杂的协议在 2020 年夏天开始在 DeFi 世界中流行起来(其中大部分开发时间超过 2-3 年)。 这给了我们越来越多的令牌,学习如何安全地管理它们变得越来越重要。 为了帮助每个人跟上圈子的进展,已经创建了一个新的 RPC 端点,它允许 dApps 将品种添加到他们钱包跟踪的代币列表中。 创建了更多用于管理资产的工具,例如 Argent vaults 和 Gnosis multi-sig safes(我也认为这两个产品与社交层有关,因为它们具有多用户机制和 DAO 机制)。 还为 dApp 数据共享创建了“许可连接”标准(EIP-2255)以太坊钱包下载官网2.0,以防止恶意访问钱包。 资产管理/资产聚合器和分析器也因为 Zerion 和 Zapper 而与钱包解耦(我们将在下一章回过头来解释这两个产品)。

以太坊钱包官网_siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0

自 2019 年以来,移动钱包也出现了增长。Rainbow 钱包是最好的例子之一,他们的用户体验设计得非常好。 但谈到无缝集成,他们才刚刚起步。

大多数其他移动钱包(例如 MetaMask Mobile 和 Coinbase Wallet)已经尝试并在应用程序内开发了 dApp 浏览器,依赖于深度链接而不是直接集成。 这些深度链接无法提供良好的用户体验,但以太坊上开发的产品非常多,钱包团队无法设计出一个可以与所有产品交互的统一界面。 假设每个钱包应用团队都针对一种应用场景(消息传递、NFT/市场、DeFi 等)进行了优化——那么,我的安全风险与我使用的钱包数量成正比。 也许它们都是最小的,因为安全模块是完全分离的——但由于市场已经变得分散,开发人员必须优先访问不同的系统。 Rainbow Wallet 团队最初想成为一个钱包聚合器/管理器(基于他们在 2019 年开始构建的早期 GitHub 存储库),所以我认为他们已经考虑过了。 换句话说,我们可以看到智能合约的接口已经是半解耦了,但是这个集成是不能自由组合的,因为钱包团队是瓶颈。 也就是说,所有的dApp都可以推送到一个钱包里使用,但是钱包不保证所有的dApp都支持。

现在我们或多或少地了解了钱包的所有层次,让我们回到通道构建块。 这些构建块和下面的分析部分是基于我自己的信念:我们将在未来的钱包产品中直接使用 dApp,例如 MetaMask 提供的货币兑换和 Rainbow 的显示功能。

这些分析是我个人经验和数周研究工作的总结,我完全有可能混淆了某些项目的时间表。 如果有任何错误或遗漏,请与我联系,我可以编辑文章并进行必要的更正/补充。

分析渠道构建块

对以太坊钱包有了更多的了解,我们可以谈谈我所说的“访问”是什么意思。 这里的“访问”通常代表用户对资金和协议的计划,也意味着协议(以允许的方式)访问用户及其返回的数据。 通过通道构建块,我们可以想象五个关键属性,它们可以帮助我们更好地定义钱包可组合性的基本要求:

安全性可以与用户界面分离,并置于任何硬件或软件解决方案中,而不会牺牲定制性;

用户可以访问任何应用程序而无需担心更换和集成时间;

协议可以接入用户,不用担心被弃用,需要手动推送钱包集成自己的产品

没有人能控制整个集成市场

在不牺牲用户和开发人员体验的情况下

siteethfans.org 以太坊钱包官网_以太坊钱包官网_以太坊钱包下载官网2.0

一一聊聊:)

安全定制

相信硬件到钱包服务的连接方式会越来越标准,我看过的几乎所有钱包都是这样,连接方式是USB口、无线连接还是蓝牙连接。 所以,解耦通常不是问题; 相反,问题出在硬件钱包本身。

助记词存储、生成、恢复都是值得一读的话题,但在我们都开始使用纯“冷存储”的情况下,它们只是硬件钱包的一部分。 合约的ABI、解码消息的签名、交易的限制/灵活性给用户带来了定制空间(和可读性)以太坊钱包下载官网2.0,我在上面介绍每一层的时候都提到了它的重要性。

一个很好的产品示例是 GridPlus 团队的 Lattice1; 该硬件钱包需要配合专用的SafeCard使用,并且可以通过SafeCard修改地址。 钱包硬件有一个 64 GB 的固件环境,你可以从任何合约导入 ABI 来帮助解码你正在签署的交易数据。

以太坊钱包官网_以太坊钱包下载官网2.0_siteethfans.org 以太坊钱包官网

从,教用户管理 Lattice1。 这种方法可以说比“方法注册”更安全(特别是如果智能合约所有者没有注册他们的合约)

我相信随着与钱包相关的价值和身份/声誉的增加,这种集成方法将变得越来越重要。

综合市场

第二、第三和第四个属性都可以归结为一个概念——为你使用的钱包创建一个集成 dApp 的市场。 从某种意义上说,这里的主要“钱包”是一个平台,所有安全模块和集成都可以插入其中。 几乎总是“交易和连接”层。

我相信 MetaMask snaps 是朝着正确方向迈出的一步:所有 dApp 开发者都可以访问现有的 MetaMask 钱包 UI,只需要开发自己的界面和集成方法; 用户可以自己选择这些部分的组合——从而在钱包内形成一个市场。 如果我喜欢用户投资、收藏或社交的某组产品,我可以从 dApp 团队获取该产品并在我的钱包中私下使用。 钱包团队既不需要手动开发对下一个 ENS、BrightID 或 proof token 的支持,也不需要服务于每个月出现的数十种新的 DeFi 协议。 此类市场对于利基社区和 DAO 也很重要,它们可能拥有自己的常用 dApp/产品列表(或者更有可能开发自己的)。 如果集成工作始终由钱包团队完成和推动,那么 99% 的时间只会被主流采用。

siteethfans.org 以太坊钱包官网_以太坊钱包下载官网2.0_以太坊钱包官网

至于市场所有权,我乐观地认为这些插件都应该列在一个开源存储库中(类似于 Dune Analytics 在一个存储库中显示所有幕后)。 我不希望在 Web 3.0 世界中出现另一个 Google Play 或 Apple 应用程序市场,无论是在访问限制还是价值提取方面。 总而言之,没有人希望所有这些 dApp 插件都因为 MetaMask 被弃用而消失。

用户和开发者体验

用户体验不应受到集成速度/缺乏 dApp 功能的限制。 我相信上面已经说得很清楚了。 开发者体验目前受到两个问题的限制:

由于产品的可组合性,任何人都可以开发任何应用程序。 但是谁负责开发特定的东西呢?

钱包或集成平台支持的条件是什么?

我认为每个人都为缺乏标准化协议 SDK 而苦恼,尤其是因为许多前端/钱包开发人员不得不开发自己的连接方法。 此外,大多数钱包没有明确的 dApp 集成方法(deeplink 不算),Zapper 依赖于不透明的请求系统。 这对每个人都不好。

但也有一些积极的案例。 一些协议,例如 Uniswap 和 Superfluid,有自己很棒的 Javascript SDK。 我在钱包集成部分提到了 MetaMask snaps,但 Zerion(虽然不是钱包)也有一个很好的集成方法 SDK 和一个开放的适配器市场。 拥有快捷独立的协议-钱包集成方式可以极大优化开发者体验,任何开发者都可以将所有部分组合在一起。 我还要强调的是,基础协议的接口也是如此,分析和用户教育等附加功能应该直接在 dApp 页面上(而不是在钱包中)完成,以提供更强大和差异化的用户经验,仅捕获钱包不足以捕获用户。 我觉得这是正确的做法,因为这些功能都不是访问功能的核心。

考虑到所有这些,钱包团队可以专注于开发可组合的平台和市场,而 dApp 开发人员则专注于开发 SDK 和插件以促进集成。 拥有更多标准也会有所帮助,因为许多 EIP 被提议用于钱包和图书馆(如果有人有兴趣与我合作,请随时与我联系)。

结语

这篇文章的想法是在为 Build With Consensys 进行研究并与钱包开发人员交谈时产生的。 在研究期间,我观看了 Dan Finlay(MetaMask 创始人)在 Devcon 5(2019 年)上的演讲视频。 我感觉他的钱包可组合性的想法并没有像 dApp 可组合性那样受到关注。 正如 Dan 曾在这篇文章中所写的那样,他从很早的时候就一直在推动这项工作:

“在 Devcon 2 上,我上台呼吁创建一个去中心化的标准化机构。我要求其他 web3 钱包开发人员加入,围绕一个共享测试套件,为开发人员提供一个跨客户端的稳定平台。虽然有表现出真正的热情和兴趣(感谢 Casey Detrio),最终,冷漠和协调的代价让这个梦想变成了幻想。”

因此,虽然本文提供了一些信息,但也恳请我们(作为用户和开发人员)花一些时间思考这个问题并开发这个重要领域,直到我上面设想的新应用程序成为现实。 在 Dan 的文章中,他认为这将为我们提供更安全、更好用、更有用的以太坊体验。 在我看来,这意味着每个人都有可组合的渠道来访问以太坊。