全文共2292字,預計學習時長6分鐘
圖源:unsplash
區塊鏈Oracle是將確定性區塊鏈與鏈下數據連接的任何設備或實體。這句定義並不足以讓我們弄明白它,想要了解什麼是區塊鏈Oracle以及為什麼需要它們,我們需要回到區塊鏈的核心特徵之一——去中心化。
區塊鏈的問題
區塊鏈具有其分布式分類帳性質,網絡中的每個節點必須能夠在給定輸入相同的情況下找到相同的最終結果。否則,當一個節點試圖驗證另一個節點進行的交易時,最終得到的結果將是不同的。這種架構是有意為之的。
新的平衡很容易獲得
可以看到,從Bob發送5美元給Alice時,我們可以輕鬆地將5美元添加到Alice的餘額中,並從Bob的餘額中減去5美元。網絡上的每個節點都可以輕鬆地重現這一過程,獲得相同的結果,並最終處於相同的狀態。
但是,如果出現了其它情況呢?想像一個區塊鏈,其中他們使用API來驗證彼此的交易。假設我們想根據Bob帳戶向Alice發送基於以太幣(ETH)價格的可變金額。我們將讓合同調用一個API以獲取ETH的價格,然後將該金額發送給Bob。當其他所有節點都進行驗證時,它們也必須調用此API。
驗證變量要困難得多
現在發生了什麼?如果他們僅僅是稍晚一點調用該API,該API就可能已被更改(已被折舊、被黑或出於許多其他原因),那麼所有節點都將獲得不同的結果。這意味著沒有節點能夠就區塊鏈的實際狀態達成一致。
因此,以太坊區塊鏈和大多數區塊鏈都是期望能具備完全確定性的。也就是說,如果要重播每筆交易,我們最終都能處於正確的狀態。如果將API調用或其他非確定性來源包括在區塊鏈的基礎架構中,那麼該來源將很有可能被折舊、被黑甚至被破壞,導致無法驗證交易。
如果區塊鏈不確定,就無法達成共識。| 圖源:Chainlink
在區塊鏈中,達成數據值共識的機制稱為共識機制,其確定性很重要,因為只有這樣節點才能達成共識。其中內容你或許也了解一些,例如具有中本聰共識的工作量證明(PoW)或具有中本聰共識的權益證明(PoS)。共識機制是使區塊鏈首先發揮作用的關鍵因素之一。
但是我們需要區塊鏈世界與現實世界連接,需要將ETH和其他加密貨幣的價格納入合同,以便擁有DeFi;我們需要獲取天氣數據,以便可以進行分散式無信任保險。我們需要數據以將區塊鏈用於其最重要的目的之一,即智能合約。那麼我們如何在這個約束條件下架起橋梁、連接世界呢?
Oracles如何解決這個問題?
區塊鏈Oracle是將確定性區塊鏈與鏈下數據連接的任何設備或實體,這些oracles通過外部交易獲取每個數據。這樣一來,我們就可以確保區塊鏈本身包含驗證自身所需的所有信息。這就是oracles被稱為區塊鏈中間件的原因:它們是連接現實世界和區塊鏈系統的橋梁。
Oracle問題是什麼?
讓我們來回想一下首先要在鏈上進行構建的原因。我們在鏈上進行操作的一個重要原因就是去中心化。但是要知道,數據一定是來自某個地方的。
如果從單個API、節點或源中導入數據的話,那麼現在我們實際上已經背離了使用區塊鏈的全部目的。集中式架構下的Oracle意味著一個實體可以控制你的智能合約,此時你的智能合約也不會比常規合約更好。
還有,即便集中式架構下的Oracle的出發點是最好的,我們也已經看到了它會被黑客入侵、攻擊,會過時,還可能得不到維護,還有隨之而來的大麻煩。
集中式架構下的Oracle是重大的失敗點 | 圖源:Chainlink
Oracle問題的定義
Oracle問題是由以下兩部分結合在一起的:
· 區塊鏈本身無法訪問外部數據。
· 使用集中式架構下的Oracle使智能合約的優勢全無——這是主要的安全風險。
解決辦法
Chainlink解決了這兩個問題,它也是去中心化Oracle的標準。
Chainlink是一個框架,用於選擇你的獨立節點網絡以將現實世界的數據連接到區塊鏈,從而使智能合約發揮其真正潛力。通過這種方式,我們利用了與區塊鏈具有同樣可靠的去中心化基礎設施概念,但是使用在區塊鏈Oracles上。如果節點/源被黑客攻擊、折舊或刪除,那麼Chainlink的網絡將利用分散的網絡並繼續運行。
分散的Oracles是解決方案。| 圖源:Chainlink
有大量的市場利用Chainlink技術來幫助你選擇獨立節點的網絡來提取數據。這樣一來,你的智能合約就不會輕易出現單點故障。
這種技術致力於與更多區塊鏈集成,因此所有區塊鏈都可以訪問可靠的安全鏈外數據。此外,其文檔非常適合初學者,同時也適合經驗豐富的工程師(https://docs.chain.link/docs)。
使用區塊鏈Oracle有著巨大的風險,但是Chainlink提供了一個圍繞數據的奇妙的新生態系統。區塊鏈Oracle是開啟智能合約未來的關鍵,同時Oracle也為區塊鏈相互了解提供了一種方法,這被稱為互操作性,是重要的下一步。
歸根結底,為了使智能合約成為高級的協議形式,我們需要訪問各種可靠的數據,這就是我們需要Oracle的原因。
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範