Radar Relay 雷达中继

作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/radar_relay.md Radar Relay是一家试图利用0x技术在以太坊上建立ERC20代币交易市场的公司。 他们声明的目标与Amoveo所做的相似。所以我想知道他们是否真的实现了这些目标。也许我们可以重新使用他们的一些技术来使Amoveo变得更好。

因此,我试图联系他们,以了解他们的市场有多少是链下与链上的,以及他们如何防止前面的运行。 在我的讨论中,很明显,雷达中继公司没有任何安全保障来防止抢先交易(front running)的盗窃行为。我一开始解释允许客户被抢劫是一个严重的问题时,我就被他们的小组屏蔽了。

这里有一个关于前面front running危险的视频:https://www.youtube.com/watch?v=mAtD0ba-hXU

以下是我们的讨论。 #

Zack- 我写了一个无信任的链外订单簿。我使用了可编程的通道来执行规则,以使其不被信任。 Relayer.network也有一个链外订单簿。我想知道你们的订单簿是否是无信任的,如果是的话,你们是如何执行规则的? Whitneyadmin-我们在链外托管订单簿。所有的订单都在链上结算,通过应用程序或通过API,用户可以查看任何订单的哈希值。这有点技术性,但你可以验证已申请的交易(已下的订单)背后的合同。我们对订单簿上允许的订单进行标准化。如果它不符合格式,它就不是订单簿的一部分。

Zack- 你如何使订单簿不依赖信任?或者说它是一个需信任的中心化订单簿?我怎么知道你们会诚实地匹配我的交易,而没有任何抢先交易?

Whitneyadmin- 我们不匹配你的订单。我们没有一个中心化匹配引擎。

Zack- 所以有一个中心化的服务器来匹配订单?我怎么能知道这个服务器不会让任何人在我的交易中占先呢?在我写的链外市场中,我在状态通道内使用了一个智能合约来执行交易的正确匹配,以防止抢先交易。它使用单一价格的批次。 Whitneyadmin-没有一个中心化的服务器来匹配订单。我们使用一个开放的订单簿。如果你在雷达上下的订单超过了点差,那么它将显示一个负的点差。

扎克–好的,那么你是如何强制执行正确的交易匹配以防止抢先交易呢? 你是使用单价批次吗?还是使用提交-披露系统(commit-reveal system)?

Whitneyadmin- 没有中心化的匹配引擎。我们不匹配订单。

Zack- 雷达中继的目的是让人们交易ERC20代币,对吗?因此,必须有一些市场,有一个订单簿将交易者连接在一起。

Whitneyadmin-现在你可以通过专门选择一个订单或 “填补到 (fill up to)“功能来完成单个交易。第二种是市场订单。

Zack-所以你确实在人与人之间匹配订单。你是否有加密经济保障(cryptoeconomic guarantees) ,确保订单被公平地匹配,不存在抢先交易(front runninig)?如果没有加密经济保证来防止盗窃,使用dapp是不好的。如果它不能安全地防止盗窃,而且dapp的其他参与者是匿名的,那么几乎可以保证盗窃会发生。如果你需要问别人这一点,我可以等待。我明白,在一个团队中,不是每个人都知道所有的安全细节。

Whitneyadmin-当你签署一个订单并将其发送到链上时,你正在签署一个特定的哈希值。这是被记录在链上的。你签署的订单哈希值是以较低的gas发送的,而其他人想成交了相同的哈希值,该订单将不会通过。这就是一个订单碰撞,有时会被误认为是抢先交易 。

Zack-所以订单是在链上匹配的?但之前你说订单簿是在链外的。我可以看看你用于订单簿的链上智能合约吗?

Whitneyadmin–有了开放的订单簿,你就可以抢先交易。这在技术上是可能的。威尔-沃伦有一篇关于这方面的好文章。如果你愿意的话。 订单簿是在链外托管的。所有订单都在链上结算,没有中心化匹配引擎。如果你想看设计:https://developers.radarrelay.com/learn-more#sra

扎克–所以你完全没有抢先交易的安全保障?

为什么不呢?我编程的链外订单簿抢先交易安全保障。

我不明白,如果一个人可以被抢劫,为什么还要使用这个的市场。

Whitneyadmin- 这听起来像是你在期待一个中心化合同,比如智能合同托管交易所。我们使用0x智能合约。要了解更多信息,从这里开始:https://0xproject.com/

0X项目是以太坊区块链上的去中心化交易所的开放协议 听起来你很想让人们对你所建立的东西感兴趣。如果你想让我们评估一些代码,我相信我们的一个工程师会出于好奇而看一看。但我不能保证在这方面有一个快速的转机。

请看威尔-沃伦的文章《front running》https://blog.0xproject.com/front-running-griefing-and-the-perils-of-virtual-settlement-part-2-921b00109e21

0x协抢先交易,griefing和虚拟结算的危险(第二部分)这篇文章是第一部分的延续,第一部分介绍了区块链的竞赛条件,抢先交易,0x协议……现在比任何事情都更有可能,如果你用低gas下单,有人可以先交易这个订单。这可能是令人失望的。

在正确的情况下,有一个非常小的机会做到抢先交易。我们不仅在努力通过未来的设计变化来消除这种机会,我们也在观察所有通过雷达的订单,我们可以看到它没有发生。订单碰撞是罕见的,这是最接近它的概念,人们经常混淆这两者。

Zack- 我正在考虑写一篇关于雷达继电器的评论。还有谁能解释一下关于front running的安全问题吗?因为根据已知的信息,评论会是消极的。 我已经和0x团队谈过了,我也读过你链接的论文。0x只是一个交易ERC20代币的协议,它不是一个防止抢先交易的订单簿。如果你想用0x做一个安全的市场,你需要单独制作订单簿。

你链接的那篇论文描述了几个防止0x的被抢先交易的策略。其中之一是将所有的抢先交易的权力交给中心化权威。另一个是将订单簿转移到链上。

雷达中继是使用这些策略中的一种吗? 哪一种?雷达中继被描述为链外中继和链上结算。那么,订单簿到底是不是离链的?

这时,我被禁止进入他们的论坛。

结论 #

区块链市场有3个重要属性。

  1. 无信任(如果没有这一点,经营市场的人就可以偷窃顾客的东西。)
  2. 以市场价格进行交易(如果没有这一点,交易者就可以通过预先运行和套利来相互偷窃)。
  3. 链外(没有这一点,就无法扩展)。

以太坊可以同时拥有其中的任何2个,但只有Amoveo同时拥有所有3个。

Shapeshift做到了(2)和(3)。0x做到了(1)和(3)。Augur和Gnosis做到了(1)和(2)。

乍一看,雷达中继器的广告似乎可以实现这三点,但仔细观察,你会发现它无法实现。

正如惠特尼所说,高gas订单可以领先于低gas订单。既然有可能抢先交易,他们就没有(2)。

因此,雷达中继站无法防止交易员通过提前运行和套利的方式进行盗窃。