yVault 系统允许用户存入代币并赚取收益,而 无需自己管理代币 。在 yVault 内部,金库跟踪 yVault 代币铸造的总量以及存入的底层代币的总金额。单个 yVault 代币的价值取决于铸造的代币与存入代币的比率。金库赚取的所有收益都由所有铸造的 yVault 代币平分 (藉此由所有的 yVault 代币持有者平分) 。 第一个 yVault 允许用户利用 USDC 向 Balancer 协议中的 MUSD/USDC 流动性池提供流动性来赚取收益。当用户向 Balancer 池提供流动性时,将获得 BPT 作为回报,该 BPT 可以兑换流动性池中的一部分资产。因此,yVault 根据可使用 BPT 赎回的 MUSD/USDC 金额计算其持有的价值 这一实施似乎正确无误,但不幸的是,我们前文提到的危险原则同样适用:交易期间 Balancer 流动性池的 状态不稳定 ,其价格无法信任。在这种情况下,由于 Balancer 选择的联合曲线,用户从 USDC 交换到 MUSD 不会得到 1:1 的汇率,但实际上会在流动性池中留下一些 MUSD。这意味着 BPT 的价值可以 暂时膨胀 ,这给了攻击者恶意操纵价格的漏洞,然后以此抽干金库。 这一事件表明,价格预言机并不总是很方便,开发者需要警惕它们正在摄入的数据类型,并考虑这些数据是否可以被非特权用户轻松操纵。 Harvest Finance 黑客事件2020 年 10 月 26 日,一名未知用户采用一种你可能已经可以猜到的技术入侵了 Harvest Finance 的流动性池:攻击者通过执行交易来打压 Curve 协议流动性池中的 USDC 价格,以降低后的价格进入 Harvest 流动性池,再通过逆向操作先前的交易来恢复价格,然后以更高的价格退出 Harvest 流动性池。这给 Harvest 流动性池造成 超过 3300 万美元的损失 。 Harvest Finance 官方 事后剖析报告 我该如何保护自己?截至目前,我希望你已经学会了识别其共性:它 并不总是很明显 ,你使用价格预言机,如果你不遵循适当的预防措施,攻击者可以骗过你的协议,卷走很多钱。虽然没有一劳永逸的解决方案,但下面是过去一些项目 行之有效 的解决方案。也许其中一个也适合你。 浅水市场不要冒进就像跳水落到泳池的浅端一样,跳入浅水市场也是痛苦的,可能导致大量的开支,并永远改变你的生活。在考虑计划使用的特定价格预言机的复杂性之前,请考虑 代币是否足够具有流动性 ,足以保证与平台集成。 一鸟在手,胜过两鸟在林 (责任编辑:admin) |