比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > BTC > Info

再談預言機:Oracle如何重新定義智能合約?_ARA

Author:

Time:1900/1/1 0:00:00

而在本期專欄中,作者將詳細解釋

預言機是如何實現

「把現實世界中的數據以交易的形式記錄在區塊鏈上」

這一功能的?

「N3預言機有哪些問題亟需解決?」?

快來一起來看看吧??

制約區塊鏈發展的一個重要因素是落地,也就是把區塊鏈技術用于現實生活中。為此我們就需要不停地設想各種可能需要用到區塊鏈的場景,比如游戲,比如發票,比如非同質化通證。可是這些場景依然很單薄,完全不能支持大家對區塊鏈技術的期望,更無法發揮區塊鏈技術的實力。就好像現在的5G技術,空有一身本領,到頭來大家只是用來做Speedtest。

但是為什么我們無法找到更多適合區塊鏈的場景呢?因為區塊鏈技術太封閉,為了安全,區塊鏈只信任自己鏈上的數據,不接受鏈外的數據流,比如UTXO全是鏈上的交易構造的,比如Neo Legacy里的智能合約執行的時候只能通過少數接口獲取鏈上的數據。所以想跟區塊鏈打交道,那么你的場景里就不能有對外界信息的依賴。但是現實世界中大多場景都需要大量的信息交互,你打開手機,哪有應用不需要聯網的。

幣安合約委托訂單修改功能現已支持U本位合約:金色財經報道,幣安合約宣布委托訂單修改功能現已支持U本位合約,用戶可以通過幣安App和API修改所有U本位合約和幣本位合約當前委托訂單的價格和數量。請注意,在幣安網站修改U本位合約的委托訂單功能將在2023年05月底之前上線。[2023/5/12 14:59:57]

比如訂票軟件,你需要實時的機票余票信息和價格信息。

比如交易軟件,你需要物價信息。

比如快遞軟件,你需要最新的物流信息。

很無奈,這些都沒辦法用區塊鏈去做。

因此,為了拓寬區塊鏈的應用場景,充分發揮區塊鏈的潛力,可以給區塊鏈投喂鏈外數據流的交互方式——預言機,應運而生。預言機就是一個可以把現實世界中的數據以交易的形式記錄在區塊鏈上的機制。熟悉計算機的小伙伴可以把預言機理解成一個現實世界和區塊鏈之間的巨大cache。由于現實世界的數據在語義上與區塊鏈是存在巨大的gap的,比如現實世界的數據可能會實時變化,可能有多個數據源,可能需要復雜的計算或者轉換,這些都無法在區塊鏈共識的過程中解決,否則不同的共識節點在驗證交易的時候可能獲取到的數據都不同,但是如果共識節點不從現實世界直接取數據,而是從“cache”里取,那么就可以保證各個節點在驗證交易時輸入數據的一致性。因此需要在將數據寫入區塊鏈之前,有一個處理數據的過程,把數據處理成區塊鏈可以接受的形式,比如把實時數據取樣出一個當前的固定數據。

波場TRON賬戶總數突破1.5億:據官方消息,2023年4月3日,TRONSCAN最新數據顯示,波場TRON賬戶總數達到150,379,816,正式突破1.5億。波場TRON各項數據穩中前進,波場生態逐漸強大的同時,也將迎來更多交易量。[2023/4/3 13:42:01]

預言機的實現大致有三種,一種是中心化的第三方,第二種是可信的數據提供方,第三種則是去中心化的基于共識機制的預言機。在N3中則是因地制宜地使用了拓展性更好的去中心化預言機機制。

根據文檔,N3是指定一些預言機節點來對交易的數據請求結果進行共識,以此來避免可能存在的預言機偽造數據問題。流程是:用戶發起交易,在交易里觸發智能合約里的預言機請求,這個請求的本質其實是調用N3內置的原生預言機合約里的request方法:

6800萬枚USDT從Kraken轉移至Bitfinex:3月17日消息,Whale Alert數據顯示,68,000,000枚USDT從Kraken轉移至Bitfinex。[2023/3/17 13:11:15]

<summary>

創建 Oracle Request 請求數據

</summary>

<param name="url">訪問資源路徑,最大長度為 256 字節.</param>

<param name="filter">過濾器,用于在從數據源返回的結果中過濾出有用信息</param>

<param name="callback">回調函數方法名</param>

派盾:Nexo相關地址從MakerDAO取出5000枚WBTC并轉入Wintermute地址:12月2日消息,據派盾監測數據顯示,0x8fd5 開頭的 Nexo 地址從 MakerDAO 取出 5000 枚 WBTC(約 8500 萬美元),并轉入了 0xaad5 開頭的 WintermuteTrading 地址。

Nexo 銷售主管 KirilNikolov 對此回應稱,此舉旨在搶在投機交易前將 WBTC 解除封裝。[2022/12/2 21:18:31]

<param name="userData">用戶自定義數據</param>

<param name="gasForResponse">回調函數執行預付款</param> 

void Request(string url, string filter, string callback, object userData, long gasForResponse);

加州要求NEXO停止提供收益型產品:金色財經報道,加州金融保護與創新部針對加密貸款機構Nexo的加密計息賬戶發布了一項禁止令。

該制止文件稱,Nexo的賺取利息產品賬戶是證券,“在沒有事先資格的情況下被出售和出售,違反了《加州公司法》第25110條。截至2022年7月31日,超過18000名加州居民擁有活躍的Earn Interest產品彈性或定期賬戶;這些賬戶總共持有至少17480萬美元的投資。”(the block)[2022/9/27 22:32:08]

原生合約會根據參數構建一個請求,然后預言機節點根據請求來獲取數據,在預言機節點完成數據采集之后,會生成一個新的交易并在交易里調用用戶合約里的回調函數。所以觸發一次N3的預言機,將會有兩筆交易被寫入到區塊鏈里,一筆是觸發預言機,另一筆是回調。這樣通過URL機制將數據源的選擇權交給合約開發者或者數據調用者,進而規避了預言機本身對數據源的信任問題,異步回調機制則解決了智能合約調用預言機延遲過大的話可能會Block掉共識過程的問題。

按照這個邏輯,理論上如果我們要觸發預言機,那么在調用預言機之后就應該會終止當前合約的執行,所以在一個合約方法里寫在觸發預言機語句之后的代碼應該是不會執行的。不過這里由于一些環境配置問題,我還沒辦法做驗證。

預言機雖然被定義為用來獲取數據的工具,但是其實預言機也可以用來做一些比較迷的操作。因為調用預言機這個過程,實質上跟異步調用別的合約沒有什么太大的區別,甚至N3里就是把預言機內置為一個原生合約。這就意味著,我們可以把預言機作為一個智能合約的外掛接口,把一些原本應該寫入智能合約的邏輯寫入在合約之外。比如計算量非常大的任務,我們就可以把任務通過預言機發到鏈外,然后在鏈外執行再返回結果。再比如一些我們想隱藏起來的邏輯,比如隨機數生成算法,也可以通過預言機把這部分功能遷移到鏈外。

N3預言機系統現存問題

雖然N3原生的預言機系統很好很強大,依然有一些問題沒有能夠完美解決:

N3的預言機作為分布式系統,其處理變化頻率過快的數據比較麻煩。比如比特幣的價格,基本上是實時變化的,因此不同的預言機節點在獲取比特幣價格的時候,很可能不同的節點獲取到的價格就有零點零幾的不同,從而導致預言機共識失敗。雖然這也可以通過用戶優化數據格式在一定程度上解決。

預言機系統是一個異步回調系統,再加上存在共識過程,因此其獲取到的數據相較于觸發交易來說存在較大的延遲。比如你當前看著機票的價格很低,然后立即發送一筆交易到鏈上,你的交易立即得到的了執行,這卻并不意味著你能獲取到的價格就是交易執行時的價格,畢竟預言機的回調交易并不是和你的觸發交易同步發生的。

還有一個比較大的問題是數據源的可信程度,我們允許用戶通過預言機將鏈外的數據引入到鏈內,這在相當大的程度上將鏈外的不可信因素引入到了區塊鏈。以前攻擊區塊鏈就只能攻擊區塊鏈節點本身,這個過程由共識協議來保護。可是當我們引入了預言機后,攻擊區塊鏈的方式就變得多樣了,因為黑客可以通過攻擊合約里指定的預言機數據源來將攻擊的影響輻射到區塊鏈里。此外,不可靠的合約開發者也可能通過預言機機制在智能合約里引入不可知的后門,畢竟通過預言機調用的部分功能并沒有寫入在區塊鏈里,因此不可靠的開發者完全可以在神不知鬼不覺的情況下更改系統邏輯。

最后還有一個問題是數據的冗余。我在前文中提到預言機的功能類似于在區塊鏈和數據源之間加了一層數據緩存以保證數據的可信。可是實際上這個緩存只是我抽象出來便于大家理解的,實際上N3的預言機在處理數據的時候并不會像緩存那樣對數據進行保存以便于后續的請求。相反的,N3的預言機請求只跟用戶發起的觸發交易相關,用戶發起了多少筆觸發交易,就會有多少對應的預言機請求,即使在同一個區塊內有許許多多的交易都在請求同一個數據,這樣就難免導致預言機寫入大量的冗余到區塊鏈上。

以上。

Tags:區塊鏈PARARAPARA區塊鏈dapp開發公司PARKparallelworldParagon Capital

BTC
ICP 的經濟與治理系統詳解_Huobi

互聯網計算機是世界上第一個完全自適應的區塊鏈。互聯網計算機網絡,以及承載網絡的特殊節點機器,在網絡神經系統(NNS)的完全控制下運行。NNS 是一個去中心化的代幣治理系統,是完全無準入的.

1900/1/1 0:00:00
Argent:通往 Layer 2 之旅_ROLL

自 3 年前創辦 Argent 以來,我們一直在朝著一個偉大的目標努力,就是將 Layer 2 引入 Argent,并且讓我們的 Layer 1 錢包變得更加安全、強大.

1900/1/1 0:00:00
虎符智能鏈白皮書:易擴展、高性能公鏈_智能鏈

全新《三國》即將于8月9日上線虎符智能鏈HSC:據官方報道,養成類NFT卡牌游戲——全新《三國》即將于8月9日上線虎符智能鏈。全新《三國》項目將要開啟大型NFT卡牌空投,空投總戰力達一個億.

1900/1/1 0:00:00
Pulse:NEAR的跨鏈預測市場應用_PULSE

2020年必將是載入史冊的一年,在這一年中發生了很多個第一次:全球廁紙短缺、非英語電影獲得奧斯卡最佳影片獎、女性當選美國副總統、遠程辦公逐漸興起等等.

1900/1/1 0:00:00
NEAR生態迎來新成員:Swagger DAO如何攪動NFT一池春水_NEAR

眾所周知,時尚行業是一個很注重潮流的領域,一直奔走在創造力和創新的最前沿。事實上,歷史證明時尚界在發掘新技術的潛力及預測其對未來消費者偏好的影響方面有著極強的靈活性和接受度.

1900/1/1 0:00:00
3分鐘了解獲Coinbase投資的無抵押借貸協議Goldfinch_DFI

在過去的一個月中,整個加密資產網絡的借入資產金額超過了40億美元,而在去年同期,這一數字還不足2億美元.

1900/1/1 0:00:00
ads