本内容由德语机器翻译而成,尚未经母语人士审校。技术和监管术语以德语或英语版本为准。

当一切都没有出故障时

这类事件中,每份合约都完全按其规定执行——结果却仍是损失。

本课未经专业审阅。它是为本平台撰写的,并依据所列证据写成;未进行过独立的专业审阅。

学习目标

  • 您能够区分经济型漏洞利用与逻辑错误,并指出其对审查的影响。
  • 您能够说出此类事件所需的三个要素。
  • 您能够解释为什么审计报告只能部分涵盖这一类别。

检查预备知识

请在继续阅读之前,先自行回答这些问题。您犹豫的地方,正是本课的价值所在。

核心概念

事实

正确,却仍造成损失

逻辑错误是代码实际所做与应做之间的偏差。经济型漏洞利用则是另一回事:代码做了它应做的事,但使该规则合理的假设在那一刻并不成立。逻辑错误可以对照规范进行检查。经济型漏洞利用只能对照一个情境模型进行检查——而这个模型很少被写在任何地方。

事实

三个要素

这一类别中几乎所有事件都需要同样的东西:一条依赖于某个观测量(通常是价格)的规则;一种在短时间内推动该观测量的手段;以及足以做到这一点的资金。第三点是已经发生变化的一点:在单笔交易持续时间内的资金无需抵押即可获得,因为还款在同一次调用中被强制执行。

解读

审查问题发生转移

针对逻辑错误,审查代码有帮助。针对这一类别,有帮助的是检验规则背后的假设:哪个观测量会进入某项决策?在一个区块的持续时间内推动它要花多少成本?如果恰好发生这种情况会怎样?第三个问题是一个建模问题,即使已有两份审计报告,它也应纳入分析。

数据

研究对此的定位

该领域的鉴证服务本身就是实证研究的对象,而审计的存在是关于流程的一项发现——这一点记录于 EVD-2026-0005;智能合约在外部数据方面存在可明确指出的局限——记录于 EVD-2026-0004。两个来源都是对机制的一般性定位。它们对任何具体合约或特定事件均不作任何说明,也不能替代审计。

术语

经济型漏洞利用
合约按规则执行、而规则背后的假设并不成立的事件。
单笔交易内的借贷
一种无需抵押的借款,其还款在同一次调用中被强制执行——否则整个调用被视为未发生。
规范
对程序应做之事的描述——审计据以检查的标尺。

模型

  1. 哪个观测量会进入合约的决策?

  2. 该观测量所来自的市场有多深?

  3. 基于它所决定的金额有多大?

  4. 如果第三行大于第二行,则应记录该发现

揭示这一类别的四个问题 — 这四项数据在事件发生前均可获得。这正是这一类别与未被发现的逻辑错误的区别所在。

公式

粗略的攻击测算

值得尝试,若 erreichbarer_gewinn > kosten_der_bewegung + gebuehren
erreichbarer_gewinn
被扭曲的观测量所能带来的支付
kosten_der_bewegung
在短时间内推动观测量所需的价格冲击和费用
gebuehren
执行成本,包括交易内的借贷费用

局限: 该不等式描述的是一次尝试何时划算,而不是它是否可能——而且它只知道在当前现有深度下推动价格的成本。深度增加时,测算结果会反转,而合约本身没有任何变化。它是一种思考工具,而不是安全评估。

计算示例

一条单独来看合理的规则

规则
抵押价值取决于池 X 中的价格
池 X 的深度
窄区间内 140 万 USD
价格被扭曲时可借出的贷款
最高 900 万 USD
将价格推动一个区块的成本
约 300,000 USD

可实现的收益远高于推动价格的成本:该规则从一个深度小于其所决定金额的市场获取价格。在此过程中每份合约都正确运行。

代码没有错误,也没有违反任何规则——却仍产生与差额相当的损失。

解读: 可检查的发现不是“代码不严谨”,而是:价格来源比依赖它的金额更浅。这是一个数字与另一个数字的对比,可以在事件发生前确定——因此这一问题应纳入对每个有抵押头寸的审查。

提取练习

某协议损失了资金,而没有任何合约偏离其规范。恰当的归类是什么?
哪项数据能在事件发生前揭示这一故障类别?

基于真实数据的练习

请检查各项指导问题,区分哪些需要审计报告、哪些可以通过市场数据回答。

维度 9:安全 →

请确定其中列出的哪项数据对这一故障类别完全不能说明任何问题。

案例研究:已有审计,问题仍未解决 →

应用

请写出针对有抵押头寸涵盖这一故障类别的审查条目。

相关案例研究

机构视角解读

银行
您的哪项控制措施能察觉一起未违反任何规则的事件?
保险
按照您的条款表述,一起没有违反规则的事件是否属于承保事件?

本课涉及的指标

要点

证据