OracleChain(歐鏈)作為全球第一個在 EOS 生態(tài)圈上構(gòu)筑的應(yīng)用,將直面該生態(tài)的 Oracle(預(yù)言機)需求,將區(qū)塊鏈技術(shù)服務(wù)和現(xiàn)實生活中的多種需求場景直接高效對接,深耕這個百億美金估值的巨大市場。作為一個基于 EOS 平臺的去中心化的 Oracle 技術(shù)平臺,我們采用自主的 PoRD 機制,將現(xiàn)實世界數(shù)據(jù)引入?yún)^(qū)塊鏈,并將此作為基礎(chǔ)設(shè)施為其他區(qū)塊鏈應(yīng)用提供服務(wù)。除了在區(qū)塊鏈上提供現(xiàn)實世界數(shù)據(jù)的 Oracle 服務(wù),同時還可以提供跨鏈數(shù)據(jù)的 Oracle 服務(wù)。基于OracleChain 除了能實現(xiàn) Augur、Gnosis 等預(yù)測市場(Prediction Market)應(yīng)用的功能之外,還能支撐對鏈外數(shù)據(jù)有更高頻率訪問需求的智能合約業(yè)務(wù),比如智能投顧等場景。OracleChain 將改變當(dāng)前區(qū)塊鏈應(yīng)用的開發(fā)模式,建立全新的生態(tài)圈,培育并服務(wù)真正能改變現(xiàn)實世界的區(qū)塊鏈應(yīng)用。我們的使命是“讓世界與區(qū)塊鏈互聯(lián)”,立志成為鏈接現(xiàn)實世界與區(qū)塊鏈?zhǔn)澜绲幕A(chǔ)設(shè)施,通過把外部數(shù)據(jù)引入?yún)^(qū)塊鏈來實現(xiàn)鏈內(nèi)鏈外的數(shù)據(jù)互通,打造未來區(qū)塊鏈?zhǔn)澜缰凶罡咝У墨@取鏈外數(shù)據(jù)的服務(wù)提供平臺。
OracleChain 技術(shù)架構(gòu)1 平臺模型
OracleChain 平臺主要由兩個層次組成:核心層和服務(wù)層。核心層基于 EOS 框架搭建 OracleChain 的基礎(chǔ)服務(wù)和運作機制,服務(wù)層則在核心層的基礎(chǔ)上將 Oracle平臺包裝成 API 接口對外提供 Oracle 服務(wù)。
核心層OracleChain 核心層提供 Oracle 實例的創(chuàng)建,實例數(shù)據(jù)輸出令牌的管理,DataFeeder 節(jié)點的管理等基礎(chǔ)服務(wù)。在這一層,OracleChain 實現(xiàn)了對 Oracle 實例和Data Feeder 節(jié)點的管理。Data Feeder 節(jié)點將根據(jù) Oracle 的需求讀取數(shù)據(jù)并和其他 Data Feeder 節(jié)點共同完成此 Oracle 答案。特別的,OracleChain 引入了聲望(ReputaTIon)的獎懲機制、風(fēng)險金(Deposit)的懲罰機制和 Oracle 費用的獎勵機制來完成 data feed 過程,最終回答 Oracle 答案。
Data Feeder 節(jié)點通過相互協(xié)作來完成一次 Oracle 并共享此次收益,并能通過自組織的方式發(fā)現(xiàn)那些異常的 Data Feeder,并觸發(fā)懲罰機制。同時舉報者可以舉報 Data Feeder 節(jié)點那些不易被發(fā)現(xiàn)的不誠實行為。
為了防止惡意的 Data Feeder 節(jié)點組織(不會自我懲罰組織成員)和惡意的舉報者,OracleChain 特別設(shè)置了長老會(Presbyteria)機制,由全網(wǎng)聲望最高的Data Feeder 節(jié)點組成最終裁判團,對惡意 data feed 和舉報行為進行裁決,并觸發(fā)懲罰機制。
服務(wù)層OracleChain 服務(wù)層提供 Oracle 實例平臺、狀態(tài)通道和服務(wù) API 等對外服務(wù)。在這一層,OracleChain 實現(xiàn)了對 Oracle 服務(wù)的撮合、計費等對外服務(wù),真正實現(xiàn)了 OracleChain 的基礎(chǔ)設(shè)施能力。
Oracle 平臺將會撮合 Oracle 需求方和 Data Feeder 組織。Data Feeder 組織有可能是松散的臨時團體,也可能是提供專業(yè)服務(wù)的組織。每一個 Oracle 實例里面會申明該實例的費用,需要的 Data Feeder 組織方式以及參與門檻,例如需要 100個高聲望的 Data Feeder 并在其中 80 個節(jié)點達(dá)成共識的情況下完成 data feed。Services API 將被設(shè)計得更加通用,既符合 EOS 跨鏈的設(shè)計理念,也符合便捷開發(fā)的使用需求。
在 OracleChain 的平臺模型上,任何的 EOS 應(yīng)用都可以使用 Oracle 服務(wù)。無論是高頻次的預(yù)測市場,還是低頻次的農(nóng)業(yè)保險,都可以借助 OracleChain 的服務(wù)變成可能,真正將區(qū)塊鏈技術(shù)服務(wù)于現(xiàn)實生活中。
2 data feed 機制
在傳統(tǒng)的集中式系統(tǒng)中,數(shù)據(jù)通常直接從數(shù)據(jù)源(Data Source)以數(shù)據(jù)輸入(Data Input)的方式獲得。這個數(shù)據(jù)源既可能是來自于集中式系統(tǒng)內(nèi)部,也可能來自于第三方,系統(tǒng)的運行信任且依賴于數(shù)據(jù)源所輸入的數(shù)據(jù)。此時數(shù)據(jù)源是作為一個正直、不帶偏見、永不犯錯的法官一樣的角色,因為或者這個數(shù)據(jù)源是系統(tǒng)內(nèi)部可以嚴(yán)密控制的模塊,或者是由絕對可信的第三方來擔(dān)任,系統(tǒng)在數(shù)據(jù)源的驅(qū)動下實現(xiàn)有效運轉(zhuǎn)。
回到去中心化的區(qū)塊鏈環(huán)境下,這個簡單的問題變得非常復(fù)雜,會引發(fā)諸多問題,比如“誰有資格得到區(qū)塊鏈上的所有人的信任擔(dān)當(dāng)這個信息源?”、“誰有資格來判斷參與者是否可信?”等等。而且信任的可持續(xù)性也存在著問題,一個之前持續(xù)遵守規(guī)則的參與者在逐步累積信用,從而獲得較大權(quán)力后其實也存在著作惡的可能。
為了解決區(qū)塊鏈在去中心化的大背景下完成數(shù)據(jù)采集和取信的過程,OracleChain 提出了一種 data feed 機制。這種機制將使用一個有效的獎懲手段,旨在鼓勵數(shù)據(jù)源節(jié)點(Data Feeder)提供有效的 data feed 服務(wù),所有正常參與data feed 的節(jié)點都將會得到聲望提升,同時獲得 OracleChain 的代幣 OCT(OracleChain Token),反之,非正常的數(shù)據(jù)源節(jié)點會同時失去聲望和抵押給 OracleChain平臺的 OCT 風(fēng)險金。通過這種我們稱之為 Proof-of-ReputaTIon&Deposit(PoRD) 的雙效機制,OracleChain 將有效抵御懷有敵意的數(shù)據(jù)源節(jié)點通過惡意 data feed,影響 Oracle 的實際結(jié)果。而用戶需要支付 OCT 來獲得 Oracle 服務(wù),從此實現(xiàn) OCT在 OracleChain 上的閉環(huán)流動。
在 PoRD 機制中,每個 Oracle 實例對應(yīng)一個智能合約。對每個 Oracle 實例,會存在一個聲望(ReputaTIon)和保證金(Deposit)的閾值,OracleChain 區(qū)塊鏈網(wǎng)絡(luò)的活動節(jié)點只有聲望和保證金超過這一閾值,才能參與該 Oracle 實例的 datafeed 服務(wù)。然后當(dāng)指定條件觸發(fā) Oracle 實例進入結(jié)算階段時,Oracle 實例所對應(yīng)的智能合約會依據(jù)其處理邏輯和參數(shù)設(shè)置,評判出善意的 data feed 和惡意的 datafeed,對善意 data feed 節(jié)點提供聲望提升和 OCT 代幣獎勵,對惡意 data feed 節(jié)點進行聲望減值和 OCT 保證金扣除,以該雙效機制保證整個體系的 data feed 工作可以正常運行。
3 技術(shù)優(yōu)勢
OracleChain 平臺具有四大技術(shù)優(yōu)勢,分別是高效、兼容、參與和便利。
高效
借助于基層區(qū)塊鏈基礎(chǔ)設(shè)施的對區(qū)塊數(shù)據(jù)的細(xì)粒度控制和良好的并行處理優(yōu)化,通過 OracleChain 的架構(gòu)可支持秒級的確認(rèn)時間和強大的事務(wù)處理吞吐率。
兼容
基于基層區(qū)塊鏈基礎(chǔ)設(shè)施的的跨鏈機制,OracleChain 可以面向整個 EOS 生態(tài)圈提供數(shù)據(jù)服務(wù),實現(xiàn)鏈內(nèi)鏈外數(shù)據(jù)轉(zhuǎn)移和互通。
參與
用戶可以通過data feed參與全球范圍內(nèi)的Oracle共識體系和OCT生態(tài)運轉(zhuǎn)。獨特的治理策略可以促使節(jié)點遵守社區(qū)規(guī)則,并利用 PoRD 雙效機制保證OracleChain 的正常運行。
便利
OracleChain 提供更高效實用的 Service API,方便其他區(qū)塊鏈應(yīng)用來使用Oracle 服務(wù)。
OracleChain 應(yīng)用1 預(yù)測市場
OracleChain 可應(yīng)用于預(yù)測市場?;?OracleChain 基礎(chǔ)服務(wù)去構(gòu)建的預(yù)測市場類應(yīng)用,將為本地和全球經(jīng)濟提供獨特的價值發(fā)現(xiàn)功能。在區(qū)塊鏈領(lǐng)域,涉及了鏈外鏈內(nèi)數(shù)據(jù)打通主要有 Augur 和 Gnosis 兩個項目。這兩個項目均采用預(yù)測市場的架構(gòu),這就意味著為了把一個鏈外數(shù)據(jù)導(dǎo)入鏈內(nèi),需要經(jīng)過社區(qū)的投票等一系列過程才能在區(qū)塊鏈上形成一個公允數(shù)據(jù)。預(yù)測市場的架構(gòu)足以支撐那些與鏈外數(shù)據(jù)交互頻次很低的場景里,比如對一場足球賽事比賽結(jié)果的對賭智能合約。
但在那些交互頻次很高的場景里,對鏈內(nèi)鏈外數(shù)據(jù)通道的實時性提出了更高的要求。OracleChain 既可以以傳統(tǒng)的方式支持低頻預(yù)測市場的運作,也可以支持由眾多節(jié)點實時從線下抓取鏈外數(shù)據(jù),并根據(jù)節(jié)點們所提供的喂價數(shù)據(jù)折中選擇出一個結(jié)果同步到區(qū)塊鏈上。在一個包含了各種應(yīng)用場景的 EOS 區(qū)塊鏈生態(tài)圈里,需要一個更高效的策略來替代低效的線下監(jiān)督。瞄準(zhǔn)這一問題 OracleChain 會基于PoRD 機制的自治架構(gòu),來保證鏈內(nèi)鏈外數(shù)據(jù)打通服務(wù)的實時和準(zhǔn)確。
2 保險市場
OracleChain 可用于組織去中心化的農(nóng)產(chǎn)品價格和收入保險市場,響應(yīng)國家號召服務(wù)四農(nóng)。
在傳統(tǒng)的保險行業(yè)中,保險公司承擔(dān)著吸收風(fēng)險、消費風(fēng)險的中介身份。區(qū)塊鏈的出現(xiàn)讓大家看到大規(guī)模的互助保險成為了一種可能。但是這種自組織的保險模式受困于效率和定險,很難推廣。OracleChain 提供一種對事件定險的可能,尤其是在農(nóng)產(chǎn)品價格和收入方面。
2017 年 6 月 1 日,中共中央辦公廳、國務(wù)院辦公廳印發(fā)《關(guān)于加快構(gòu)建政策體系培育新型農(nóng)業(yè)經(jīng)營主體的意見》(下稱《意見》)。《意見》提出,積極開展天氣指數(shù)保險、農(nóng)產(chǎn)品價格和收入保險、“保險+期貨”、農(nóng)田水利設(shè)施保險、貸款保證保險等試點。對于農(nóng)產(chǎn)品價格這種集中式風(fēng)險,保險公司很難使用傳統(tǒng)的“空間+時間”的風(fēng)險分擔(dān)模式降低自己的風(fēng)險,只能采用“時間”的風(fēng)險分擔(dān)模式,缺很難找到對應(yīng)的風(fēng)險分銷機構(gòu)。
基于 OracleChain 可以開發(fā)專門針對農(nóng)產(chǎn)品價格的各類智能保險種類,直接將承包人和風(fēng)險承擔(dān)者對接,基于智能合約的購買、賠付方式將大大降低保險的成本,也將保險公司的集中風(fēng)險直接分?jǐn)偟斤L(fēng)險承擔(dān)者個人身上。
3 智能投顧
區(qū)塊鏈的預(yù)言機有不少應(yīng)用場景,在智能合約能夠真正自動地執(zhí)行現(xiàn)實生活中的業(yè)務(wù)邏輯判斷之前,首要的工作是能夠獲取外部數(shù)據(jù),其后才能用基于區(qū)塊鏈上智能合約的自動執(zhí)行代替?zhèn)鹘y(tǒng)社會通過人為參與執(zhí)行邏輯事務(wù)。智能投顧又稱機器人理財,是虛擬機器人基于客戶自身理財需求,通過算法和產(chǎn)品來完成以往人工提供的理財顧問服務(wù)。在區(qū)塊鏈領(lǐng)域,智能投顧的功能主要通過智能合約來實現(xiàn)。利用 Oracle 智能合約機制,OracleChain 可用于鏈內(nèi)和鏈外投資標(biāo)的價格的發(fā)現(xiàn)與處理,可以建立起去中心化的智能投顧應(yīng)用,投資目標(biāo)既可以是傳統(tǒng)金融標(biāo)的,也可以是區(qū)塊鏈資產(chǎn)。
代幣機制OracleChain 代幣(OCT)的流轉(zhuǎn)主要是為了激勵 data feeder 在 OracleChain 上面提供 Oracle 服務(wù)。在 OracleChain 網(wǎng)絡(luò)中,OCT 代幣是保障整個預(yù)言機服務(wù)能夠持續(xù)運轉(zhuǎn)的基礎(chǔ)。OCT 代表著 OCT token 的持有者在 OracleChain 網(wǎng)絡(luò)上使用Oracle 服務(wù)的權(quán)益,在 OracleChain 網(wǎng)絡(luò)上用戶需要支付 OCT 才能獲得 Oracle 服務(wù)。
1 OracleChain 代幣機制簡介
OralceChain 是一個支持多個 Oracle 實例的系統(tǒng)。在該系統(tǒng)中,數(shù)據(jù)需求方根據(jù)需求選擇對應(yīng)的 Oracle 實例,提交數(shù)據(jù)申請;然后由數(shù)據(jù)提供者提交數(shù)據(jù)到該Oracle 中,并由 Oracle 收集整理后輸出給數(shù)據(jù)需求方,以完成一次 Oracle 服務(wù)。在 OracleChain 中,OCT 作為購買數(shù)據(jù)服務(wù)、獎勵數(shù)據(jù)提供者的代幣在系統(tǒng)中流轉(zhuǎn)。數(shù)據(jù)需求方購買數(shù)據(jù)服務(wù)所支付的 OCT 將根據(jù)所提供的數(shù)據(jù)質(zhì)量分發(fā)給數(shù)據(jù)提供者們。
OracleChain 中的每一個 Oracle 將承擔(dān)不同的數(shù)據(jù)服務(wù),也會有不同的收費價格和獎勵方式,將根據(jù)不同的行業(yè)場景需求分別進行設(shè)計。每個人都可以根據(jù)自己對行業(yè)的理解等發(fā)布一個 Oracle 用來組織數(shù)據(jù)服務(wù)。
例如在一個“艾澤拉斯體感溫度”的 Oracle 實例中,溫度應(yīng)用方將需要溫度的時間段發(fā)布到 Oracle 中,并設(shè)定一個提交窗口期,同時向該 Oracle 支付一定的 OCT(例如 1000 個),在此窗口期內(nèi),所有的人都可以提交自己對艾澤拉斯溫度的數(shù)據(jù)。在窗口期后,Oracle 將所有搜集到的溫度數(shù)據(jù)進行處理,排除掉方差過大的數(shù)據(jù),然后將剩下的數(shù)據(jù)求平均輸出給溫度應(yīng)用方,并將之前收到的 1000個 OCT 平均分發(fā)給剩下的數(shù)據(jù)提交者(假設(shè) 120 人提交了溫度數(shù)據(jù),其中 20 人因方差過大被排除,則剩下的 100 人每人獲得 10 個 OCT)。
又例如在一個“有償調(diào)查問卷”的 Oracle 實例中,調(diào)查方根據(jù)自己的實際需求編寫調(diào)查問卷,發(fā)送到該 Oracle 中,同時向該 Oracle 支付一定的 OCT(例如1000 個 OCT),并設(shè)定調(diào)查問卷結(jié)束時間。在調(diào)查問卷結(jié)束之前,所有的數(shù)據(jù)提供者均可以向該 Oracle 提交調(diào)查內(nèi)容。在調(diào)查問卷結(jié)束之后,Oracle 將統(tǒng)計所有用戶的問卷結(jié)果輸出給調(diào)查方,同時將之前收到的 1000 個 OCT 平均分發(fā)給提交過調(diào)查問卷的數(shù)據(jù)提交者(假設(shè)有 100 人提交了調(diào)查問卷,則每人獲得 10 個OCT)。
2 OracleChain 業(yè)務(wù)流轉(zhuǎn)機制
OracleChain 的業(yè)務(wù)流轉(zhuǎn)機制指 OracleChain 上預(yù)言機服務(wù)實際發(fā)生過程中的數(shù)據(jù)交換過程。
該過程各步驟如下所示:
1.DAPP 向 Oracle 提出數(shù)據(jù)需求;
2.DateFeeder 根據(jù)需求向 Oracle 提交數(shù)據(jù)(根據(jù)需求可能有多個 Feeder 向Oracle 提交數(shù)據(jù));
3.Oracle 將獲得的數(shù)據(jù)整理后輸出給 DAPP。
3 OCT 代幣流轉(zhuǎn)機制
OCT 代幣流轉(zhuǎn)機制指 OracleChain 上預(yù)言機服務(wù)實際發(fā)生過程中的代幣流轉(zhuǎn)過程。
該過程各步驟如下所示:
1.DAPP 根據(jù)數(shù)據(jù)需求將 OCT 打入到 Oracle 合約;
2.在 Oracle 完成數(shù)據(jù)輸出后,根據(jù) Data Feeder 提交的數(shù)據(jù)的質(zhì)量,將收到的OCT 分發(fā)給不同的 Data Feeder。
OracleChain 治理架構(gòu)基于區(qū)塊鏈系統(tǒng)的治理一直是一個比較困難的問題。每當(dāng)需要升級系統(tǒng)時,都需要實施硬分叉,這通常會導(dǎo)致所有區(qū)塊鏈利益關(guān)聯(lián)方之間的大量爭論和博弈。即使是像修改源代碼中任意設(shè)定的變量這樣簡單的事情,由于沒有明確的升級路徑,比如在比特幣社區(qū)對區(qū)塊大小和隔離見證機制的爭論不決。尤其在最終使用用戶和決策決定者的利益并不一致的情況下,要達(dá)成這樣的一致會變得更加困難。事實上也存在著一些更為復(fù)雜的治理決策,比如在“The DAO”中修復(fù)單一的智能合約錯誤,這甚至?xí)?dǎo)致更大的問題,引起社區(qū)的分裂。
引起這些問題的最大原因是協(xié)議升級或更改的決策過程定義不夠明確,缺乏透明度。為解決這一問題,OracleChain 把其自身的管理作為其整體共識的一部分。它使用 OracleChain 自身提供的 Oracle 機制盡可能讓爭議和協(xié)商的過程有效和透明地運作。此外,OracleChain 的共識機制可以由多個變量來定義,這些變量決定了系統(tǒng)的功能,或者對系統(tǒng)某個參數(shù)的調(diào)整,比如使用 Oracle 服務(wù)的基礎(chǔ)成本等等。
OracleChain 對社區(qū)治理的一個基本認(rèn)識是治理的策略是將權(quán)力交給OracleChain 網(wǎng)絡(luò)上的高聲望節(jié)點(用戶)。也就是不同重要程度的治理活動需要節(jié)點達(dá)到不同的聲望級別才能參與,即用戶會根據(jù)不同的聲望級別對 OracleChain實施不同的影響。對于最高階的節(jié)點,可能被授予有限的和被監(jiān)督的權(quán)限來凍結(jié)帳戶,更新有缺陷的應(yīng)用程序,甚至提出對底層協(xié)議的變更。
通過把待協(xié)商的變量設(shè)置為 Oracle 并在全社區(qū)分級別進行投票協(xié)商,OracleChain 用戶也可以學(xué)習(xí)如何有效地改進協(xié)議。OracleChain 的治理策略,可以促使節(jié)點遵守社區(qū)的 data feed 規(guī)則,盡可能保證維持更高的聲望值,以保持對社區(qū)治理更大的話語權(quán)。通過對潛在的難題進行構(gòu)建 Oracle 實例進行運行,我們可以幫助社區(qū)就選擇哪個版本代碼進行使用達(dá)成一致。每個用戶會為自己選擇尋求優(yōu)化的度量,但是簡單的默認(rèn)策略將是最大化其持有價值,眾多用戶借由每個用戶的理智決策會為整個 OracleChain 社區(qū)提供正確的演進方向。