纠错赏金 。 Synthetix 正确执行了预言机合同,从多个数据来源引入报价,以防止交易者在链上发布之前预测到价格变化。然而一个上游价格馈送故障的孤立案例,导致了 毁灭性的攻击 。这说明了使用链下数据价格预言机的风险:你不知道价格是如何计算的,因此 必须仔细 设计系统 ,以便能正确处理所有潜在的故障模式。 担保不足贷款如前所述,我在 2019 年 9 月发表了一篇帖子,概述了使用链上数据的价格预言机的相关风险。虽然我强烈推荐阅读原贴,不过其中有相当多且复杂的技术细节,可能使其难以消化。因此我在这里提供一个 简化的解释 。 假设你希望将 去中心化贷款 引入区块链。用户可以将资产作为抵押品存入,并借入由其存入的资产价值决定的、一定金额的其他资产。假设用户希望以 ETH 作为抵押品借入美元,ETH 的当前价格为 400 美元,抵押比率为 150% 。 如果用户存入 375 ETH,相当于存入 15 万美元的抵押品。他们可以按每抵押 1.5 美元借走 1 美元,所以他们可以从系统中借到不超过 10 万美元。 当然在区块链中,不像简单地声明 1 ETH 价值 400 美元那么简单,因为恶意用户可以简单地声明 1 ETH 价值 1000 美元,然后从系统偷走所有的钱。因此对于开发者来说,非常需要最近的价格预言机的界面,如 Uniswap 、 Kyber ,或其他去中心化交易所中的当前现货价格。 乍一看,这似乎是正确的做法。毕竟,每当你想购买或卖出 ETH 时,Uniswap 的价格总是大致正确的,因为任何偏差都会被套利者迅速纠正。但是事实证明,去中心化交易所的现货价格在交易期间 可能非常错误 ,如下例所示。 考虑一下 Uniswap 留存资产的函数公式。其内部报价是根据 储备持有的资产量 计算,但随着用户在 ETH 和 USD 之间交易,储备资产不断变化。如果恶意用户在从你的平台获得贷款之前和之后执行交易,会怎么样? 用户在你的平台贷款之前,他们以 200 万美元买入 5000 ETH。Uniswap 交易所现在计算价格为 1 ETH = 1733.33 美元。现在,他们的 375 ETH 可以作为抵押品,可以贷走 高达 43.3333 万美元 的资产,然后他们用原来的 5000 ETH 换回 200 万美元,重置 Uniswap 内的价格。结果是你的贷款平台同意该用户多借出了 33.3333 万美元的无抵押贷款 。 (责任编辑:admin) |