区块链预言机(5)预言机原理
1. 趣鏈預言機架構
預言機一般會作為區塊鏈的一個獨立模塊或第三方服務與執行引擎進行交互。預言機只負責數據的可信獲取,不直接參與交易的執行。
step1. 用戶通過合約調用的形式(也可以通過特殊的API接口服務等其他方式發起預言機服務請求)發起預言機的服務請求,通過調用某個內置合約接口(圖中“預言機服務”接口),告知區塊鏈執行引擎,用戶想要執行一筆含預言機服務的交易。
step2. 執行引擎執行過程中檢測到對預言機的服務請求,通過內部通信組件將它轉發給預言機模塊,這個請求里會封裝請求外部數據源的一些信息,如一個Web數據請求,會包含常見的URL、HTTP Headers等信息。
step3. 預言機在收到服務請求后,向外部數據源發起數據獲取請求,拿到數據后利用交易生成器產生一筆新的內部回調交易,并對其進行簽名(這一過程會使用TEE等硬件技術保障安全及不可篡改)。
step4. 預言機將這筆回調交易發向執行引擎,執行對獲取到的數據組織、管理、存儲等一系列操作,至此一個完整的含預言機服務的區塊鏈交易執行流程結束。
2. chainlink
Chainlink 通過在鏈上的智能合約和鏈下的數據節點,即用戶的智能合約把請求給鏈上 Oracle 合約,通過鏈下的 API 接口獲得外部數據,更確切的說是外部把數據給鏈上的 Oracle 合約,然后 Oracle 合約再把數據給用戶的智能合約。
step1. 用戶通過智能合約向 Chainlink oracle 合約發起數據請求,并且附帶相應的數據需求參數(鏈上),其實也是一筆 LINK 的代幣轉賬,在轉賬事務的 payload 中攜帶有數據請求的參數;
step2. Chainlink 節點組成的網絡通過訂閱 Oracle 合約的日志獲取相關信息;
step3. Chainlink Core 拆解用戶需求(鏈下);
step4. 拆解后的任務由不同的節點通過外部的 API 數據源完成,獲取數據返回;
step5. 返回的數據發送至 Chainlink Core;
step6. Chainlink Core 將數據再次返回至鏈上的 Chainlink 智能合約上;
step7. Chainlink 鏈上合約整合數據(利用不同節點提供的數據的概率分配、去除異常值(Outliers)等操作),同時根據最終結果紀錄每一個提供數據的節點聲譽,最終將結果發送給用戶的智能合約,完成整個流程。
3. 總結:不論哪種方法,最后都是通過創建一筆交易將數據返回給智能合約
:) 對讀者提問 : 智能合約與交易的關系 ?
參考
[1] . QTech . 預言機 - 區塊鏈的觸角
總結
以上是生活随笔為你收集整理的区块链预言机(5)预言机原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hyperledger Fabric 智
- 下一篇: (chap4 IP协议) 多播和子网掩码