以太坊元交易

ETH区块大康2019-10-09 22:00:11  阅读 -评论 0  阅读原文

引介

上手 Dapp 实在是太麻烦了。以太坊生态若想普及,就应该允许新用户直接使用其功能,而不是先安排几座大山让用户翻山越岭。

这意味着需要为新来的用户垫付 Gas 费用。当前的以太坊协议并没有提供原生方法来实现这一点。然而,得益于公/私密钥对,用户可以通过对元交易 进行签名并激励 桌面矿工(desktop miners)来为他们支付 gas 费用。

在一开始,先要自动生成密钥对并保存在你的浏览器中。那些密码朋克一定会对这种方式嗤之以鼻,但用户不该被下载钱包的要求挡在门外。首先,他们要能使用产品并通过 Dapp 提供价值。一旦他们收到了一些代币以太币,就应该马上将这些币转移到类似 MetaMask 或 Trust 这样的钱包中。

基础

首先,我想介绍一些基础概念,来为解释以太坊上的元交易奠定基础。但如果你是一位密码学大牛的话,直接跳过吧...

哈希

通过哈希函数,可以将长短不一的信息转化为一段长度任意但可预测的(确定性的)结果。这是一类神奇的函数,可以将一大堆信息转变成一串短的,可作为摘要的数据 "指纹"。对于一个给定的输入而言,生成的 "指纹" 始终一致。如果你的原始数据中有任何细微的改动,生成的哈希值将大不相同。

密钥对

公/私密钥对运用了一些令人头晕的数学知识,当然,想搞清楚它的概念并不难;可以使用私钥对一个信息进行签名,任何人都能使用与之对应的公钥来证明该签名的正确性(译者注:即验证签署交易的私钥与相应的公钥是否恰为一对)。重申一遍,我可以给你一个带有我签名的信息,而你只需使用我的公开信息就能从数学上证明我对这条特定的信息签过名。私钥极为敏感,绝对不能公示给他人,而公钥则就可以被广泛分享。你的以太坊地址就是你的公钥,它代表了你的身份(译者注:准确点来说,你的以太坊地址是用你的公钥单向推导出来的)。

公钥也可以用来加密一个简短的信息,然后,只有私钥的拥有者才能解密该信息。这并不重要,但非常酷不是么?所以我认为应该告诉你:)(译者注:这就所谓的 "非对称加密"。)
来自 @cooganbrennan:"通过对一串数据的哈希值签名,你实现了三件事:
不可干扰:你知道数据没有被篡改过
身份:你可以明确交易的发送方
不可抵赖:发送交易的人之后无法否认发送了该交易"

交易

要想和区块链进行交互,你需要发送一笔交易。一笔交易由少数几部分组成,我喜欢用巨慢无比的邮件来类比:

  • 目标地址:交易发送到的目标以太坊地址。可以是另一个人或一个智能合约。你可以将它想象成写在信封正面的收件地址。
  • 价值:这就像在信封里放一丢丢现金给收件人。
  • 数据:这就像你寄出的信件上的内容。当你只发送价值时,这部分通常是空的。
  • Nonce(流水号):由于你发送的内容都是数字信息,因此可能被复制。为了防止同一封信被寄了两次,我们会跟踪一个计数。这有点像信封本身的标识。(另一个关于 nonce 的形象比喻是支票号码。从技术上讲,银行不应该兑现最后一张现金支票之前的一张现金支票)
  • Gas Price:这就像是你放在邮箱中的一些零钱,用来激励邮递员为你送信。你放的零钱越多,邮递员取走你信件的可能性就越高。
  • Gas Limit:这就像邮递员送信的最远距离的限制。假设他最终要去地球的另一边为你送信,这意味着他要绕过重重阻碍……你当然希望避免这种情况,因为你要为他的行程买单。
  • 签名:最终,我们把上面的数据都汇总在一起并进行哈希运算、用你(对哈希值)的签名来封好信封,该签名证明里面的内容都经过了你的验证。
这是一个非常不严谨的类比,像这样的类比我的脑子里还有一大堆。来边喝啤酒边慢慢聊吧,我在 Devcon 等你哦。

智能合约

我的祖父曾跟我讲过一个关于他哥哥在他堪萨斯州的后院里种植番茄的故事。他会将前一天晚上采摘的番茄放在门前的台阶上,旁边摆上一个标着价格的天平。每天晚上他都会出门从一个雪茄盒里收回挣到的钱。这个系统严重依赖于人与人之间的信任。智能合约和这有点类似,但支撑它的是数学,而非信任。

我喜欢将智能合约看成带有一组规则的存储。假设在盒子里有 25 个番茄,规则是 15 美分一磅。如果你往雪茄盒中寄一封内含 30 美分的信件,就会有两磅番茄送到你家。这个规则会一直运行,除非番茄卖光了。在这一天结束的时候,合约的所有者可以取走雪茄盒中所有的钱,因为他通过私钥证明了自己是盒子的主人。

合约之间也能互相交流。它们甚至可以使用我们前面提到的技能——证明某个特定的消息是由某个特定的账户签名的。这也正是(元交易)这种技术的核心所在…

元交易

首先,我精心设计了一笔交易,它的结构与一般的以太坊交易类似,但我在里面附加了点额外的信息:

  • 数据:信件中的这部分内容变得更加复杂了。它是经过编码的信息,详细列出了要执行的操作,包括要调用的函数名的哈希值以及要传递给该函数的参数。
  • 奖励:在一个去中心化的系统中,经济激励尤为重要。如果你希望 "桌面矿工" 来为你的交易支付 gas 费用,你就得付钱。不过,这些钱并不来自于你的账户,而来自代理身份的智能合约。以太币或其他代币都能用来支付给矿工。
  • 需求:交易中还可以包含额外的需求,并且可以通过智能合约对这些需求进行检查。比如说按照时间顺序检查交易。假设这笔交易只能在月底完成,合约可以验证这一点。

接下来,我不会把这笔交易直接发送给一个智能合约,我会将这笔交易发送到一个次级网络(secondary network)。这个网络会分析我请求的合法性并确保我签名的有效性。然后它们会选择哪些交易值得提交,并与区块链直接进行交互。

最终,当我的代理合约收到从第三方那里发来的我的交易之后,它将分析交易中的指令,然后付钱给第三方,并执行我的指令。这些指令可以是发送代币,调用函数,或任何普通区块链交易可以做到的事情。

以太坊元交易的录屏演示

在以太坊上通过身份代理合约进行元交易

<https://www.youtube.com/watch?v=6r3SqCcEVU4>

结论

通过元交易,我们可以用一个完全没有以太币的账户来与区块链进行交互。对于推动以太坊的普及来说,这种技术可能是不可或缺的。用户并不关心去中心化或者私钥;他们更关心的是可以使用你的 Dapp 来做一些对他们而言重要的事情。

Universal Logins

另一个关于元交易的非常棒的用例是 "Universal Logins"。你应该将以太币存在 "冷" 钱包中,并使用该 "冷" 钱包来给一个代理合约提供资金。这个合约将作为你的链上身份、代表你持有一些资金或代币。然后,随着各种新设备在你的生活中进出,你可以使用身份代理来信任它们。这些设备从未持有任何资金,里面的私钥也从未转移。同时,它们可以使用元交易和区块链进行交互。

跳跃代理——以太坊上的身份代理合约,为没有以太币的账户发起元交易

<https://github.com/austintgriffith/bouncer-proxy?source=post_page-----90ccf0859e84---------------------->

感谢您看完了这篇关于以太坊元交易的文章。可以来 Twitter 找我:https://twitter.com/austingriffith 或通过我的作品集了解更多关于我的信息。

灵感来源:

@avsa —— https://www.youtube.com/watch?v=qF2lhJzngto@mattgcondon——
https://twitter.com/mattgcondon/status/1022287545139449856 &&
https://twitter.com/mattgcondon/status/1021984009428107264@owocki — https://twitter.com/owocki/status/1021859962882908160@danfinlay —— https://twitter.com/danfinlay/status/1022271384938983424@PhABCD —— https://twitter.com/PhABCD/status/1021974772786319361Gnosis 安全合约 <https://github.com/gnosis/safe-contracts>uPort 身份合约 <https://github.com/uport-project/uport-identity>


原文链接: https://medium.com/@austin_48503/ethereum-meta-transactions-90ccf0859e84
作者: Austin Thomas Griffith
翻译&校对: 曾汨 & 阿剑

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

比特币减半和以太坊2.0将为加密矿工带来巨大变化

比特币减半和以太坊2.0将为加密矿工带来巨大变化

在比特币减半和冠状病毒大流行来临之后,私人矿工们受到了冲击,但大型厂商也受到了影响。

以太坊2.0技术浅析

以太坊 2.0网络启动协调员Danny Ryan也在论坛中初步宣布,以太坊2.0最终测试网预计将于8月初正式启动测试。我们应该在以太坊2.0正式上线前对它的功能特性进行了解,更好的迎接区块链的新浪潮。

我们如何选择开发平台:超级账本还是以太坊?

只有授权成员才能访问和使用超级账本平台和工具。与以太坊相反,超级账本是一个许可的区块链平台,这意味着它是高度安全的。与由集中式公司控制的超级账本不同,以太坊由世界各地的开发者增强和改进。

比特币有什么缺点?

1.交易平台的脆弱性。比特币网络很健壮,但比特币交易平台很脆弱。交易平台通常是一个网站,而网站会遭到黑客攻击,或者遭到主管部门的关闭。2.交易确认时间长。比特币钱包初次安装时,会消耗大量时间下载历史交易数据块。而比特币交易时,为了确认数据准确性,会消耗一些时间,与p2p网络进行交互,得到全网确认后,交易才算完成。3.价格波动极大。由于大量炒家介入,导致比特币兑换现金的价格如过山车一般起伏。使得比

业务中使用区块链的四种方式

业务中使用区块链的四种方式

暴走时评:区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。 区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。越来越多的个人和企

区块链:法定数字货币技术路线的必然选择

区块链:法定数字货币技术路线的必然选择

在人类发展史上,货币的进化从未停止。从物物交换,到金属铸币,再到纸质货币,以及当前正在发展的数字货币正在向着越来越便捷的方向进化。 比特币的出世起初并未带来轰动,但是最近几年其价格惊人的爬高创造出了一个个造富神话,引起各国政府及监管机构的关注。虽然金融专家普遍认为它只是一种资产,而非货币,但是,其背后的区块链(Blockchain)技术引起了包括各大金融机构、政府、企业及学术界的浓厚兴趣,未

用区块链记录证书,证明真伪,墨尔本大学迈出了第一步

用区块链记录证书,证明真伪,墨尔本大学迈出了第一步

墨尔本大学宣布发起区块链认证和审核计划,允许通过一种隐私、安全且持久的方式验证学生的证书。 墨尔本大学正在试验一个区块链记录维护项目,允许接收者(即学生)存储他们的证书,出于核验目的,第三方也能访问这个系统。Learning Machine是这个发布系统的开发者,他们采用的是麻省理工媒体实验室(MIT Media Lab)在2016年提交的Blockcerts开源代码。 墨尔本大学副校长格雷

日本IT巨头富士通联合日本“三大行”开发区块链p2p资金转移系统

日本IT巨头富士通(Fujitsu)与三家大型银行已经宣布计划试点一项基于区块链创建的点对点资金转移系统。 通过与日本三大行——瑞穗金融集团,三井住友金融集团和三菱UFJ金融集团——的合作,富士通将现场试验一种基于云的区块链平台,用于在个体之间发送资金,并开发一款智能手机APP来提高这个系统的可用性。 从理论上讲,这个平台将把三大行的客户法定货币账户与这个区块链系统相连接。客户然后将能够使用这

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑