论文标题
可靠的分散交换设计通过可验证的测序规则
Credible Decentralized Exchange Design via Verifiable Sequencing Rules
论文作者
论文摘要
分散交易所交易一直是无许可区块链的主要用例之一,每日交易量超过数十亿美元。在现状中,用户广播交易和矿工负责组成一块交易并选择执行订单 - 交易中交易中执行的订单。由于缺乏监管框架,通常观察矿工通过前交易来利用其特权地位并获得风险费利润。在这项工作中,我们建议修改矿工与用户之间的相互作用,并启动{\ em可验证的测序规则}的研究。与现状一样,矿工可以确定块的内容;但是,他们承诺尊重一个测序规则,该规则约束执行顺序并且是可验证的(有一种多项式时间算法,可以验证执行订单是否满足此类约束)。因此,在矿工偏离测序规则的情况下,任何人都可以生成不合规的证明。我们询问是否有一些测序规则限制了两条流动性池交换中矿工的价格操纵。我们的第一个结果是不可能的定理:对于任何测序规则,矿工可以获得非零风险利润的用户交易实例。鉴于这种不可能的结果,我们的主要结果是可验证的测序规则,可为用户提供执行价格保证。特别是,对于任何用户交易a,它可以确保(1)A的执行价格至少与A是块中唯一的交易一样好,或者(2)A的执行价格比此“独立”价格差,而矿工在包含A中包括A时不会获得(或损失)。
Trading on decentralized exchanges has been one of the primary use cases for permissionless blockchains with daily trading volume exceeding billions of U.S.~dollars. In the status quo, users broadcast transactions and miners are responsible for composing a block of transactions and picking an execution ordering -- the order in which transactions execute in the exchange. Due to the lack of a regulatory framework, it is common to observe miners exploiting their privileged position by front-running transactions and obtaining risk-fee profits. In this work, we propose to modify the interaction between miners and users and initiate the study of {\em verifiable sequencing rules}. As in the status quo, miners can determine the content of a block; however, they commit to respecting a sequencing rule that constrains the execution ordering and is verifiable (there is a polynomial time algorithm that can verify if the execution ordering satisfies such constraints). Thus in the event a miner deviates from the sequencing rule, anyone can generate a proof of non-compliance. We ask if there are sequencing rules that limit price manipulation from miners in a two-token liquidity pool exchange. Our first result is an impossibility theorem: for any sequencing rule, there is an instance of user transactions where the miner can obtain non-zero risk-free profits. In light of this impossibility result, our main result is a verifiable sequencing rule that provides execution price guarantees for users. In particular, for any user transaction A, it ensures that either (1) the execution price of A is at least as good as if A was the only transaction in the block, or (2) the execution price of A is worse than this ``standalone'' price and the miner does not gain (or lose) when including A in the block.