原文来源: SevenUp DAO
原文作者:知县,Unipass 创始人
MetaMask 虽然产品受到了广泛的关注,但是一直饱受产品更新迭代慢、用户体验差的诟病,不过开发者团队对产品迭代的理解深度比普通用户是要强很多的,基于庞大的用户量 MetaMask 产品形态其实对现在的 web3 应用生态有一定的塑造作用,因此这就回到了「原罪」的主题,我们(MetaMask)做钱包的方向到底是不是对的?我们未来需要作出哪些改变?
MetaMask 开发团队认为当前钱包赛道仍有较大的可提升空间,一方面较高的使用、安装门槛阻拦了 web2 尝鲜加密的新用户,另一方面就是安全问题,即使是插件钱包也不能完全阻碍黑客钻空子的可能性。
另外,Web2 用户很难理解 web3 的产品,例如私钥的安全保管是个老生常谈的话题,不过用户对此敏感度依旧不是那么高,只有在私钥真正遗失后才追悔莫及,私钥意味着 web3 的入口,代表着 web3 世界所有权的证明。
因此,Web3 产品新的范式应该是怎么样的?Web2 用户不理解产品的情况下,也能顺利进入 web3,如果用户真正理解产品后才开始使用,这会极大增加用户的学习成本,MetaMask 给出了他们自己的思考,当前的 web3 产品很少能做到这几点。
能证明这就是我的
它不能被黑客入侵或盗窃
我可以完全控制、撤销、恢复账户
产品在我完全知情的情况下做交互
我可以自由选择和外界交互的方式
并且做钱包赛道最重要的一定是诚实,方案的优缺点一定能够让用户明晰,掩耳盗铃是对产品和用户的不负责,因此也就引入了今天的正题,账户抽象和智能钱包。
Uniswap Wallet正式在App Store上线,源代码已经过Trail of Bits审计:4月27日消息,Uniswap 宣布其自托管开源移动钱包 Uniswap Wallet 已在 App Store 正式上线, 此前用户在 TestFlight 的所有信息都会自动移植过来。
Uniswap Wallet 支持用户创建新的以太坊钱包或导入现有钱包,用户可以在多个链上存储、监控和交易代币,而无需更改或配置网络,可以查看 NFT、连接到 Web3 应用程序等。Uniswap 钱包源代码已经过安全公司 Trail of Bits 的审计。[2023/4/27 14:31:29]
MetaMask 提出了三个非常重要的账户抽象提案:ERC-4337,「为钱包的设计打开创意之门」, 比如「多签和社交恢复」; EIP-3074,可以把 EOA 的权限委托给一个合约,允许用户在一次交易中批准转账、执行操作和撤销批准,相当于从 EOA 地址变成智能合约地址;EIP-5003,相当于 3074 的群体版本。
智能钱包本质上就是采用智能合约做钱包,智能合约钱包 (Smart Contract Wallet) 是当前以太坊支持的两种钱包形态之一,而另一种是大众所常用的 EOA(外部拥有地址)钱包,EOA 钱包是由私钥控制的区块链上的地址,即通过私钥,用户可以从所述地址签发交易,但是用户不能授权另一个密钥来为给定地址签名,也不能在其上编写自定义逻辑;相对的,智能钱包通过对代码的编写,可以实现任意逻辑。之前我画过一个加密货币钱包的分层图,最底层是密钥层,中间层是 provider,最上层是 wallet,密钥最主要的作用就是管理公钥私钥,密钥的导入和导出以及签名的生成,这些本质上都和链没有关系,说到底是数学的运算;中间层 provider 就跟是在哪条主链有关系,根据主链的格式生成地址;最上层主要对应资产的浏览、代币的收集和分发,所以说一个钱包基本上都可以拆成三层。
UNI突破23美元关口:火币全球站数据显示,UNI短线上涨,突破23美元关口,现报23.0012美元,日内涨幅达到10.9%,行情波动较大,请做好风险控制。[2021/2/12 19:37:00]
Ca 钱包一开始翻译过来就叫做内部钱包,更多的是为了和 EOA 外部钱包做对应,EOA 地址是没有办法承载任何资产的,凸现的是记账功能,资产实际上都是在 Ca 账户里面的,CA 中文叫做合约账户,我们常见的 ERC-20 代币合约、DeFi 业务合约等都有一个跟 EOA 长得很像的地址,这就是 CA。
Ca 可以用作智能钱包资产的管理,例如 gnosis safe 多签钱包其实也是智能钱包,但多签不是它的本质,而是用智能钱包的逻辑做多签。合约做钱包也是有很多优势的,其内部的逻辑是可以自定义、特别灵活,能实现传统钱包不能实现的功能。
例如我们一讲到合约钱包,大家第一反应是它的私钥是在哪儿的?其实这是 EOA 钱包的逻辑,私钥和公钥一一对应,这样的描述在 EOA 钱包里面是没有问题的,但是就像 gnosis safe 多签钱包,它实际上是通过一种「逻辑」实现的,比如 3/5 的多签钱包,权限的控制取决于五个地址中能不能得到三个以上的授权,因此合约钱包资产管理不是由私钥控制的,最主要的是逻辑执行,CA 也可以不设定任何密钥,而是由其他 CA 的逻辑决定是否可以解锁,比如 DeFi 的借贷合约,只要还了钱就能取回质押的资产。当然并不是说仅依靠逻辑就不需要公钥,只是说这样多了一层安全保障和操作逻辑。
账户抽象概念就是,改变目前大多数人都在使用 EOA 的现状,希望用户转向 SCW(Ca 作为地址的钱包解决方案,智能钱包),并且把生态对 EOA 的依赖完全去除。
当前很多链其实内置就有比较完善的账户抽象功能的,公钥集合、权限控制、合约逻辑等,其实从 eos 开始各种公链就有一定的账户抽象能力了,eos 的地址其实是一个字符串,它已经不是一个公钥了,有明显的内部结构,两个公钥,一个有高级权限属于 owner,另一个用于执行。而以太坊实际上是没有账户抽象这个概念的,最早可以追溯到 2015 年的一些讨论,当时 Vitalik 认为至少要让以太坊用来验证交易的密码学算法做到可替换,以及后面的第三方支付 gas、签名等等,但是以太坊基于历史原因很难进行「现代化改造」,很多东西都写死、固定住了,因此如果以太坊生态想要拓展账户抽象只能借助智能钱包、在应用层做弥补。
BONDLY通证成功登陆Uniswap:据官方消息,基于Polkadot的DeFi及NFT技术服务提供商Bondly Finance的生态通证BONDLY已成功上线Uniswap交易所,24小时内上涨超30%,交易量超过3000万美元。
Bondly Finance是一个点对点、百分百透明的、可跨链的资产协议。其旗下产品包括场外交易平台BONDSWAP(BSWAP)、去中心化交易所BOND DEX、去中心化的托管协议BONDLY PROTECT(BPROTECT)。详情点击原文链接。[2020/12/9 14:41:06]
账户抽象在做的事情就是把账户层和密钥层抽象出来,用户可以自定义里面的逻辑,例如现实中机械锁(只能物理钥匙解锁)和电子锁(集成指纹、密码、面部特征等),抽象之后能带来多维的可拓展性。而智能钱包是当前实现以太坊账户抽象最有前途的方法,不需要从共识层、底层改进,ERC-4337 可以让应用层做账户抽象这个事情。
智能钱包和智能手机有很多的类比之处,智能手机因为集成了更多先进的能力,例如电容屏、陀螺仪、多点触控、gps 等等,这些能力的升级为上层应用的搭建带来了很大的想象空间,极大增强了用户体验,同时也会降低用户的进入门槛,让老年人、年轻人、儿童都能上手智能手机,因为智能手机的诞生让更多的用户进入了移动互联网;同时智能手机有很大的可拓展性,不局限于通信设备,更多的场景是听歌、视频、导航、游戏等等,可拓展性带来了范式转移,用户也习惯了这种认知转移,「默认」我们会拿智能手机做这些理所应当的场景。
智能钱包和 EOA 钱包的对比,通过智能手机总结下来的四点优势依旧适用,第一个就是更强的功能性,比如签名的内部逻辑、gas 费用的代付、批量交易等都可以通过智能钱包实现,这些其实是配合现有的场景方便大家理解,EOA 钱包是不支持批量交易的,同一笔交易只能干一件事情,但是智能钱包它可以做批量交易,它可以 approve and swap 一笔完成,所以每次你需要花多少钱你就 approve 多少钱,同时也保证了安全性。
Coinbase现已支持UNI充提及交易:据官方公告,Coinbase现已在Coinbase.com以及在Coinbase Android和iOS应用程序中支持Uniswap(UNI)。除纽约州之外,用户现在可以交易及充提UNI。[2020/9/18]
第二点就是更好用,让用户的门槛降得很低,备份密钥这件事情可以使用社交恢复给替代,这都是能够带来的新的变革,包括 gas 支付也是如此,不用自己去专门去买各个链的,而是使用第三方的服务,这样就能让没有能力理解钱包、没有能力管理私钥、甚至是不想入金的一些人,能够通过智能钱包进入 web3。
第三就是更大的可扩展性,可以安装类似于装插件的操作,让功能变多,例如 nft 的交易需要授权 approve,如果不经过 approve 双方实际上是没有办法交易的,中间存在信任博弈的难题,但是可以通过第三方合约的方式,将 nft 打入合约账户并设定取出的逻辑,例如受到付款等等,然后就能完成交易,不需要第三方信任,智能钱包本质上就是个合约,因此本身是可扩展的。第四点就是范式转移,如同智能手机用户,以前默认状态是「断网」,当前默认的状态是「联网」,有了智能钱包之后,EOA 之前的很多传统观念会被覆盖,例如私钥公钥对应,需要付 gas,或者是需要不断 approve,这些场景都可以被打破,大家会慢慢习惯一些新的情况并默认。
这里举几个例子来展示一下智能合约钱包的扩展潜力:
Gnosis safe 利用智能合约钱包架构实现多签逻辑;
用户可以在一笔上链交易中同时给多个地址发送不同的 token,也可以在用 uniswap 时让 approve 和 swap 在一笔交易里完成,从而做到需要多少授权多少,避免因为过度授权造成安全隐患。
本体ONT和ONG已上线 UniSwap平台:9月4日,本体Ontology官方发文宣布,目前ONT和ONG已上线UniSwap平台,支持以太坊生态中所有类型的DeFi产品。[2020/9/4]
用户可以给不同资产设定不同的操作权限,比如给 PFP 设定比普通 ERC--20 token 更高的操作门槛(例如需要一把由硬件钱包管理的 admin key 才能转移),这样即便日常使用的环境发生密钥泄露,黑客也无法将高价值资产转走,在安全和便利中间取得平衡。
用户可以签署一个离线授权「谁能给我 100 ETH,就可以转走我的某个 BAYC」,这样不需要授权给第三方合约,用户就可以跟其他人 P2P 地完成原子交易。
我们发邮件的时候,类似于中世纪送信需要用蜡质封印,需要证明信息的真实性,电子邮件为例,发件服务器会进行签名,比如 G-mail 是 google 会在它的域名里面公布 D K M 公钥,用这个公钥的私钥给每一份邮件都签名,收件方接着验证 google 的 D K M 签名和哈希,都能通过收信。Uni-pass 的社交恢复流程一样的,只是在合约里面验一封邮件 D K M 的签名、哈希能否通过,这样能证明邮件的真实性,也能在合约里面换 key,加权重或则额外的逻辑也是可以的。
这也是为什么账号的社交恢复可以在 uni-pass 里面去做。我们是通过发邮件的方式验证用户是主动授权的,单单接受验证码意义不大,本质上是一个中心化的服务器发送的,发邮件和收邮件意味着用户授予服务器不同的权限,能更大限度保证安全性。
我们当前对接的客户非常广泛,包括 nft 平台、游戏公司、社交平台或者是想要通过 FT 做一定激励的组织,都可以通过我们的智能钱包提升用户体验提高转化率,同时降低成本。
说回 MetaMask,他们当前并没有躺平,而是将自己向着生态画的目标去努力,类似于小程序一个集大成的插件,对于用户来说不需要安装那么多的钱包和插件就能集成想要的功能,而这些 snap 不能依赖与官方开发,只能通过生态开发者一同搭建,MetaMask 提供流量、开发者提供技术,共赢的状态。
其实 uni-pass 也是这个思路,账户抽象的概念他们不会自己做,我们已经和 MetaMask 开展合作,当前已经交付了第二版的 Demo。其实这也不冲突,我们做合约层,他们做 EOA 层,合约钱包和 EOA 钱包不是竞争更倾向于合作、共存的关系,比如我们可以嵌在 EOA 钱包里面,如果新进来的用户注册钱包到私钥这一步的时候感觉麻烦不想做了,这时候就可以通过我们提供的电子邮件方式挽留用户,另外现存的用户也可以使用智能钱包的功能,用现在的地址一键控制智能钱包,能让流程更加顺畅。
Q:基于以太坊当前的逻辑,Ca 钱包一定会对应 EOA 地址完成逻辑触发吗?智能钱包 Gas 费用是不是需要 Layer2 呢?
A:实际上这种说法没错,但是还是有些窄的,最重要的还是看怎么控制钱包,我们既可以用验证签名的方式,也可以用其他的逻辑,比如 DeFi 中借贷合约执行的逻辑,是有一个前提的,即用户是不是完成了资金的使用和还款,之后才会依据合约完成资金的转移。可以看到这个过程是没有验证签名的,合约层也是没有验证签名的,而是依据用户的行为、逻辑验证,但是共识层会发生签名的验证。
共识层和合约层的交易处理都是会产生 Gas 费用的,当前我们接的客户也都是对接的大部分不是 eth 主链,而是 layer2 或者其他高性能公链上的项目,智能钱包实际上能很大的降低成本,尤其是批量处理无论是理论还是实践中都能减少费用,同时固定费用也大大降低。
Q:当前很多的 dapp 是不支持 Ca 钱包的,那么从场景拓展的角度来说智能钱包应该如何打破僵局呢?
A:不兼容的情况主要是 DeFi 机池和土狗币,防止被薅羊毛项目方采取一刀切的方式,第二个不兼容的情况是需要验证签名的场景,如果使用智能钱包需要实现 EIP-721,虽然有门槛但还是能够实现,opensea 就能够兼容该方面并实现挂单交易。
其实我们面向的客户,无论是做游戏还是做消费,都没有这方面的限制,也没有理由去限制使用智能钱包,和他们的目标是不冲突的,中期来讲兼容的问题就可以解决,因为智能钱包本身就是解决兼容的痛点。
Q:NFT 的合成、SBT 的发放智能钱包能够实现吗?
A:这个场景不需要钱包支持也可以实现,只要有签名授权就可以,这个逻辑也可以放在智能钱包中,类似于放一个小 app 插入到钱包中,这样就不需要传统钱包复杂的交互了,整个过程更便捷、高效。
Q:从 To B 的角度来说,客户需求主要集中在哪些方向,定制化的程度是否很高?
A:主要还是根据项目情况,如果是了解加密发展的历史,部分项目是非常重视客户安全层面的需求;对于体量比较大、资金雄厚的客户,从开始就开始做托管方案也是 make sense 的,也能给用户不错的体验,如果可以接受非托管的方案,并且想要大幅度降低使用门槛,找我们是完全可以做的。
定制化其实是从客户中搜集普遍需求,如果我们判断大部分的客户都需要这个层面的方案,我们就会去做,比如说一开始接的项目 SDK 大家没有 native 的需求,但是后来需求变得很普遍,大家都希望将 SDK 嵌入到自己的 app 里面,那么后来我们就开始做这个方案,做 SDK 就引入 stss,后来我们想了一下客户很多游戏都是用 unity 来做,我们直接用引擎级别的 SDK 可能会更合适,也就是我们会不断调整定制化的服务,另外我们 SDK 提供的灵活度也是足够的,能够满足定制化的需求。
Odaily星球日报
媒体专栏
阅读更多
金色早8点
区块律动BlockBeats
1435Crypto
吴说区块链
blockin
Block unicorn
金色财经
Bankless
比推 Bitpush News
DeFi之道
Foresight News
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。