区块链钱包研究: 实现Web3世界的“支付宝”的方法是什么?

区块链钱包研究: 实现Web3世界的“支付宝”的方法是什么?
区块链钱包研究: 实现Web3世界的“支付宝”的方法是什么?

区块链钱包是用于访问区块链的工具,用于创建账户、管理资产、参与生态和进行交易。相比支付宝,区块链钱包更加去中心化、匿名,并且资产所有权更明确。钱包的发展经历了从简单到多功能的过程,包括DEX、理财等,但私钥保管仍然是一个挑战。智能合约钱包和账户抽象是解决私钥问题的解决方案,未来钱包可能会集成更多功能,成为Web3的核心工具。

区块链钱包是用户访问区块链的入口,是用户在Web3世界的通行证。钱包通常包含以下功能:创建区块链账户,管理区块链资产,探索区块链生态和进行交易。与支付宝相比,区块链钱包更加去中心化,原生于区块链,资产更加属于用户自己。钱包的发展历程包括了从比特币诞生时的简陋形态到现在的多功能形态,随着DeFi的兴起,钱包的用户数量也在不断增加。然而,钱包的大规模采用面临着私钥保管的挑战。智能合约钱包是解决私钥问题的主流方案之一,它不包含私钥,只有地址,通过触发合约代码执行交易。多签钱包是智能合约钱包的一种形式,被广泛应用于DeFi协议和DAO,但并非通用性较强的技术路径。为了在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里的「支付宝」。

Related Post