帐户抽象的力量及 RaisePay 钱包的技术概述
摘要: “区块链领域需要新的、创新的解决方案。”
作者 | Raise Finance
编译 | Maverick 吴说区块链 已获得作者授权
前言
账户抽象(Account Abstraction)是对加密入口端的重塑。目前主流的如插件钱包 Metamask、手机钱包 Token Pocket、硬件钱包 Ledger 等都是基于 EVM 构建的冷钱包或者热钱包,这一类钱包本质都是 EOA 钱包,需要用户在创建钱包时以安全的方式记录下助记词/私钥。在交易中,EOA 钱包需要在应用上进行授权,每一笔交易确认都需要支付 Gas 费用。无论是保管私钥,还是交易确认都涉及了体验不佳和安全两大问题。
账户抽象,也可以被称为智能合约钱包,借助智能合约的力量,尽可能地把操作交给智能合约自动执行,简化用户的使用体验,并降低安全成本。账户抽象一般不需要用户记录私钥,甚至用户都感知不到私钥存在;提供找回钱包的办法;一次多笔签名确认;以 ETH 之外的 Token 代付 Gas,甚至不需要支付。RaisePay 通过 zkSync 上的帐户抽象、自定义签名验证和社交恢复支持的本地集成,能帮助零加密经验的用户更便捷更安全地进入区块链并用加密货币进行支付。
正文
“越来越明显的是,目前的区块链技术面临着使用传统方法无法克服的限制。区块链领域需要新的、创新的解决方案。”
我们所讨论的限制并不是源于可扩展性问题。以太坊社区一直在研究以 rollup 为中心的(rollup-centric)线路,并开始得到回报,现在主网上有多个第二层解决方案,如 Optimism、Arbitrum、ZkSync 和 Starkware等。这些解决方案大大增加了整条链的吞吐量,从每秒几十笔到几千笔交易,并且还提供了低交易费用、账户抽象和自定义签名验证。然而,为了充分利用这些高级功能,它们需要被正确地混合在一起。我们稍后会更多地谈及这个问题。
钱包用户体验仍是主要问题
中心化钱包 —— 加密货币交易所
你有没有想过为什么许多主流用户更喜欢把他们的加密货币资产放在中心化的交易所?答案很简单:除了即时的交易渠道,中心化加密货币交易所提供的用户体验类似于传统的 Web2 金融科技公司,交易速度快,并能随时恢复丢失的密码和访问资金。这使得用户很容易使用加密货币资产,而不需要了解底层技术。然而,依赖中心化交易所持有资金已经产生了负面的后果,比如主要交易所对用户资金管理不善,导致破产,让成千上万的用户身无分文,并给这个行业带来了不好的声誉。
自我保管钱包(热钱包或冷钱包)
虽然,在安全性方面向前迈进了一步,但自我保管意味着用户需要理解区块链技术的一些技术概念,如钱包私钥/公钥生成,并要求安全地保存助记词。如果私钥丢失,意味着资金就永远丢失了,而且没有办法恢复。丢失或泄露私钥即便对行业资深人士来说也仍然是可怕的。我们是否期望通过这种类型的钱包用户体验来吸引下一个 10 亿加密货币用户?如果我们想获得主流采用,必须有更好的东西。
混合方法 —— 账户抽象
帐户抽象有可能彻底改变加密货币钱包和支付的用户体验。通过 zkSync 上的帐户抽象、自定义签名验证和社交恢复支持的本地集成,我们可以创建一个突破性的钱包体验,让广大用户都可以轻松使用。让我们来分析一下我们如何实现这一目标。
快速钱包创建和登录
想象一下,你的一位朋友经常付费订阅 Netflix,在 Airbnb 上租赁公寓,并在周末刷 Tinder。他从未安装过加密货币钱包,也从未考虑过将加密货币纳入他们生活的可能性。这位朋友代表了典型的在线支付用户。
要实现加密货币支付的广泛接受,关键是要让用户能够轻松地:
● 创建钱包
● 出入金(或 L2/L1 的跨链)
● 访问钱包并批准交易
● 在访问权丢失的情况下恢复钱包访问权
随着 RaisePay 解决方案集成到商家的结帐页面,用户无需离开商家网站,也无需下载任何应用程序或扩展即可创建钱包。它不会以牺牲安全为代价。这可以通过在 zkSync 上使用自定义签名验证和账户抽象来实现。此外,使用 WebAuthn(一种现代无密码身份验证协议)可以通过指纹或系统 pin 确认来签署交易,从而进一步提高安全性。然后,这些签名可以在链上进行验证。通过整合 WebAuthn,我们可以为用户创造一个无缝和安全的支付体验。
它可能看起来很复杂,但让我们解释一下背后发生了什么。
1、钱包创建。
客户端请求浏览器的 API 为用户在系统认证器中创建一个新的凭证,也就是一个密钥对。这个密钥对由一个 ID(credentialID)和一个公钥组成。该凭证 ID 以后可以用来要求浏览器用相关的密钥对进行签名。然后,使用传递给用户帐户构造函数的授权数据部署用户帐户抽象。在 WebAuthn 认证情况下,我们传递公钥。现在,用户交易可以使用指纹进行签名。用户的账户抽象将从交易中提取自定义签名,并验证它是用正确的密钥签署的。
(用户钱包创建)
2、钱包登录。
对于登录,我们将生成一个随机字符串,让浏览器用用户指纹签名,然后在我们的钱包智能合约中使用 EIP-1271 函数 “isSignatureValid” 来验证该签名。如果签名有效,则确认用户可以签署交易,我们将允许他们进入钱包的下一个步骤。我们的实现在智能合约内使用了 WebAuthn 中使用的签名算法进行验证,如 ES256 和 RS256。这个过程不需要与后台进行任何通信,只要 zkSync 网络在运行,钱包就会保持功能。在未来,我们计划将钱包的前端迁移到 IPFS,以提高去中心化的水平。
3、交易签署。
为了签署交易,我们首先要求浏览器为交易生成一个签名。然后,签名被发送到区块链上,在那里被验证。如果签名是有效的,交易就会被处理。这个过程确保了交易的授权和安全。
为了防止不受信任的网站使用受信任的网站的凭证来签署数据,所有的凭证(密钥对)都被绑定到某个来源。如果 example.com 生成了凭证,sample.com 就不能使用相同的凭证来签署数据。
社交恢复
如果一个用户失去了对他们钱包的访问,他们可以使用社交恢复来恢复它。社交恢复是建立在监护人的概念上的,监护人是智能合约或用户,可以验证试图恢复其钱包的人的身份。监护人可以从各种选项中选择,如近亲、电子邮件验证、社交媒体验证、电话号码验证等。用户最多可以为自己的账户定义 7 个监护人,即使监护人不是 RaisePay 钱包的用户,他们仍然可以使用电子邮件信息批准恢复。
监护人本质上是批准或拒绝用户的认证请求的智能合约地址。我们已经实施了 Raise Guardian 作为默认的监护人。在未来,我们计划为独立服务引入一个程序,为我们的钱包创建监护人,使他们能够轻松地集成到系统中。
整合 RaisePay 钱包的好处
1、与 Metamask 的连接类似
我们实现了 wagmi 和 web3-react 库的连接器,用于连接用户钱包和去中心化的应用程序(dApps)或游戏。因此,您只需添加几行代码,就可以添加 RaisePay 钱包。我们的解决方案也可以集成到任何其他库中。
2、交易分批进行
我们的钱包允许用户一次进行多笔交易,这与 Metamask 不同,Metamask 只能批准一笔交易。用户可以在交易页面上查看所有这些交易,交易的总资产被计算出来,这使得用户可以很容易地以稳定币(USDT/USDC)管理成本。
RaisePay 钱包允许用户在 Web3 商店购买物品时只需进行一次交易,无需单独进行 Token 授权。这是通过将审批和转账交易分批进行而实现的,使用户的交易过程更加方便。
3、授权会话
RaisePay 钱包允许用户为 Web3 应用(如 NFT 游戏)创建具有特定权限的会话,这些应用需要进行多次交易。通过在 RaiseAuthn web worker 内创建一个新的密钥对,并用新的密钥对地址调用钱包智能合约方法 “createSession”,用户的钱包可以传递由该会话签名签名的交易,由 RaiseAuthn 请求。这些会话可以用来限制可以花费的 Token 和 Gas 费的最大数额,以及定义可以调用哪些合约和可以做出哪些行动。这类似于智能手机或 MacOS 上的应用程序的权限。
用户可以很容易地将他们的会话从笔记本浏览器分享到移动设备上,或者通过二维码、登录码或登录链接分享会话,反之亦然。这样就不需要共享密钥对,因为只需要将移动应用的内部密钥对地址传输到笔记本电脑浏览器,为移动钱包创建一个新的会话。这允许根据用户的偏好,授予无限和有限的访问权。
帐户抽象化消除了对 WalletConnect 等协议的需求,因为它允许对一个帐户使用多种认证,而不是依赖一个使用外部桥接器共享的单一认证,该桥接器有时可能变得不可用。这提高了用户体验和钱包的安全性。
4、用 USDT/USDC/RAISE 支付转帐费用
我们的钱包概念允许用户在不需要购买 ETH 的情况下使用该钱包。这是通过使用 ZkSync 实现的,它可以创建 “paymasters”——如果在交易的自定义数据中指定了交易,则可以为交易支付。这些 paymasters 可以收取 Token 来换取他们支付的 ETH,或者作为补贴模式的一部分为用户提供免费交易。目前,我们为用户创建账户提供补贴,交易费用可以用稳定币支付。在未来,我们可能会实现用户使用信用卡支付账户抽象创建费的选项,或者将付款委托给商家,他们可能希望支付少量费用,让用户在其平台上免费创建钱包。
(补贴 paymasters)
(Raise paymaster)
5、订阅
由于用户的钱包是一个智能合约,现在可以为用户实现定期订阅。用户可以通过添加到他们的钱包来注册一个订阅。他们可以在钱包的订阅部分轻松管理他们的订阅。商家将能够按照订阅的条款,定期从用户的钱包中提取指定数量的 Token。这项功能可以让用户以更精简和有效的方式管理他们的订阅,并让商户接收定期付款。
(订阅模型)
评论(0)
Oh! no
您是否确认要删除该条评论吗?