当前位置:首页区块链以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易

以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易

Eip-3074旨在消除元事务,降低合同的复杂性,并使通用账户(EOA)能够发送批量事务、截止日期事务和无序事务。

标题:eip-3074简介;Minamp;校对;剑气

以太坊钱包可能很快就会迎来一次重大升级。升级完成后,EOA可以发送批量事务、截止事务、无序事务等。

我和两位同事,@Sam wilsn和@aditerichs正在研究如何改善以太坊的交互体验。经过多次迭代,我们提出了eip3074:操作码auth和authcall。

要使用这两个操作码,外部帐户需要在链下签署一条消息,并将消息发送给中继。然后,中继将签名和调用数据发送到链上契约(称为“调用者”)。调用方契约首先使用操作码auth来验证签名,然后使用操作码authcall来中继外部帐户的调用。

authcall和普通调用只有一个区别:authcall将调用方(例如,消息的发送方)设置为使用操作码auth恢复的外部地址。这样,用户无需使用以太坊就可以与以太坊进行交互。换句话说,他们的事务是由接力“赞助”的。

你可能认为这种机制很熟悉。实际上,这类似于元事务的操作。但是,需要强调的是,不能为元事务任意设置消息发送方。因此,契约必须明确支持元事务。eip3074旨在消除元事务并降低契约的复杂性。

在深入研究它的工作原理之前,让我们先谈谈我们想要构建什么。我们希望建立一种机制,允许普通用户在不使用以太网货币的情况下发送不受信任的事务。这里的关键词是“不信任”,也就是说,用户不会授予中继任何可能被使用的特权。

eip3074通过仔细选择普通帐户签名中包含的参数来创建一个无信任系统。用户签名keccak(0x03++invoker) address++commit hash)

以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易

“类字节”是EIP 2718的常量字节,值为0x03。此字节的目的是避免与其他签名机制冲突,例如eip2930的访问列表事务、eip1559的费用市场事务、eip191的0x19签名消息等。

调用方地址将用户的调用绑定到特定的约定。用户签名仅对呼叫者合约有效。因此,用户可以选择他们信任的呼叫者,就像他们选择智能合约钱包来存储资产一样。

我们期望只有少数呼叫者存在,因为如果呼叫者契约的实现出错,用户可能会遭受损失(请注意,呼叫者选择自己加入)。开发一个安全的呼叫者契约的成本很高,需要多方审计和静态证明。

但和今天的做法没什么不同。智能合约钱包也应该在大量存款前经过全面审核和认证。很多大DeFi项目也是如此。

最后一个签名参数是commit Hash(或commit)。这使呼叫者和设计者能够更灵活地开发许多不同的解决方案。

此提交限制调用者仅执行特定操作并创建特定验证需求来处理调用。用户可以信任调用者遵循此过程,因为他们可以验证链上的代码。这就是区块链的优势。

让我们看一个简单的例子。用户希望通过呼叫者发送呼叫。为了避免它们的呼叫被无限中继,它们需要提供一个nonce和其他不可更改的值。用户散列这些值以获得提交,并将提交包含在签名消息中,以便可以使用auth验证契约。

以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易1

调用程序使用传入的值重新生成提交哈希。这样,如果付款人更改了其中一个值,则调用者计算的提交哈希将与外部帐户签名的提交哈希完全不同,从而导致auth恢复垃圾地址,如下图所示:

以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易2

我希望你现在相信,来电者就像一个智能合约钱包,可以被任何普通账户使用。现在让我们看看如何使用commit构建一个更有趣的解决方案。

通常,“一个操作对应一个签名”已成为一条经验法则。这是一个相对简单的理解。签名是基于事务的哈希值创建的。我们为什么不合并多个事务进行散列计算呢?原来,eip3074可以做到这一点。

只要一个帐号能够通过auth验证,调用者就可以根据帐号的要求进行任意次数的authcall。这是可以的,因为我们相信调用者将按原样执行代码。我们可以设计一个方案,将多个调用散列到commit中。

以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易3

在上图所示的方案中,调用者将合并所有值(nonce1、nonce2等)以散列并生成提交。调用者将使用此提交和用户签名来调用auth。Auth验证用户是否实际签署了这些参数。

然后,调用者遍历每个调用并验证nonce和其他参数,然后将经过身份验证的调用数据(calldata)发送到许可地址。

在此基础上,我们可以构建更多的解决方案。例如,假设您添加了一个新参数“shelf life”。将此参数与其他参数散列以获得提交。此外,在验证过程中,调用者将验证过期时间block.number。现在,可以使用外部帐户在期限内进行交易!

eip3074将在不引入额外信任假设的情况下带来更流畅的用户体验。如果您想阅读eip3074的全部内容,请点击此链接。

go以太坊的原实现在这里维护。

我们正在与一些对该机制感兴趣的团队合作。如果你认为这个机制是有用的,请让我们知道,让我们一起努力!欢迎对提案提供反馈,非常感谢!点击链接留下你的反馈。

最后,如果您对我们的工作感兴趣,我们的团队正在紧锣密鼓地招聘。我们致力于以太坊核心协议的中长期改进。有关更多信息,请发送@lightclients给我。

温馨提示:

文章标题:以太坊eip-3074分析:普通用户无需eth即可发送不信任的交易

文章链接:https://www.btchangqing.cn/257850.html

更新时间:2021年05月14日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

DEFI区块链

Defi罪犯在四个月内窃取了约2.4亿美元的加密货币,创下历史新高

2021-5-14 8:32:35

区块链

马斯克和V神同时动作 加密货币大跳水

2021-5-14 9:56:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索