智能合約是運行在區塊鍊網絡(如以太坊)上的軟件代碼,並根據特定事件執行操作或任務。假設我想進行一筆交易,在交易中我提供了接收者的地址和證明我擁有並擁有網絡資金的證據。如果一切順利,網絡將把資金“轉移”給接收者。
如果我想創建一個去中心化的應用程序,它需要外部數據,比如當前的天氣溫度、以太坊的價格,甚至棒球比賽的結果,該怎麼辦?
一個智能合約,換句話說,區塊鏈上的一段代碼,是如何獲得這個信息的?這就是區塊鏈應用程序的預言機的用武之地。
“預言機”一詞的字面意思是可靠的信息來源。因此,一本字典甚至可以被視為預言機。然而,我們想要避免不可靠的信息,所以我們引入了冗餘。但是,我們也考慮燃氣費用。 3個外部數據源的天然氣費用是正常天然氣費用的3倍。因此,我們可以取平均值或中值。
什麼是預言機?
預言機可以被看作是一個鏈上傳輸數據的鏈下平台。它也是一個將區塊鏈與其他系統連接起來的鏈下平台。將數據從web服務器轉發到區塊鍊是預言機的職責。除了DEX,大多數去中心化應用程序都使用預言機。
為了獲得可靠的數據並避免單點故障或防範惡意預言機節點,我們有時選擇使用冗餘。我們引入更多的節點。例如,如果我們想為DeFi貸款提供抵押品,我們希望有多個來源的ETH的價格,借款人將ETH作為抵押品存入。
預言機幫助中繼鏈下數據
區塊鏈上的智能合約不能簡單地從任何數據源(如web服務器)中挑選信息,因為所有節點都需要能夠獨立驗證運行智能合約的結果。當這種情況發生時,他們很可能會得到不同的結果。
例如,比特幣在不同交易所的價格饋送是不同的。即使在不同的時間檢查同一來源也會得到不同的結果。我們如何知道哪個數字是準確的,或者選擇哪個數字?我們通常會選擇冗餘的結果。
預言機有哪些類型?
我們根據三個方面對預言機進行分類:信息的來源、信息的方向和信任程度。
數據來源可以是硬件,也可以是軟件。硬件預言機直接從物理世界收集數據,並將其轉換為數字價值,然後輸入智能合約。其中包括條形碼掃描器和傳感器,它們主動或被動地收集數據並將其傳輸到智能合約。
軟件預言機從在線資源獲取信息,瀏覽他們的網站,從而為智能合約提供最新的信息。對於區塊鏈,這些信息通常來自加密貨幣交易所。
信息的方向可以是入站或出站。入站預言機允許網絡將外部數據源的信息發送到智能合約,而出站預言機則允許智能合約將數據發送到外部數據源。
中心化預言機作為一個單一的實體,提供從外部源到具有一組安全特性的智能合約的數據。然而,因為只有一個節點負責——類似於存在單點故障的傳統金融系統——它變得不那麼安全,更容易被輸入智能合約的惡意數據破壞和攻擊。
另一方面,去中心化的預言機依靠多個外部來源來增加提供給智能合約的數據的可信度。去中心化預言機基於Schelling 點博弈論,在Schelling點博弈論中,所有參與者都不相互串通,提供數據,Schelling博弈在過濾了任何不准確性後,決定了共識數據點或向軟件提出的修正是否有效和可接受。
相信預言機
由於單點故障,我們需要信任預言機,這一直是一個令人擔憂的問題。區塊鏈的本質是消除信任中介的需要,並消除單點故障。我們可以通過讓多個獨立的預言機形成共識來消除這種擔憂。
這就導致了預言機服務的創建,這些服務可以從各種來源獲取信息。這些資源包括谷歌、亞馬遜等大公司,以及氣象站等其他組織。這確保了結果比單一來源更可靠。
Provable是一個預言機服務,當開發人員需要諮詢區塊鏈之外的可靠數據源時,它可以幫助他們。它提供了數據真實性的加密保證。
應該使用預言機服務還是數據源?
互聯網上有大量的數據源。因此,將單個應用程序直接集成到數據饋送中成為一項挑戰。這就是預言機服務的用處所在。它們抽象了來自雙方的信息,使應用程序更容易獲得所需的數據提要。
使用預言機DeFi協議
開放借貸協議,如MakerDAO、Compound和Aave,在以太坊區塊鏈上運行時使用預言機獲取外部數據。 MakerDAO是最受歡迎的DeFi開放借貸協議之一,其Dai代幣與美元掛鉤,並由加密資產支持。
MakerDAO利用一個預言機模塊來確定資產的實時價格。該模塊由預言機的白名單地址和一個聚合器合約組成。預言機會定期向聚合器發送價格更新,由聚合器確定中值價格,然後將其用作平台上的參考價格。
Compound是一種貨幣市場協議,允許用戶賺取利息和/或以抵押品為抵押借入資產。與MakerDAO類似,Compound也使用預言機來收集價格信息,然後將這些信息轉發到其價格饋送,由Compound原生代幣COMP的持有者的“管理員”管理和控制。
閃電貸款和對防篡改預言機的需求
與流動性挖礦的概念一樣,去中心化金融(DeFi)也出現了一種新的流動性機制。這就是所謂的“閃貸”。閃貸允許用戶從鏈上流動性池中藉入資產,無需預先抵押,只要在同一筆交易中將藉入的流動性再加上一小筆費用返還給流動性池。
這種創新設計增加了各種用例中所有用戶對資本的訪問,同時確保基礎流動性池的充分、持續償付能力。
在很短的一段時間內(一筆交易的跨度),閃貸可以讓任何人成為資本充足的參與者,提供數億美元的流動性。
這為套利、抵押品交換和槓桿頭寸的創建創造了獨特的機會,但也帶來了一定的風險,特別是對於一個具有不同程度去中心化和安全性的協議的新生生態系統。智能合約開發人員應該了解這些風險,以便為用戶構建更強大的應用程序。
閃電貸款和價格預言機攻擊
從單一來源獲取價格的協議很容易被擁有大量資金的惡意行為者利用,他們可以通過一次大型交易操縱市場。
由於閃貸可以在任何時間為世界上任何人提供即時和可觀的流動性,它們越來越多地被用於資助對DeFi協議的攻擊。然而,這裡有一個關鍵的區別:閃電貸款只提供執行攻擊的資金——真正的問題是沒有提供足夠市場覆蓋的中心化價格預言機。
來源:https://medium.com/the-capital/oracles-the-invisible-backbone-of-defi-and-applied-blockchain-apps-bb5b1404fa39