首页>资讯>正文

引介 | 探索以太坊元交易的通用标准

2024-11-01
OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载 官网注册
币安app

binance币安交易所app

币安交易所app是全球排名第一的虚拟货币交易所,注册领取盲盒礼包!

APP下载 官网注册

免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。

小编:记得关注哦

来源:以太坊爱好者

本文是 Bloxis 对 Metamask 在 Gitcoin 上举办的普遍化元交易竞赛的回应。由于我们计划将这项功能整合进我们即将面世的产品中,因而在该领域投入了大量时间与精力,也正因如此,我们由衷地希望能够参与到该领域的讨论中来。如果您对我的观点有任何异议,欢迎指出,我非常乐于与您讨论。

引言

只要你愿意花钱,你可以在一笔以太坊交易内执行任何(不超出 Gas 限制的)操作 —— 在一个几乎是完全去中心化的无国界区块链网络上。听起来非常酷不是么?事实也确实如此。但是!问题就在于,执行交易需要耗费 Gas,而 Gas 是用以太币来支付的,可是新用户谁有以太币啊亲?(什么?你说赛博朋克、囤币党、传销组织都有?拜托那都不是正常人)

DeFi、区块链游戏和 dApp 生态的未来依赖于入场玩家的规模。这意味着我们需要解决新玩家的上手问题,并降低安全操作的知识门槛。当下最主要的两个问题是:玩家上手时需要拥有一个数字钱包以及一些以太币 —— 这也是行业内许多人正在努力攻克的方向。

所谓元交易(Meta transaction),就是让用户用自己的密钥来签名发起交易,但不需要用户来支付交易手续费(即 Gas 费用),而由 “中继者(relay)” 来为 TA 支付 Gas 费。中继者作为发送方,将交易提交至网络,并支付 Gas 费用。交易的目标合约可以确定原始用户及其意图,并相应地处理合约的调用。

在元交易出现之前,完成上述服务需要预存资金,即先将以太币存入终端用户的账户中以促进交易。Uport 推出的 Lambda Sensui 是这方面的一个典型应用。

如果你想更加深入地了解元交易,可以阅读下面这篇文章,其作者是社区中的标杆人物 —— Austin Griffith。

以太坊元交易:降低以太坊普及的门槛(编者注:中译本见文末)

实现

在链上,实现元交易需要一种编码标准来编码原始发送者发出的交易数据 —— 以使目标合约能复原他们的签名和数据,而不被 msg.sender (即中继者)影响。然而,在链下,必须通过 API 或者通信协议才能将终端用户连接到中继者。且中继者本身还必须拥有一些以太币和基础设施来获取并转发元交易。

很适合所在具体场景的解决方案,比如在 Dai 的 ERC-20 代币合约中使用的 permit 方法,就很优雅地解决了链上部分的难题 —— 这是一种需要终端用户直接提交的 approve方法。此外,这一方法还实现了 EIP-712,该标准用于表示和签名供链上使用的消息数据。可以说, Dai 只需要支持这一种元交易就足够了,因为所有其它的用例(例如发送 Dai 和协调 DeFi 的操作)都可以利用这一解决方案来实现。

Gas Station Network 在此基础上更进了一步,它创建了一个基于智能合约的网络来协调中继者,并创建了合约方法,使得任何智能合约只要经过很小的改动就可以连接到该网络。所有的中继者都通过一个中继集合站(relay hub)来跟合约进行交互,而中继集合站本身也是一个合约,维护着中继者的注册表。其它合约向中继集合站支付以太币以激励中继者帮用户支付 Gas 费,而且中继者只有成功转发一笔交易之后才能获得该费用。

合约钱包

诸如 Dapper Labs、Gnosis 和 Argent 在内的许多组织正在推出合约钱包,旨在兼得用户体验和安全性。合约钱包将用户的资金托管于智能合约之中,而合约内发送交易和保护账户安全的功能可以远超以太坊协议本身的水平。

在用户使用合约钱包时,得益于集成在钱包内的联合签名功能,终端用户能够仅凭其设备上的密钥来签名交易、表明自己想要进行交易的意图,并将该交易发送给共同签名者或者转发方(通常是钱包服务的提供商),后者会转发该交易并承担 Gas 费用。比如,在 Dapper Labs 的产品 CoreWallet 上调用 invokeN…方法,实际发生的事情就像我们这里说的一样。

图源:Dapper Labs

有了这一方法,账户内即使没有以太币也可以发出交易,而且不需要整个行业都接受同一个标准 —— 合约钱包可以像外部所有者账户(即由标准密钥对控制的普通用户地址,EOA)一样调用其它合约。此外,它还带来了一系列安全功能,诸如 Authereum 的交易防火墙 。

图源:Authereum

合约钱包带来的困扰

对于合约钱包和诸如以太坊域名服务(ENS)等创举,以太坊社区内的呼声很高。然而,随着许多用户在其所有的链上活动中都使用 ENS 域名作为身份(并且域名可读部分使用了真实姓名),巨大的隐私和安全问题开始显现。

此外,大家一边关注保护隐私的协议(比如 AZTEC,可用于隐蔽发送 token)(这些协议都依赖于私钥的所有和保管),另一边又忽略了私钥管理的难度和传统方案的隐私方面。

以太坊的钱包地址本身是 “伪匿名的”(因此具有一定的隐私性),但现在许多钱包软件提供商都在鼓励其用户获取 ENS 地址,却不告知他们这样做的后果。简言之,以太坊账户的交易记录(包括其投资组合及与 dApp 之间的互动记录)在链上是公开的,一个地址注册 ENS 域名之后,这些交易活动就跟这个 ENS 域名关联起来了。而用户所注册的 ENS 名字很可能是用户在其它服务或是现实生活中已经使用过的名字。这就是我对(供个人使用的)合约钱包地址绑定 ENS 持怀疑态度的主要原因。

然而,对于将 ENS 用于识别智能合约以防止诈骗,以及可以从透明操作中获益的组织使用 合约钱包/多重签名钱包,我举双手支持。

通过分层确定性钱包规则(Hierarchical Deterministic Wallet,简称 HD 钱包),用户可以用单个私钥来生成许多 EOA 地址,以保管不同的资产;使用多个地址分别操作,即便用户会使用 dApp、DeFi 协议并发起大量交易,仍然可以保持一定程度的匿名性。使用这套规则,用户甚至可以只持有一把私钥,然后为每一个要用到的 dApp 和 token 专门创建一个 EOA 地址用于交互。合约钱包虽然也能做到这一点,但因为 Gas 费用的存在,为用户使用的每一个 dApp/代币 创建一个合约钱包显得十分昂贵而不切实际。就算不考虑 Gas 费用,这样做也会造成网络拥堵。

分层确定性钱包本身便是一种隐私解决方案,也适用于以太坊钱包。图源:Casa

假设以太坊生态内所有的用户对于与其交互的每一个 dApp 都有一个对应的合约钱包,从而既能利用元交易功能,又能保护自己的隐私 —— 届时智能合约采用一个通用的标准会更加合理。

迈向普遍化标准

无论你对基于合约及合约钱包的解决方案持有何种立场,目前都还没有一个确定的标准 —— 方法调用因合约而异,用于中继交易的系统也各不相同。Gas Station Network 已经做了许多基础性的工作,但依旧不够灵活。收款方合约可能不会支付 Gas 费。那么用户又如何使用其资产来为中继者支付报酬呢?我们该如何让另一方来为这笔交易支付 Gas 费呢?这些都是我们希望在普遍化元交易竞赛中解决的问题 —— 真正有价值的提案就是要面对这些问题。

基于我们提出的想法,我们的总法律顾问 Vincent 提出了一个想法:让 dApp 的开发者预先为用户存入资金用于支付 gas 费,用户用法币来交换;为避免 dApp 项目被认定为交易所,这些以太币只能在 dApp 内部使用。这就是我们希望未来的普遍化元交易标准能够支持的机制(这是我们一年前在研究另一件事情的时候想到的)。通过 acceptRelayedCall 方法的一个自定义实现,Gas Station Network为这一想法提供了技术支持。

此外,让中继者能够批处理交易,是不是也能降低 Gas 费用?

无论提议来源于何处,我们都希望在其中看到如下内容:

有机制可支持替代性的中继者 报销/支付方式适合在资产 dApp 和 DeFi 的智能合约(而非合约钱包标准)中运行的方法支持在目标合约或用于中继交易的合约内进行交易批处理的机制

我们的提议概述

如你所见,我们强烈支持 Gas Station Network提出的想法。由 RelayRecipient 提供的 getSender和getMessageData方法实现了一个统一的接口,使所有合约的元交易可以相互兼容。然而,这些方法在其当前的形式下还存在两个短板 —— 无法防止钓鱼网络和重放攻击。详情:

ethereum/EIP-1613:Gas Station Networkethereum/EIP-712

为了防止钓鱼,EIP-712 提出了一个巧妙的解决方案 —— 域名分隔符。该对象包含了(用户签名交易要转发给的)合约的详细信息 —— 也就是地址,以及 dApp 的名称和版本。这些数据都包含在签名中,并和所有其它的交易数据一并以一种非常友好的方式呈现给终端用户。这样就限制了用户签名交易的方式,防止他们发起预期以外类型的交易(比如有意把交易发到错误的合约)。

使用 signTypedData_v4 方法对数据签名的 Metamask 界面。图源:Metamask

支持 EIP-712 的合约需要验证域名分隔符与合约自身是否匹配,如果不匹配则回绝该交易。从下面列出的 Dai 合约的代码中,你可以看到这一点。我们希望将 EIP-712 整合进 getSender 和 getMessageData 中,以便能在每一次方法调用时执行这项检查 —— 一旦签名不匹配,就回绝该交易。你可以点击下面的链接查看该函数的代码。(很抱歉,文章内嵌代码的格式无法正常显示)

Makerdao/dss:

https://github.com/makerdao/dss/blob/b1fdcfc9b2ab7961bf2ce7ab4008bfcec1c73a88/src/dai.sol#L114-L138

此外,在上面的代码中,你还可以看到 MakerDAO 自己用 nonce 属性实现了重放保护 —— 如果没有该属性,得到授权的参与方可以通过重放交易来耗尽用户的资金。一笔元交易经常属于一组操作的一部分,而这些操作可能依赖于前面的交易。举个例子,在我们构建的概念验证案例中,用户可以将 xDai 存入 Compound 协议。

而在主网上,这意味着我们要批准 cDai 合约访问用户资金,然后调用 mint方法将该资金存入贷款协议。如果用户的账户并非合约钱包,完成这一过程就需要一系列操作:首先得通过交易调用approve/permit方法,然后等待该交易被打包之后再调用mint方法。而有了合约钱包之后,就可以一步到位,通过调用一个特殊的合约方法来批处理这些交易。如果有一种人人可用的普遍化元交易批处理方法,那肯定是一个重大的创新。

这会大大简化链上的活动,就像上文举过的种种例子。此外,该方法还要允许用户可以同时签名和转发多笔互不相关的交易。不仅如此,该方法还应该学学 MakerDAO 是如何使用 permit方法处理 nonce 和重放保护的。这样,用户就可以为互不相关的合约转发多条消息,同时不用操心网络中交易的提交顺序 —— 例如,当用户为某些现实生活服务支付多笔资产的时候。然而,在某些情况下,用户可能希望往某一个合约发送多笔元交易。

例如,某一个只持有一种资产的 EOA 想要批量发薪水的时候。一个批处理元交易的系统在设计的时候必须考虑到这一点,并确保保持了交易发送的顺序。此外,批处理交易也让中继者可以通过用户签名的交易集中地收取手续费,也就是在一批交易中加入一笔转账给中继者的交易,方法也是可以定制化的。

可以是将 ERC-20 代币转给中继者,或者让用户的目标合约来支付该费用。中继集合器应当支持交易批处理,并通过 sendRawTransactionSet方法来补充sendRawTransaction,以便同一用户发送多笔交易。

sendRawTransactionSetPlural方法也应该加以利用,以方便中继对来自多个用户的交易进行批处理,从而最小化 Gas 费用。

图源:Tabookey

如果可以通过交易集中的一笔交易来为其提供资金,那么只需要对中继集合器现在的工作流程做很小的改动就可以实现上述操作,中继者可以将 gasPrice 和费用参数acceptRelayCall都设置为 0。中继者可以从交易集中不断提取出交易并按标准来处理,直至完成。我们面临的真正挑战是如何创建一种标准将交易打包进交易集,以及解包并执行交易(同时确保交易的原子性)。如果交易的原子性无法得到保证,中继者就可以通过只转发付费的交易来蒙混过关,而无视集合中的其它交易。这才是工作的重头!对于如何实现这一点,我目前还毫无头绪,但请继续关注我的下一篇文章!希望我可以将这一切变成可行的方案来参加竞赛。

总结

在我们看来,合约钱包有用不假,但有点名过其实了,而且因为合约钱包常常鼓励用户做那些便利日常使用的措施,还可能会危害到链上的隐私。这会极大地影响我们希望在以太坊生态内实现普遍化元交易的方式。我们希望在 Gas Station Network的基础上更进一步,以支持 EIP-712 和批量交易。这也意味着对 RelayHub 和 RelayRecipient 进行修改,并创建一个新标准,支持签名交易集合并保证交易的原子性。

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载 官网注册

binance币安交易所
已有2000万用户加入币安交易所

立即下载

达世币钱包教程,比特币使用教程

一、比特币使用教程比特币是一种建立在全球网络上的货币。比特币是一种没有央行参与发行的,总量固定的数字货币。比特币建立在全球的P2P网络上。全球无数的P2P节点全天候的在维护着比特币的网络。英文:bitcoin货币符号:英文缩写:BTC或 XBT。维基百科对比特币的介绍:Bitcoin与

国内可以挖矿比特币吗,挖矿比特币违法吗

一、比特币还能挖到吗比特币还可以挖到,不过开采的时间会比较长。截止目前为止,已经有1680万枚比特币被开采出来了,这一部分占全部比特币数量的80%。目前剩下的420万枚比特币要在剩下的一百多年时间里才能挖完。我们通过以上关于比特币还能挖到吗内容介绍后,相信大家会对比

2024年11月07日 AVAX币今日行情走势¥189.97

1.AVAX币价格:$26.73 2.2024年11月07日 AVAX币今日行情走势189.97币价格:189.97 3.24H最高:189.9 4.24H成交额:48.7亿 5.最大发行量:7.2亿 6.24H换手:6.3% 7.24H最低:168.86 8.24H成交量:2563.49万 9.当前发行量:4.47亿 10.24H波幅:12.46% 11.历史最高:1030.23 1

美国个人资产交易平台,中国数字资产交易平台如何交易

一、美股开户哪个券商好呀美股开户,教你如何找到靠谱券商近两年来,随着沪深港通的开通,以及盈路证券、富途证券、老虎证券等互联网美股券商的出现,美股逐渐走进内地投资者的视野。不过,跟A股相比,想要在美股市场喝酒吃肉,并非易事。尤其是在券商选择上,稍有不慎,就会掉入某些野

莱特币钱包签名,数字货币钱包大全,该用哪个钱包,看完这篇就够了

一、数字货币钱包大全,该用哪个钱包,看完这篇就够了在储布和挖矿方面,我推荐和数硬件钱包和家佳保智能家庭矿机,产品最核心优势只有两个字:安全。以和数硬件钱包为例。和数硬件钱包优势在于:一、私钥种子层层加密物理隔绝永不触网首先,创建钱包时,生成种子密码存储在本地

2024年11月03日 BABYDOGE币今日行情走势¥0.000000014

1.BABYDOGE币价格:$0.0000000020 2.2024年11月03日 BABYDOGE币今日行情走势0.000000014币价格:0.000000014 3.24H最高:0.000000016 4.24H成交额:1.04亿 5.最大发行量:420000.0万亿 6.24H换手:4.52% 7.24H最低:0.000000014 8.24H成交量:7303.06万亿 9.当前发行量:42

以太钱包使用手册,以太2.0钱包怎么用

一、一步一步教你使用以太坊钱包下面开始介绍myetherwallet记住,这个钱包只支持如下几种 ETH、ETC、和符合ERC20协议的token,其他不支持的币不要转进来(转进来会丢失)浏览器打开网站: 在页面右上角选择你喜欢的语言,如下图所示第一步创建钱包输入密码(至少9位)下载key

2024年11月15日 BGB币今日行情走势¥9.98

1.BGB币价格:$1.4 2.2024年11月15日 BGB币今日行情走势9.98币价格:9.98 3.24H最高:10.55 4.24H成交额:4.97亿 5.最大发行量:20.0亿 6.24H换手:3.55% 7.24H最低:9.77 8.24H成交量:4975.38万 9.当前发行量:20.0亿 10.24H波幅:8.03% 11.历史最高:10.55 12.最大市值:

2024年11月07日 HOT币今日行情走势¥0.01

1.HOT币价格:$0.0017 2.2024年11月07日 HOT币今日行情走势0.01币价格:0.01 3.24H最高:0.01 4.24H成交额:1.61亿 5.最大发行量:1776.19亿 6.24H换手:7.41% 7.24H最低:0.01 8.24H成交量:131.54亿 9.当前发行量:1776.19亿 10.24H波幅:13.11% 11.历史最高:0.22 12.最

库神钱包丢失,库神钱包公司倒闭了怎么办

一、冷钱包怎么创建简便生成冷钱包,需要工具:手机+内存卡。步骤如下:第1步:找一部不用的手机或专门用作钱包的手机,手机恢复出厂设置;第2步:断开手机网络;第3步:安装imtoken钱包;第4步:用imtoken钱包创建钱包;第5步:将私钥备份至内存卡,手抄好助记词多重备份,并导出钱包地

关于关闭比特币交易所,为什么不直接关闭虚拟币交易平台

一、为什么不直接关闭虚拟币交易平台这个问题问的好,既然加密货币国家法律没允许,那为啥又不直接关闭呢?我个人认为有以下几个理由:第一,加密货币虽然不是法币,但是是有价值的商品,既然是商品就应该允许买卖和自由交易;第二,作为一个国家来说,完全有权利做任何操作,

时间与交易所同步,如何让我的计算机时钟与证券交易所的时钟同步

一、股市竞价的时间和规则股市竞价的时间:集合竞价的时间是每个交易日的上午9:15-9:25,以及下午的15:57-15:00;连续竞价的时间为每个交易日的上午9:30-11:30以及下午13:00-15:00。竞价规则:集合竞价的成交原则是最大成交量原则。高于集合竞价产生的价格的买入申报全部成交;

史上最详细的FIL挖矿教程,fil怎么挖矿(fil矿机挖矿收益)

一、fil怎么挖矿(fil矿机挖矿收益)Fil币挖矿首要条件是拥有矿机,需要进行币和gas消耗封装,以获取算力进行挖矿,操作通常在国家级IDC机房内进行,确保稳定环境。硬件配置上,需使用大容量存储矿机,因挖矿涉及复杂机制,如复制证明和时空证明,封装过程中会消耗gas费用,封装

我的冷钱包,别人可以查我冷钱包币来源不

一、别人可以查我冷钱包币来源不不可以,别人是看不到的。冷钱包集数字货币存储、多重交易密码设置、发布最新行情与资讯、提供硬分叉解决方案等功能于一身,能有效防止黑客窃取。冷钱包的存储功能类似于硬盘,但它交易时,需要支付密码,并且随机生成强种子密码来获得私钥和地

瑞波交易平台,在哪里能够买瑞波币怎么申请瑞波币钱包

一、瑞波钱包怎么样提瑞波钱包怎么提现瑞波钱包是一款数字货币钱包,支持用户存储和管理瑞波币(XRP)等数字资产。如果您想提现您在瑞波钱包中持有的数字资产,可以按照以下步骤操作:1.打开瑞波钱包应用程序,并确保您已经完成了身份验证和绑定银行账户等相关操作。2.在钱包

以太钱包怎么安装,怎么注册以太坊钱包

一、怎么注册以太坊钱包申请以太坊钱包官方网站。搜索进入“以太坊钱包官网”,输入密码,然后单击生成钱包;下载并保存密钥文件;您可以选择其他熟悉的方式来访问您的钱包。你的钱包完全生成好了,别人可以给你发送以太坊,或者你也可以给别人发送以太坊了。必须记住申请过程

狗狗币哪里能交易平台,狗狗币是什么在哪里能买

一、我在正宇买的狗狗币忘了在哪个平台里我在正宇买的狗狗币忘了在哪个平台里?岁末年初,各类电信诈骗又开始冒头,而打着虚拟币投资幌子的互联网诈骗则频频出现,引起监管和公安的关注。“近期我们这幢楼有个不到30岁的女孩子因为炒虚拟货币亏了30多万元,还有附近一个男孩子

2024年11月11日 CVX币今日行情走势¥14.47

1.CVX币价格:$2.03 2.2024年11月11日 CVX币今日行情走势14.47币价格:14.47 3.24H最高:15.11 4.24H成交额:1.92亿 5.最大发行量:1.0亿 6.24H换手:16.17% 7.24H最低:14.04 8.24H成交量:1325.74万 9.当前发行量:9977.71万 10.24H波幅:7.61% 11.历史最高:428.32 12.最

链金网权益交易平台,什么是区块链社交电商平台(什么是区块链交易平台)

一、区块链怎么实行交易(区块链怎么实行交易的)区块链如何交易?区块链交易一般通过数字货币交易平台交易,非小号平台上有很多相关的平台介绍,可以根据需要选择从学术角度来解释,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链

2024年10月29日 IMX币今日行情走势¥9.81

1.IMX币价格:$1.38 2.2024年10月29日 IMX币今日行情走势9.81币价格:9.81 3.24H最高:9.88 4.24H成交额:3.45亿 5.最大发行量:20.0亿 6.24H换手:2.15% 7.24H最低:9.1 8.24H成交量:3520.88万 9.当前发行量:20.0亿 10.24H波幅:8.59% 11.历史最高:67.66 12.最大市值: