Oracle預(yù)言機(jī)將如何影響區(qū)塊鏈
北京時(shí)間 2019 年 6 月 25 日凌晨 1點(diǎn),區(qū)塊鏈資產(chǎn)平臺(tái) Synthetix 遭遇 Oracle 攻擊,導(dǎo)致平臺(tái)上的 sKRW/sETH 匯率出錯(cuò),攻擊后不到 1 小時(shí)內(nèi)超過 3700 萬枚 sETH 被低價(jià)交易,涉及金額近 10 億美元。
這應(yīng)該是首起 Oracle 預(yù)言機(jī)攻擊事件,之前很多安全事故是由于智能合約代碼本身有問題導(dǎo)致被攻擊,這次出問題的環(huán)節(jié)變了,去中心化服務(wù)平臺(tái)的 Oracle,即“預(yù)言機(jī)”成為了攻擊目標(biāo)。
那什么是 Oracle 預(yù)言機(jī),為何會(huì)有如此嚴(yán)重的后果呢?
通常,一個(gè)強(qiáng)壯的區(qū)塊鏈項(xiàng)目具有數(shù)據(jù)不可篡改的特性(考慮 51% 攻擊情況),這可能是你剛學(xué)習(xí)區(qū)塊鏈時(shí)會(huì)頻繁看到不斷被強(qiáng)化的信息;隨著學(xué)習(xí)的深入,你會(huì)發(fā)現(xiàn)比數(shù)據(jù)不可篡改更重要的是數(shù)據(jù)的真實(shí)性,一個(gè)假的數(shù)據(jù)即使不可篡改又有什么價(jià)值呢?
區(qū)塊鏈應(yīng)用經(jīng)常要獲取來自現(xiàn)實(shí)世界的真實(shí)數(shù)據(jù),比如你的身份證號(hào)碼、一支股票的最新價(jià)格、某地房屋的最新成交價(jià),這些數(shù)據(jù)在互聯(lián)網(wǎng)上或許是垂手可得。但對(duì)區(qū)塊鏈應(yīng)用來說,就需要某種方式和機(jī)制來調(diào)用。
這種方式,在區(qū)塊鏈里我們稱其為預(yù)言機(jī),和直接調(diào)用互聯(lián)網(wǎng)上、某個(gè)中心化信息提供方的數(shù)據(jù)接口(如股票信息)不同,去中心化地獲得這些真實(shí)數(shù)據(jù),確保其不受篡改,將其安全地傳至區(qū)塊鏈應(yīng)用是 Oracle 預(yù)言機(jī)的核心任務(wù)。
通過參與者多方投票來產(chǎn)生一個(gè)確定性的結(jié)果,是 Oracle 預(yù)言機(jī)常見的做法之一,適用于一些特定場(chǎng)景比如選舉、世界杯賽事。在這種情況下通過利益來約束投票者。投票者需要抵押 Token 進(jìn)行投票,投票錯(cuò)誤者將會(huì)損失 Token。比如世界杯決賽結(jié)果中德為 0:2,你押了 100 個(gè) Token 在中德為 2:0,最終投票和多個(gè)數(shù)據(jù)源核實(shí)后會(huì)得到真實(shí)結(jié)果,然后你將損失押出的所有 Token。
投票方式有效,但效率并不高,如果是需要數(shù)據(jù)快速上鏈的場(chǎng)景,比如貨幣匯率,投票方式就不適合了。
今年以來,不斷發(fā)展壯大的去中心化金融 DeFi 領(lǐng)域是 Oracle 預(yù)言機(jī)主要應(yīng)用場(chǎng)景之一,這些 DeFi 應(yīng)用需要和鏈下數(shù)據(jù)源進(jìn)行大量高頻的金融數(shù)據(jù)交互和驗(yàn)證。在這些情況下,Oracle 預(yù)言機(jī)需要更快速、可信、高效的數(shù)據(jù)獲取和驗(yàn)證機(jī)制,包括使用更多數(shù)據(jù)源、構(gòu)建二層網(wǎng)絡(luò)+隨機(jī)節(jié)點(diǎn)組獲取數(shù)據(jù)等。
然而 ,對(duì)于金融服務(wù)來說如果數(shù)據(jù)出了錯(cuò),造成的損失也是“高效”的。在文章開頭的事件中,預(yù)言機(jī)數(shù)據(jù)受攻擊出錯(cuò)后,交易機(jī)器人立即發(fā)現(xiàn)了問題并開始自動(dòng)交易,短時(shí)間內(nèi)即造成了高額損失,雖然平臺(tái)最終聯(lián)系到了交易機(jī)器人的所有者,協(xié)商降低了損失,能這樣處理只是因?yàn)槟壳吧婕胺秶^小。如果是廣泛應(yīng)用的情況,攻擊成功后帶來的后果或許難想象。