首页 > MakerDAO > 正文

dai.ly : Dai 转账时可以不需要 Ether 吗?

MakerDAO 2018-12-20 19:25

  

  也许在未来有一天,当我们提到 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 说过的一句话:

    

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

阅读更多

上一篇:Coinbase 上线 MKR 和 DAI

下一篇:写在 Dai 的一周年

您可能喜欢:

关于我们联系我们作者投稿
Copyright © 2013 比特巴手机版
币圈人都爱上的网站,新闻行情教程人物测评资讯大全