手续费抽象和代币抽象

引介:以太坊上的通用经济抽象

在 Astro 钱包(最近已被 Coinbase 收购)过去两年的大部分时间里,我们都在研究各种形式的经济抽象(economic abstraction)。我们想要和区块链行业中更多的同仁分享我们的发现,希望可以为 dApp 如今所面临的诸多用户体验问题提供一些指导。

尽管经济抽象并非一个新概念,但此前切实可行的用例寥寥无几。在本文中,我们将讨论如何实现一套通用的经济抽象方法。


定义

鉴于这一术语已经被广泛使用,因此在讨论开始之前,我们希望给出一个明确的定义。

经济抽象 —— 能够原子化地使用 任意一种区块链资产 支付发起任意区块链交易的手续费以及交易操作本身。

让我们举几个例子来进一步阐明它的意思:

1、用户想要转移 USDC,但苦于钱包中没有 ETH 来支付交易手续费。

2、用户想要通过 0x v3 中继器来购买一只加密猫(CryptoKitty),而这需要使用 ZRX 来支付中继费,且加密猫的卖家只接受 DAI,但用户手中只有 USDC。

组成

实际上,在大多数区块链上经济抽象都被划分为两个组成部分:手续费抽象和代币抽象。如果二者都能实现,我们就拥有了完整的经济抽象。

手续费抽象 —— 能够原子化地使用区块链上的任意资产支付发起交易的手续费。

通常来说,区块链协议需要依赖特定的基础代币(如以太币)来保障网络的安全性。一些协议以为只要支持用任意 token 来支付手续费,就能实现手续费抽象了,但这并不适合绝大多数协议。在下文的实现部分,我们将讨论如何在一个类似以太坊的协议上建构手续费抽象。

代币抽象 —— 能够原子化地使用区块链上的任意资产来达成交易。

交易被执行的,其产生的操作或多或少会花掉一些资产,比如使用 USDC 购买一只加密猫,或在 Compound 上出借 DAI。而有了代币抽象,我们的支付手段就不再局限于某一特定的代币了,而可以是区块链上的任何资产。

实现

为了实现手续费及代币抽象,我们需要两个核心的区块链功能:手续费委托和多操作交易。绝大多数区块链都没有原生地支持这两个功能(以太坊也不例外),因此需要进行额外的建构来达成我们的先决条件。我们将主要基于以太坊平台进行建构,但这同样适用于其它绝大多数智能合约平台。

基础构建模块

在以太坊上实现这些核心功能的关键是使用智能合约钱包。传统的地址型钱包并不具备这些功能,但是我们可以通过智能合约为其添加额外的逻辑,从而实现新的核心功能。

手续费委托 —— 即指派另一支付者而非发送者本人支付交易手续费。

如今的绝大部分智能合约钱包都采用 Gas 中继器来实现手续费委托。用户无需直接往其智能合约钱包中打入以太币用于支付交易手续费,而可以通过签名消息来完成交易的中继(中继器会将该消息打包进交易中,然后作为发送方发送该笔交易)。由于用户的账户实际上是智能合约,因此只要钱包能够验证该合约调用,以上两种方式都行之有效。

多操作交易 —— 即在单笔交易内完成多个原子函数调用。

不同于手续费委托,多操作交易尚未得到广泛应用。而要想在单笔原子交易内完成多笔操作,这一特性不可或缺。有人尝试使用 Wrapper 合约来解决这一问题,也取得了一些成果,然而对诸如 msg.sender 等元数据的隐藏使得它们难以成为通用化的解决方案。幸运的是,在智能合约钱包中集成这一功能相当简单,但截至目前只有 Dapper 这一家智能合约钱包支持了该功能。

实现手续费抽象

利用多操作交易,我们可以在标准的 Gas 中继器架构上再建构一层消息传输协议,从而实现手续费抽象。下面我们通过一个简单的案例来说明该协议如何扩展钱包以提供额外的功能。

第 0 步:客户端钱包想要发送一笔由一组操作 [1…n] 组合而成的交易。

第 1 步:客户端钱包通知 Gas 中继器它想要发送哪笔交易,以及想要用何种资产支付交易手续费。

第 2 步:中继器回复一个签过名的报价消息,即为中继用户请求的交易指定一个价格,该价格以用户指定(用于支付手续费)的资产计算。

第 3 步:客户端钱包增加一笔额外的操作,即转移指定价值的资产给中继器。

第 4 步:这笔最终由操作 [1…n+1] 组合而成的交易连同签过名的报价消息被发回给中继器。

第 5 步:中继器验证交易和报价消息,然后将该交易发送至区块链上。

有了这一功能,客户端钱包可以要求许多 Gas 中继器分别提供报价,最终选择报价最低的中继器发送交易。

实现代币抽象

一旦有了多操作交易的加持,实现代币抽象也就轻而易举了,关键的难点在于交易分析。客户端钱包需要能够分析潜在的交易,以便知道在执行交易中的操作时会花费(或收到)哪些资产,花费多少(或收到多少)。

我们在 Astro 中建构了一个改良版的以太坊节点,从而可以运行上述的分析,但由于这在很大程度上是一个工程挑战而非算法挑战,因此我们将它留给读者朋友们做练习。

一旦我们可以确定这组操作中所需要及会产生的资产,钱包就可以轻松地连接至各个 DEX 来为用户完成这组资产的兑换。诸如 0x API 这样的聚合器非常适合聚合这些用户所需的兑换,或者钱包也可以选择使用诸如 Uniswap 这类更简单但滑点效率更低的解决方案。有了这组互换交易,钱包可以在用户的操作前后分别附加所需和所得资产的兑换操作来完成最终的交易。

合体吧!

现在我们已经同时实现了手续费和代币抽象,而二者合体就能实现经济抽象了!

我们还可以加入其它一些灵活的功能,比如即时授权,这样就无需再发送单独的交易来授权诸如 0x 和 Uniswap 之类的合约动用我们的资产了。此举也提升了用户的安全性,因为我们只需授权这笔交易动用所需数量(而非全部)的资产。

我们可以通过这一流程图清楚地说明引言中那个相当复杂的示例,抽象地展示这一笔交易最终包含的操作列表。如我们所见,用户可以支付 0x 协议的手续费(ETH)、0x 中继器的手续费(ZRX)、加密猫卖家的出价(DAI)以及 Gas 中继器传送交易的费用,而这一切单靠钱包里的 USDC 就足以完成。

感谢 Clinton Bembry、Linda Xie、Aparna Krishnan、以及 Clay Robbins 对本文的审阅。

24小时热点

投资者寻找 2025 年牛市前爆升10大潜力币 8月最佳百倍币

随着 2024 年进入下半年,全球投资者的目光正紧紧聚焦于能 ...

115307

非小号

元宇宙原力币是什么?有什么用?

随着科技的不断进步,元宇宙的概念已经逐渐从科幻小说中走入现实 ...

178886

区块链圈小菜鸡

元宇宙入口是什么?原力元宇宙官方网站入口及注册流程

原力元宇宙官方网站入口是 https://meta-forc ...

104764

树图链

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

446050

DigiFinex

链圈百科:韩国政府机构组织图

一、行政院 韩国行政院是一个由政府的行政机构组成的中央政府 ...

1045804

BitKeep钱包

中国十大庞氏骗局之RUNE币 THORChain

RUNE- 简介详情 THOR ...

146951

非小号

国家版本数据中心

国家版本数据中心(National Data Version ...

439370

元视觉

元宇宙平台合法吗

现在,元宇宙平台备受热捧,但有人质疑其合法性。在此,我们将对 ...

989208

T网

盘点目前最火的区块链游戏项目排名

随着区块链技术的不断成熟和普及,其在游戏行业的应用也逐渐兴起 ...

153476

波场区块链浏览器

2024年以太坊会恢复挖矿吗?后续有什么调整?

以太坊在2022年完成了从工作量证明(PoW)到权益证明(P ...

87534

波场区块链浏览器

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2318557

Opera House

最全的NFT发展史

当我们理解一个新生事物,必须要首先了解其起源,通过对其源头以 ...

1752801

iBox

“华英会”诈骗圈钱5000亿!崩盘后将会凄惨无比

“华英会”崩盘的预警已多次发出,尽管尚未正式宣布崩盘,但大家 ...

1328854

Magic Eden

什么是IDO?这种模式会带来怎样的影响?

要理解IDO(Initial DeFi Offering)初 ...

1158056

Bitstamp交易所

链圈百科:韩国政府机构组织图

一、行政院 韩国行政院是一个由政府的行政机构组成的中央政府 ...

1045720

BitKeep钱包

有黑客采取新型 USDT 假充值手法

根据慢雾区情报,有黑客采取新型 USDT 假充值手法,黑客采 ...

1015812

区块链博客

元宇宙平台合法吗

现在,元宇宙平台备受热捧,但有人质疑其合法性。在此,我们将对 ...

988901

T网

4种利用永续合约资金费率套利的策略

下文将介绍在保持市场中立的条件下,如何从永续掉期资金费率中套 ...

948964

DCG区块链孵化器

国内NFT平台是怎么赚钱的?

2021年被称为NFT的“元年”,互联网巨头、各大企业、艺术 ...

813235

CoinBene满币网

宝二爷郭宏才的乘风破浪之旅

10年后的比特币会涨到10万美元吗?宝二爷说过:“先吹吹牛B ...

727516

QuillAudits