1. 程式人生 > >Oracle真實世界資料鏈——將現實世界和區塊鏈世界相互打通——讓主流幣爆漲十倍的專案

Oracle真實世界資料鏈——將現實世界和區塊鏈世界相互打通——讓主流幣爆漲十倍的專案

第0章 引言

區塊鏈世界現在都是在空轉,區塊鏈裡的資料都是區塊鏈自己產生的,很難和現實世界沒有關聯。比如,我們現在還沒有一個有效的辦法把比特幣的價格資料上鍊,哪怕是比特幣區塊鏈自己都無法知道比特幣的價格。

本文介紹一個專案想法,可以讓現實世界的資料,比如幣價格,股票價格,體育賽事結果,航班延誤資訊,國家GDP……等等,統統接入區塊鏈。

這個想法要是實現了,那現在的主流幣必漲十倍。

44459.png

第1章 Oracle是什麼

Oracle是一個釋出資料資訊的主體。

幣圈將Oracle翻譯成預言機,這真是一個奇怪的翻譯,給誰看也不知道這玩意是幹什麼的啊,不知道怎麼來的。直接翻譯成資料釋出主體更好。

Oracle本身有一個數字身份,比如BCH上的Oracle就一定有一對公私鑰對,向外界公佈其公鑰。如果Oracle要釋出什麼資料資訊,那就拿這個公鑰和資訊,用他的私鑰進行簽名。外界就可以用這個公鑰和簽名,來驗證這條資訊確實是Oracle釋出。

Oracle釋出任何資訊,一般會包含這些內容:具體的資訊資料,資料的hash值,以及對該資訊的簽名信息。用洋文表示,洋氣一點,Oracle釋出的內容包括:data,hash(data),sig(data)。

一個鏈上的對賭合約,就可以使用Oracle釋出的價格hash值和簽名信息,做條件判斷來計算對賭結果。

Oracle在技術上並不難,任何一個人都可以成為一個Oracle。關鍵是如何構建信用,別人如何相信你釋出的資料是有效的。

兩個人(A和B)在以太坊上籤一個對賭合約,賭下一場巴西對阿根廷足球賽的結果。合約裡就要包含一個Oracle的數字身份,和條件判斷。只要這個Oracle釋出了比賽結果(data,hash(data),sig(data)),那A和B就可以利用這個結果來結束對賭。但Oracle如果釋出一個假資訊呢?比如Oracle和A勾結來騙B,B可能一點辦法都沒有。

我們需要想一個辦法來提供一個廣泛有信用的Oracle。

第2章 真實世界資料鏈

我們現在建立一個去中心化的組織,組織裡的每一個節點就是一個Oracle。任何人都可以加入成為一個Oracel,但要遵守組織的協議。我們先假定這個組織一個有100個Oracle節點,其中21選定為主節點,79個為備用節點。

這21個主節點構成一個區塊鏈,我們稱之為“真實世界資料鏈”。

所有Oracle節點各自在真實外部世界採集資料,並按特定的協議規則打包成資料區塊。這個協議規則至少包含了,資料區塊裡的每一條資料是採集相同的外部資料。但不強求資料來源,最好是來自不同的資料來源。比如資料區塊裡的第1條資料是BTC的價格,所有的Oracle節點打包的資料區塊的第1條資料必須是BTC的價格。第2條也得是約定好特定的資料。這個資料的順序和型別是不能改的。

我們設定1分鐘採集一個區塊。即在1分鐘內,所有的Oracle節點,都會採集並廣播相同的資料區塊。21個主節點,一共採集、打包並廣播了21個區塊。理論上,這21個區塊應該是相同的。

我們約定好,所有的節點在1分鐘的前50秒採集並打包資料,最後10秒用來廣播並驗證資料。

所有的Oracle節點會收到其他節點廣播過來的資料區塊,然後啟動驗證區塊機制。驗證區塊的規則是:如果21個區塊中至少90%,即 19個區塊的內容是完全相同的,則認定“真實世界資料鏈”成功挖到一個區塊。然後21個主節點再挖下一個塊。

並且給那些打包的區塊和90%不相同的節點記一次錯,如果記錯超過5次,則踢出主節點,從備用節點選拔一個上來作為主節點。

考慮到很多資料是有精度的,比如BTC的價格,大家採集的是1分鐘內的平均值,但肯定不會100%相同,驗證機制要允許這種有精度的資料有一點的波動偏差,比如只要偏差在0.1%,就算相同,最後被成功驗證的區塊裡的資料值取19個節點的平均值。

所有的21個節點是共享一個數字身份,都要共享使用一個公鑰。這樣可以對所有外界保持同一身份。這個數字身份要相容現在絕大多數區塊鏈,比如這個公鑰即可以被BTC鏈驗證,也可以被BCH鏈驗證,也可以被ETH鏈驗證……

真實世界資料鏈”釋出的區塊才是真正為外界使用的資料,即“真實世界資料鏈”本身才是真正的唯一有效的Oracle。

為了讓21個Oracle節點共同採集相的資料,我們必須有一個機制來協議到底什麼資料能夠上鍊。

第3章 資料上鍊BIP

“真實世界資料鏈”的一開始是不包含任何有效的外部資料的。我們需要制訂一個增加特定資料上鍊的投票協議,用來選擇哪個資料被採集,並且確定資料的儲存格式。

外界通過向“真空世界資料鏈”提交BIP(改進協議)的方式來申請採集和釋出資料。21個節點通過投票的方式決定是否採納BIP。

比如以太坊使用者可以申請在“真實世界資料鏈”釋出以太坊世界前10大交易所的平均價格,一分鐘一次。21個節點對這議題進行投票,決定是否採集並打包以太坊的價格。如果採納,那還要決定資料格式是什麼,還要決定資料來源怎麼來,採集的結果的偏差值……等等細節。

任何人都向“真實世界資料鏈”提交BIP,具體的方式可以是向21個節點中的某個節點提交,也可以通過社交網路,網站等公佈申請。

一旦21個節點通過了某項資料上鍊的BIP,就可以採集併發布這項資料了。其他區塊鏈也就可以使用這項資料了。

第4章 激勵措施

運營節點是要成本的,維持信用也是要花錢的,如何讓節點樂意去採集資料挖礦,並且要做到大家搶著去挖,形成競爭,優勝劣汰。這是要認真設計。

第一種方式是發一個幣,不搞I*O,就是這個區塊鏈的本位幣。為了方便描述,我們取名叫DataCoin。“真實世界資料鏈”每挖出一個塊,21個節點各發1個DataCoin,備用節點各發0.1DataCoin。21個主節點中採集資料不符合90%共識的節點沒幣發,並且還要倒扣1個DataCoin。幣數量,無上限。

DataCoin的權益1是,任何申請資料上鍊的BIP,需要申請者購買價值100萬美元的DataCoin,成功申請後,這些幣會被送入黑洞地址銷燬。

權益2是POS挖礦,想成為21個主節點,必須存100萬美元以上的DataCoin進去做為保證金。

權益3是提供收費API,100個節點可以對外提供收費API服務。這些資料,牛逼的要死,有的是人買。

權益4是,一旦網路效應起來了,直接向使用資料的使用者收費。任何使用者想要使用Oracle的資料,需要至少在錢包中儲存0.1DataCoin。前提推廣階段不需要。如果收入問題能解決,這一權益也應該主動放棄。使用者是上帝,哪有向上帝收費的,還反了天了你。

第二種方式是捐贈。公益事業嘛,接受捐贈。

第5章 容錯

有可能會出現經過了21個節點投票達成共識的資料,卻還是和真實世界資料是錯的。怎麼辦?這個只能認,認21個節點達成的共識為真實資料。

但有些情況是可以改善。

比如體育賽事,一結束出來的結果,資料經過Oracle釋出了,都是對的,但經過了24小時一看,有人吃興奮劑了,成績作廢。為了解決這一類問題。可以對需要釋出的資料設定一個可糾正時間。比如有專門的欄位表達這個資料是有48小時的核實時間的,到了48小時後,如果沒有變就真不再變了。

第6章 結束語

此物一出天下反,這是一個對所有區塊鏈都好的大好事,這個專案要是成了氣候,那真是半個網際網路要和區塊鏈有關係了。