编者按:本文来自:以太坊爱好者,作者:KevinBritz,翻译&校对:曾汨&阿剑,Odaily星球日报经授权转载。在Astro钱包过去两年的大部分时间里,我们都在研究各种形式的经济抽象。我们想要和区块链行业中更多的同仁分享我们的发现,希望可以为dApp如今所面临的诸多用户体验问题提供一些指导。尽管经济抽象并非一个新概念,但此前切实可行的用例寥寥无几。在本文中,我们将讨论如何实现一套通用的经济抽象方法。定义
鉴于这一术语已经被广泛使用,因此在讨论开始之前,我们希望给出一个明确的定义。经济抽象——能够原子化地使用任意一种区块链资产支付发起任意区块链交易的手续费以及交易操作本身。让我们举几个例子来进一步阐明它的意思:用户想要转移USDC,但苦于钱包中没有ETH来支付交易手续费。用户想要通过0xv3中继器来购买一只加密猫,而这需要使用ZRX来支付中继费,且加密猫的卖家只接受DAI,但用户手中只有USDC。组成
火币主力3天内买入超24万ETH:AICoin PRO版K线主力大单统计显示:过去3天,火币ETH/USDT现货出现了161笔单笔委托金额在20万美元以上的大额委托买单,最终成交了24.49万枚ETH,买入均价371.04美元,价值超过9000万美元;仅出现了88笔单笔委托金额在20万美元以上的大额委托卖单,最终成交7.39万枚ETH,成交差17.1万枚ETH。ETH现货价格已由三天前的最低355美元涨至今天最高的394美元。[2020/9/18]
实际上,在大多数区块链上经济抽象都被划分为两个组成部分:手续费抽象和代币抽象。如果二者都能实现,我们就拥有了完整的经济抽象。手续费抽象——能够原子化地使用区块链上的任意资产支付发起交易的手续费。通常来说,区块链协议需要依赖特定的基础代币来保障网络的安全性。一些协议以为只要支持用任意token来支付手续费,就能实现手续费抽象了,但这并不适合绝大多数协议。在下文的实现部分,我们将讨论如何在一个类似以太坊的协议上建构手续费抽象。代币抽象——能够原子化地使用区块链上的任意资产来达成交易。交易被执行的,其产生的操作或多或少会花掉一些资产,比如使用USDC购买一只加密猫,或在Compound上出借DAI。而有了代币抽象,我们的支付手段就不再局限于某一特定的代币了,而可以是区块链上的任何资产。实现
AI-秒级持仓量:凌晨大批主力平多:AICoin PRO版K线显示:今天凌晨01:50前后,BTC价格短时拉升,这一过程中包括BitMEX以及OKEx在内的BTC合约的AI-持仓差值指标均为较大负值,且成交放量。
放大至秒级周期,持仓开始减少的价格精确至6920~6959美元附近,该位置为压力区,我们可以判断有大批主力在这次拉升中平多获利出局。[2020/4/22]
为了实现手续费及代币抽象,我们需要两个核心的区块链功能:手续费委托和多操作交易。绝大多数区块链都没有原生地支持这两个功能,因此需要进行额外的建构来达成我们的先决条件。我们将主要基于以太坊平台进行建构,但这同样适用于其它绝大多数智能合约平台。基础构建模块
在以太坊上实现这些核心功能的关键是使用智能合约钱包。传统的地址型钱包并不具备这些功能,但是我们可以通过智能合约为其添加额外的逻辑,从而实现新的核心功能。手续费委托——即指派另一支付者而非发送者本人支付交易手续费。如今的绝大部分智能合约钱包都采用Gas中继器来实现手续费委托。用户无需直接往其智能合约钱包中打入以太币用于支付交易手续费,而可以通过签名消息来完成交易的中继。由于用户的账户实际上是智能合约,因此只要钱包能够验证该合约调用,以上两种方式都行之有效。多操作交易——即在单笔交易内完成多个原子函数调用。不同于手续费委托,多操作交易尚未得到广泛应用。而要想在单笔原子交易内完成多笔操作,这一特性不可或缺。有人尝试使用Wrapper合约来解决这一问题,也取得了一些成果,然而对诸如msg.sender等元数据的隐藏使得它们难以成为通用化的解决方案。幸运的是,在智能合约钱包中集成这一功能相当简单,但截至目前只有Dapper这一家智能合约钱包支持了该功能。实现手续费抽象
主力大单统计:HT挂卖量高于挂买量 卖单成交高于买单成交:AICoin PRO版K线显示,HT销毁公告发布后的三个多小时里,火币HT/USDT交易对总大单笔数为134笔,其中挂卖量262.83万HT,卖成交294.27万HT;挂买量132.47万HT,买成交127.42万HT。买卖挂单差-130.35万HT,买卖成交差-166.44万HT。[2020/3/1]
利用多操作交易,我们可以在标准的Gas中继器架构上再建构一层消息传输协议,从而实现手续费抽象。下面我们通过一个简单的案例来说明该协议如何扩展钱包以提供额外的功能。第0步:客户端钱包想要发送一笔由一组操作组合而成的交易。第1步:客户端钱包通知Gas中继器它想要发送哪笔交易,以及想要用何种资产支付交易手续费。第2步:中继器回复一个签过名的报价消息,即为中继用户请求的交易指定一个价格,该价格以用户指定的资产计算。第3步:客户端钱包增加一笔额外的操作,即转移指定价值的资产给中继器。第4步:这笔最终由操作组合而成的交易连同签过名的报价消息被发回给中继器。第5步:中继器验证交易和报价消息,然后将该交易发送至区块链上。有了这一功能,客户端钱包可以要求许多Gas中继器分别提供报价,最终选择报价最低的中继器发送交易。实现代币抽象
分析 | 全球合约市场成交大单3208万美元 多军主力顺势建仓:据合约帝全球市场期货合约大单成交统计显示,截至北京时间7月8日,24小时内全球合约市场成交大单总额共计3208万美元,大额多单1803万美元,大额空单1405万美元。其中OKEx交易所成交大额BTC季度空单116万美元,ETH成交大额季度多单433万美元,LTC成交大额季度多单85.8万美元;BitMEX交易所成交大额BTC永续多单1231万美元,空单1223万美元;Huobi交易所成交大额多单52.7万美元,成交大额空单65.9万美元。据合约帝入驻交易员Stellalou分析认为,近期BTC走势在11000-11500美金区间内震荡整理,连续多根下影线显示出买盘的强势,合约市场大额多单数量实现了对空单数量的反超,可以看出多军主力正在震荡中顺势建仓,目前区间为多军成本价,预计后市走出震荡区间有会有大幅拉升。[2019/7/8]
一旦有了多操作交易的加持,实现代币抽象也就轻而易举了,关键的难点在于交易分析。客户端钱包需要能够分析潜在的交易,以便知道在执行交易中的操作时会花费哪些资产,花费多少。我们在Astro中建构了一个改良版的以太坊节点,从而可以运行上述的分析,但由于这在很大程度上是一个工程挑战而非算法挑战,因此我们将它留给读者朋友们做练习。一旦我们可以确定这组操作中所需要及会产生的资产,钱包就可以轻松地连接至各个DEX来为用户完成这组资产的兑换。诸如0xAPI这样的聚合器非常适合聚合这些用户所需的兑换,或者钱包也可以选择使用诸如Uniswap这类更简单但滑点效率更低的解决方案。有了这组互换交易,钱包可以在用户的操作前后分别附加所需和所得资产的兑换操作来完成最终的交易。合体吧!
现在我们已经同时实现了手续费和代币抽象,而二者合体就能实现经济抽象了!我们还可以加入其它一些灵活的功能,比如即时授权,这样就无需再发送单独的交易来授权诸如0x和Uniswap之类的合约动用我们的资产了。此举也提升了用户的安全性,因为我们只需授权这笔交易动用所需数量的资产。
我们可以通过这一流程图清楚地说明引言中那个相当复杂的示例,抽象地展示这一笔交易最终包含的操作列表。如我们所见,用户可以支付0x协议的手续费、0x中继器的手续费、加密猫卖家的出价以及Gas中继器传送交易的费用,而这一切单靠钱包里的USDC就足以完成。感谢ClintonBembry、LindaXie、AparnaKrishnan、以及ClayRobbins对本文的审阅。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。