Oracles

預言機和智能預言機有什麼區別?

  • September 14, 2018

據我了解,預言機將外部世界數據提供給智能合約。假設今天天氣晴朗,智能合約將對此一無所知。它需要查詢另一個提供此數據的智能合約,該智能合約從第三方獲取數據。它是否正確?

我假設“智能預言機”與預言機相同,但預言機執行智能合約。這與執行集中式服務的人不一樣嗎?

“智能預言機與預言機一樣是實體,但增加了合約程式碼執行能力。Codius 提出的智能預言機使用 Google Native Client 執行,這是一個沙盒環境,用於執行不受信任的 x86 本機程式碼。”

這是一份涉及此事的白皮書。 https://github.com/codius/codius/wiki/Smart-Oracles:-A-Simple,-Powerful-Approach-to-Smart-Contracts

我也從未聽說過這個詞。但是,這是我認為連結到頁面的關鍵摘錄:

在該提案中,執行合約程式碼的主機與其他系統中的“預言機”相同,這些主機可能僅被設置為向在其係統之外執行的合約提供有關外部世界的資訊。

舉一個具體的例子,一個投注賽馬結果的智能合約可能會查詢一個正常的預言機,然後根據智能預言機的返回值記入賭注的獲勝者。它甚至可能進行一些複雜的計算來確定貸記金額(例如,正確投注第一名、亞軍、排名等的不同支出)。在智能預言機中,所有的程式碼執行都可以在預言機機器上進行;唯一記錄到區塊鏈中的是對預言機的呼叫和最終的餘額修改。這種特殊的方案意味著你甚至可以讓秘密的封閉原始碼在區塊鏈上執行操作——當然,假設你信任智能預言機。本質上,智能預言機除了預言機部分之外還集中了程式碼執行。這對我來說似乎是一種反模式(單獨的關注點被纏繞成一個實體)。作者的一些補充說明:

不受信任的程式碼的執行應該與共識數據庫和其他跟踪和轉移資產所有權的服務脫鉤。獨立的合約系統可以處理不受信任的程式碼執行,並通過加密簽名與共識數據庫進行互動。這些簽名已經是共識協議的固有特徵,因此無需修改。將合約與共識網路分離可以帶來額外的好處,即合約可以同時與多個網路以及幾乎任何類型的線上服務進行互動。這意味著單個智能合約可以與比特幣和 Ripple、基於 Web 的服務(如 PayPal、Google、Ebay 等)甚至其他網際網路協議(如 SSH、LDAP、SMTP 和 XMPP)進行互動。

需要強調的是,這只是我對您包含的連結的解釋。

引用自:https://ethereum.stackexchange.com/questions/29233