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,制定應用無需付費即可使用節點,當使用者自己搭建計算節點時可以採用這種方式。
關於更多Zoro資訊:http://www.zorochain.com/
更多區塊鏈專案介紹:http://www.qukuaiwang.com.cn/news/xiangmu
風險提示:區塊鏈投資具有極大的風險,專案披露可能不完整或有欺騙。請在嘗試投資前確定自己承受以上風險的能力。區塊網只做專案介紹,專案真假和價值並未做任何稽覈。