15

引介 | 通用的经济抽象

 5 years ago
source link: https://ethfans.org/posts/generalized-economic-abstraction
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

定义

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

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

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

  • 用户想要转移 USDC,但苦于钱包中没有 ETH 来支付交易手续费。
  • 用户想要通过 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 之类的合约动用我们的资产了。此举也提升了用户的安全性,因为我们只需授权这笔交易动用所需数量(而非全部)的资产。

mAnaYzm.jpg!web

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

感谢  Clinton BembryLinda XieAparna Krishnan 、以及  Clay Robbins  对本文的审阅。

原文链接: https://blog.coinbase.com/generalized-economic-abstraction-5a48d1b728e8

作者:Kevin Britz

翻译&校对:曾汨 & 阿剑


Recommend

  • 59

    编者注:本文为 Alexey Akhunov 介绍以太坊 1.x 理想工作流程的一篇文章,既总结了现有开发流程中的一些局限,也列举了新开发流程可能会面临的一些挑战。大家都知道公链治理很难,但作为外围人员,通常也并不清楚其中的流程到底是什么样的...

  • 58
    • www.tuicool.com 5 years ago
    • Cache

    引介 | 以太坊 2.0:随机性

    引介 | 以太坊 2.0:验证者详解

  • 64

    密码学签名是区块链系统中的基本模块。使用对应的私钥对交易进行签名能够将交易发起人与特定帐户联系起来。如果没有此功能,区块链的记帐工作将...

  • 74
    • www.tuicool.com 5 years ago
    • Cache

    引介 | 以太坊 2.0 信标链验证者

    编者注:本文为以太坊开发者 Hsiao-Wei Wang 在 2019 以太坊技术与应用大会上讲解 Eth2.0 信标链和验证者的时候所用的幻灯片。值得庆祝的是,6 月 30 日,Phase 0 的技术详述已经基本确定下来了。

  • 55

    虽然区块链得到了日趋广泛的采用,当代协议的负载量却十分有限,因此涌现出了许多 Layer 2 协议,例如状态通道、侧链、Plasma 和 Roll Up。本文...

  • 72

    编者注:本文为 ConsenSys 研究部门的 Robert Drost 博士在 BuildEth SF 2019 大会上作关于 Eth2 执行环境的演讲时所用的 PPT。 这一...

  • 71

    两点之间直线最短。这是人人皆知的道理。但这句话并不完全正确,至少在非欧几何里,它是错的。看过闪电的人都知道,闪电是不走直线的,而是在从空间中的一个点到达另一个点的过程中,一遇到电阻就避开,自动找到最高效的那条路径,一点一...

  • 37
    • www.tuicool.com 5 years ago
    • Cache

    引介 | Carl: Eth2.0 中的惩罚措施

    编者注:以太坊 2.0 研究团队于 2019 年 7 月 15 日在 Reddit 上做了一个持续时间长达 12 小时的 AMA (有问必答)活动,本文即是对该场问答活动的节选。 问:我感觉好像大家都对质押奖励垂涎三尺,不过,惩罚措施的力度有多大呢?...

  • 15

    随着走向成熟的以太坊 Layer-2 解决方案多了起来,ENS 也要能为整个生态系统提供服务,同时让 ENS 用户能够获得 Layer-2 解决方案给他们带来的效率提升。自

  • 5

    通用查询的抽象 有一批查询接口,只有参数,返回值,接...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK