以太坊元交易是一个代付Gas的方案,在没有以太币的账户,可以通过元交易发起交易,降低DApp的进入门槛。
上手 Dapp 实在是太麻烦了。以太坊生态若想普及,就应该允许新用户直接使用其功能,而不是先安排几座大山让用户翻山越岭。
这意味着需要为新来的用户垫付 Gas 费用。当前的以太坊协议并没有提供原生方法来实现这一点。然而,得益于公/私密钥对,用户可以通过对元交易(Ethereum Meta Transactions) 进行签名并激励 桌面矿工(desktop miners)来为他们支付 gas 费用。
在一开始,先要自动生成密钥对并保存在你的浏览器中。那些密码朋克一定会对这种方式嗤之以鼻,但用户不该被下载钱包的要求挡在门外。首先,他们要能使用产品并通过 Dapp 提供价值。一旦他们收到了一些代币或以太币,就应该马上将这些币转移到类似 MetaMask 或 Trust 这样的钱包中。
首先,我想介绍一些基础概念,来为解释以太坊上的元交易奠定基础。但如果你是一位密码学大牛的话,直接跳过吧...
通过哈希函数,可以将长短不一的信息转化为一段长度任意但可预测的(确定性的)结果。这是一类神奇的函数,可以将一大堆信息转变成一串短的,可作为摘要的数据 “指纹”。对于一个给定的输入而言,生成的 “指纹” 始终一致。如果你的原始数据中有任何细微的改动,生成的哈希值将大不相同。
公/私密钥对运用了一些令人头晕的数学知识,当然,想搞清楚它的概念并不难;可以使用私钥对一个信息进行签名,任何人都能使用与之对应的公钥来证明该签名的正确性(译者注:即验证签署交易的私钥与相应的公钥是否恰为一对)。重申一遍,我可以给你一个带有我签名的信息,而你只需使用我的公开信息就能从数学上证明我对这条特定的信息签过名。私钥极为敏感,绝对不能公示给他人,而公钥则就可以被广泛分享。你的以太坊地址就是你的公钥,它代表了你的身份(译者注:准确点来说,你的以太坊地址是用你的公钥单向推导出来的)。
公钥也可以用来加密一个简短的信息,然后,只有私钥的拥有者才能解密该信息。这并不重要,但非常酷不是么?所以我认为应该告诉你:)(译者注:这就所谓的 “非对称加密”。)
来自 [@cooganbrennan](https://ethfans.org/cooganbrennan "@cooganbrennan"):“通过对一串数据的哈希值签名,你实现了三件事:
不可干扰:你知道数据没有被篡改过
身份:你可以明确交易的发送方
不可抵赖:发送交易的人之后无法否认发送了该交易”
要想和区块链进行交互,你需要发送一笔交易。一笔交易由少数几部分组成,我喜欢用巨慢无比的邮件来类比:
这是一个非常不严谨的类比,像这样的类比我的脑子里还有一大堆。来边喝啤酒边慢慢聊吧,我在 Devcon 等你哦。
我的祖父曾跟我讲过一个关于他哥哥在他堪萨斯州的后院里种植番茄的故事。他会将前一天晚上采摘的番茄放在门前的台阶上,旁边摆上一个标着价格的天平。每天晚上他都会出门从一个雪茄盒里收回挣到的钱。这个系统严重依赖于人与人之间的信任。智能合约和这有点类似,但支撑它的是数学,而非信任。
我喜欢将智能合约看成带有一组规则的存储。假设在盒子里有 25 个番茄,规则是 15 美分一磅。如果你往雪茄盒中寄一封内含 30 美分的信件,就会有两磅番茄送到你家。这个规则会一直运行,除非番茄卖光了。在这一天结束的时候,合约的所有者可以取走雪茄盒中所有的钱,因为他通过私钥证明了自己是盒子的主人。
合约之间也能互相交流。它们甚至可以使用我们前面提到的技能——证明某个特定的消息是由某个特定的账户签名的。这也正是(元交易)这种技术的核心所在…
首先,我精心设计了一笔交易,它的结构与一般的以太坊交易类似,但我在里面附加了点额外的信息:
接下来,我不会把这笔交易直接发送给一个智能合约,我会将这笔交易发送到一个次级网络(secondary network)。这个网络会分析我请求的合法性并确保我签名的有效性。然后它们会选择哪些交易值得提交,并与区块链直接进行交互。
最终,当我的代理合约收到从第三方那里发来的我的交易之后,它将分析交易中的指令,然后付钱给第三方,并执行我的指令。这些指令可以是发送代币,调用函数,或任何普通区块链交易可以做到的事情。
在以太坊上通过身份代理合约进行元交易<sup>1</sup>
通过元交易,我们可以用一个完全没有以太币的账户来与区块链进行交互。对于推动以太坊的普及来说,这种技术可能是不可或缺的。用户并不关心去中心化或者私钥;他们更关心的是可以使用你的 Dapp 来做一些对他们而言重要的事情。
另一个关于元交易的非常棒的用例是Universal Logins <sup>2</sup>。你应该将以太币存在 “冷” 钱包中,并使用该 “冷” 钱包来给一个代理合约提供资金。这个合约将作为你的链上身份、代表你持有一些资金或代币。然后,随着各种新设备在你的生活中进出,你可以使用身份代理来信任它们。这些设备从未持有任何资金,里面的私钥也从未转移。同时,它们可以使用元交易和区块链进行交互。
跳跃代理——以太坊上的身份代理合约,为没有以太币的账户发起元交易
感谢您看完了这篇关于以太坊元交易的文章。可以来 Twitter 找我:https://twitter.com/austingriffith 或通过我的作品集了解更多关于我的信息。
https://twitter.com/mattgcondon/status/1022287545139449856 https://twitter.com/mattgcondon/status/1021984009428107264 https://twitter.com/owocki/status/1021859962882908160 https://twitter.com/danfinlay/status/1022271384938983424 https://twitter.com/PhABCD/status/1021974772786319361 Gnosis 安全合约 uPort 身份合约
1: https://www.youtube.com/watch?v=6r3SqCcEVU4
2: https://youtu.be/qF2lhJzngto
原文链接: https://medium.com/@austin_48503/ethereum-meta-transactions-90ccf0859e84
作者: Austin Thomas Griffith
翻译&校对: 曾汨 & 阿剑
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!