区块链
北京时间 2019 年 6 月 25 日凌晨 1点,区块链资产平台 Synthetix 遭遇 Oracle 攻击,导致平台上的 sKRW/sETH 汇率出错,攻击后不到 1 小时内超过 3700 万枚 sETH 被低价交易,涉及金额近 10 亿美元。
这应该是首起 Oracle 预言机攻击事件,之前很多安全事故是由于智能合约代码本身有问题导致被攻击,这次出问题的环节变了,去中心化服务平台的 Oracle,即“预言机”成为了攻击目标。
那什么是 Oracle 预言机,为何会有如此严重的后果呢?
通常,一个强壮的区块链项目具有数据不可篡改的特性(考虑 51% 攻击情况),这可能是你刚学习区块链时会频繁看到不断被强化的信息;随着学习的深入,你会发现比数据不可篡改更重要的是数据的真实性,一个假的数据即使不可篡改又有什么价值呢?
区块链应用经常要获取来自现实世界的真实数据,比如你的身份证号码、一支股票的最新价格、某地房屋的最新成交价,这些数据在互联网上或许是垂手可得。但对区块链应用来说,就需要某种方式和机制来调用。
这种方式,在区块链里我们称其为预言机,和直接调用互联网上、某个中心化信息提供方的数据接口(如股票信息)不同,去中心化地获得这些真实数据,确保其不受篡改,将其安全地传至区块链应用是 Oracle 预言机的核心任务。
通过参与者多方投票来产生一个确定性的结果,是 Oracle 预言机常见的做法之一,适用于一些特定场景比如选举、世界杯赛事。在这种情况下通过利益来约束投票者。投票者需要抵押 Token 进行投票,投票错误者将会损失 Token。比如世界杯决赛结果中德为 0:2,你押了 100 个 Token 在中德为 2:0,最终投票和多个数据源核实后会得到真实结果,然后你将损失押出的所有 Token。
投票方式有效,但效率并不高,如果是需要数据快速上链的场景,比如货币汇率,投票方式就不适合了。
今年以来,不断发展壮大的去中心化金融 DeFi 领域是 Oracle 预言机主要应用场景之一,这些 DeFi 应用需要和链下数据源进行大量高频的金融数据交互和验证。在这些情况下,Oracle 预言机需要更快速、可信、高效的数据获取和验证机制,包括使用更多数据源、构建二层网络+随机节点组获取数据等。
然而 ,对于金融服务来说如果数据出了错,造成的损失也是“高效”的。在文章开头的事件中,预言机数据受攻击出错后,交易机器人立即发现了问题并开始自动交易,短时间内即造成了高额损失,虽然平台最终联系到了交易机器人的所有者,协商降低了损失,能这样处理只是因为目前涉及范围较小。如果是广泛应用的情况,攻击成功后带来的后果或许难想象。
全部0条评论
快来发表一下你的评论吧 !