mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

Dai转账时可以不需要Ether吗?

收藏
分享

也许在未来有一天,当我们提到 Dai 的时候,我们将不再关注它是一种 ERC20 Token 这个现实。 在刚刚过去的黑客松 ETHSingapore 上,有一个项目叫做 dai.ly ,它为我们描述了一种可能的未来。

在介绍 dai.ly 之前,让我们来了解一下 ERC20 Token 的背景,以及为什么当我们谈 Dai 的时候,我们不得不注意到它是一种 ERC20 Token。

用 Ether 支付的手续费

Dai 是一种 ERC20 token。 在以太坊的网络上,部署着 Dai 的智能合约,这个合约里面有着自己的 “子账本”,在这个 “子账本” 里,记录着每个地址拥有的 Dai 的数量。

当我们要把 Dai 从一个地址转到另一个地址时,我们在修改这个 “子账本” 里的记录: 增加一个地址拥有的 Dai 的数量,同时减少另一个地址拥有的 Dai 的数量。 或者说,我们改变了这个 “子账本” 的状态。而 “子账本” 的状态,是整个以太坊网络状态的一个部分,我们因此也改变了整个以太坊网络的状态。

任何改变以太坊网络状态的操作都是一笔交易。 而交易的执行者需要支付手续费(燃料费用)给矿工。交易费是用 Ether 来支付的。于是 “即使我的地址里有很多 Dai,但如果我的地址里没有任何 Ether,我也没法进行转账。”

也正因为如此,当我们谈到 Dai 的时候,不得不注意到它是一种 ERC20 Token, 一种无法脱离以太坊的存在 。

ERC20 和 ERC865

也许有朋友不懂什么是 ERC20 Token,我们可以来看一个比方:

洗衣机和冰箱都是电器: 当我们在说它们是 电器 的时候,我们是可以找到他们的共性,它们都提供了插头,我们通过 插头为它们供电。

Weth 和 Dai 都是 ERC20 Token: 而当我们说它们是 ERC20 Token 的时候,我们也可以找到他们的共性, 它们的智能合约都提供了一些相同的功能。 比如我们可以查到某个地址里有多少 Weth 或者 Dai (对应合约里面的 balanceOf 操作); 再比如我们可以把自己的 Weth 或者 Dai 转到另一个地址(对应合约里面的 transfer 操作) 。

所以,如果一种 Token 的 智能合约 支持 ERC20 标准 里要求的所有操作,那么它就是一种 ERC20 Token

我们可以仔细看一下 ERC20 支持的各种操作,你会发现它的设计是有一个假设的: 作为 Token 的所有者的你,直接和这个合约进行交互。 但如果你要进行改变以太坊状态的操作,你不可避免地要支付手续费, 于是你需要拥有 Ether。

要解决这个问题,我们很容易想到: 如果直接和以太坊上的合约进行交互,我们必然会支付 Ether 作为手续费, 那如果我们不和以太坊上的合约进行交互,问题不就解决了吗? 于是, 以太坊社区设计了一种新的 Token 叫做 ERC865 Token,用以实现 Token 转账的手续费能够使用 Token 本身而非 Ether 来支付。

作为 ERC865 Token 的所有者,我们不用再直接和以太坊的合约进行交互。 ERC865 Token 提供了一个叫做 transferPreSigned 的新操作: 它可以让 Relayer 来执行 Token 所有者预先签名过的交易,也就是说手续费依然以 Ether 的形式支付,但是由 Relayer 来支付了。 当然, Relayer 之所以愿意执行这些交易,是因为有利可图。 Token 的所有者,在交易里面,会承诺给Relayer 的好处。

Dai.ly : 体验 ERC865 版本的 Dai

你会发现, ERC20 标准 要求的所有操作 和 ERC865 标准 要求的所有操作是不冲突的,这意味着,一种 Token 如果它的智能合约里面,既实现了 ERC20 标准 里要求的操作,也实现了 ERC865 标准里要求的操作,那么这种 Token 既是 ERC20 Token 也是 ERC865 Token.

很遗憾的是,目前在以太坊主网上的 Dai 仅仅是 ERC20 Token, 它并没有实现 ERC865 标准 里面提到的操作。

于是, dai.ly 团队在测试的时候, 在 Ropsten 测试链上创造了一种新的 Token, 这种 Token 既是 ERC20 Token 也是 ERC865 Token,用来让大家体验一下 ERC865 版本的 Dai。

你可以在 这里体验下无需 Ether 就实现 Dai 的转账:

在 dai.ly 的首页,我们可以点击 Send 按钮, 然后你会看到下面的界面:

在这个界面上,我们会看到, dai.ly 可以让你输入一个地址和要转账 Dai 的数量,它将从 0x570932869143c8a6e07b4aa10e0b30814cf45ff0 转账 Dai 到你指定的账户(当然,这是在 Ropsten 测试链上)。

那么,这背后到底发生了什么呢? 我们可以在 etherscan 上来看下一笔交易背后的故事:

0x446C4201924ec3C9CAc04c0f18bEA09D752255C3 拥有 ERC865 版本的 Dai, 他想要转账给 0x14a9511DF82DeCc3e2a64b77346EEc04Ef759843

0xbf76eCA1fbDE4fcec2D4419549dEb560C53A3071 作为 Relayer 帮忙在以太坊上执行了这笔交易,收下了 1 Dai 的好处。

结语

目前, ERC865 标准 还没有得到太多的关注。 Dai.ly 也只是做了一个用于演示的 Demo。但随着越来越多有趣和有用的 Dapp 落地, 加密货币被越来越多的人接受,或许对 ERC865 Token 的需求会越来越大。 正如WIRED 杂志 的创办者 Kevin Kelly 说过的一句话:

未来已经在这里了,只是它分布得还不那么均匀。

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。