原文来自IOHK Fernando Sanchez,由卡尔达诺大使陈哲Anson翻译
EUTxO模型如何比以太坊更好地预测无常损失(账户模型)
免责声明:本文中的任何内容均不构成专业建议,包括但不限于财务、投资、法律或税务建议。 Input Output Global 不对您使用或依赖本文中的任何信息负责。
去中心化金融(DeFi)是一个总称,指的是建立在区块链上的去中心化应用程序(DApps)、服务、协议和金融工具。这是一个由去中心化账本技术支持的相对较新的行业领域,这意味着没有单一的权威机构可以集中控制系统。任何熟悉 DeFi 环境的人都可能知道无常损失。这是一个带有误导性名称的简单概念。
Cardano是第三代区块链,其广阔的 DeFi 世界具有去中心化交易所 (DEX) 等众多 DApp 的特点。这些是加密交换协议,使对等方能够相互交易加密货币。 DEX 使用两种主要的设计架构:自动做市商 (AMM) 和订单簿。 AMM 的实现相对简单,这种设计已经成为基于账户的链的事实上的选择,包括以太坊。然而,这种设计有一些固有的缺陷。例如,他们倾向于产生无常损失。
Cardano使用扩展的未使用交易输出 (EUTxO) 会计模型来跟踪资产在整个链中的移动。 EUTxO 是确定性的,可以更好地预测无常损失。
这些看似无关的概念在区块链上融合成一个非常有趣的相互作用。本文考虑 DEX 设计并解释为什么 EUTxO 比基于账户的会计模型提供更好的无常损失可预测性。
无常损失:定义
作为流动性提供的资产的总价值低于您仅持有它们会产生的价值。
这是对无常损失最简单的定义,这个概念让流动性提供者感到恐惧。
当存入流动性池的资产价格相对于存入时间发生变化(向上或向下)时,就会发生永久性损失。换句话说,您提取资产时的资产价值与您将资产存入流动资金池时的价值不同。
无常的名称有点误导,因为代币价格的下降可能只是暂时的,价格可能会随着市场或交易条件等再次上涨。在这种情况下,损失将是暂时的(即无常的),因为价格会向上纠正。仅当提款时代币的美元价格低于存入代币时的价格时,更改才会永久生效。
您可能会争辩说,无常损失是流动性提供者为了换取在流动性池上交易加密货币对所赚取的费用而承担的风险。如果损失大于所赚取的费用,流动性提供者就会意识到损失,如果他们持有代币,这可能不会发生。有趣的是,您可能实际上并没有亏钱,但您的收益可能比您刚刚持有代币时要少。
AMM与订单簿
了解无常损失需要对 DEX 的工作原理有基本的了解。目前,DEX 使用两种设计模型:AMM 和订单簿。在探讨无常损失时,每种方法都有一系列以下的优点和缺点。
AMM
自动做市商 (AMM) DEX 模式支持使用智能合约自动交易加密货币对。这些货币对通常(但不总是)基于以太坊的代币和稳定币。
AMM依赖于流动性池,流动性池是一种有助于用户将其资产汇集到智能合约中的机制。池中的流动性越多,在与池相关的 DEX 上进行交易就越容易,流动性提供者获得的费用和奖励就越高。流动性池将投资者提供的流动性聚合到交易对的两侧。该池使用一种算法来查看当前流动性来计算当时该货币对的市场价格。换句话说,该算法会考虑池中特定资产的可用性来确定其价格。
AMM几乎完全依赖流动性提供者来提供流动性以扩大资金池的规模并确保资产以公平的价格交易。这种设计特征实际上意味着流动性提供者是做市商。
当然,流动性提供者需要激励投资。这以收益农业的形式出现,本质上是通过借贷或抵押数字资产获得的代币奖励。
订单簿
订单簿设计背后的机制在经济学领域已经存在很长时间了我。这是一个非常简单的模型。订单簿简单地列出了所有买入/卖出(在此上下文中的询价/出价)订单,因此当交易者下订单时,订单簿会根据资产的价格对其进行排序。如果有供求关系,资产就可以交易。
基于 UTXO 的分类账,如 Cardano,更适合订单簿架构,因为这种设计与 Cardano 的 EUTxO 功能一起减轻了无常损失的影响。
无常损失的(非)可预测性
流动性提供者为资金池提供流动性以获得财务回报。但这也带来了风险。池中代币的数量和为其贡献的流动性提供者的数量是导致无常损失发生可能性的主要因素,并且这种考虑对于潜在的流动性提供者很重要。频繁的无常损失导致资金池枯竭,流动性提供者将目光投向别处。
这是关于无常损失的阴险之处:很难预测它是否会发生,以及会发生到什么程度。
基于 UTXO 的链与基于账户的链中的无常损失
快速介绍:
• 基于UTXO 的链:没有账户持有余额。相反,用户的钱包会跟踪与用户拥有的所有地址相关的未使用输出列表,并计算用户的余额。 UTXO 在很多方面都类似于现金交易。卡尔达诺的 EUTxO 模型添加了一个数据,这是特定于合同的数据。这很重要,因为它赋予了卡尔达诺支持多资产和智能合约的能力。
• 基于账户的模型——这种会计模型使用一个账户(可以由私钥或智能合约控制)来持有代币余额。在该模型中,资产表示为用户账户内的余额,余额存储为账户的全局状态。状态由每个节点保存并随每笔交易更新。
这两种模型之间有几个根本区别,但在 AMM 和无常损失方面,有一个关键区别。在基于账户的链(如以太坊)上运行的 AMM 倾向于使用恒定公式做市商 (CFMM) 定价公式,这是 AMM 更常用的算法之一。这个公式包含固有的低效率。例如,锁定总价值(TVL)——定义为所有获得奖励、利息等的质押加密资产的总和——分布在整个价格范围内,这意味着资产的价格同样可能为 1 美元或 10,000 美元。在这种假设下,CFMM 价格是不切实际的,往往不能反映实际的市场状况。此外,低代币交易量的交易往往会导致高滑点(订单的预期价格与订单实际执行时的价格之间的差异。)虽然 CFMM 是 AMM 的流行选择,但这些低效率可能导致稀释流动性提供者的收入。更重要的是,这种流动性会遭受无常损失。
EUTxO和订单簿 DEX 设计作为抵御无常损失的堡垒
EUTxO架构在安全性、确定性、并行性和可扩展性方面的固有优势为使用订单簿设计的 DEX 提供了理想的环境,因为它对无常损失具有更强的弹性。这种设计的一个关键优势是集中的流动性(在自定义价格范围内分配的流动性)。这一特性最大限度地提高了流动性的效率并最大限度地减少了无常损失。
为什么全球状态在基于 EUTxO 的链中不是问题
与基于账户的区块链每一个交易结果都会改变全局状态不同,在基于 UTXO 的区块链中,交易的有效性在交易级别进行评估,余额是剩余 UTXO 的总和。换句话说,它是在当地的状态。
这立即给基于帐户的链带来了问题。大量智能合约和其他参与者不断地相互作用和影响全球状态,这意味着资产和资源被消耗,gas 价格一直在涨跌。这样做的一个副作用是交易费用可以(并且确实)波动。实际上,这意味着交易的 gas 费用可能会在交易提交和验证之间的时间间隔内大幅飙升。因此,这样的交易可能不会被链接受,但无论如何都会收取汽油费,这可能会给用户带来经济损失。这是以太坊链的主要设计缺陷之一。
卡尔达诺的 EUTxO 模型不会出现费用浪费,因为交易是在当地处理和验证的。这是通过向交易添加数据(附加数据)来实现的。数据包含特定于合约的信息,这些信息被传递给交易的验证逻辑,从而维护 EUTxO 的确定性上下文。这实际上意味着交易费用是预先知道的,并且不会改变。 EUTxO 和确定性的一个受欢迎的副作用是交易不能被不良行为者重新排列,这是基于帐户的模型的另一个风险。
交易验证的本地特性提供了另一个显着优势:高度并行性。一个节点可以并行验证交易,只要这些交易不尝试使用相同的输入。这不能在基于账户的链中完成,因为交易必须按设计顺序处理。
进一步的增强
Plutus平台为 Cardano 区块链提供原生智能合约语言。即将向 Plutus 提出的卡尔达诺改进提案 (CIP) 包括:
CIP-31:参考输入 CIP-32:内联基准 CIP-33:参考脚本 CIP-40:附带输出
关键要点:
• 无常损失是基于流动性池的 AMM 中两种加密货币资产价值之间的净差。
• 无常损失是通过比较代币在提取时的价值与仅持有它们的价值来计算的。
• 稳定币具有价格稳定性,因此使用稳定币的流动性池可以减少无常损失。
• 使用订单簿 DEX 设计的基于 UTXO 的链比基于账户的链上的 AMM DEX 更能抵御无常损失。
• EUTxO 模型中不会出现费用浪费,因为交易是在当地进行处理和验证的。
原文链接:Everything you always wanted to know about impermanent loss and were afraid to ask - IOHK Blog