– 图源:Gitcoin –
引言
只要你愿意花钱,你可以在一笔以太坊交易内执行任何(不超出 Gas 限制的)操作 —— 在一个几乎是完全去中心化的无国界区块链网络上。听起来非常酷不是么?事实也确实如此。但是!问题就在于,执行交易需要耗费 Gas,而 Gas 是用以太币来支付的,可是新用户谁有以太币啊亲?(什么?你说赛博朋克、囤币党、传销组织都有?拜托那都不是正常人)
– 图源:这个表情包是我自己 P 的 : ) –
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 用于识别智能合约以防止诈骗,以及可以从透明操作中获益的组织使用 合约钱包/多重签名钱包,我举双手支持
来源:以太坊爱好者
原创文章,作者:共享财经,如若转载,请注明出处:http://www.doubi.com/?p=5232