队列结束块事务操作码

本文为机器翻译
展示原文

抽象的

一种新的 OPCODE,允许对一段代码进行排队,并使用明确定义的 gas,该代码将在块末尾执行。如果两个交易对相同的块末尾代码进行排队,则它将仅执行一次。gas 成本由调用合约中的ETH支付。

动机

这将实现诸如区块拍卖之类的功能,允许一群人提交交易来交换某些资产,然后他们将按照合约定义的方式通过The Block末尾的区块拍卖一起执行,而不是按照它们出现的顺序执行。每笔交易都会将区块末尾的代码执行排队。如果单个交易在某个池上进行交换,那么区块末尾的执行不会改变今天的一切。如果多个人在单个区块内的某个池上提交交换,那么合约可以执行区块拍卖,而不是按照收到的顺序执行交换。这使得合约可以为每个人获得最优惠的价格,并打击区块内抢先交易之类的行为。这并不能解决跨区块抢先交易/反向交易的问题,但这比区块内抢先交易和夹持交易要难得多。

规格

大部分情况有待确定,但合约支付的 gas 允许交易者之间分摊成本策略(例如,分摊成本并在最后退款),并且要求在块末尾执行固定的 gas 使用量有助于解决延迟执行引入的箱子填充问题。

注意事项

允许指定依赖关系可能很有用,因此一个合约可以说“我希望我的块结束执行在另一个合约的块结束执行之后运行”。需要小心避免循环依赖,但这可以通过断言来实现,如果检测到循环依赖,则循环中的所有合约都不会获得其块结束执行。这强烈鼓励人们依赖具有固定依赖树的不可变块结束执行器。

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论