作者:reddit/u/Loooong_Loooong_Man 2020年 英文版
DeFi(去中心化金融)无疑是此刻加密货币世界的热门话题。它带来了类似于2017/18年ICO阶段的感觉,大量的新项目开始在出现,每个项目都有自己的新创新和使用案例的承诺。 事后看来,这些项目中的大多数最终都失败了,或者更糟糕的是,是彻头彻尾的骗局,利用了那些不那么明智的投资者来赚取金钱。显然,并不是所有的项目都符合这种描述,今天仍有许多团队在从事并实现他们的个人愿景。毕竟,加密货币仍然是一个新技术的大实验。
进入DeFi:Serum #
在这篇文章中,我将研究一个特殊的项目,名为Serum。
Serum是世界上第一个完全去中心化的衍生品交易所,由Project Serum带来的无信任跨链交易。
Serum项目的目标是创建一个去中心化的交易所和一个跨链交换机制。在这篇文章中,我将只专注于Serum的跨链交换方面。 虽然Serum白皮书相当短,而且缺乏细节,但它对跨链交换协议应该如何工作有一定的了解。在本评论中,我将用它来描述想象中的协议是如何工作的。
概述 #
我们假设Alice想用一些BTC换取ETH,Bob想用Serum用一些ETH换取BTC。这两个用户被匹配,并使用Solana区块链上的链上订单簿商定价格(白皮书没有提供关于如何做到这一点的实际细节)。 一旦这些用户被匹配,Bob必须将他想要交易的ETH发送到以太坊智能合约,再加上一些价值约200美元的ETH(见下文第4节)到智能合约作为抵押品。Alice也需要向智能合约发送一些抵押品。一旦这个初始设置过程完成,Alice就必须把她的BTC发送到Bob的BTC地址,如果Bob收到Alice的BTC,他就可以从智能合约中释放他的ETH,把它发送到Alice的ETH地址。完成后,Alice和Bob都会退还他们的ETH抵押品。
那么,如果出了问题会怎样?例如,假设Alice从未向Bob发送过BTC,在一段时间后,Bob可以发起一个争端。当争议开始时,Alice和Bob都会向智能合约提交一部分比特币区块链信息(见第3节)。然后智能合约决定Alice是否真的向Bob发送了BTC。如果她没有,那么智能合约将Bob的ETH和抵押品返还给Bob,同时将Alice的ETH抵押品也交给Bob。如果Alice发送了BTC,但Bob从未批准从智能合约中转移ETH,同样的情况也会反向发生。
这个方案看起来很简单,没有预言机,没有中心化的各方,然而,它有一些缺点。
用户提供的抵押品不利于用户体验 #
每次用户进行互换时,他们必须保留一些百分比或固定的金额来支付互换的抵押品。这个抵押金额需要存在,以防止greifing攻击,在这种攻击中,用户发起的互换并不打算贯彻执行,并将资金发送给备用参与者。
然而,这创造了一个糟糕的用户体验,因为Alice和Bob在进行互换之前,都需要有至少相当于争议费用价值的抵押品承诺给合同。这与正常的交易所体验完全不同,在这种情况下,你只需要一个硬币和一个交易就可以开始交易。例如,如果使用Serum交易比特币,你需要持有比特币和~200美元的以太坊,并且在任何交换发生之前与以太坊链互动。这增加了不必要的复杂性和混乱,特别是对于加密货币领域的新人。
ETH必须总是在交换的一方 #
虽然Serum的跨链交换方法可以在任何有智能合约的区块链上发生,但Serum白皮书明确指出,Serum的仲裁合约将被部署在以太坊区块链上。这意味着一方必须始终使用以太坊智能合约将交易的全部价值锁定为ETH。
这使得例如在比特币和Monero之间做单步交易是不可能的,因为交换需要先从比特币到ETH,然后再从ETH到Monero。这与其他提议的跨链交换系统如Thorchain和Blockswap相当,但是由于这些网络使用AMM(自动做市商)和去中心化的金库来保管资金,用户根本不需要与中介链互动。
相反,在Serum,想要将比特币换成Monero的用户需要做以下步骤。
向Serum仲裁合约发送以太坊抵押品
发送比特币给他们要交换的用户。
接收以太坊
将以太坊发回给Serum仲裁合约
接收Monero
将Ethereum送出Serum仲裁合约
收回Ethereum抵押品
也许有可能删除或简化第4步,这取决于智能合约的构建方式,然而,这意味着在最好的情况下,从BTC到Monero的交换需要2个以太坊和1个比特币交易。与其他跨链交换机制的经验相比,只需要用户发送一个交易就可以在两个资产之间进行交换,这是非常糟糕的用户体验。
向智能合约证明任意链上的交易并非易事 #
也许Serum跨链交换机制最核心的部分在Serum白皮书中完全没有被发掘出来,只给出了一个简单的解释。
“[智能合约]被编程来解析提议的BTC区块链是否有效;然后它可以检查Alice和Bob中哪一个发送的区块链更长有效,并以对他们有利的方式结算”
这不是一个微不足道的问题,从Serum白皮书中给出的解释来看,不清楚这究竟是如何运作的。实际上需要向智能合约提交什么来证明比特币交易?通常情况下,当谈论SPV时,智能合约需要所有先前区块的区块头和一个Merkle包容证明。这对于在争议中提交来说太沉重了。相反,Serum可以使用NIPoPoW,然而,这些证明只适用于有固定难度的链,而且可能仍然太大(约100KB),无法作为证明提交给合同。其他的解决方案,如Flyclient,用途更广,但证明大小更大,而且未能在现实世界中得到广泛采用。
如果不解释他们实际上是如何计划对比特币交易进行验证的,用户就不知道他们的解决方案到底有多安全。
高额的争议费用迫使小额交易的大量抵押品 #
尽管由于在Serum协议中设计了激励和惩罚措施,争议几乎不应该发生,但它们的设计方式对网络的使用产生了负面影响。
虽然Serum白皮书没有说争议机制是如何运作的,但他们确实说过,对一个掉期交易提出争议将花费大约100美元的GAS。
/注:请记住,Serum论文是在2020年7月发表的,当时gas价格约为50Gwei,随着过去一个月以太坊使用的回升,我们看到gas平均价格高达250Gwei,现在的平均价格约为120Gwei。
这意味着,在GAS价格的高峰期,用户可能要花费~500美元来争议一个交换。
这意味着,为了确保网络不发生跨链交换,每个用户必须在每一方部署至少200美元的抵押品。如果我们假设攻击者没有经济动机,也许可以把这个数字降低到抵押值,然而,有一个下限,即赎金攻击在低价值的交易中成为可能。
此外,也许更具破坏性的是,这意味着在任何规模的交易中,用户需要有至少300美元的ETH在身边。100美元的ETH作为所需的抵押品,如果他们需要挑战交易,则需要200美元。
这进一步增加了使用Serum进行跨链交换时的不良用户体验。
互换不是一劳永逸的 #
在你所交换的区块链上,不是能够发送交易和接收资金,而是这个过程是高度互动的。在我将ETH换成比特币的情况下,会发生以下情况。
用我的抵押品向Serum仲裁合约发送一笔交易。
用要交易的资金向Serum仲裁合约发送一笔交易。
等待,直到发送到我的地址的比特币交易有一个可接受的确认量(最多60分钟,取决于网络拥堵情况)。
如果一直没有收到比特币交易,那么我需要等待超时发生,然后才能参与到争议过程中。
- 向Serum仲裁合约发送交易,解锁我的资金并将其发送给参与者。
而在比特币方面(假设卖家准备好了),必须进行以下工作。
发送我的以太坊抵押品给智能合约。
发送比特币。
等待,直到卖方接受该比特币。
如果卖家从未接受我发送的比特币,那么我需要排队等待争议处理。
- 等待收到我的ETH+抵押品的回报。
这就呈现出一种奇怪的用户体验,在这整个过程中,卖家或卖家的钱包必须保持在线,如果他们需要对交易进行争议或从智能合约中解锁资金,就必须准备签署新的交易。
这与典型的交换或互换场景不同,在这种情况下,一旦你的资金被发送,你可以保证你将收到你在互换中预期的金额,而不需要你的任何钱包保持在线。
Serum代币似乎缺乏使用案例 #
Serum在其白皮书中描述的跨链交换协议可以很容易地在以太坊区块链上分叉和启动,而不需要Serum代币。在基于Solana的区块链上下单时,Serum代币似乎将以某种身份被使用,然而,订单簿也可以很容易地用传统的利率限制方案来下。
有一些关于代币持有人的未来治理能力的简要提及,然而,作为他们白皮书中的一个共同主题,细节是稀缺的。
Serum预计将包括一个基于SRM代币的有限治理模式。虽然Serum生态系统的大部分将是不可改变的,但一些没有大的安全风险的参数(如未来的费用)可以通过SRM代币的治理投票来修改。
结论 #
在对这些问题给出满意的答案之前,我会关注其他试图为跨链互换建立平台的项目。如前所述,Thorchain和Blockswap在设计上显示了一些前景,同时也有一些其他项目在这个领域竞争,如Incognito和RenVM。然而,这个领域仍然非常不成熟,所以在我们将这些项目称为成功之前,还需要大量的测试和时间。