契約作為數據饋送?
複雜投注契約的文件範例包括“天氣資訊”服務。這樣的提要/服務/契約將如何運作?
對於天氣饋送,要麼需要將溫度感測器連接到執行乙太坊節點的電腦上,要麼需要有人手動輸入饋送數據?這是一個必須基於聲譽並由某些維護者提供支持的合約(合約的所有者是唯一被允許使用
addFeedEntry
觸發事件的方法的人)?或者有沒有辦法更可證明地綁定一些數據源(遠端網站,或執行節點的電腦上的感測器),所以不需要對維護者的信任?
最終,您將依賴某人說出真相,因為必須有人負責溫度計。
然後,來自溫度計的資訊需要以某種方式傳輸到你的乙太坊合約,以使合約可以相信它來自溫度計:某人擁有的某處某處的某些電腦將簽署原始讀數,這樣它就可以然後被饋送到乙太坊區塊鏈,或者使用其中的數據創建一個簽名的乙太坊交易並將其發送到區塊鏈。
這裡明顯的信任問題的主要緩解方法是使用多個獨立的數據源;例如,當日本的人們不相信政府會說出有關輻射水平的真相時,他們成立了 SafeCast 項目,許多人都配備了蓋革計數器並將數據發送回網站。這些人中的許多人在他們的社交網路中都很有名,因此對女巫攻擊有一定的防禦能力,很難產生大量虛假數據並說服人們這是真實的。
在很多情況下,我們已經擁有至少部分信任的數據源可以為我們提供準確的資訊,但它們並沒有以乙太坊合約可以理解的形式提供該資訊,因此有幾個項目可以彌補這一差距在現有數據源和乙太坊合約之間。我的項目,現實鑰匙,從各種數據源獲取資訊並將其與可用於乙太坊合約的乙太坊兼容簽名一起發布。我們還允許人們反對這些數據,並為從其他可用來源進行的進一步調查付費,因為許多數據源沒有考慮到智能合約的保護,如果人們開始基於它們進行重大金融交易,很可能會被黑客入侵或損壞。另一個是 Oraclize,它只是為您提供網站上的數據並將其發送到您的契約。在這兩種情況下,您都必須相信從現有數據源發送數據的中介不會撒謊或被黑客入侵。在某些情況下,Oraclize 會給你一個證明,證明他們發送給你的契約的數據確實是他們從網站上獲得的數據,但那 通常,無論如何您都可以輕鬆檢查;問題是,此時,您已經虧本了。如果他們想出一種方法來檢查契約中的這個證明,這將變得更加有趣。
獲取可靠數據的另一種方法是嘗試複製比特幣的方法,即讓匿名參與者報告他們認為發生的事情,並嘗試建立一個激勵他們說出真相的系統。這就是Augur背後的想法,儘管它們的內部標記被稱為“聲譽”,但並不像我們通常使用的這個詞那樣真正依賴聲譽。兩者之間還有很多潛在的混合方法,例如 Martin Koeppelmann 的提議:http: //forum.groupgnosis.com/t/the-ultimate-oracle/61