为什么 DeFi 需要 TokenScript
DeFi 运动展现了以太坊生态系统的强大和成熟。但是,虽然用户体验不断提高,钱包和区块链之间依然存在鸿沟,甚至有可能难倒最老练的以太坊用户。
好在,TokenScript 能够帮助用户跨越这一鸿沟。
最近,我试用了一下 Compound。这是一款路人皆知的 DeFi 应用。虽然我是密码学货币用户,但我不是以太坊开发者。因此,我用最简单的方式来测试 Compound 的用户体验:打开我的 Chrome 浏览器,使用 MetaMask 扩展程序来连接我的钱包。
接下来,我通过以下步骤测试 Compound:
在 Uniswap 上使用 ETH 买入 WBTC 。这种交易方式可以带来更多收益。这是因为 Uniswap 这个应用可以让我直接通过钱包来进行代币交易。
使用 WBTC 在 Compound 上铸造 cWBTC(Compound 上的原生代币)。作为 cWBTC 持有者,我不仅可以随时赎回 WBTC,还能获得由此产生的利息。
获得出借 BTC 带来的收益。
整个测试过程非常流畅。由此可见以太坊钱包和 dApp 的先进程度、智能合约集成方式之间的差异,以及 DeFi 是如何让中心化服务相形见绌的。而且从头到尾,我都不需要将密钥交给第三方。
然而,还有很多信息是缺失的
从信息缺失这点来看,以下几点严重影响了用户体验:
Metamask 上没有关于 Uniswap 交易的记录。我只能看到一个简单的交易列表。如果我在 Etherscan 上搜索这些交易,或许能找到详细信息。如果涉及到申报纳税,就有可能出现问题。
当我铸造出 cWBTC 时,我的 MetaMask 中的 WBTC 余额变成了零。为了看到我的 cWBTC 余额,我必须将 cWBTC 合约地址粘贴到一个输入框中。然后,我发现我持有的 cWBTC 数量大约是我之前持有的 WBTC 数量的 90 倍,这让我感到很困惑。
只要我在 Compound 上借出 WBTC ,我就能获得 COMP 代币,这就是所谓的 “流动性挖矿”。这是个很棒的功能,但是有个问题:哪里可以查看我获得的 COMP 代币?为了在 MetaMask 上看到我的 COMP 代币,我又找到了合约地址,将它粘贴到了相关的输入框中。但是,由于我的账户余额为零,我必须先取回我的 COMP 代币。结果,MetaMask 上根本看不到我获得的 COMP 代币,即使我提供了智能合约地址。
最后,我还是得使用网站。如果 Compound 网站掉线,我就不知道该怎么办了。从理论上来说,我持有我所有资金的密钥,但是我的钱包无法理解相关操作,也不知道我拥有哪些代币。因此,我只能完全依靠 Compound 网站来解释区块链上发生的事,然后创建交易。
我很喜欢 DeFi ,而且觉得 Compound 很棒。但是,出于种种原因,钱包内部的交易情况不透明是一个重大缺陷。讲道理,即使我们有了去中心化和非托管型密码学钱包,就我个人的感受而言,我依然无法摆脱对中心化服务的依赖。我很清楚自己的感受,一个主要的原因就是:
智能钱包聪明不起来
所有 DeFi dApp 都存在我上文指出的问题。我认为这些问题的症结在于,智能钱包的体验感很笨拙。
那么,智能钱包应该是什么样的呢?
我认为智能钱包应该:
显示每笔交易的所有相关信息。
检测到我持有 cWBTC 代币,并解释 cWBTC 和 WBTC 的数量比为什么不是 1:1 。
显示我能够获得多少利息,已经获得多少利息,以及是否可以取出我的 COMP 代币。
知道如何创建交易来提供贷款和取回我的 COMP 代币,并提供执行相关操作的按钮。
等等。
总之,MetaMask 很傻。
这不是 MetaMask 的错。MetaMask 是一个很好的钱包。它在很多方面提高了区块链的用户体验,能够很好地将用户引导到以太坊区块链上。
尽管如此,MetaMask 聪明不起来。它对区块链的理解存在固有局限性。公平来说,所有智能钱包都是如此。这是因为区块链和用户代理之间没有标准化层。智能钱包就只是钱包。
MetaMask 的开发者需要投入大量人力,才能让 MetaMask 聪明起来。他们需要为 MetaMask 定制格式,使其能够阅读并理解智能合约,在钱包 UI 中描述这些合约,并制定与这些合约相关的交易方案。
指望钱包开发者来解决所有这些问题,是不现实的。即使他们能这么做,也会导致 MetaMask 过于庞大,对该应用的性能构成威胁。此外,MetaMask 无法扩展。想象一下,目前已有的代币和智能合约的数量,以及未来随着 DeFi 成为主流而涌现出的新代币和智能合约。开发者根本无法及时实现一切必需的更改。
我们需要的在区块链和用户代理之间增加一层,能够让智能合约创建者和代币发行方解释智能钱包、智能合约和代币。
TokenScript 刚好可以提供这种透明度。有了 TokenScript,智能钱包就可以取代网站,同时确保流畅的用户体验。
TokenScript 是简单强大的解决方案
简单来说,TokenScript 是一个带有 XML 标记的 JavaScript 代码层。它描述了与代币相关的属性、逻辑、操作和用户界面等要素。
TokenScript 文件由代币发行方来编写并签名。用户可以在任何地方下载它。我们为代币发行方提供了一个 TokenScript 库,任何网站都可以为这个库提供服务,就像任何网站都可以验证合约创建者的签名那样。
TokenScript 还提供了一个通用数据层。这样一来,假设你持有 10 种代币,每种代币都受到以太币价格的影响,只需查询一次以太坊区块链即可。
钱包可以存储 TokenScript ,然后使用它们。正如上文所述,TokenScript 是一种简单强大的解决方案。我们已经在 AlphaWallet 上实现了 TokenScript 。可能还有些改进工作要做,但是我们已经取得了巨大的进步。迄今为止,TokenScript 已经应用到了 FIFA 足球票、跨国汽车公司的数字车钥匙(即,车主门户)、主要 DeFi 项目的智能 DeFi 代币以及其它智能代币(例如,ENS)上。在我们的 GitHub 库中,你可以找到一些关于 TokenScript 的应用场景。事实上,我们已经简单列举了一些应用场景。
我们真心相信,TokenScript 能够释放代币化和智能合约的潜力。如果你想获得更多关于 TokenScript 的信息,并为 Tokenscript 做贡献,请访问我们的 GitHub 库,阅读概念文件,并浏览我们的社区论坛。