預言機簡介

作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/blog_posts/oracles_overview.md

根據扎克和打火石先生(Mr Flintstone.)的討論。

Amoveo預言機(oracle)是如何工作的?

預言機(oracle)者幫助我們以信任最小化的方式在區塊鏈上記錄某些現實世界事件的正確結果。用戶可以向預言機(oracle)者提出一個真/假問題,並依賴它將如實回答的事實,只要問題結構良好。如果用戶可以依賴這一事實,他們就可以通過智能合約爲未來的答案附加金融衍生品。

在Amoveo中,有兩種預言機(oracle)。問題預言機(oracle)的功能如上所述,回答關於過去發生的真實世界事件的真/假問題。治理預言機(oracle)確定Amoveo的治理變量(區塊大小,區塊時間,區塊獎勵等)的未來值,首先指定一個百分比的變化,然後詢問預言機(oracle),治理變量是否應按該變化增加,按該變化減少或根本不改變。雖然應用不同,但這兩個預言機(oracle)實際上以完全相同的方式運作,在大多數情況下。我們將在下面走過一個問題預言機(oracle)的過程。

我們可以使用下面的moveo-core節點命令向預言機(oracle)提出一個真/假問題。

api:new_question_oracle(Start, Question)。

我們將以兩種方式描述預言機(oracle)如何回答這個問題。下一段是一個抽象的概述,之後的一段是一個具體的例子。

“開始 “是指預言機(oracle)開始時的區塊高度。一旦預言機(oracle)開始,用戶可以根據問題的內容,以VEO爲單位對真、假、或壞的問題進行下注。我們把真、假和壞的問題稱爲類型。不同類型的賭注將以1:1的方式得到匹配。具有最高未匹配餘額的類型決定了預言機(oracle)的輸出類型。如果一個預言機(oracle)的輸出類型在一定數量的區塊內沒有被改變,那麼預言機(oracle)就可以以該輸出類型最終確定,投注也就結束。已下的賭注被鎖定,直到預言機(oracle)被最終確定,這時你將根據最終的輸出類型獲得賠付。下面是一個例子。

例如,一個Oracle開始。這意味着投注已經開始。問題是 “自Amoveo主網創世區塊的時間戳以來,Amoveo主網是否生存了一個月?“我們知道,這個問題的答案是真實的。假設我在 “真 “上投注10個VEO,你在 “假 “上投注5個VEO。現在,我們兩個人都以1:1的賠率匹配了5個,還剩下5個未匹配的true類型。這5個未匹配的真類型決定了預言機(oracle)現在的輸出類型爲真。如果輸出類型在一定數量的區塊內沒有變化,那麼預言機(oracle)就在這個狀態下被最終確定。接下來,因爲最終的狀態是真,而我賭的是真,所以我贏得了價值10的匹配賭注,並拿回了未匹配的5,總共是15。你輸掉了你的匹配賭注。任何與此結果相關的金融衍生品都會相應地支付。

正如你所看到的,Amoveo中問題預言機(oracle)的正常運作依賴於VEO持有者對不正確的投注的意願。這種意願依賴於一個假設,即礦工將遵循最終的預言機(oracle)類型是對所發生的事情的真實表述的鏈。這與比特幣使用的共識是一樣的。只要持有者能夠依賴這一事實,他們就會放心地接受任何不正確的預言機(oracle)賭注的另一方。另外,如果這個假設成立,甚至沒有人願意在不正確的結果上下注,因爲他們肯定會輸錢。

如果預言機(oracle)即將以錯誤的方式關閉,那麼你可以通過打賭讓它以正確的方式關閉來加倍你的錢。

如果攻擊者一直試圖以錯誤的方式下注,他的賭注就會成爲一種獎勵,吸引更多的人以正確的方式下注。

一旦有足夠的資金,那麼對於礦工來說,手動檢查結果就變得值得了。因爲礦工們可以將他們所有的錢翻倍。