AUTH:走进EIP-3074

以太坊钱包可能很快进行一次重大升级。部署了提案的变更后,外部账户(EOA)将马上可以发送批量交易、逾期交易、无序交易等。

我的同事@_SamWilsn_和@adietrichs和我一直致力于改善与以太坊交互的用户体验。经过了多次迭代,我们提出了"EIP-3074:AUTHandAUTHCALLopcodes"。

这些操作码是这样使用的:外部账户对一条链下信息签名,给一个中继器提供消息,这个中继器把签名和调用数据传给一个链上合约(被称为invoker,调用器),合约用操作码AUTH验证签名,随后用操作码AUTHCALL发送外部账户的调用。

操作码AUTHCALL的功能基本与CALL相同,除了它把CALLER(即msg.sender信息发送者)设为外部账户的地址,需要通过AUTH来恢复。这使得用户可以无须ETH也能与以太坊交互。也就是说,他们的交易可以由一个中继器来“资助”。

某年初抄底巨鲸开始出售COMP,当前已出售4000枚:7月19日消息,据余烬监测数据,某年初抄底巨鲸开始在链上出售COMP,当前已出售4000枚,均价72.44 USDT。该巨鲸今年自交易所共转出86976枚COMP,另转出了2992枚ETH和83815枚AAVE。[2023/7/19 11:05:07]

这个方案听上去可能很熟悉。实际上,它与meta-txs(元交易)的工作机制几乎相同。一个重要区别是meta-txs无法随意设置msg.sender。因此,合约必须明确支持meta-txs。EIP-3074旨在去除meta-txs,减少合约复杂性。

为了更深入它的工作机制,一起来了解我们正在构建什么吧。我们想要一个机制允许没有ETH的外部账户可以无须信任地发送交易。“无须信任”是关键。用户不应该给中继器任何可以被利用的特权。

澳大利亚监管机构建议将加密产品分为四类:2月3日消息,澳大利亚就自己的加密资产分类法公开征求意见。国家监管机构建议区分与加密相关的四种产品。澳大利亚财政部发布的关于“代币映射”(Token Mapping)的咨询文件显示,建议将加密产品分为四类:

1.加密资产服务。包括借贷、交易、资管、矿业、托管等。

2.中介加密资产。如某项权利或许可、知识产权、奖励计划、消费品和服务、稳定币、非金融资产和政府债券息票等。

3.网络代币。如BTC等构成点对点支付基础设施的“新型货币”。想想你原来的BTC。

4.智能合约。包括“中介”及“公共”,前者由中介机构用于提供服务;后者由各方用于消除对中介机构的需要。[2023/2/3 11:46:18]

EIP-3074允许通过谨慎选择加入到外部账户签名的参数来构建去信任系统。用户需要对keccak(0x03invoker_addresscommit_hash)哈希函数签名。

华谊兄弟王中磊:内容是元宇宙的核心:金色财经报道,2022年6月23日-30日,第十二届北京国际电影节相关活动首届“元宇宙电影论坛”在线上举办。谈及影视行业对于元宇宙的探索,王中磊认为,影视行业作为内容的创作者和产出者,必然也是数字化内容创作的主力军之一。从数字人到数字藏品,影视业也正在逐步探索与元宇宙的接入方式,并正打开新的想象空间。电影人已经开始踏上了虚拟现实电影的旅程,像圣丹斯、戛纳以及博尔德等国际电影节已经开始了虚拟现实电影的相关奖项,北京国际电影节也开始了有关的论坛环节,这必将成为未来的趋势。虚拟现实电影拥有从第一个画面开始就让人深度沉浸并产生临场感的优势,当前它正打破各种技术限制飞速成长。

此外,元宇宙发展的核心不是技术,而是内容。技术离开了内容的话,就没有温度,也没有感情了。他认为,元宇宙是人类不断追求创新,不断开拓新领域的产物,而内容同样是在不断地引领创新。[2022/6/26 1:31:59]

“typebyte(类型字节)"是EIP-2718里值为0x03的恒定字节。这是用来防止与其他签名规则冲突的,比如EIP-2930的访问列表交易、EIP-1559的费用市场交易、EIP-191的0x19签名消息等。

马斯克暂时搁置为推特并购交易筹集新资金的工作:6月8日消息,知情人士称,特斯拉CEO埃隆·马斯克为推特并购交易安排新融资的努力已被搁置,因围绕这笔交易存在不确定性。马斯克一直威胁要退出这笔交易,除非推特向他提供数据,以支持该公司估计的虚假或垃圾账户占其用户基础的比例不到5%。据报道,马斯克一直在讨论从阿波罗全球管理公司为首的一批私募股权公司安排20-30亿美元的优先股融资,消息人士称,在收购交易前景明朗之前,这些对话将暂时搁置。(华尔街日报)[2022/6/8 4:09:15]

调用器地址把用户的调用与一个特定合约进行捆绑。签名只对该合约有效,即调用者。这使得用户可以选择一个他们信任的调用器——就像选择一个智能合约钱包托管资产一样。

我们预想调用器的数量不会多,因为如果他们实现出错的话(注意调用器的使用是选择性的),用户的利益会受损。开发一个安全的调用器花费会很高。它需要接受多方的审计,并在静态证明上是可靠的。

这与现状其实没有太大区别。智能合约钱包在被用来托管大额资产前应该通过了全面的审计与证明。很多大型DeFi项目也是这样做的。

要签名的最后一个参数是commit_hash。这就是给调用器设计师很大灵活性,以及允许非常多不同签名规则得以开发的地方。

委托参数限定调用者只能执行某些操作,并为处理一次调用建立了一定的有效性要求。用户可以信任调用器会遵循这个程序,因为代码可以在链上得到验证。这是区块链很好的一个特性。

现在来看一个简单的案例。假设一个用户想通过调用器发送一个调用。为了避免调用被传送,他们提供一个随机数。他们还提供其他不可篡改的数值。用户对这些数值进行哈希以获得委托,并在用于AUTH的签名信息里使用该委托。

调用器会用收到的值重新生成委托哈希值。这样,如果资助方修改了一个值,调用器会计算出一个不同于外部账户签名的委托哈希值,导致AUTH恢复一个垃圾地址。会出现下图的情况:

希望现在你相信调用器能像一个智能合约钱包那样运作,任何外部账户都可以使用。现在看一下如何用委托哈希构建更多有趣的方案。

总的来说,最重要的是”一个操作一个签名“。这是看待事情的一个简单方法。一个签名由一笔交易的哈希创造,为什么不对多笔交易进行哈希呢?其实EIP-3074是可以实现的。

当一个账户已经用AUTH验证了,调用器就可以进行该账户想要的、尽可能多次的AUTHCALL。因为我们信任该调用器会没有偏差地执行它的代码,这很好。我们还可以设计出委托哈希是多个调用的哈希值的方案。

在上文的方案里,调用者会用到全部的数值(随机数1、随机数2等),并把它们合起来进行哈希,生成一个委托哈希值。它用委托哈希值和用户签名来调用AUTH。AUTH会验证用户是否都对那些参数签名了。

然后,调用器会对所有调用逐个验证其随机数和其他参数,然后把鉴别过的调用数据发送到鉴别过的地址。

在这个基础上可以构建更多的方案。假如你添加了一个新参数”expiration"。这个参数会被哈希成委托哈希值,且在验证过程中,调用者会验证是否expiration<block.number。这样外部账户就可以有逾期交易了!

EIP-3074提供的是功能强大的基元,能为更多顺滑用户体验打开可能性而无须引入额外的信任假设。如果你想阅读这份EIP的完整版,你可以点击这里:

https://eips.ethereum.org/EIPS/eip-3074

用go-ethereum编写的原型实现可以在这里看到:

https://t.co/XWhlX9C4Y5?amp=1

原文链接:

https://twitter.com/lightclients/status/1371911245561917441

来源|@lightclients

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:93ms0-0:693ms