由Flashbots开创的MEV竞拍服务已受到了矿工们的欢迎,那么这种竞拍是否是最优的呢?
注:原文作者是斯坦福大学电气工程博士GuillermoAngeris,placeholder研究员AlexEvans以及Gauntlet创始人TarunChitra。
在包分配问题中,矿工面临着固定数量的交易,而他们要将这些交易包含在给定的区块中,此外,矿工还可以选择在该区块中包含哪些包。矿工通过将每个包包含在区块中来赚取利润,然而,包具有很多必须要考虑的分配约束。在这篇文章中,我们给出了一个简单的整数线性规划问题公式,并提供了一些基本的扩展。
简介
矿工可提取价值这个术语,指的是矿工根据交易排序可获得的任何超额利润。在区块链等去中心化系统中,用户通过点对点的gossip网络向矿工提交一组交易和费用。而矿工们会收集这些交易,并将它们分批成一个完全有序的序列,然后由大多数矿工验证并接受作为下一个区块。
然而,在很多区块链中,矿工可选择要包含的交易集以及提交交易的顺序。
如果一名矿工提交一笔具有经济意义的交易,他们可以对交易重新排序以确保他们的交易首先执行,这也被称为抢先交易。自从MEV这一概念被提出以来,已经出现了很多涉及闪电贷、借贷以及三明治攻击的新型MEV形式。MEV代表了一种价值提取形式,而用户无法通过简单地修改其交易竞价行为来消除它。
MEV运营商Flashbots宣布开源Flashbots Builder:11月20日消息,MEV运营商Flashbots宣布开源Flashbots Builder,旨在帮助以太坊生态系统进一步发展,目前源代码已经发布在GitHub上。
Flashbots表示,利用其最新构建的完全去中心化区块构建器新版本SUAVE,每个构建者都能成为区块贡献的一份子,而不会让某个单一实体构建整个区块。[2022/11/21 7:50:35]
公平。从理论上讲,MEV可能导致区块链共识不稳定,并可能迫使用户在预期交易费用之外支付额外的费用来处理交易。这也引出了很多研究,而这些研究的重点是保证交易排序及包含方面的“公平性”。而公平算法尝试使用密码学方法,例如对交易排序或待处理交易状态的时间锁承诺,以强制基于时间的“公平”保证。
MEV竞拍。或者,有一些研究工作表明,MEV是区块链独有的,它无法通过纯粹的密码学方式删除。这一系列工作有效地表明,相比用密码学方式删除MEV,矿工和用户共享MEV利润将导致稳定的均衡。
在这个由Flashbots开创的世界中,“探索者”试图找到交易的最佳顺序,然后竞标由矿工以特定顺序执行的“包”交易。这种出价通过MEV拍卖进行调解——即参与者愿意在链下拍卖中向矿工支付额外的优先出价。因此,MEV竞拍是更受欢迎的,并且这种方式在2021年为矿工创造了超过7亿美元的额外收入。
最优性。然而,一个自然要问的理论问题是,这种竞拍是否是最优的呢?目前,Flashbots竞拍通过使用约束求解器解决背包问题(Knapsackproblem)来有效地执行交易包。但是从理论上讲,我们应该期望近似整数线性规划(ILP)的解决方案是“最优”的吗?应该如何描述最优性?由于MEV是根据所有资产的可提取价值来定义的,因此任何最优概念都取决于任何一组交易和包可实现的最大利润。
Wing Flash Pools上WING和pWING的Supply功能暂停:7月29日消息,跨链DeFi平台Wing发推称,由于WING价格波动,可能对用户资产造成潜在风险,所有Wing Flash Pools上WING和pWING的Supply功能暂时关闭,恢复时间将另行通知。[2022/7/29 2:46:06]
总结。在这篇短论文中,我们给出了在单个区块中包含交易包的最优ILP的首个正式描述。我们的描述侧重于MEV的三种操作形式,包括抢先交易、尾随交易以及三明治交易。我们假设在实践中使用的精确gas模拟方法是作为预处理步骤执行的,它将分配问题与正确估计单个包利润的问题解耦。我们的公式可以很容易地用高级描述语言进行优化并在实践中使用。
定义
在这节内容中,我们首先来描述一下这篇论文中使用的基本定义。
交易:矿工通常从一系列的交易开始,我们把这些交易写成一些集合T。这些交易由区块链的用户提供,它们可以是Uniswap或Curve的swap交易、借贷或预言机更新等交易。
包:矿工还接受许多由用户提交的包,所谓包是一个带有关联交易的操作,每个包还包括了一些出价,例如,用户愿意支付多少钱才能将其包包含在区块中。矿工可以决定区块中包含哪些包以及交易。而矿工从包中获得的利润,等于区块中包含的各个出价的总和。
操作:从以前开始,每个包都将一个操作与一笔交易相关联。可能的操作是:抢先交易t,尾随交易,以及三明治交易。
慢雾:Equalizer Finance被黑主要在于FlashLoanProvider合约与Vault合约不兼容:据慢雾区消息,6 月 7 日,Equalizer Finance 遭受闪电贷攻击。慢雾安全团队以简讯形式将攻击原理分享如下:
1. Equalizer Finance 存在 FlashLoanProvider 与 Vault 合约,FlashLoanProvider 合约提供闪电贷服务,用户通过调用 flashLoan 函数即可通过 FlashLoanProvider 合约从 Vault 合约中借取资金,Vault 合约的资金来源于用户提供的流动性。
2. 用户可以通过 Vault 合约的 provideLiquidity/removeLiquidity 函数进行流动性提供/移除,流动性提供获得的凭证与流动性移除获得的资金都受 Vault 合约中的流动性余额与流动性凭证总供应量的比值影响。
3. 以 WBNB Vault 为例攻击者首先从 PancekeSwap 闪电贷借出 WBNB
4. 通过 FlashLoanProvider 合约进行二次 WBNB 闪电贷操作,FlashLoanProvider 会先将 WBNB Vault 合约中 WBNB 流动性转给攻击者,随后进行闪电贷回调。
5. 攻击者在二次闪电贷回调中,向 WBNB Vault 提供流动性,由于此时 WBNB Vault 中的流动性已经借出一部分给攻击者,因此流动性余额少于预期,则攻击者所能获取的流动性凭证将多于预期。
6. 攻击者先归还二次闪电贷,然后从 WBNB Vault 中移除流动性,此时由于 WBNB Vault 中的流动性已恢复正常,因此攻击者使用添加流动性获得凭证所取出的流动性数量将多于预期。
7. 攻击者通过以上方式攻击了在各个链上的 Vault 合约,耗尽了 Equalizer Finance 的流动性。
此次攻击的主要原因在于 Equalizer Finance 协议的 FlashLoanProvider 合约与 Vault 合约不兼容。慢雾安全团队建议协议在进行实际实现时应充分考虑各个模块间的兼容性。[2022/6/8 4:09:22]
对于给定的交易t∈T,要么是进行三明治交易t,要么是进行抢先交易以及尾随交易t。例如,如果有三个包与交易t关联,其中一个在t之后进行尾随交易,一个执行抢先交易,另一个执行三明治交易,那么矿工可以选择包括抢先交易包和尾随交易包,或者是三明治交易包,但不能同时包括这两个类型。
存储器大厂华邦电:元宇宙后续对Flash需求将持续增加:1月17日消息,存储器大厂华邦电表示,目前市面上的VR装置均搭载多颗NOR Flash元件,随着元宇宙的虚拟实镜装置设计将更趋轻巧,不同应用市场在运算功能及反应速度的要求提升,后续对Flash需求将持续增加。[2022/1/17 8:54:29]
我们把这三个操作的空间称为A。现在我们可以很容易地将包定义为与交易t∈T相关联的操作,而它会有一个出价金额。即包是一个三元组(a,t,p)∈A×T×R+,所有包的集合将由B?A×T×R+给出。
利润最大化。剩下的问题是:矿工如何选择哪些交易包含在他们的区块中,以实现利润最大化?在下一节中,我们将展示这一问题可表述为一个简单的整数线性规划问题,而其通常可通过现代计算机在合理的时间内解决。
问题表述
我们将利润最大化问题表述为整数线性规划(ILP),我们将其称为包分配问题。
设置函数。为方便起见,我们将编写定义以下函数。这里,t∈T是一笔交易,而B是所有包的集合。
我们将s定义为与三明治交易t关联的包集合:
类似地,f是与t相关联的抢先交易,b是与t相关联的尾随交易。我们假设B由b=1,2,...索引,其中n是提议的包的数量。
动态 | Xpring投资Flare Networks以改善XRR用例:金色财经报道,Ripple投资部门Xpring宣布投资Flare Networks,以支持XRP的新用例。公告指出,对于XRP用例,Flare将使用XRP地址和加密系统,为XRP用户提供与Flare网络上的智能合约进行无缝交互的方式。Xpring认为,用户和开发人员希望在更多的用例中利用XRP,而Flare Network将为更多希望利用XRPL满足其需求的公司和开发人员提供这种能力。Flare Network目前正与其早期合作伙伴进行测试。[2019/11/6]
问题陈述:将包分配问题写成整数线性规划问题的一种简单方法如下:
这里,
是优化变量,如果当前区块中应包含包b,则xb为1,否则为0。问题数据是
,这是一个向量,使得cb≥0是矿工在他们的区块中包含包b所获得的利润,而T是要包含在此区块中的交易集)。
标准形式。问题(1)可以用矩阵表示法写得更简洁一些。为此,我们将定义m=|T|,交易总数,以及矩阵
为:
对于每笔交易t∈T和包b∈B,使用这些新的定义,问题可用以下方式编写:
其中1是适当维度的全1向量,而
是优化变量。
解释。我们可以将目标和约束解释如下。目标
仅仅是包含在区块中的包给出的利润总和。第一个约束意味着区块中最多包含一个三明治包,或者区块中最多包含两个抢先交易或尾随交易t的包。第二个约束意味着对于每笔交易t,最多包含一个抢先交易包,以及最多包含一个尾随交易包,而最后一个约束是将x的条目约束为布尔值。
放宽松。一般来说,除了非常小的实例之外,问题(1)可能很难解决,因为x的条目有布尔约束。但是,在许多实际情况下,将布尔约束放宽为边界约束,经过一些简单的舍入方案后,可以产生合理的实际性能以及合理的解决方案。一般来说,这个宽松问题的最佳目标,始终是矿工可能获得的最大利润的上限,而任何舍入方案都会给出一个下限。这可以用来给出所提议的包分配的次优程度的一个界限。例如,如果放宽后的利润为1.2ETH,而拟议分配的利润为1ETH,则拟议分配的次优性最多为1.2/1?1=20%。换句话说,最多可将提议的分配提高20%。
2.1扩展
问题有几个简单但非常有用的扩展。
包约束。例如,用户可能希望指定几个包,这些包必须由矿工一次性全部包含,或者根本不包含。我们可以把它写成包Bi?B的子集。对于i=1,。..,?,如果Bi中包含任何一个包,则矿工必须包含包Bi的整个子集。
新的优化问题由下面的公式给出:
其中优化变量是
和
,而问题数据是在(2)中定义的矩阵
和矩阵
:
换句话说,D是一个对角矩阵,其对角条目是集合Bi的大小,而F是一个矩阵,使得(Fx)i给出了Bi中要包含在区块中的包的数量。约束Fx=Dy简单地表示,对于每个可能的i,要么包含所有|Bi|包,要么只包含0个包。
gas限制。另一种可能的扩展,是在优化问题上包含总gas约束。例如,当包含在区块中时,每个包b∈B可能使用一些最大量的gas。我们可以很容易地附加约束,即包使用的最大gas总量不超过交易)执行后剩余的gas量;即
,其中M≥0是剩余的gas量。我们注意到,这可能是一个很难获得合理限制的数量,因为当区块中包含包时,交易使用的gas可能会发生巨大变化。有其他可能的方法来进行计算,但我们不在这里讨论它们。
结论
在这篇论文中,我们提供了一个简单但非常通用的公式,它可以用于解决矿工利润最大化包分配的问题。虽然该问题通常是NP问题,但我们怀疑大多数整数线性规划求解器在实际情况下可能有很好的表现。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。