區塊鏈Oracle:為什麼區塊鏈本身不能進行API調用?

2020-10-03 讀芯術

全文共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學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 區塊鏈裡的 「Oracle」是什麼?
    這些神叨叨的意思,和區塊鏈到底有什麼關係?這個 oracle 跟甲骨文公司 Oracle、或者甲骨文公司的 oracle 資料庫有什麼關係嗎?其實,還真有一毛錢的關係!1、預言機的用武之地:智能合約要想理解預言機 oracle,就需要知道它的背景,也就是白皮書頻頻提到的「價值」,那就是 oracle 是智能合約的重要基礎。而智能合約是以以太坊為代表的區塊鏈 2.0 的標誌性技術,是區塊鏈技術走向商業化的一塊重要基石。
  • 區塊鏈落地的必需工具-預言機(Oracle)
    預言機的運行原理:當區塊鏈上的某個智能合約有數據交互需求時,預言機在接收到需求後,幫助智能合約在鏈外收集外界數據,驗證後再將獲取的數據反饋回鏈上的智能合約。區塊鏈為什麼需要預言機?因為區塊鏈上的智能合約和去中心化應用(Dapp)對外界數據擁有交互需求。
  • 如何創建通用的區塊鏈智能合約
    區塊鏈智能合約能夠通過集成去中心化的Oracle來訪問鏈外數據。用戶在深入研究如何使用它們之前,重要的是要了解區塊鏈智能合約在全局中的重要性以及為什麼需要Oracle來訪問數據的原因。如今,全球每天都在發生大量交易,並且它們通常受到協議或合同的約束。這可能是由供應商的服務條款、監管框架或兩者的組合所驅動的。
  • 從Android調用區塊鏈智能合約
    介紹在上一篇文章中,我寫了關於使用Eclipse從Java調用部署了區塊鏈的智能合約的信息。 本教程將展示如何直接從Android開發環境-Android Studio中調用智能合約。區塊鏈研究實驗室|使用Java與區塊鏈智能合約進行交互環境要求我們將使用Tezos區塊鏈。
  • 區塊鏈世界裡程碑式升級——智能合約與區塊鏈結合
    智能合約與區塊鏈智能合約在上世紀被提出,而區塊鏈2009年才誕生,就定義而言,智能合約與區塊鏈關係不大。那為什麼在這10年中,智能合約與區塊鏈卻產生了如此緊密的關聯?因為區塊鏈可以保證智能合約的不可篡改,不僅合約內容不可篡改,每次調用記錄亦不可篡改。智能合約產生價值的最基本前提是有一個強有力的底層介質用於儲存,讓其不可被物理破壞。然而,智能合約的本體是一份代碼,非常容易被篡改,如何為其提供強力的存儲介質就成了問題。
  • 區塊脈動-區塊鏈以及區塊鏈技術總結
    區塊鏈本質上是一個基於P2P的價值傳輸協議,我們不能只看到了P2P,而看不到價值傳輸。同樣的,也不能只看到了價值傳輸,而看不到區塊鏈的底層技術。可以這麼說,區塊鏈更像是一門交叉學科,結合了P2P網絡技術、非對稱加密技術、宏觀經濟學、經濟學博弈等等知識,構建的一個新領域——針對價值網際網路的探索。那什麼是價值網際網路?
  • | 區塊鏈掃盲,你認為區塊鏈是什麼樣子?
    很多時候,人們說起區塊鏈,要麼認為就是CX割韭菜的,具體表現為炒幣;要麼,認為區塊鏈是一種技術、帳本,和JAVA、Python差不多,具體表現為一行行的代碼。比特幣是第一個進入大眾眼球的用到了區塊鏈技術的產品。它屬於虛擬貨幣--區塊鏈的激勵機制單獨使用。但是很可惜,比特幣以及後面衍生的所有虛擬貨幣,因為沒有錨定可量化的可以代表收益的東西,所以,就只能用挖礦等方式來左右價格的變化,然後,人們對於區塊鏈的大多數認識就是炒幣了。區塊鏈是一門技術、分布式帳本等說法,來源於百度解釋,更直接的來自於人們對於比特幣等虛擬貨幣的解讀。
  • 撇去泡沫與炒作,區塊鏈應用研討會共話區塊鏈技術與應用
    錢漢濤:"跨鏈互通"-加速區塊鏈技術與應用落地區塊鏈項目不斷井噴狀湧現,但每一個區塊鏈項目都相當於一個獨立的價值網絡,網絡間不能互聯互通。針對這種"信息孤島"情況,阿希鏈CTO錢漢濤為觀眾介紹了三種典型的跨鏈技術:公證人機制、側鏈/中繼器模式、哈希鎖定模式。並從支持的跨鏈類型,採用的信任模式,是否支持跨鏈的資產交換與轉移,能否支持跨鏈合約和資產抵押等方面對三種模式進行了對比分析。
  • 我們為什麼要了解區塊鏈?區塊鏈是什麼?
    有沒有想過為什麼會被碾壓?原因是因為他們沒有感知到在兩公裡以外有一臺2噸左右的汽車正以時速100公裡飛奔而來,感知不到所以就會被無情的碾壓。這聽起來有點殘忍!而今天全球的區塊鏈領域,中國已經具備了很大的優勢。在《中國區塊鏈行業報告2020》發布中提到,2019年中國新增經營範圍中含「區塊鏈」的企業超過1.1萬家,中國區塊鏈發明專利數量居全球第一,佔總申請量的67%。區塊鏈應用走進主流市場,關於區塊鏈的應用價值,政府和從業者逐漸形成共識。機遇與挑戰並存,日後這個行業需要更多的人才。
  • 萬向區塊鏈行業研究 | 區塊鏈在數據要素市場中的應用
    與Token及其交易無關的數據作為Token交易的附加被寫入區塊鏈內。寫入區塊鏈意味著全網可見,不可篡改,並且在複製、傳播中不會出錯,但區塊鏈本身不能保證這些數據在源頭和寫入環節的真實準確性。因為區塊鏈內存儲容量的限制,這部分數據在很多時候只能以哈希摘要形式寫入區塊鏈,只有少量結構化信息才能以原始數據形式上鏈。
  • 火幣區塊鏈科普系列:區塊鏈是什麼?
    如果有人問,既然是紙,為什麼比特幣這樣的紙可以非常值錢?古埃及的莎草紙如今依然存在,如果把古埃及的莎草紙作為收藏品,那麼這樣的紙張自然是非常值錢的,因為稀缺。核心技術區塊鏈本質上是一串使用密碼學相關聯所產生的數據塊,具體來講,一個隨機哈希算法的結果,區塊鏈唯一做的事情就是獲得一些輸入然後進行計算,並得到一串64位的隨機數字和字母的字符串,每一個數據塊中包含了多次比特幣網絡交易有效確認信息,區塊鏈就是由一連串、不重複、的數據塊組成的。
  • 區塊鏈是什麼?什麼是區塊鏈手機?
    打開APP 區塊鏈是什麼?什麼是區塊鏈手機? 什麼是區塊鏈手機? 目前對於這個新鮮事物,尚未有非常權威和官方的解釋,筆者只能通過區塊鏈技術去推測,這些手機廠商在玩什麼。毫無疑問,當下所有的所謂區塊鏈硬體,其存在意義要不是和電腦一樣為了挖礦而生,那麼就無任何意義。
  • 區塊鏈到底是什麼?為什麼能掙錢?這是區塊鏈最通俗易懂的解釋
    要分三步:幣小寶發起交易之後,轉帳消息會首先向區塊鏈網絡廣播;礦工(節點)對籤名進行驗證,驗證成功後進入交易池,等待打包;礦工打包並計入區塊。礦工打包交易時優先選擇礦工費高的、佔用內存小的交易,當礦工挖礦成功時,會向全網廣播該區塊,通過驗證後,該區塊加到區塊鏈上,開始下一輪的挖礦。
  • 王峰對話Dawn Song:區塊鏈本身不能提供隱私保障
    針對近日華住酒店、順豐等公司疑似洩露用戶隱私數據等事件,Dawn Song表示,區塊鏈本身並不能提供隱私保障,比如以太坊網絡和絕大部分現有平臺上,所有的數據和智能合約都是公開的,不存在隱私保障。但是人們又希望能通過區塊鏈部署涉及敏感數據的應用,因此在區塊鏈上建立隱私保障技術就顯得非常重要。
  • 區塊鏈瀏覽器搭建教程
    bitcore 是搭建區塊鏈瀏覽器 insight 和半中心化錢包 copay 的核心;由於 bitcore 完全基於 bitcoin core 所編譯的二進位程序 bitcoind ,所以我們完全可以用我們已經開發的山寨幣來作為bitcore的基礎,開發我們自己的區塊鏈瀏覽器和錢包了解bitcorebitcore 的官網,包括了介紹、論壇、文檔
  • 讓區塊鏈回歸區塊鏈:新世代開啟的必然
    我始終認為,造成區塊鏈行業這種發展困境的根本原因並不在於技術或應用本身,而是在於無論是區塊鏈技術還是區塊鏈應用具體真正意義上的商業化較遠,最終讓區塊鏈行業始終都是一個靠資本輸血、靠炒幣割韭菜來過活的買賣。
  • 「區塊鏈」什麼是EOS?
    一、前言EOS從誕生之初便備受矚目,並受到各路資本的青睞與追捧,一是因為其創始團隊以及創始人的能力強大,二是因為項目本身具有非常大的應用前景,因此一直被寄予厚望並被稱為是區塊鏈3.0的開創者,今天我們便從EOS的項目內容、技術架構、項目評級等幾個層面來一起了解一下EOS。
  • 區塊鏈核心技術—區塊+鏈
    每一種區塊鏈的結構設計可能不完全相同,但大結構上分為塊頭(header)和塊身(body)兩部分。塊頭用於連結到前面的塊並且為區塊鏈資料庫提供完整性的保證,塊身則包含了經過驗證的、塊創建過程中發生的價值交換的所有記錄。區塊結構有兩個非常重要的特點:第一,每一個區塊上記錄的交易是上一個區塊形成之後、該區塊被創建前發生的所有價值交換活動,這個特點保證了資料庫的完整性。
  • 萬向區塊鏈王允臻:分布式加持:區塊鏈賦能工業物聯網
    為什麼呢?因為每一次升級的時候,軟體的效率也在不斷提升。DAPP是分布式的APP,未來APP會變得越來越輕,讓更多工業軟體、工業環境等沉到底層去。企業不需要建立非常深厚的工業軟體能力基礎,而是在可信的工業軟體應用平臺上託管自己的數據,調用軟體資源,通過工業軟體價值的沉澱,實現數據價值的挖掘。
  • 傻瓜讀區塊鏈
    很有可能去年你已經聽說了「區塊鏈」這個詞彙。即使我們都對它有一個模糊的概念,但事實是,我們大多數人都無法解釋為什麼每個人都會在創新和技術論壇上談論它。本文總結了理解區塊鏈最重要的概念,你了解它是什麼,並知道它是如何工作的。什麼是區塊鏈?