区块链钱包研究:Web3世界的“支付宝”该怎么实现?

转载
168 天前
1597
小猪Web3

文章转载来源: 小猪Web3

什么是区块链钱包

区块链钱包(下面称为钱包)是用户访问区块链的入口,是用户在Web3世界的通行证。

钱包通常包含如下功能:

创建区块链账户

由于区块链账户的创建过程较为复杂,钱包的存在可以帮助用户简化这些过程。一般创建完账户过程中,钱包都会引导用户进行私钥或助记词备份,然后再进行二次验证,以确保用户备份的私钥或助记词准确无误。

管理区块链资产

钱包的存在极大的方便了用户对于自己所拥有的资产管理,主要包括转账、收款、查看资产详情、交易详情等。功能类似银行的APP,你可以看到自己当前拥有什么资产,数量多少,以及对你的资产进行转账等操作。

探索区块链生态

目前部分公链设计中,会激励生态中的用户积极参与公链生态建设,主要的形式有节点投票、公投、Staking等,这些都可以通过钱包参与。

并且一些大型DApp应用是以第三方独立APP的形式存在,当体验这些APP形式的DApp时,同样需要钱包作为登录和交易授权的媒介。

交易

部分钱包还会支持币币兑换、交易所交易、OTC 交易等加密资产交易服务,其中 OTC(Over The Counter)交易是在交易所外,由第三方担保,客户点对点的交易方式,是目前法币与加密资产一对一买卖交易的主要方式。

其他

由于钱包天然就具有金融属性,部分钱包会集合包括矿池、理财、挖矿、项目投资等多种金融工具与功能,可以满足用户资产增值的需求。

对比「支付宝」

对于首次接触区块链的用户而言,我们可以先从非严格定义的角度将区块链钱包类比成「支付宝」。

和「支付宝」相同的点:

  • 都能管理资产,进行支付转账,查看资产等操作
  • 都能管理身份,授权登录访问第三方 APP 或者网站

和「支付宝」不同的点:

  • 「支付宝」是中心化的产品,由蚂蚁集团控制,区块链钱包则原生于去中心化的区块链,几乎不可被人为控制
  • 创建「支付宝」账户需要身份证及手机信息,丢失了可以找回,区块钱包链钱包账户则是匿名的,丢失了几乎不能找回
  • 「支付宝」管理的资产是法币的记账,有深入的法律来保障用户的“所有权”,区块链钱包管理的资产是真正属于用户的

钱包的发展和挑战

在比特币诞生之初,钱包形态十分简陋甚至需要同步好几天下载整个比特币账本才可以运行,当时只有少数极客在电脑上操作才可以使用钱包。下图为比特币的创始人中本聪设计的世界上第一个比特币钱包:

随着比特币的发展,在 2011 年 6 月 29 日,比特币支付处理商 BitPay 推出了第一个用于智能手机的比特币电子钱包,这是钱包迈向普通用户历史性的一步,但是主要特点只能存储比特币。

2013 年 11 月,在比特币创世区块诞生近5 年之后,以太坊白皮书问世,宣示着区块链进入2.0时代,智能合约开始运用于区块链,此时的钱包除了进行转账收款外,还能进行链上合约操作。

2018 年,DeFi 这个词首次在电报上被提出,随着 Compound,Uniswap,DAI 等协议的推出,以太坊生态开始蓬勃发展,经过 2020 夏天流动性挖矿(Yield Farming)及聚合器(Aggregator)的爆发,交易活动大量增加,DeFi 流动性挖矿风靡,区块链钱包的用户数量突破 5000 万,区块链钱包进入快速扩张期。

2021 年至今,伴随着跨链和 Layer2 的叙事,区块链钱包成为了人们存储资产与交易的热门选择,同时支持资产跨链也是成为了用户选择钱包的侧重考虑之一。

2022年,在波哥大举办的 Devcon 6 大会中,Tomasz Tunguz 提到了 Web3 的一些统计数据:各主流公链 DAU 累计约为 250 万,而传统互联网的 DAU 为 50 亿,前者勉强够上后者的 0.05%。从供给侧来看,约有 1.6 万名开发者在 Web3 开发,而世界上开发者总数达到了 2700 万,Web3 开发者占比不足 0.06%。因此,Web3 离大规模采用还有很远的距离。

钱包作为 Web3 的入口,大规模采用的第一个挑战是要解决「私钥保管」的问题。

在区块链世界,私钥控制着一切,业内有一句共识「Not Your Keys, Not Your Coins」。

去中心化钱包使用助记词和分层确定性 (HD) 结构来派生私钥并自我托管,这似乎意味着去中心化钱包应该是管理加密资产的最佳实践。据 Finbold 发布的一份报告显示,全球交易所共有2.95亿加密货币钱包用户,去中心化钱包用户只有8100万,占比 21.5%。

将私钥托管给中心化交易所自然是不安全的,2022 年 11 月 FTX 的崩溃是一长串交易所安全事故中的最新一起,然而,大量用户仍然愿意承担托管风险,以换取较低的成本和易用性。因为对于绝大数用户而言,虽然可以通过掌握私钥独立管理其资产,无需将资产和数据交到别人的手里,但是私钥的保管成为一大难题。相信很多人都有把助记词写在纸上的经历。

据欧科云链 OKLink 数据统计,2022 年,因私钥泄露和私钥丢失导致的用户数字资产损失最大,高达 9.3 亿美元,占总损失约 40%。在区块链世界,私钥一旦丢失或被盗,意味着资产的永久性损失,这对于普通用户是难以承受的。

为了解决「私钥保管」问题,钱包制造商正在探索无私钥钱包和社交恢复,智能合约钱包是主流的方案之一。

智能合约钱包

以太坊的账户类型分为外部账户(Externally Owned Account, EOA)和合约账户(Contract Account, CA)。

智能合约钱包是一种行为类似于钱包的合约账户,即一个允许用户管理资产,与 DApp 交互的智能合约。与外部账户钱包不同的是,智能合约钱包没有私钥,只有地址,因此,智能合约钱包不能主动发起交易,只有在被触发后按照编写的代码执行交易。并且智能合约需要部署在链上,因此,智能钱包的创建需要初始成本。

我们常说的多签钱包就是智能合约钱包的一种,它需要 M-of-N 密钥的签名才能执行交易。

多签钱包每个实体持有各自的私钥,执行交易需要多个实体通过钱包合约的验证,合约一般还会提供恢复选项,多数实体可以投票来改变授权密钥集合,可以有效解决少数实体的私钥被盗或者丢失的问题。

多签钱包广泛被DeFi 协议和 DAO 所采用,但并非是钱包通用性大众化的技术路径。毕竟普通用户已经习惯了 Web2 的支付和账户,例如通过生物识别支付以及社交恢复账户。

要在 Web3 世界实现如此强大的功能,需要引入「账户抽象」的概念。

在计算机科学中,「抽象」是指从一个较大的片段中提取相关的部分,将一些东西分割成较小的部分。

在以太坊中,账户抽象是指将交易验证和交易执行从一个单体过程分割成可以根据用户的个人需求进行调整的模块化组件。

账户抽象的核心目标是使智能合约作为交易的发起账户,允许用户自定义其帐户的安全模型和操作模型,彻底不再需要外部账户。因为外部账户与密钥对紧密耦合,以至于它们本质上是同一件事,无法实现的用自定义代码进行编程,以授权交易和解锁用户体验。

V神在「以太坊的三个转变」一文中提到:如果不能让所有人都迁移到智能合约钱包会导致以太坊的失败。

因此账户抽象对于以太坊意义重大,一旦真正落地可能在Web3诞生新的应用、玩法、和想象空间。

账户抽象

从以太坊 2015 年上线起,账户抽象的讨论没有停止。最新的 ERC-4337由 V神 等提出,

引入了 UserOperation,它是一种表示用户意图的特殊交易,允许合约账户主动执行操作。这些 UserOperation 由一个名为 Bundler 的角色管理,它模拟执行 UserOperation 并将有效的操作添加到一个特殊的交易池。然后,EntryPoint 合约验证和执行这些 UserOperation,以实现用户意图。

ERC-4337 无需进行共识协议级别的修改是其最大的优点,因为这样就不需要硬分叉 (Hard Fork)。

验证和交易过程被分离成两个智能合约:EntryPoint 合约 和 Wallet 合约。EntryPoint 合约作为一个协调者 (Coordinator),与 Wallet 合约进行交互。Wallet 合约根据自定义逻辑,处理用户的交易验证。如果钱包合约成功地验证了一笔交易,入口点合约就会执行该交易,然后提交到下一个区块中。

这种抽象给了开发者和用户自由,可以将他们想要的任何东西编入自定义钱包合约中作为交易有效的要求。例如,钱包合约可以使用多重签名,社会恢复功能,甚至是抗量子签名方案。

ERC-6551 是 Future Primitive 团队提出的一项关于以全新方式将非同质化代币(NFT)与智能合约钱包相连的提案,可以实现对资产的更多控制和灵活性。该协议被称为“Token bound accounts”(绑定账户),允许每个NFT都拥有自己的钱包地址。

ERC-6551 不是账户抽象,也不是新的代币标准。但可以结合智能合约钱包来显著增强 NFT 的功能,使其比以往更加实用,例如实现 NFT 可组合性,链上声誉,游戏角色库存等。

原理上,NFT 的持有者通过与 Registry 合约交互创建智能合约钱包。Registry 合约不可变、无需许可且没有所有者,为每个 NFT 部署唯一的、确定性寻址的智能合约钱包,其控制权仅为该 NFT 持有者所拥有,当该 NFT 的所有权发生转移,账户的控制权也随之发生转移。

随着最新的 ERC-4337 提案和 ERC-6551 提案成为行业的风向标,2023 年行业迎来了快速发展,如下图:

EIP-3074 是另一个得到了以太坊社区广泛支持的提案,被正式纳入下一次以太坊硬分叉。

EIP-3074 由以太坊研究员 Sam Wilson、Go Ethereum 开发者 Matt Garnett 等人提出,其核心在于让任何一个 EOA 账户都能像智能合约钱包一样运作,无需部署额外的合约,无需手动迁移

EIP-3074 引入了两个新的以太坊虚拟机指令:AUTH 和 AUTHCALL,使 EOA 连接起一个智能合约,并将交易的控制权交给智能合约。

  • AUTH :用于验证一个签名并设置一个上下文变量「authorized」。如果签名有效,并且签名者地址匹配给定的授权地址,则将「authorized」设置为授权地址。AUTH 指令允许一个智能合约代表一个 EOA 执行操作,从而实现了授权的委托;
  • AUTHCALL :类似于现有的 CALL 指令,用于执行一个外部调用。不同之处在于,AUTHCALL 会使用之前通过 AUTH 指令设置的授权地址作为调用者地址。也就意味着 AUTHCALL 会使用授权的 EOA 作为发送方,而不是合约本身。

EIP-3074 需要通过以太坊硬分叉来实施,主要目标是赋予 EOA 类似智能合约的功能,将 EOA 的控制委托给智能合约。但由于账户本身是 EOA,如果密钥被盗或丢失,意味着完全失去控制权。

EIP-7702 作为 EIP-3074 的替代方案,由 Vitalik 于今年 5 月 7 日发布。EIP-7702 允许 EOA 在交易过程中临时采用智能合约的功能,EOA 可以在单一交易执行期间将 EOA 转换成智能合约钱包,而在交易结束后恢复到普通状态

EIP-7702 引入一个包含 “contract_code” 参数和签名的新交易类型,在交易期间,将签名的 EOA 账户暂时转换为智能合约钱包,以此实现了 EIP-3074 相当的功能。

EIP-7702 并没有引入新的操作码,因此不需要硬分叉,主要目标是使 EIP-3074 更精简并与 EIP-4337 更兼容,因为引入的 “contract_code” 参数可以是现有的 EIP-4337 钱包代码,并且通过额外的 EIP(EIP-5003),EOA 账户还可以永久升级为智能合约钱包。

在账户抽象终局里,以太坊上的所有账户都使用智能合约钱包来管理资产和交易,不再依赖传统的 EOA 账户。

目前关于账户抽象的前沿研究有如下:

社交恢复

社交恢复(social recovery)是指利用社交关系帮助用户在丢失密钥的情况下重新获得账户访问权的机制,例如使用邮箱重置智能合约钱包的密码。

用户使用社交恢复功能通常需要在创建钱包过程中或之后设置守护者,并达到一定的守护者验证阈值,例如3个守护者中的2个,以登录或恢复钱包。这个过程通常被称为多因素认证(multi factor authentication)。

社交恢复是目前账户抽象热门的研究方向,已实现社交恢复的钱包有 Argent Wallet, Loopring Wallet 和 UniPass 等。

意图交易

意图是一套经过签名的声明性约束,允许用户将交易创建外包给第三方,而不放弃对交易的完全控制。简单来说,如果一个交易指定了「如何」执行一个操作,那么意图定义了该操作的「期望结果是什么」。

意图交易将钱包客户端作为意图层,让用户表达他们的意图,完成从意图到 UserOperation 的过程。

目前意图交易只有一些实验性的项目,无论是意图的自然语言输入,还是拆解目标、计算最优路径和执行操作,AI都能够发挥优势。有望成为区块链结合 AI 的场景之一。

设备账户

设备账户(Device Account,简称 DA)是使用用户侧的现代计算设备(例如 PC、手机、平板等)上的硬件安全模块管理用户密钥与钱包账户的技术。

设备账户依赖无密码认证技术 Passkey/WebAuthn ,相比传统的身份验证方法更为方便,而且更安全:

  • 受保存它们的设备的保护,利用生物识别技术作为额外的安全保障,无需密码;
  • 可以在手机、电脑等多个设备间通过 Airdrop / 蓝牙无缝同步,解决了单点故障;
  • 可以安全地跨设备登录,通过手机扫码然后生物识别登录网页,提升用户体验。

总结

钱包作为加密市场参与者必备的工具之一,在基础设施领域占据着非常重要的地位。未来,钱包入口的重要性将超越交易平台,并成为 Web3 流量聚集地以及元宇宙的基础设施之一。

在支持支付、转账的同时将所有的 DApp 集成至钱包中,项目开发者和使用者可以大量汇集形成基于区块链技术的新一代互联网生态系统。在这个生态系统中,用户所有的线上操作都可以通过钱包来进行,包括社交、短视频浏览、购物、点餐、打车、旅行出游。钱包将真正成为 Web3 里的「支付宝」。