Zoro包含 ZoroChain 和 ApplicationEngine 兩個部分,其中ZoroChain 是由 RootChain、MappingChain、ApplicationChain 的鏈群組成的一套跨鏈解決方案;ApplicationEngine 是一套基于.NetCore的、架設在 ZoroChain 之上的應用運行環境,是 ZoroChain 的計算資源節點,Application Engine 為應用提供了一套分布式計算運行環境,應用可以通過其方便的訪問區塊鏈網絡以及調用網絡中的各種計算資源。
Zoro的目標是搭建一套針對游戲行業這個垂直領域的基于區塊鏈技術的跨鏈分布式計算網絡環境,讓區塊鏈技術無論從運行效率還是功能模塊上都滿足游戲行業的開發需求,讓開發者可以方便高效的開發、發布區塊鏈游戲,提供一站式的跨鏈解決方案。
ZoroChain
ZoroCore
ZoroCore 是 ZoroChain 的核心,是為 Zoro 中所有其他模塊提供共識、驗證、區塊持久化等區塊鏈核心計算服務的基礎模塊。
SpringThunder Consensus:ZoroCore 提供了一套基于節點可靠性加權 VRF-BFT 的 SpringThunder 共識算法(ST Consensus),主要思路是通過算法對節點可靠性進行評估,以可靠性排序來代替其他公鏈常用的節點選舉工作,或者可以說,以機器算法來代替人工選舉節點的工作,我們相信,算法選取得當的情況下,機器將比人更加可靠。
STC 算法中,節點的可靠性將由兩個重要參數影響,一個是節點抵押,一個是工作積分證明,兩者決定了節點的可靠性排序,STC 將通過 VRF-BFT 算法根據可靠性加權對節點進行記賬權篩選,同時提供一套監測機制,對作弊行為進行懲罰以進一步提高安全性。
節點抵押:需要參與共識,則首先要成為節點,成為節點需要抵押一定金額代幣,一個節點可以有多個持幣用戶參與抵押,持幣用戶不想成為節點可將代幣抵押至其他節點來分享出塊收益,若節點犯錯則用戶有損失代幣風險。具體參見 ZID 章節說明。
工作積分證明:節點曾經參與的交易確認、共識出塊將換算成積分累計至該節點,工作積分是節點穩定參與網絡貢獻的記錄,是節點出塊競爭的重要參數。工作積分每 604800 個塊調整一次,調整算法為:NewWorkload = 0.9*OldWorkload,通過調整算法可以保持最近的積分權重比歷史積分權重高。
VRF-BFT : VRF-BFT 全稱是 Verifiable Random Function –Byzantine Fault Tolerance,即可驗證隨機函數拜占庭容錯算法,STC中采用該算法作為共識算法。網絡中所有節點列表將按 fx(抵押, 工作積分證明)排序,每次競爭記賬權時,將取列表中前 100 個節點(最少不能低于 4 個,否則共識失敗)作為備選節點進行 VRF-BFT 共識。共識流程簡述如下:
1、 每一輪出塊時,所有節點按 fx(抵押, 工作積分證明)更新節點列表;
2、 根據 VRF 算法,從列表前 100 個節點中選取 1 個提案節點進行提案;
3、 根據 VRF 算法,從列表前 100 個節點中選取多個驗證節點對提案進行驗證;
4、 包含提案節點在內,超過 2/3 的節點驗證通過,則由提案節點廣播出塊,否則重復第 2 步,重新選取提案節點。
懲罰機制:對于已經確認的交易,若存在異議,則可由監測節點發起驗證,驗證交易需提交保證金,由全網 2/3 以上備選節點表決,若驗證失敗,則扣除監測節點保證金,若驗證成功則根據不同程度錯誤,將扣除一定比例抵押代幣給監測節點同時清除一定比例工作積分。
1、 驗證交易將在交易池中由每輪共識中的提案節點和驗證節點進行驗證并投票標記并記錄至當前區塊;
2、 當一個驗證交易有超過 67 個備選節點表決為真或假后,表決結束,執行驗證懲罰。
3、 當一個節點存在未完成標記的驗證請求時,其抵押代幣不能釋放。
4、 節點被判斷作弊,則需扣除 max(該交易價值代幣,1%抵押代幣)的節點抵押代幣,同時扣除代幣則算的相應工作積分。扣除代幣獎勵至監測節點賬戶。
5、 驗證交易發起時,監測節點需提交 max(100,交易價值代幣相同的保證金),若節點被判斷為未作弊,則保證金將被沒收,反饋給被驗證節點。
ZoroChain 鏈群
ZoroChain 由 3 個獨立區分的部分構成,每個部分都是一條或多條獨立的基于ZoroCore實現的鏈,分別是:RootChain、MappingChain、ApplicationChain。
RootChain
RootChain 是 ZoroChain 的根鏈,全網只有一條,MappingChain和 ApplicationChain 都由 RootChain 管理,ZoroChain 內部跨鏈的交易都需要通過 RootChain 來完成,具體參見 ApplicatioinChain 的“應用鏈跨鏈”章節。
RootChain的節點叫“核心節點”,其組成了ZoroChain的核心網絡,RootChain 的權限和安全級別在 ZoroChain 中是最高的。
MappingChain
MappingChain 是 ZoroChain 的映射鏈,其他公鏈的數據將通過映射鏈并入到 ZoroChain 中,每條公鏈對應一條映射鏈,映射鏈由兩類節點組成,驗證節點和觀測節點,驗證節點需同時運行 ZoroChain 和公鏈程序(如映射以太坊的話,需運行 geth 軟件),驗證節點在收到公鏈新出塊數據后,將根據 ZoroChain 設定的格式將其他公鏈塊數據轉換成 MappingChain 數據并在 MappingChain 進行二次 STC 共識,共識確認后將廣播給其他節點;觀測節點無需運行公鏈程序,其只接收同步驗證節點的共識數據。節點可以同時是觀測節點和驗證節點。
數據映射:MappingChain 與側鏈類似,都是以公鏈為主鏈建立一條平行側鏈,所不同的地方在于,MappingChain 會將公鏈交易數據“翻譯”一遍映射至 ZoroChain 空間,其交易數據格式將轉換成Zoro 設定的格式(一般是交易結果集,暫時無法同步非標準交易或者非標準智能合約操作),映射完成之后,除了跨鏈交易部分的數
據,公鏈上所有交易數據都可以在 ZoroChain 空間內部通過MappingChain 得到快速驗證。
二次共識:MappingChain 的驗證節點會通過其他公鏈接口獲取公鏈交易數據和塊數據,所獲取的數據將轉換成 ZoroChain 格式后在 MappingChain 網絡內廣播,基于 ZoroCore 的 STC 算法進行二次共識并出塊,需要指出的是,公鏈的交易并不會在 MappingChain上再次執行,而是會被翻譯成結果集再在 MappingChain 上共識并記錄。
舉例來說,如果有一筆交易是 20 個 ERC20 代幣 XCoin 在Ethereum 上從 A 賬戶轉移到 B 賬戶,其在以太坊上的交易執行過程是通過 EVM 執行代幣智能合約,通過 put 更改存儲區數據來完成的;那么該交易在 MappingChain 上進行二次共識的過程并不會執行 EVM 智能合約,而只是簡單的轉換為 A 賬戶在 XCoin 地址下的數值減 20,B 賬戶在 XCoin 地址下的數值加 20。
MappingChain 啟動階段只支持公鏈的標準轉賬交易映射,包括各個公鏈的標準代幣合約交易映射,未來將擴展到 NFT 及其他廣泛被采用的標準化合約。
安全性問題:MappingChain 的安全性取決于驗證節點的數量,數量越大,則其安全性越高。同時,還取決于抵押代幣的數量,一般來說 MappingChain 的驗證節點不能驗證超過其抵押代幣數量的交易以保證跨鏈交易資金安全。
公鏈資產跨鏈:當用戶需要將資產映射到 ZoroChain 時,可以在公鏈上將資產轉至公鏈上的映射合約或賬戶,當 MappingChain 監測到該交易后,將通過驗證節點共識下發 ZoroChain 上的代幣至用戶賬戶;反之,當用戶需要將映射資產轉移回公鏈時,則發送銷毀映射代幣交易至 MappingChain,由驗證節點共識后,將公鏈上的映射合約或賬戶代幣轉移回公鏈用戶賬戶。若監測節點發現驗證節點作弊,則可以發起重新驗證,2/3 以上節點通過,則所有作弊驗證節點的等量押金扣除后獎勵監測節點,若驗證失敗,則沒收監測節點保證金。
公鏈資產將通過超級驗證節點去中心化管理,Zoro 將在各個公鏈上部署映射合約,合約用于管理轉移至 MappingChain 的資產,合約將采用超級驗證節點多簽方式管理(具體參見“ZID 及節點”章節),其將以去中心化管理的方式最大程度保持 ZoroChain 映射資產的安全性。
資產從公鏈轉移到 MappingChain 步驟
1、 賬戶 A(公鏈地址)在公鏈發起轉賬 TxP1,將 10 個 NEO 轉移至映射合約;
2、 賬戶 Az(ZoroChain 地址)在 MappingChain 發起代幣映射交易 TxMap,包含 TxP1 交易信息及賬戶 A 的 NEO 公鏈簽名;
3、 驗證節點對 TxMap 進行驗證,通過映射公鏈數據對 TxP1 交易信息及賬戶 A 簽名進行驗證,通過后發放 10 個映射 NEO代幣至賬戶 Az,完成映射。
資產從 MappingChain 轉移到公鏈步驟
1、 賬戶 Az(ZoroChain 地址)在 MappingChain 發起映射代幣銷毀交易 TxRed,銷毀 10 個映射 NEO,包含公鏈賬戶信息賬戶 A;
2、 驗證節點對 TxRed 進行驗證,凍結賬戶 Az 中 10 個映射NEO;
3、 凍結 Az 中 10 個映射 NEO 后,超級驗證節點將構造公鏈轉賬交易 TxP2 并廣播多簽請求;
4、 多簽完畢后 TxP2 信息將更新至 TxRed,Az 中 10 個凍結映射 NEO 被銷毀,同時 TxP2 將被提交至公鏈,10 個 NEO 從公鏈映射合約轉賬至賬戶 A,完成提取。
ApplicationChain
ApplicationChain 是 ZoroChain 的應用鏈,其主要服務于應用,應用鏈為多條平行鏈,可通過根鏈創建、查詢,應用鏈出塊速度高(毫秒級),一段時間內無請求則不出塊,應用鏈間交易請求不互相等待,可并發。當某個應用鏈發生故障或遭受攻擊,將不影響其他應用鏈運行。
應用鏈跨鏈:與公鏈資產跨鏈類似,需通過驗證節點完成,監測節點負責事后監督懲罰,應用鏈間資產轉移需通過根鏈完成。應用鏈跨鏈驗證節點需同時獲取應用鏈與根鏈區塊數據,應用鏈驗證節點以多簽形式管理應用鏈在根鏈上的資產映射合約。
應用鏈與根鏈、映射鏈都采用相同地址加密算法,所以可以互相驗證交易信息。
根鏈到應用鏈轉移流程如下:
1、 賬戶 A 在根鏈發起轉賬 TxP1,將 10 個 ZORO 轉移至 AC1映射合約;
2、 應用鏈 AC1 驗證節點在根鏈檢查到 TxP1 后,在應用鏈 AC1發起 ZORO 發放交易 TxSend1,其中包含 TxP1 信息;
3、 應用鏈 AC1 共識節點分別驗證 TxP1 和 TxSend1,通過后將10 個 ZORO 在應用鏈 AC1 上發放至賬戶 A。
應用鏈到根鏈轉移流程如下:
1、 賬戶 A 從應用鏈 AC1 發起 10 個 ZORO 轉移至根鏈交易TxTrans1;
2、 應用鏈 AC1 共識節點根據 TxTrans1 交易凍結賬戶 A 的 10個 ZORO;
3、 凍結完成后驗證節點將構造根鏈多簽轉賬請求 TxP2 并進行廣播;
4、 多簽完畢后,驗證節點將 TxP2 信息更新至 TxTrans1,同時銷毀凍結的應用鏈 AC1 上賬戶 A 中的 10 個 ZORO,并將TxP2 提交至根鏈,10 個 ZORO 從根鏈 AC1 映射合約賬戶轉移至賬戶 A。
應用鏈的虛擬機:應用鏈的智能合約虛擬機可以支持 OnChain 計算和 OffChain 計算,顧名思義,OnChain 計算與其他公鏈的典型智能合約虛擬機一致,合約調用的交易需由所有驗證節點執行并根據智能合約執行結果更改鏈上狀態,而 OffChain 計算所不同的是,交易體里除了包含調用合約、方法、參數之外,還包含本次調用的執行結果,其他節點收到 OffChain 計算之后,將不同步執行智能合約調用而是只簡單的同步執行結果。
OffChain 計算的安全性:由于 OffChain 計算并不會在節點間進行計算過程驗證,其大大提升同步效率時帶來的副作用也是明顯的,其
安全性將大大降低,只能由監測節點進行事后監測,所以一般來說,我們將建議將安全性要求較低的部分放在 OffChain 計算中。雖然其安全性要低不少,但是相對中心化的服務來說,其畢竟還有事后監督部分,安全性還是要比中心化服務高上一些。
ZID 及節點
要加入 ZoroChain 網絡,必須申請成為節點,申請由網絡自動確認完成,節點分為核心節點、觀測節點、應用節點、監測節點、驗證節點。
ZID:成為節點之前,必須先創建 ZID,用戶可以通過發起 ZID 創建交易來創建 ZID,創建 ZID 交易需要消耗固定 10 個 ZORO 的手續費。
ZID 是用戶在 ZoroChain 網絡中的身份,想要參與 ZoroChain 的網絡建設,例如參與治理投票、獲取代理收益、成為節點等,ZID 是必不可少的。
獲取 ZID 后,用可以選擇抵押代幣運行各種節點,或者將代幣代理至其他節點分享節點收益。
核心節點:成為核心節點需要抵押至少 100,000ZORO,可參與分享核心節點挖礦獎勵,核心節點可以參與 RootChain 記賬競爭,獲得核心節點挖礦獎勵,關于挖礦獎勵具體分配詳見“挖礦”。
觀測節點:成為觀測節點無需抵押。
驗證節點 : 驗 證 節 點 需 抵 押 至 少 100,000ZORO , 可參與MappingChain 記賬權競爭,獲取驗證節點挖礦獎勵;超級驗證節點需抵押 1,000,000ZORO,超級驗證節點與驗證節點唯一不同之處在于,其可以參與公鏈代幣多簽管理。成為超級驗證節點需審核,通過發起超級節點驗證申請獲得,申請由現有超級驗證節點多簽審核通過新成員申請。
應用節點:成為應用節點需抵押 10,000ZORO,可分享應用鏈運行手續費收益。
監測節點:成為監測節點需抵押 1,000ZORO,可發起交易驗證請求,驗證成功可以獲得節點扣除的押金獎勵。
ApplicationEngine
ApplicationEngine 是 基 于 .NetCore 的 應 用 虛 擬 機 , 工 作 在ZoroChain 中的 ApplicationChain 之上,通過應用鏈與 ZoroChain 交互,ApplicationEngine 運行的節點定義為計算節點,其功能可以通過插件系統進行擴展,主要模塊包含網絡通信、通用計算庫、圖形計算庫、數據庫等,應用程序可以運行在 ApplicationEngine 上,其計算節點可以自行架設或者租用其他用戶架設節點。
計算節點
計算節點是 ApplicationEngine 所運行的節點, 其提供ApplicationEngine 運行所需要的環境,計算節點網絡由提供不同功能的計算節點組成,如通用計算、圖形計算、AI 計算、存儲等,計算節點通過應用鏈節點連接入 ZoroChain,是應用鏈的葉子節點。
ApplicationEngine 可通過 OffChain 計算將關鍵計算步驟記錄至ApplicationChain 上,亦可以通過 OnChain 計算進行 ApplicationChain的各種鏈上操作、智能合約調用。
計算節點運行費用可通過應用鏈結算,費用結算具體參考“節點激勵-系統費用”章節。
正如我們前文所提到到,未來的計算將更多的發生在云端,在游戲領域,Sony、MicroSoft、Google 都提出了各自的云游戲解決方案,當然,都是中心化的云,3 家都是通過視頻流來進行圖形傳輸,在目前的網絡環境下體驗并不好,未來 5G 時代到來,低延遲和高帶寬將讓視頻流云游戲體驗與本地游戲一致。
Zoro 將提供渲染節點,渲染節點可選擇 2 種遠程圖形數據傳輸方案:渲染流、視頻流。
渲染流方案是指,CPU 完成計算后,GPU 執行部分計算,生成渲染指令流發送到遠程客戶端,客戶端本地 GPU 根據渲染指令繼續執行完成渲染并進一步柵格化顯示,GPU 所需要的渲染素材由本地終端預先存儲并加載至 GPU。
視頻流方案是指,CPU 完成計算后,GPU 執行渲染并輸出柵格化圖形數據,并提交至視頻壓縮模塊,輸出實時視頻流發送至遠程客戶端,遠程客戶端進行視頻解壓顯示。
渲染流需要云端計算較少,帶寬需求低,本地終端性能要求高,需要 GPU;視頻流云端計算多,帶寬需求高,本地終端性能要求低,無需 GPU。
ApplicationEngine 的應用可以通過渲染節點發送圖形數據,單機游戲和多人游戲都在服務器完成執行和渲染。通過適當的數字版權機制,云游戲情況下單機游戲可以較好的避免盜版;多人在線游戲可以從 C/S 結構的系統架構中解放出來,像單機游戲一樣開發多人游戲,把遠程通信工作下放到圖形傳輸和輸入指令傳輸層面,大大簡化開發工作。
開源游戲框架
基于 Application Engine,Zoro 將建設系列開源游戲框架,將陸續覆蓋各種類型游戲(如 FPS、RPG、RTS、SLG、MOBA 等等)和各種終端。開源游戲框架將免費提供給社區使用,通過開源框架極大降低游戲開發者的開發成本,同時極大豐富 Zoro 社區應用內容。
節點激勵
挖礦
ZoroChain將為參與網絡的節點提供代幣激勵,即挖礦,ZoroChain中的 MappingChain 和 RootChain 將有挖礦產出,具體如下:
MappingChain 挖礦:MappingChain 節點出塊產出 50%給提案節點(即出塊節點),40%提供給參與記賬節點,10%進入 MappingChain礦池。
RootChain 挖礦:RootChain 節點出塊產出 50%給提案節點(即出塊節點),40%提供給參與記賬節點,10%進入 RootChain 礦池。
礦池:MappingChain 和 RootChain 的礦池每個周期(604800 個塊,約 1 周)選取節點工作積分列表中排名前 10 的獎勵 30%礦池代幣,再隨機選取列表中 10 個節點獎勵 10%礦池代幣。
ZoroChain 的挖礦將在 Zoro 第 2.0 階段開啟。
系統費用
1、 創建 ZID 手續費:ZID 創建手續費 35%獎勵提案節點(即出塊節點),35%獎勵參與記賬節點,30%進入 RootChain 礦池。
2、 Gas fee:根鏈、映射鏈 Gas fee 按 Gas Price*Gas 計算,35%獎勵提案節點(即出塊節點),35%獎勵參與記賬節點,30%進入 RootChain 礦池;應用鏈手續費也按 Gas Price*Gas 計算,可由多簽方式指定付費賬戶,50%獎勵提案節點(即出塊節點),50%獎勵參與記賬節點。
3、 監測節點驗證交易保證金:若保證金被扣除,將進入所在網絡礦池。
4、 投票提案保證金:發起提案需要提交一定額度保證金,若提案被投票為無效提案,則保證金將進入 RootChain 礦池。
5、 ApplicationEngine(計算節點)使用費用:ApplicationEngine使用費用可以由節點搭建人指定,可采用兩種方式:按計算量付費、按時間付費(包月),費用支付至計算節點賬戶。計算節點亦可設置免費應用 Hash,制定應用無需付費即可使用節點,當用戶自己搭建計算節點時可以采用這種方式。
評論
查看更多