移动平均——去中心化金融数学:用例和脆弱性

  • bloqarl
  • 发布于 2024-08-13 10:53
  • 阅读 32

本文深入探讨了移动平均线在去中心化金融(DeFi)中的应用及其潜在的风险和漏洞,包括在传统金融中的使用差异、具体用例以及防范措施。移动平均线不仅能平滑价格波动,还影响智能合约的功能,如自动化市场制造商和借贷协议,同时也存在被操纵的风险,作者提出了最佳实践以增强安全性。

移动平均 — DeFi 数学:用例和漏洞

1. 引言:什么是移动平均?

嗨,Crypto 爱好者!是否想过交易者是如何在价格波动中显得有如水晶球般明晰的?实际上,他们并没有(抱歉破坏了这个幻想),但他们确实掌握了一些巧妙的工具。其中最受欢迎的?移动平均。

那么,移动平均到底是什么呢?

想象一下,你正试图判断气温是否随时间变暖。与其查看每天的气温(可能会大幅波动),不如查看过去一周的平均气温。随着每一天的过去,你放弃最旧的一天,加上最新的一天 — 这就是你的“移动”平均。

在金融中,我们对价格做同样的事情。移动平均平滑了一定时期内的价格数据,有助于过滤噪音,显示潜在的趋势。

“等一下,”我听到你问, “移动平均是不是有不同的类型?”

当然!最常见的两种是:

  1. 简单移动平均 (SMA):这是在设定周期内的简单平均。将价格相加,除以周期数。简单明了。
  2. 指数移动平均 (EMA):这个稍微复杂一些。它对近期价格赋予更多权重,使其对新信息更敏感。

“好吧,但我为什么要关注 DeFi 中的移动平均呢?”

好问题!移动平均现在不仅仅是传统金融的工具。在 DeFi 的广阔世界中,它们被以令人兴奋(有时甚至是可怕)的新方式使用。从帮助设置去中心化交易所中的价格到管理借贷协议中的风险,移动平均正在成为 DeFi 工具包中至关重要的一部分。

但这就来了 — 在智能合约中实施移动平均并不像看起来那么简单。它伴随了一系列挑战、陷阱,甚至潜在的利用。

准备深入了解了吗?在下一部分,我们将探讨移动平均在传统金融与 DeFi 中的应用,以及为什么这种差异很重要。相信我,接下来将会是一次惊心动魄的旅程!

2. 传统金融与 DeFi 中的移动平均

现在我们已经掌握了基础,来谈谈移动平均在传统金融和 DeFi 中的使用方式及其不同之处。

在传统金融中,移动平均主要用于技术分析。交易者利用它们来识别趋势、支撑与阻力水平,以及潜在的买入或卖出信号。例如,当短期移动平均交叉突破长期移动平均时,这可能预示着牛市趋势。

“但这如何转化为 DeFi 呢?”我听到你问。

在 DeFi 中,移动平均呈现出全新的生命。它们不仅仅是分析工具 — 它们成为智能合约和协议的活跃组成部分。以下是几个关键的区别:

  1. 实时执行:在 DeFi 中,移动平均可以触发自动操作。想象一下,一个借贷协议根据使用率的移动平均调整利率。无需人工干预!
  2. 链上与链下:传统金融在链下计算移动平均,而在 DeFi 中,我们通常需要这些计算在链上进行,这带来了独特的挑战(稍后将详细讨论)。
  3. 数据可用性:传统市场有收盘价。在 DeFi 中?市场从不入睡。这种连续的数据流可以使移动平均计算变得更加复杂。
  4. 操纵风险:尽管传统市场不免受到操纵,但 DeFi 的可组合性和有时较低的流动性可以使移动平均更容易受到有意的偏差影响。

3. 移动平均在智能合约中的应用场景

现在我们已经看到了如何实施移动平均,让我们深入探索它们实际上在 DeFi 中的应用场景。准备好,因为这里的内容会变得非常有趣!

价格预言机

许多 DeFi 协议使用移动平均来平滑价格波动,并提供更稳定的价格数据。

例如,Chainlink 的价格馈送通常使用时间加权平均价格 (TWAP) 模型,这就是一种移动平均。这有助于减轻短期价格尖峰或下跌的影响,为 DeFi 协议提供更可靠的价格馈送。

“但等等,”你可能会问,“这难道不会使价格馈送对真实市场变化反应不灵敏吗?”

很好!这正是许多协议使用多个时间框架或将移动平均与其他指标结合的原因。找到稳定性与响应性之间的平衡至关重要。

自动化做市商 (AMM)

像 Uniswap 和 Curve 这样的 AMM 使用流动性池来促进交易。一些较新的 AMM 设计结合了移动平均,以动态调整其绑定曲线或费用结构。

例如,想象一个 AMM,根据交易量的移动平均调整其费用。在高波动性(通过交易量高于平均水平指示)时期,它可以提高费用,以保护流动性提供者免受无常损失。

借贷协议

在 DeFi 借贷的世界中,移动平均在风险管理中起着关键作用。我们来拆解几种使用方式:

  • 利率计算:像 Aave 这样的协议使用利用率的移动平均来动态调整利率。随着平均利用率的增加,利率上升,以激励更多的存款和更少的借款。
  • 抵押率:一些协议使用资产价格的移动平均来确定安全的抵押率。这有助于平滑短期价格波动,否则可能触发不必要的清算。

算法稳定币

算法稳定币就像加密世界的高空走钢丝演员,移动平均是它们的平衡杆。以 Ampleforth (AMPL) 为例。它使用其汇率的移动平均来决定是扩展还是收缩货币供应。

“听起来不错,但也有点可怕,”你可能在想。

你没有错!虽然移动平均可以帮助稳定这些系统,但它们也引入了延迟,这可能导致有趣(有时也是棘手)的情况。

产量农业和流动性挖矿

在这里事情变得更加刺激。一些产量农业协议利用移动平均来确定奖励率。例如,一个协议可能根据总锁定价值 (TVL) 的移动平均调整其奖励释放。

这可以通过根据长期趋势而非短期波动自动调整奖励,帮助创建更可持续的产量农业生态系统。

衍生品和合成资产

在链上衍生品的世界中,移动平均用于从确定永续期货的资金利率,到计算合成资产的价格。

例如,Synthetix 使用指数移动平均 (EMA) 来执行其汇率。这有助于保护不受价格操纵的影响,同时仍然允许合成资产准确跟踪其基础资产。

治理机制

即使在 DAO 治理中,移动平均也找到了立足之地。一些协议使用代币持有者参与的移动平均来动态调整法定人数要求。如果参与度较低(基于移动平均),法定人数要求可能会降低,以确保提案仍然可以通过。

“哇,移动平均在 DeFi 中无处不在!”你可能在想。

你说得对!它们就像 DeFi 世界的瑞士军刀 — 非常有用,但若不加小心也可能带来危险。

这引出了一个重要的观点:力量越大,责任也越大。所有这些在智能合约中使用的移动平均都可能引入潜在漏洞。了解如何使用移动平均的攻击者,可能能够操控系统以自己的利益。

但别担心,我们不会让你束手无策。在下一部分中,我们将深入探讨这些陷阱和漏洞,武装你以便能够在 DeFi 的广阔世界中识别潜在问题。

4. 陷阱和漏洞

好吧,准备好,Crypto 牛仔们和牛女孩们!我们即将进入 DeFi 漏洞的阴暗领域。记住,知晓是战斗的一半,让我们揭示这些黑暗角落。

预言机操纵

我们之前提到过这一点,但让我们深入探讨。预言机操纵是 DeFi 的幽灵,而移动平均有时使攻击者更容易实现这一点。

以下是可能的工作方式:

  • 攻击者注意到一个协议使用移动平均作为价格数据。
  • 他们计算出需要将价格移动多少,才能显著改变平均值。
  • 利用一系列交易(通常通过闪电贷促成),他们将价格推向所需方向。
  • 移动平均发生变化,攻击者利用这一变化获利。

“但等一下,”你说,“执行这一操作难道不需要大量资本吗?”

不一定,这就是它可怕的地方。通过闪电贷,攻击者可以借用大量资本,执行其攻击,并在单个交易中偿还贷款。

闪电贷攻击

说到闪电贷,它们在许多 DeFi 利用中提供了增压动力。以下是它们如何被用来利用移动平均的更详细视角:

  • 攻击者为某资产进行大额闪电贷。
  • 利用这笔资金进行一系列交易,以操控 DEX 上的价格。
  • 如果协议使用来自该 DEX 的近期价格数据计算移动平均,平均数将会发生改变。
  • 攻击者随后利用这一变化,可能通过获取少抵押贷款或操纵合成资产价格。
  • 他们获利,偿还闪电贷,带走差价。

数据陈旧和延迟问题

移动平均的准确性完全依赖于其所基于的数据。如果数据陈旧,可能导致一些糟糕的结果:

  • 想象一个借贷协议,采用 24 小时的移动平均计算抵押率。
  • 如果抵押资产的价格突然下跌,但移动平均尚未更新,协议可能会继续将抵押品的价值高估。
  • 这可能使用户能够获得实际上是少抵押的贷款,置整个协议于风险之中。

精度损失和取整错误

Solidity(以太坊智能合约语言)不支持小数,这可能在计算移动平均时导致精度损失:

  • 假设你在计算 10 个周期的简单移动平均。
  • 将 10 个数值相加并除以 10。
  • 但如果总和不能被 10 完全整除?你会失去一些精度。
  • 随着时间推移,这些小的取整错误会累积,导致移动平均越来越不准确。

“哎呀,”你可能在想,“这听起来很糟糕。”

你说得对!这在小数位数少的资产(如 USDC (6 位小数))和小数位数多的资产(如 ETH (18 位小数))之间尤为成问题。

时间加权平均价格 (TWAP) 操纵

TWAP 是 DeFi 中一种流行的移动平均形式,但它并不免受操纵:

  • 攻击者可能在一个 TWAP 测量周期快要结束与开始时执行大额交易。
  • 这种“夹击”攻击可以扭曲 TWAP,而攻击者在整个时期内无需保持一个头寸。
  • 如果一个协议使用这个 TWAP 进行关键操作(如贷款抵押或合成资产定价),可能导致易被利用的情况。

治理参数攻击

记得我们提到在治理中使用移动平均吗?这打开了一个全新的麻烦:

  • 攻击者可以操纵代币持有者的参与,从而影响移动平均。
  • 这可能降低法定人数要求,使恶意提案更易通过。
  • 或者,他们可能尝试夸大参与指数,使合法提案更难通过。

流动性转移攻击

一些 AMM 使用移动平均来调整其参数,这可能会被利用:

  • 攻击者观察移动平均的计算周期。
  • 他们暂时将大量流动性转移到池中,足以影响平均值。
  • 一旦根据这一操控后的平均值调整参数,他们就会移除流动性。
  • 这可能导致错误定价的交易或次优的费用结构,攻击者接着可以利用这些。

“哎呀,”你可能在想,“DeFi 中就没有安全的东西吗?”

的确,存在风险,但不要惊慌!理解这些漏洞是打造更强大系统的第一步。实际上,许多协议已对这些类型的攻击实施了复杂的保护措施。

5. 最佳实践

好了,Crypto先锋们,我们已经穿越了 DeFi 中移动平均的险恶 terrain。现在是时候让自己装备好工具和知识,安全有效地使用它们。让我们深入探讨一些最佳实践:

使用多个数据来源

想想古老的说法,“不要把所有的鸡蛋放在一个篮子里”?

在 DeFi 中,更像是“不要单纯依赖一个预言机来管理你的百万美元协议。”以下是如何正确操作:

  • 实施来自多个可靠预言机的中位价格馈送。
  • 考虑使用中心化(如 Chainlink)和去中心化(如 Uniswap TWAP)预言机的组合。
  • 根据来源的历史准确性和抗操纵能力赋予权重。

实施电路保护

想象电路保护就像你 DeFi 汽车里的安全气囊。如果事情出错,它们可能有点麻烦,但如果情况失控,你会很感激它们的存在。

  • 设置可接受价格波动的阈值。
  • 如果这些阈值被突破,暂停协议受影响的功能。
  • 确保你自电路保护不易被攻击者轻易操控。

使用中位数价格而不是平均值

中位数就像平均值的坚固大哥哥。它们不容易被极端值影响。

  • 考虑使用移动中位数而不是简单移动平均。
  • 这可以帮助减轻短期价格操纵的影响。

定期审计和压力测试

你的智能合约就像一艘船,审计是你的维护检查。不要忽略它们!

  • 定期对你的智能合约进行第三方审计。
  • 进行广泛的压力测试,模拟各种攻击场景。
  • 考虑实施一个漏洞赏金计划,以激励白帽黑客。

实施时间延迟

有时,稍微放慢速度可以作为应对攻击的良好防御。

  • 对依赖移动平均的关键操作,考虑实施时间延迟。
  • 这为任何被操控的价格提供了纠正的时间,也为电路保护提供了激活的机会。

使用指数移动平均 (EMAs)

EMAs 可以对近期价格变化做出更快的响应,同时平滑噪音。

  • 考虑使用 EMAs 代替简单移动平均,以获取更及时的数据。
  • 注意这种增强的响应性可能是一把双刃剑,并相应调整其他保护措施。

结论

那么,亲爱的 DeFi 爱好者,我们经历了相当一段旅程,不是吗?我们深入探讨了移动平均的世界,从它们在传统金融的朴素开端到它们在智能合约中的复杂实现。

那么我们学到了什么?

  1. 移动平均远不止是图表上的线。在 DeFi 中,它们是为借贷协议、AMM、预言机甚至治理系统转动的隐形齿轮。
  2. 权力越大,责任也越大(以及潜在漏洞)。从预言机操纵到精度损失,陷阱是真实存在的,且可能带来数百万的后果。
  3. 最佳实践不仅仅是美好之词 — 这都是必要的防护措施。多个数据来源、电路保护和定期审计不仅仅是流行词汇;它们是保持 DeFi 协议生存的救生衣。
  4. 移动平均在 DeFi 的未来既令人兴奋又难以预测。从 AI 整合到跨链实施,唯一的限制是我们的共同想象力(或许还有Gas费,但那是另一个故事)。

让我们联系:

https://x.com/TheBlockChainer

https://www.linkedin.com/in/carlos-vendrell-felici/

https://linktr.ee/bloqarl

如果你需要帮助,请与我们合作:

  • 智能合约审计 (Solidity, Rust, Cairo)
  • 高级安全测试套件 (模糊测试、不可变性测试 + 形式验证)
  • 智能合约开发
  • Web2 渗透测试

https://github.com/ZealynxSecurity

https://x.com/ZealynxSecurity

  • 原文链接: medium.com/@bloqarl/movi...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
bloqarl
bloqarl
江湖只有他的大名,没有他的介绍。