Chainlink 2.0白皮书:去中心化预言机(五)—— 公平排序服务

煤油灯科技2022-10-19 09:53

5 公平排序服务 

我们预计DON将利用其网络、计算和存储能力提供的一项重要服务称为公平排序服务 (FSS)。

虽然FSS可以简单地被视为在DON框架内实现的应用程序,但我们强调它是一项我们认为跨区块链需求量很大的服务,我们希望Chainlink网络能够积极支持。

当在公共区块链网络上执行时,当今的许多DeFi应用程序揭示的信息可以被用户利用以谋取利益,类似于现有市场中普遍存在的内部泄密和操纵机会 [64, 155]。相反,FSS为建立公平的DeFi生态系统铺平了道路。FSS帮助开发人员构建不受信息泄露导致的市场操纵的DeFi合约。鉴于我们在下面强调的问题,FSS对于第2层服务特别有吸引力,并且适合我们在第6节中讨论的此类服务的框架。

挑战:在现有的无许可系统中,交易完全由矿工自行决定。在许可网络中,验证者节点可以发挥相同的权力。这是在其他分散系统中很大程度上无法识别的短暂集中化的一种形式。矿工可以(暂时)为自己的利益审查交易 [171] 或对交易进行重新排序以最大化自己的收益,这一概念称为矿工可提取价值 (MEV) [90]。MEV这个词有点欺骗性:它不仅仅指矿工可以捕获的价值:一些MEV可以被普通用户捕获。

然而,由于矿工比普通用户拥有更多权力,MEV代表了任何实体可以通过对抗性重新排序和补充交易插入获得的价值数量的上限。 即使矿工仅根据费用(gas)订购交易,无需操纵,用户自己也可以操纵 gas 价格,以使他们的交易优于那些不太复杂的交易。

Daian等人。[90]记录和量化机器人(不是矿工)利用气体动力学的方式损害当今DeFi系统的用户,以及MEV甚至如何威胁区块链中底层共识层的稳定性。

交易订单操纵表面的其他示例,例如 [50, 154]。

诸如汇总之类的新交易处理方法是解决高吞吐量区块链扩展问题的一种非常有前途的方法。然而,它们并没有解决MEV的问题。相反,他们将其转移到生成汇总的实体。该实体,无论是智能合约的运营商还是提供具有有效性证明的(zk-)rollup的用户,都有权订购和插入交易。换句话说,汇总将MEV替换为REV:汇总可提取值。

MEV会影响即将提交到内存池但尚未提交到链上的交易。有关此类交易的信息在网络中广泛可用。因此,矿工、验证者和普通网络参与者可以利用这些知识并创建相关交易。此外,矿工和验证者可能会影响他们自己提交的交易的顺序,并利用这一点为自己谋利。

自1990年代[71, 190]以来,领导者对共识协议中交易排序的不当影响问题在文献中就已为人所知,但迄今为止在实践中尚未实现令人满意的解决方案[97]。主要原因是所提出的解决方案——至少直到最近——还不能轻易地与公共区块链集成,因为它们依赖于在确定它们的顺序之前一直保密的交易内容。

公平排序服务 (FSS) 概述:DON将提供工具来分散交易排序,并根据依赖合约创建者指定的策略实施它,理想情况下是公平的,而不是有利于希望操纵交易排序的参与者。这些工具共同构成了FSS。

FSS包括三个组件。首先是交易监控。在FSS中,中的预言机节点都监控MAINCHAIN的内存池,并且(如果需要)允许通过专门的通道离线提交交易。第二个是交易的排序。中的节点根据为该合约定义的策略为依赖合约订购交易。三是过账交易。交易排序后,中的节点共同将交易发送到主链。

FSS的潜在好处包括: 

  • 排序公平性:FSS包括帮助开发人员确保输入特定合约的交易的排序方式不会给资源充足和/或精通技术的用户带来不公平的优势。可以为此目的指定订购策略。
  • 减少或消除信息泄露:通过确保网络参与者不能利用有关即将发生的交易的知识,FSS可以减少或消除基于交易提交之前网络中可用信息的抢先交易等攻击。防止利用这种泄漏可确保依赖于原始未决交易的对抗性交易在原始交易被提交之前无法进入分类帐。
  • 降低交易成本:通过消除玩家向智能合约提交交易的速度需求,FSS可以大大降低交易处理成本。
  • 优先排序:FSS可以自动给关键交易特殊的优先排序。例如,为了防止针对预言机报告的抢先攻击,例如[79],FSS可以追溯性地将预言机报告插入到交易流中。

DON中FSS的一个总体目标是授权DeFi创造者实现公平的金融系统,即基于速度、内部知识或执行技术的能力不使特定用户(或矿工)优于其他人的系统操纵。虽然清晰、笼统的公平概念难以捉摸,而且任何合理意义上的完美公平都无法实现,但FSS旨在为开发人员提供一套强大的工具,以便他们能够执行有助于实现DeFi设计目标的策略。

我们注意到,虽然FSS的主要目标是充当DON所针对的MAINCHAIN的公平排序服务,但FSS保证的一些相同的公平性要求也适用于在DON各方之间运行的(去中心化)协议。因此,FSS可以更广泛地被视为由DON节点子集提供的服务,不仅可以公平地排序MAINCHAIN用户发送的交易,还可以公平地排序其他DON节点之间共享的交易(即消息)。在本节中,我们将主要关注对MAINCHAIN交易进行排序的目标。

部分组织:在5.1节中,我们描述了两个激发FSS设计的高级应用程序:防止预言机报告的抢先运行和防止用户交易的抢先运行。然后,我们将在第5.2节中提供有关FSS设计的更多细节。第5.3节描述了公平排序保证的示例以及实现这些保证的方法。最后,第5.4节和第5.5节讨论了对此类策略的网络级威胁以及解决它们的方法,分别针对网络泛洪和Sybil攻击。

5.1 抢先攻击问题 

为了解释FSS的目标和设计,我们描述了抢先攻击的两种一般形式以及现有解决方案的局限性。Front-running举例说明了一类交易排序攻击:有许多相关的攻击,例如back-running和三明治(front-running plus back-running)[237],我们不在这里介绍,但FSS也帮助解决。

5.1.1 Oracle Front-Running 

在其为区块链应用程序提供链下数据的传统角色中,oracle成为前端攻击的自然目标。

考虑使用预言机向链上交易所提供各种价格信息的常见设计模式:定期(比如每小时),预言机收集不同资产的价格数据并将这些数据发送到交易所合约。这些价格数据交易带来了明显的套利机会:例如,如果最新的预言机报告列出了某些资产的更高价格,对手可以抢先购买预言机报告并在预言机报告处理后立即转售资产.

减速带和追溯定价:预言机前端运行问题的自然解决方案是给予预言机报告高于其他交易的特殊优先级。例如,可以以高额费用发送预言机报告,以鼓励矿工首先处理它们。但这并不能阻止套利机会高的抢先行为,也不能阻止矿工自己套利。

因此,一些交易所采取了更重量级的“减速带”,例如在处理之前将用户交易排队等待多个区块,或者在新的预言机报告到达时追溯调整价格。这些解决方案的缺点是它们增加了交换实施的复杂性,增加了存储需求并因此增加了交易成本,并破坏了用户体验,因为资产交换仅在很长一段时间后才被确认

捎带:在继续讨论FSS之前,我们讨论捎带,这是一种非常简单而优雅的预言机抢先运行问题的解决方案。但不适用于其他场景的抢占先机。

简而言之,预言机不是定期向链上合约发送报告,而是发布签名报告,用户在购买或出售链上资产时附加到他们的交易中。然后交易所简单地检查报告是否有效和新鲜(例如,预言机可以签署报告有效的一系列区块),并从中提取相关的价格信息。

与上述“减速带”方法相比,这种简单的方法有许多优点:(1)交易所合约不需要保持价格反馈状态,这应该会降低交易成本; (2) 由于预言机报告是根据需要在链上发布的,预言机可以产生更频繁的更新(例如,每分钟),从而最大限度地减少提前运行报告的套利机会; (3) 交易可以立即得到验证,因为它们总是包含新的价格信息。

然而,这种方法并不完美。首先,这种捎带解决方案让交易所的用户有责任获取最新的预言机报告并将其附加到他们的交易中。其次,虽然捎带可以最大限度地减少套利机会,但它不能完全阻止它们而不影响链上合约的活跃性。事实上,如果一个预言机报告在某个区块号之前有效,那么提交到区块的交易将需要一个新的有效报告。由于从预言机向用户传播报告的固有延迟,对于区块有效的新报告必须在区块被挖掘之前的某个时间段内公布,例如在区块,从而创建一个存在短期套利机会的个区块序列。我们现在描述FSS如何绕过这些限制。

优先考虑使用FSS的预言机报告:FSS可以通过构建上述捎带解决方案来解决预言机的抢先运行问题,但将使用预言机报告增加交易的额外工作推到去中心化预言机网络。

在高层次上,预言机节点收集以链上交易所为目的地的交易,就实时价格馈送达成一致,并将价格馈送与收集的交易一起发布到主链合约。从概念上讲,可以将这种方法视为“数据增强交易批处理”,其中预言机确保始终将最新的价格馈送添加到交易中。

FSS解决方案可以对交易所的用户透明地实施,并且对合约逻辑的更改最少,正如我们在第5.2节中更详细描述的那样。确保新的预言机报告始终优先于用户交易只是FSS可以采用和执行的排序策略的一个示例。FSS确保订单公平的政策在第5.3节中进行了更一般的描述。

5.1.2 前端运行用户交易

我们现在转向通用应用程序中的前端运行,上面的防御方法不起作用。该问题可以通过以下场景大致捕获:攻击者看到一些用户交易tx1发送到P2P网络并注入自己的对抗性交易tx2,以便在tx1之前处理tx2(例如,通过支付更高的交易费用)。例如,这种抢先交易在利用DeFi系统 [90] 中的套利机会的机器人中很常见,并影响了各种去中心化应用程序的用户[101]。在区块链上处理的交易之间施加公平的顺序可以解决这个问题。

更根本的是,有时甚至不需要查看tx1的细节,仅仅知道它的存在可能会让对手通过自己的tx2抢先运行tx1并欺骗创建tx1的无辜用户。例如,用户可能会定期交易特定资产。防止此类攻击还需要避免元数据泄漏的缓解措施[62]。存在一些针对此问题的解决方案,但它们引入了延迟和可用性问题。

从网络订单到FSS的最终订单:抢先交易的机会出现了,因为现有系统没有机制来确保交易出现在链上的顺序尊重事件的顺序和网络外的信息流。这代表了由于区块链上的应用程序(例如交易平台)的实施存在缺陷而引起的问题。理想情况下,可以确保交易在区块链上的提交顺序与它们被创建并发送到区块链的P2P网络的顺序相同。但由于区块链网络是分布式的,因此无法捕捉到这样的顺序。因此,FSS引入了防止违反公平性的机制,这仅是由于区块链网络的分布式特性而出现的。

5.2 FSS详情

图12:具有两种不同交易路径的Order-fair内存池:直接交易和基于内存池。

图12显示了FSS的一般示意图。为确保公平,提供FSS的DON必须在交易进入MAINCHAIN时对其进行干预。

可能需要对客户、MAINCHAIN上的智能合约或两者进行调整。在高层次上,FSS对交易的处理可以分解为三个阶段,如下所述: (1) 交易监控; (2) 交易排序; (3) 交易过帐。根据用于事务排序的排序方法,需要额外的协议步骤,如下一节所述。

5.2.1 交易处理 

交易监控:我们设想FSS有两种不同的方法来监控针对特定智能合约的用户交易,直接和基于内存池:

直接:直接方法在概念上最简单,但需要对用户客户端进行更改,以便将交易直接发送到去中心化Oracle网络节点,而不是发送到主链的节点。 DON收集发往特定智能合约SC的用户交易,并根据一些排序策略对它们进行排序。然后DON将订购的交易发送到主链上的智能合约。一些排序机制也需要直接方法,因为创建交易的用户必须在将其发送到FSS之前对其进行加密保护。

基于内存池:为了促进FSS与遗留客户端的集成,DON可以使用内存池服务(MS)来监控主链的内存池并收集交易。

直接传输可能是许多合约的首选实施方式,我们认为在许多情况下它应该是相当实用的。

我们简要讨论了如何对现有DApp进行最低限度的修改以支持直接传输,同时保持良好的用户体验。我们描述了使用以太坊和 MetaMask [6] 的方法,因为这些是当今最流行的选择,但所提到的技术应该扩展到其他链和钱包。最近的以太坊改进提案,“EIP-3085:钱包添加以太坊链RPC方法”[100],将使MetaMask和其他的自定义以太坊链(使用不同于MAINCHAIN的CHAIN ID以防止重放攻击)的目标变得容易基于浏览器的钱包。在实施此提议后,寻求使用DON的DApp只需向其前端添加一个方法调用,就能够直接将交易传输到任何公开与以太坊兼容的API的DON。与此同时,“EIP-712:以太坊类型化结构化数据散列和签名”[49] 提供了一个稍微复杂但已经广泛部署的替代方案,其中DApp用户可以使用MetaMask对指定DON交易的结构化数据进行签名。DApp可以将此签名的结构化数据发送到DON。

最后,我们注意到混合方法也是可能的。例如,遗留客户端可以继续将交易发送到主链的内存池,但关键交易(例如预言机报告)直接发送到DON节点(特别是提供预言机报告的节点集,例如价格反馈更新和提供FSS的节点集可能重叠或相同)。

交易排序:FSS的主要目的是保证用户事务按照预先定义的策略进行排序。该政策的性质将取决于应用程序的需求以及它旨在防止的不公平交易排序的类型。

由于DON上的FSS能够处理数据和维护本地状态,因此它们可能会根据预言机上可用的信息强加任意排序策略。

特定的排序策略及其实现将在5.3节中讨论。

交易发布:在收集和排序用户交易后,直接从用户接收或从内存池收集,DON将这些交易发送到主链。因此,DON与主链的交互仍然受制于(可能不公平的)由主链矿工控制的交易顺序。为了利用去中心化交易排序的好处,目标智能合约SC因此必须设计为将DON视为“一等”公民。我们区分了两种方法:  

DON-only合约:最简单的设计选项是让主链智能合约SC只接受DON处理过的交易。这确保了智能合约按照DON提议的顺序处理交易,但事实上将智能合约限制在基于委员会的系统中运行(即,DON委员会现在拥有确定交易顺序和包含的持续权力)。

双类合约:一种首选的、更细粒度的设计使主链智能合约SC接受来自DON和传统用户的交易,但对未由DON处理的交易设置传统的“减速带”。例如,来自DON的交易可能会立即处理,而传统交易会被智能合约“缓冲”一段固定的时间。其他防止抢先交易的标准机制,例如提交-显示方案或VDF [53]也可以应用于遗留交易。这确保了DON订购的交易确实按照商定的顺序得到处理,而不会赋予DON审查交易的不必要权力。

由于FSS的交易排序要求交易在“链下”聚合,因此该解决方案自然地与旨在降低链上处理成本的其他聚合技术相结合。例如,在收集和排序交易之后,DON可以将这些交易作为单个“批量交易”(例如,汇总)发送到主链,从而降低总交易费用。

强制执行交易顺序:无论是仅DON还是双类设计,都必须对主链智能合约SC和DON进行共同设计,以保证DON的交易顺序得到维护。在这里,我们还设想了不同的设计选项: 

  • 序列号:DON可以为每笔交易附加一个序列号,并将这些交易发送到主链的内存池。主链智能合约SC会忽略“乱序”到达的交易。我们注意到,在这种情况下,主链矿工可以决定忽略DON的交易排序,从而导致交易失败。通过为SC保持(昂贵的)状态来强制执行正确的事务排序是可能的,这有点类似于TCP如何缓冲乱序数据包直到接收到丢失的数据包。
  • 交易随机数:对于许多区块链,尤其是以太坊,上述序列编号方法可以利用内置的交易随机数来强制主链智能合约 SC 按顺序处理交易。在这里,DON节点通过单个主链帐户将交易发送到主链,由DON节点之间共享的密钥保护。账户的交易随机数确保交易以正确的顺序被挖掘和处理。
  • 聚合交易:DON可以在一个汇总中聚合多个交易(或在类似于汇总的捆绑中)。需要设计主链智能合约来处理此类聚合交易。
  • 使用主链代理聚合交易:这里,DON类似地将交易捆绑到主链的一个“元交易”中,但依赖于自定义代理智能合约来解包交易并将它们中继到目标合约SC。这种技术对于遗留兼容性很有用。元交易的行为类似于汇总,但不同之处在于它们由一次发布到主链的未压缩交易列表组成。

最后一种设计的优点是无缝支持用户交易,这些交易本身通过主链合约代理,然后到达DON的目标合约SC。例如,考虑向某个钱包合约发送交易的用户,该合约又向SC发送内部交易。为这样的交易分配一个序列号会很棘手,除非用户的钱包合约专门设计为将每个内部交易的序列号转发给SC。类似地,此类内部事务不能轻易聚合成直接发送给SC的元交易。我们将在下面讨论此类代理交易的进一步设计注意事项。

5.2.2 交易原子性

到目前为止,我们的讨论隐含地假设交易与单个链上智能合约交互(例如,用户向交易所发送购买请求)。然而,在以太坊等系统中,单个交易可以包含多个内部交易,例如,一个智能合约调用另一个合约中的函数。下面,我们描述了两种用于对“多合约”交易进行排序的高级策略,同时保持交易的原子性(即交易规定的动作序列都以正确的顺序执行,或者根本不执行)。

强原子性:最简单的解决方案是如上所述将FSS直接应用于整个“多合约”交易。也就是说,用户将他们的交易发送到网络中,FSS监控、排序并将这些交易发布到主链。

这种方法在技术上很简单,但有一个潜在的限制:如果用户交易与两个合约SC1SC_1和SC2SC_2交互,这两个合约都希望利用公平排序服务,那么这两个合约的排序策略必须是一致的。也就是说,给定两个不同的交易tx1tx_1和tx2tx_2,每个交易都与SC1SC_1和SC2SC_2交互,SC1SC_1的策略不能将tx1tx_1排序在tx2tx_2之前,而SC2SC_2的策略规定相反的顺序。

对于绝大多数感兴趣的场景,我们设想不同合约采用的排序策略将是一致的。例如,SC1SC_1和SC2SC_2都可能希望交易按照它们在内存池中的大致到达时间来排序,并且SC1SC_1可能还希望某些预言机报告总是首先交付。由于后面的oracle报告交易不与SC2SC_2交互,因此策略是一致的。

弱原子性:完全概括地说,FSS可以应用于单个内部交易的级别。

考虑形式为tx={tx~pre,tx~SC,tx~post}tx=\left\{\tilde{tx}_{pre},\tilde{tx}_{SC},\tilde{tx}_{post}\right\} 的交易,由一些初始交易tx~pre\tilde{tx}_{pre}组成,这导致内部交易tx~SC\tilde{tx}_{SC}到SC,进而发出内部交易tx~post\tilde{tx}_{_{post}}发布。SC的排序策略可能决定内部交易tx~SC\tilde{tx}_{SC}必须如何相对于发送到SC的其他交易进行排序,但对tx~pre\tilde{tx}_{pre}和tx~poest\tilde{tx}_{_{poest}}的排序顺序保持开放。

鉴于以太坊等系统中交易处理的内在特性,开发针对特定内部交易的排序服务并不简单。使用专门设计的合约SC,这可以实现如下:

  • 1. 交易tx被发送到网络并被挖掘(没有FSS执行任何排序)。初始的tx~pre\tilde{tx}_{pre}被执行,并调用tx~SC\tilde{tx}_{_{SC}}。
  • 2. SC不执行tx~SC\tilde{tx}_{SC}并返回。
  • 3. FSS监控到SC的内部交易,对它们进行排序,并将它们发送回SC(即,通过将交易tx~SC\tilde{tx}_{_{SC}}直接发送到SC)。
  • 4. SC处理从FSS接收到的交易tx~SC\tilde{tx}_{_{SC}},并发布由tx~SC\tilde{tx}_{_{SC}}产生的内部交易tx~post\tilde{tx}_{_{post}}。

使用这种方法,交易不会完全以原子方式执行(即,原始交易tx被分解为多个链上交易),但内部交易的顺序得以保留。

该解决方案需要一些设计约束。例如,tx~pre\tilde{tx}_{pre}不能假设tx~SC\tilde{tx}_{_{SC}}和tx~post\tilde{tx}_{_{post}}将被执行。此外,SC应该被设计为代表某个用户执行交易tx~SC\tilde{tx}_{_{SC}}和tx~post\tilde{tx}_{_{post}},即使它们是由FSS发送的。由于这些原因,上述更粗粒度的“强原子性”解决方案在实践中可能更可取。

为了尊重更复杂的依赖关系,涉及多个交易及其各自的内部交易,FSS的交易调度程序可能包含复杂的功能,类似于关系数据库管理器的交易管理器中的功能。

5.3 公平交易排序

这里我们讨论交易排序公平的两个概念和相应的实现,它们可以通过FSS实现:基于FSS强加的策略的顺序公平和安全的因果关系保存,这需要FSS中的额外加密方法。

秩序公平:秩序公平是共识协议中时间公平的概念,由Kelkar等人首次正式引入。[144]。

Kelkar等人。旨在实现一种自然政策形式,其中交易根据DON(或P2P网络,在基于内存池的FSS的情况下)首次接收的时间进行排序。然而,在去中心化系统中,不同的节点可能会看到交易以不同的顺序到达。建立所有交易的总订单正是MAINCHAIN底层共识协议解决的问题。Kelkar等人。[144] 因此,引入了一个较弱的概念,可以在去中心化Oracle网络的帮助下实现,称为“区块顺序公平”。它将DON在某个时间间隔内收到的交易分组到一个“块”中,并将该块的所有交易同时并在同一位置(即高度)插入到MAINCHAIN中。因此,它们是一起排序的,并且必须可以并行执行,而不会在它们之间产生任何冲突。粗略地说,orderfairness表示如果大部分节点在τ2τ_{_2}之前看到交易τ1τ_{_1},则τ1τ_{_1}将在τ2τ_{_2}之前或在同一块中排序。通过对交易订单施加如此粗粒度的粒度,可以大大减少抢先交易和其他订单相关攻击的机会。

Kelkar等人。提出了一系列称为 Aequitas[144]的协议,它们解决了不同的部署模型,包括同步、部分同步和异步网络设置。相对于基本的BFT共识,Aequitas协议带来了巨大的通信开销,因此不适合实际使用。然而,我们相信Aequitas的实用变体将会出现,可用于FSS和其他应用程序中的交易排序。已经提出了一些相关的方案,它们具有较少的伴随形式和较弱的属性,例如[36, 151, 236],但具有更好的实际性能。FSS也可以支持这些方案。

还值得注意的是,“公平”一词在区块链文献中的其他地方出现,具有不同的含义,即矿工的机会与他们承诺的资源成正比[106, 181]或验证者的机会均等[153]。

安全的因果关系保存:在分布式平台中防止抢先交易和其他排序违规的最广为人知的方法依赖于加密技术。它们的共同特点是把交易数据本身隐藏起来,等到共识层的订单建立后,再把交易数据暴露出来进行处理。这保留了由区块链执行的交易之间的因果顺序。在区块链[71, 190]出现之前,相关的安全概念和密码协议已经得到了相当大的发展。

“输入因果关系”[190]和“安全因果关系保存”[71, 97]的安全条件正式要求在确定该交易在全局秩序中的位置之前,不知道有关交易的任何信息。在密码学上,对手必须在那之前无法推断出任何信息。

人们可以区分四种加密技术来保持因果关系:

  • Commit-reveal 协议[29, 142, 145]:不是以明文形式宣布交易,而是仅广播对交易的加密承诺。在对所有已提交但隐藏的交易进行排序后(在MAINCHAIN本身的早期区块链系统中,但在此由FSS进行),发送者必须在预定的时间间隔内打开承诺并显示交易数据。然后网络验证该开口是否满足先前的承诺。这种方法的起源可以追溯到区块链出现之前。

尽管它特别简单,但该方法引入了相当多的缺点并且由于两个原因不容易采用。首先,由于在排序协议级别仅存在承诺,因此无法在共识期间验证交易的语义。需要额外往返客户端。然而,更严重的是,权衡可能永远不会出现开放的可能性,这可能相当于拒绝服务攻击。此外,很难以一致的、分布式的方式确定开放是否有效,因为所有参与者必须就开放是否及时到达达成一致。

  • 具有延迟恢复的提交-显示协议[145]:提交-显示方法的一个挑战是,客户可能会投机地提交交易,并且只有在后续交易使其有利可图时才将其揭示。commit-reveal方法的最新变体提高了对这种不当行为的恢复能力。特别是,TEX协议[145]使用一种巧妙的方法解决了这个问题,其中加密交易包括一个解密密钥,该密钥可通过计算可验证延迟函数 (VDF) [53, 221]获得。如果客户未能及时解密她的交易,系统中的其他人将通过解决一个中等难度的密码难题来代表她解密它。
  • 阈值加密 [71, 190]:这种方法利用了DON可以执行阈值加密操作。假设FSS维护一个加密公钥pkOpk_O,并且预言机之间共享相应的私钥。客户端然后在pkOpk_O下加密交易并将它们发送到FSS。FSS在DON上对交易进行排序,然后对其进行解密,最后以固定的顺序将它们注入到MAINCHAIN中。因此,加密确保排序不是基于交易内容,而是数据本身在需要时可用。

该方法最初由Reiter和Birman [190]提出,后来由Cachin等人改进。 [71],它与许可的共识协议集成在一起。最近的工作探索了将阈值密码学用作通用消息[33, 97]和共享数据 [41] 的通用计算的共识级机制。

与提交-显示协议相比,阈值加密可防止简单的拒绝服务攻击(尽管考虑到解密的计算成本需要小心)。它让DON以自己的速度自主进行,无需等待进一步的客户端操作。交易可以在解密后立即进行验证。此外,客户端使用DON的一个密钥加密所有交易,并且通信模式与其他交易保持相同。然而,安全地管理阈值密钥并在OO中更改节点可能会带来额外的困难。

  • 承诺的秘密共享[97]:客户端不使用DON持有的密钥对交易数据进行加密,也可以将其秘密共享给OO中的节点。使用混合的、计算安全的秘密共享方案,首先使用带有随机密钥的对称密码对交易进行加密。只共享对应的对称密钥,并将密文提交给DON。客户端必须使用单独加密的消息向OO中的每个节点发送一个密钥共享。其余的协议步骤与阈值加密相同,只是交易数据在从其份额中重建每个交易密钥后使用对称算法解密。此方法不需要设置或管理与DON相关的公钥密码系统。但是,客户端必须知道OO中的节点并在安全上下文中与每个节点进行通信,这给客户端带来了额外的负担。

尽管加密方法提供了完整的保护,防止信息从提交的交易泄漏到网络,但它们不会隐藏元数据。例如,发件人的 IP 地址或以太坊地址仍可能被对手用于执行抢先攻击和其他攻击。为了实现这一目标,需要部署在网络层(例如 [52、95、107] 或交易层(例如 [13、65])的各种隐私增强技术)。通过在同一个DON上多路复用多个合约,可以(部分)隐藏特定元数据的影响,即交易发送到哪个合约。交易本身的加密隐藏也不会阻止损坏的DON节点与交易发送者勾结对交易的优先级排序。

加密协议保证的安全因果关系补充了任何策略的顺序公平保证,我们打算在可能的情况下探索这两种方法的组合。如果对手无法从观察元数据中获得显着优势,则安全因果关系保留协议也可以与朴素排序方法一起使用。例如,oracle节点可以在收到交易后立即将交易写入LL,而无需重复。然后,交易将根据它们在LL上的外观进行排序,并随后被解密。

我们还计划考虑使用TEE作为帮助执行公平排序的一种方式;例如,Tesseract [44] 可以被视为实现一种因果排序形式,但通过TEE在保持其机密性的同时以显式形式处理交易的能力得到加强。

5.4 网络层考虑 

到目前为止,我们对FSS的描述主要集中在强制交易的最终顺序与它们在网络中观察到的顺序相匹配的问题上。此后,我们考虑网络层本身可能出现的公平问题。

传统电子市场中的高频交易者投入大量资源以获得卓越的网络速度 [64],而加密货币交易所中的交易者表现出类似的行为 [90]。网络速度在观察其他方的交易和提交竞争交易方面都具有优势。在实践中部署并在Flash Boys[155] 一书中普及的一种补救措施是最初在IEX交易所 [128] 和后来在其他交易所[179]中引入的“减速带”(结果好坏参半[19])。这种机制对进入市场施加了延迟(IEX中为350微秒),目的是抵消速度方面的优势。经验证据,例如[128],支持其在降低普通投资者某些交易成本方面的功效。FSS可以简单地用于实现不对称减速带——延迟传入交易的减速带。

Budish、Cramton和Shim [64] 认为,利用速度优势在连续时间市场中是不可避免的,并主张以批量拍卖为基础的市场形式的结构性补救措施。但这种方法并没有在现有的交易平台中广泛应用。

传统的交易系统是集中式的,通常通过单个网络连接接收交易。相比之下,在去中心化系统中,可以从多个有利位置观察交易传播。因此,可以观察P2P网络中的网络泛洪等行为。我们打算探索FSS的网络层方法,以帮助开发人员指定禁止此类不良网络行为的策略。

5.5 实体级公平政策 

秩序公平和安全因果关系旨在对交易执行排序,尊重交易的创建时间和首次提交到网络的时间。这种公平概念的一个局限性在于,它不能防止攻击者通过向系统充斥许多交易来获得优势,这是一种在野外观察到的策略,作为在代币销售中执行有效交易狙击的一种方式 [159] 和造成拥堵,导致抵押债务头寸(CDP)清算[48]。

换句话说,订单公平性对交易而不是参与者强制执行公平性。如CanDID系统 [160] 所示,可以将DECO或Town Crier等预言机工具与节点委员会(如DON)结合使用,在保护隐私的同时实现各种形式的Sybil抵抗。用户可以注册身份并提供其唯一性的证据,而无需披露身份本身。Sybil-resistant证书提供了一种可能的方法来丰富交易排序策略,以限制洪水攻击的机会。例如,代币销售可能只允许每个注册用户进行一次交易,其中注册需要国家标识符的唯一性证明,例如社会安全号码。这种方法并非万无一失,但可能证明是减轻事务泛洪攻击的有用策略。


原文链接:https://chain.link/whitepaper


---煤油灯科技victorlamp.com翻译整理---

你可能也喜欢这些文章

科技互联网,科技,资讯,动态,洞察,量子,计算,AI,人工智能,机器人,区块链,Web3,分布式,操作系统,OS,芯片,视频,深度,论文