唱衰Cardano的谣言满天飞,真相是什么?

2021-09-10 星球日报 17051浏览


今天,Cardano在GitHub代码库每月提交代码超700次位居首位,以太坊位居第二。而经过小组数月的测试,Cardano公共测试网已升级为支持智能合约。伴随着很多dApp(去中心化应用)的测试和实验等各活动的涌现,开发者们渴望进行大规模测试并展示他们辛勤的工作成果。这引起了关于对Cardano的设计决定的激烈讨论。

有些人抓住机会将矛头指向Cardano,误导问题,最终低估作为加密货币行业巨头之一的Cardano的潜力。谣言满天飞,有的认为Cardano的每个区块只支持一次交易,每次只有一位用户可以与一个智能合约交互,Cardano终将走向中心化。以上所有的猜测都是不正确的。本文我们将介绍一个新的farming和一些dApp创建者会选择的一些解决方案。

对于SundaeSwap来说,这似乎是讨论最近出现的问题的好机会,特别是关于设计和记账决策,关于导致Cardano选择eUTXO账户模型而不是以太坊的方法,以及这种选择对Cardano区块链并发性(concurrency)的影响。

虽然讨论很激烈,但我们希望可以冷静下来一起探索一些优势、缺点、误解,最终为我们呈现一些潜在的解决方案。本文将从技术性开始,以非技术性的总结结束。

系统设计的艺术通常是在权衡之间进行选择的艺术。一般来说,你可以通过某个软件程序员如何分辨和运用这些取舍来解决问题的方式来分析他的事业发展轨迹。对于Cardano社区的所有成员来说,分析Cardano所权衡的问题是有价值的,一个有用的比较例子就是以太坊。

许多人指出,Cardano选择了eUTXO模型会导致在迁移协议时问题出现。为了更好地理解这个决策的影响,让我们先讨论一些相关背景。

相关背景

比特币向世界介绍了通过“未消费的交易输出”列表来跟踪用户基金的概念,或简称UTXO。用户之间的每个交易都消耗一些输入,并产生一些输出,每个输出代表一捆价值(一些比特币)和一个声明谁可以消费它。

因此,如果有人给我1个比特币,就会有一个输出1个比特币的交易,所有者是我的公钥。然后,我可以通过发布一个消耗该输入的交易来发送这一个比特币,证明我有权这样做,并向一个新的所有者声明一个新的输出。

这有很多好处:

  • 验证它非常简单和安全。如果价值被创造或破坏,就会变得非常明显:可以通过比特币输入和输出总量进行比较。

  • 并行验证块中的交易非常容易;只需在单独的线程中检查每个交易上的签名。

  • 这是高度确定性的。当用户创建并提交交易时,他们会明确地声明在接受交易后,他们的分类账部分应该是什么样子。

然而,这种对局部、单一交易关注的强调是以具有全局关注的系统为代价的。比特币在引入智能合约方面遇到了困难,因为许多应用程序希望访问某些全局状态:例如,授权用户列表、当前价格或总供应量。

相比之下,以太坊选择了跟踪一组(全局)帐户余额:分类帐状态是从地址到余额的映射,以及一个简单的交易递增和递减帐户余额。更复杂的交易可以做更复杂的事情,并可以访问自己的全局状态。例如,ERC-20代币只不过是一个智能合约,它实现了这个记账模型,并为铸造、烧毁和传递这些代币提供了一个接口。

这两者之间的差异可以类似于你口袋里的现金和你的银行账户里的余额之间的差异。

在这些模型中,对价格等全局信息的访问并不是重点。然而,这一选择有很多潜在的负面影响。

首先,每个交易都必须按一定的顺序排序和处理,因为很难确定哪些交易可能尝试接触同一状态。如果一笔交易与另一笔交易同时更新你的账户余额,你可能会无意中破坏代币、“双花”和其它漏洞。

第二,由于上述原因,交易的排序很重要,这从根本上赋予了对这些交易进行排序的实体很大的权力。这将导致不良现象,包括矿工可提取价值(MEV)和抢跑交易( front-running)。

第三,这种模式从根本上需要牺牲决定论,因此需要更大的信任。因为区块链的状态在构建交易和提交交易之间可能会发生变化,所以需要信任智能合约在运行时做“最符合你利益的事情”,即使这不是你想要的。例如,DEX需要知道如果价格变动了一个很大的百分比,那么你就不再对交易感兴趣了。大量的开发工作、bug来源和黑客攻击都来自于此,因为需要信任每个智能合约来检查所有“正确的”不变量。

主要问题是,以太坊为每个dApp都选择了这种全局状态,因此所有的dApp都承受着交易成本的增加、抢跑交易的脆弱性和额外的开发负担。

我们讨论的三个词是“并发性”、“并行性”和“争用性”(concurrency、parallelism、contention)。这是一个微妙的概念,如果你对它们的含义只有模糊的理解,那么这里有一些定义供参考:并发是多个参与者在不相互干扰的情况下在任务上取得进展的能力。并行性是指多个参与者在同一时间完成任务而互不干扰的能力。争用是指多个参与者相互干扰。

为了更好地理解这一点,让我们举一个类比:厨房里的厨师。一个熟练的厨师可以一次准备多道菜,在正确的时间进行切换。这位厨师非常“并发”的。多位厨师可以在自己的工作站上制作不同的菜肴。这些厨师是非常相似的。然而,一个运行良好的厨房可以让许多厨师一起制作许多菜肴,并且同时进行和并行。如果它们在寻找一种共同的材料时开始相互争夺,它们就会经历争论即争用。

在本文的讨论中,以太坊在并发性方面表现不错,但在并行性方面却很糟糕。UTXO模型在并行性方面非常出色,但对于某些协议设计来说,它可能面临竞争,使其并行性弱化。

Cardano和eUTXO模型

最后,我们谈谈Cardano。相反,Cardano选择对UTXO模型进行改进,使dApps本身能够在独立操作和中心化之间做出这些权衡。Cardano领导的eUTXO模型为智能合约引入了三个新的原语:数据、赎回器和验证者。

数据是附加在单个UTXO上的任意数据块。这表示与UTXO相关的一段内部状态。例如,你可以使用它来跟踪一个归属合同(vesting contract)的解锁时间和返回地址。

当有多个选项时,赎回器表示要做什么的信号。例如,你可以使用它来表示你是在赎回你的既得代币。

最后,验证器表示可以花费UTXO的条件,包括验证新状态是否正确,它可以访问整个交易来做出决定。

智能合约可以依赖的唯一状态是作为输入包含的那些状态,而智能合约可以产生的唯一状态是那些声明为交易输出的状态。

Cardano中的交易部分按其依赖关系排序,权益池运营商重新排序对结果没有影响,因此矿工可提取价值(MEV)消失了。

同样,每个Cardano交易都是确定性的:用户构建、声明并签署的新状态。改变状态的唯一方法是花费UTXO,并且一个给定的UTXO只能花费一次,所以你可以防止状态从你手下改变。

然而,一些协议很难脱离其全局状态。例如,像Uniswap这样的DEX,从根本上依赖于汇集流动性以提高资本效率,并创建两个代币之间汇率的单一统一视图。

如果许多人需要访问这个全局状态,并且该状态存储在单个UTXO的数据中,那么它将在用户之间创建一个竞争,以便成为第一个使用该UTXO的人。每次有人赢得了比赛,它都会让其他人回到原点:他们必须找到新的UTXO,构建一个新的交易,并提交它。

无论交易是否仅限于引用以前的区块中的UTXO,还是它们是否可以被链接到一个区块中,这种基本的“争用”(contention)都对用户体验和协议的吞吐量提出了严峻的挑战。

因此,在设计协议时需要一些巧妙的工程。

对Cardano的误解

在讨论解决方案之前,有必要解决关于这个问题的一些误解:

误解1:Cardano是有缺陷的,因为它每个区块只允许一个交易。

事实上,事实恰恰相反。Cardano允许每个区块进行数百笔交易。

相反,可以准确地说,Cardano允许给定的交易输出通过一个交易花费一段时间,因此允许多人访问相同的UTXO的协议可能会面临争议问题。

误解2:每个区块/交易只有一个用户可以与智能合约进行交互。

这也不是真的;争论的焦点是UTXO,但许多UTXO可能由同一个智能合约管理。

从根本上说,这可以归结为思想的转变,以太坊和Cardano的思想发生了转变,在以太坊中,你调用一个智能合约来让它做一些事情,而Cardano用一个合约锁定输出,这决定了它们什么时候可以被消费。

误解3:解决这个问题的唯一方法是通过中心化。

中心化是解决这个问题的一种方法,但它不是唯一的方法。请看下文。

潜在的解决方案

今天,这个问题似乎有两类解决方案:要么设计你的协议来接受你的状态分段,要么聚合与该状态的交互。

让我们设计一些假设的DEX来探索其中的一些解决方案。

人们可以设计一个DEX,使其不需要单一的流动性池。取而代之的是,流动性在多个矿池之间分裂,距离越远,人们交互的端口就越多,对这些资金的争用就越少。但是,矿池越多,你的资本效率就越低,跨池套利损失的价值就越大。那么,聪明的做法是为这些问题设计解决方案:例如,Uniswap v3式的集中流动性。

另外,交易所的订单簿模型在以太坊上维护和更新的成本是极其昂贵。似乎更适合Cardano,因为其每个订单都是一个独立的UTXO。然而,棘手的部分是,在最接近当前价格的订单上,仍存在争议。一个可行的解决方案是将市场订单列在链上,由第三方聚合器匹配并执行这些订单。

最后,你可以创建一个混合交易所,在这里,资金的托管是去中心化的,并存储在区块链上,但做市和匹配是通过一个中央后端服务器发送的。这解决了工程问题,但可能会让你成为一个受到严格监管的经纪自营商,这也带来了一系列挑战。

总结

总之,唱衰Cardano的谣言满天飞。我们今天已经看到了解决方案的出现,Cardano的设计方式的优势,光明的未来和激烈的设计探索阶段终将到来。

许多在行业到处发布不实信息的人是技术的极端主义者,这是我们行业的一个不良方面。这可能是由经济激励驱动的,他们希望在经济利益上胜过其他人。

我们相信Cardano对问题有有趣的解决方案,并做出了不同的权衡和优先级,这在加密生态系统中创造了新的机会。我们当然非常相信这一点,并在此基础上开发我们的产品。从长远来看,作为加密领域的构建者,我们相信终端用户并不关心他们与哪个区块链交互。在我们看来,理想的最终状态是让区块链变得像编程语言一样,不同的项目选择不同的链来匹配所需的优势,揭示他们的协议的优势,而最终用户在体验过程中达到“云深不知处”的状态。

所以对于唱衰Cardano的人来说,这一切是不可能实现的。他们抓住一个生态系统早期的一个艰难的实验,并将其作为Cardano垮台的致命预兆。我们在上面概述了几个创造性的解决方案,我们相信在Cardano上构建的解决方案不止于此。

本文来自 SundaeSwap Labs,原文作者:SundaeSwap Labs,由  Katie 辜编译。

声明:本文版权归原作者所有,发布此文为传递更多市场信息,不代表币快报的观点和立场,请自行参考。如作者信息标记有误,请第一时间联系我们处理!