EOS原力(EOS Force)基於EOSIO軟體並加以進化的區塊鏈
在深入研究 EOSIO 軟體的過程中,我們發現了很多可能會導致鏈不穩定的因素,比如用 C++ 編寫基於 WASM 虛擬機器智慧合約的安全性,一票 30 投可能導致的“超級節點聯盟” 等等。如果按照 EOSIO 官方指引進行鏈的啟動,推進鏈的選舉、投票,支援使用者轉賬、部署合約,那麼使用者的資產安全將很難得到保證。
本著以使用者資產安全為第一要素的原則,我們對 EOSIO/eos 進行了多層次演繹,並最終提出 EOS Force 的解決方案。 通過調整出塊時間,收取交易手續費,鼓勵超級節點分紅,分階段釋放自主部署合約功能等諸多途徑,EOS Force 致力於進一步提高鏈的穩定性與安全性。
模型
使用者資產
EOS Force 支援對以太坊上 EOS ERC20 代幣的使用者進行對映,EOS Force 的使用者資產具備以下屬性:
·可用餘額:可用於轉賬、投票。
·投票金額:投給不同節點的金額,處於鎖定狀態,減少投票後變為贖回金額。
·贖回金額:撤銷的投票金額,有 3 天凍結期,3 天后可以提取成可用餘額。
·待領分紅:使用者根據對節點選舉的幣量和時間貢獻,佔有節點獎勵池的一部分,提取後變為可用餘額。
區塊獎勵
EOSIO 預設 0.5s 的出塊速度在全球性的 分散式 網路中尚未得到有效驗證,網路延遲很可能會造成 區塊鏈 分叉和停止。因此,EOS Force 在鏈的啟動階段將出塊時間設為 3 秒,每個節點每次只出一個塊,每個塊獎勵為 9 個 EOS。待鏈執行穩定後,EOS Force 將會恢復 0.5s 的出塊時間,在穩定的基礎上進一步提升鏈的效能。
交易手續費
EOSIO 需要使用者抵押幣來獲取資源,從而競爭性地使用區塊鏈,繼而達到 “免交易手續費” 的目的。“免交易手續費” 實際是自欺欺人,超級節點可獲得 1% 的年化獎勵,這實質上將交易手續費轉嫁為了使用者必須承擔的 1% 年化通脹。
為了鏈的安全性,防止被 DDOS 攻擊,EOS Force 恢復了交易手續費,以交易執行的種類計費,使用者無需指定手續費金額,系統將會自動從交易發起方的餘額中扣除,如果餘額不足,交易失敗。
通過不同合約執行不同操作會收取相應手續費。通過 eosio 進行 EOS 的轉賬、解除凍結,以及 eosio.token 進行 token 的發行與轉賬,這些交易的手續費都是 0.01 EOS。投票的手續費為 0.05 EOS,領取分紅的手續費為 0.03 EOS。通過 eosio 設定緊急狀態以及 eosio.token 建立新的 token 手續費為 10 EOS。通過 eosio 註冊 BP 的手續費為 100 EOS。
治理
投票分紅
如果不給投票使用者分紅,普通使用者的投票意願就會降低,這會導致全鏈幣的投票比例降低,那麼幾個大戶聯合就可能操縱投票影響選舉,從而進行分叉攻擊。所以,我們鼓勵超級節點給投票的使用者進行分紅,充分活躍普通使用者的投票參與度。
EOS Force 每年大約有 9000 萬 EOS 獎勵,超級節點可以自行設定自己的佣金比例,比如 1%。那麼節點當選並出塊後,可以拿走每個塊獎勵的 1%,剩餘 99% 會進入每個節點的獎勵池。節點根據每個使用者的投票金額和時間得出使用者“票齡”,再根據節點所有使用者的“總票齡”,計算出每個使用者在獎勵池中的分紅佔比,給節點投票的使用者隨時可以從獎勵池中提取分紅。
如果 EOS Force 全網只有 3 億的 EOS 參與投票,那麼所有這些投票使用者將平分 9000 萬 EOS 的獎勵,年化利率約為 0.9億/3億,也就是 30%。使用者的年化利率隨著投票參與率的升高而降低。隨著幣總量的上升,每年的獎勵比例也會逐年下降。
為了減少自動分發消耗大量運算資源,EOS Force 的投票分紅需要使用者手動領取,領取快慢並不影響分紅數量,所提取分紅會立即變成可用餘額。
使用者每次提取分紅後,在節點中的“票齡”會歸零重新累計。
一票一投
EOS Force 實行一票一投的使用者投票機制,1 個 EOS 只能投給某一個節點,但是一個使用者可以給多個節點分別投不同數量的幣。
假設一個使用者有 1000 個 EOS,節點 A 的佣金比例是 1%,使用者投給 A 300 個 EOS,節點 B 的佣金比例是 1.5%,使用者投給 B 100 個 EOS,那麼該使用者的可用餘額還剩 600 個 EOS,使用者最終可以從這兩個節點分別獲得相應的投票分紅。
EOS Force 支援使用者調整投票數量,即增加或減少投票。如果增加投票,則自動進行一次分紅領取,並扣除可用餘額。如果減少投票,也會自動進行一次分紅領取,同時減少的幣量會有 3 天的凍結時間,3 天后,使用者需要手動進行“解除凍結”操作,才能把投票金額變為可用餘額。
23 個超級節點
在 BFT 演算法中,節點數天然不適合是 3 的整數倍。如果是 21 個節點,且恰好形成了 14 票同意,7 票反對的局面,則既無法達成大於 2/3 的通過,也無法達成大於 1/3 的否決,治理陷入僵局。如果是 23 個節點,不是 3 的整數倍,那麼最終會形成 15 票同意,8 票反對的否決決定,或者 16 票同意,7 票反對的通過決定,不會形成僵局。
緊急狀態
EOS 鏈還不能完全確認穩定性,如果鏈出現沒有預料到的 BUG,那麼需要有可以設定緊急狀態的功能,使鏈進入超級節點治理狀態。一旦進入緊急狀態,立即停止轉賬、投票、分紅等可能影響使用者資產安全的操作,只允許節點治理相關的操作。只有註冊節點可以開啟和關閉緊急狀態,如果在職 23 個節點中有 16 個節點同意開啟,則緊急狀態啟動。問題處理後,超級節點可以選擇關閉緊急狀態,當關閉緊急狀態的節點數大於 8 時,恢復鏈的全部功能。
啟動
·啟動階段追求鏈的穩定性。在此階段,只有使用者轉賬、投票、分紅的系統合約,使用者不能自主部署新合約。
·基礎功能穩定後,開放合約部署功能,開發者可以開發 DAPP。
·網路穩定後,各超級節點也完成了前期訓練,恢復 0.5s 的出塊速度。
EOS Force 創世塊中預設會有 23 個引導節點,鏈啟動後超級節點即可註冊參與出塊。
Eosforce多鏈架構技術規劃
1. 介紹
支援多鏈是Eosforce的一個重要的開發方向,通過多鏈我們可以在兼顧當前鏈安全的同時,為使用者和DApp開發者提供豐富的功能,另外一方面,通過 跨鏈 可以允許社群啟動不同的公鏈或私鏈,為DApp提供最適合的執行環境。
1.1 問題
Eosforce對EOS專案作出了很多修改,其重要的原因之一就是為了保障鏈執行的穩定性和安全性,為此,Eosforce選擇了先以最小的功能啟動, 但是這也意味著DApp開發者在初期無法自由的部署智慧合約,考慮到現在EOS開發尚不完善,所以貿然放開功能會帶來很多問題,影響整個鏈的安全性, 同時,不同的 應用 和交易對於安全性的要求並不相同,從架構角度看,將所有的交易和合約都放在一起執行並不是良好的設計。
目前幾乎所有區塊鏈專案都面臨DApp運營成本過高的問題,EOS通過使用BFT-DPOS使整個鏈有很高TPS,但是對於超級節點,很多資源在一定時間內依舊是有限的,如RAM,雖然依照摩爾定律,隨著時間的推移,整個鏈會得到更多的資源,但是相對於DApp旺盛且快速增長的需求,短期內很大程度上會出現資源的相對稀缺,加上某些炒作行為的推動,會嚴重加大開發者的運營成本,這對於整個EOS發展是個很大的阻礙。
基於以上以及安全性方面的考慮,我們選擇在最小功能的鏈上作結算,同時在多鏈上部署DApp,這樣即為開發者和使用者提供豐富的功能又能保證使用者資產的安全性,同時我們可以確保全網資源都可以增長,使得資源的稀缺性得到緩解,DApp開發者可以自由選擇可以負擔成本的多鏈,這樣可以保持整個鏈的活力。
1.2 前人工作
為了解決比特幣安全升級的問題,比特幣核心開發者提出了側鏈技術,2014年,Blockstream釋出了 Enabling Blockchain Innovations with Pegged Sidechains,提出利用雙向掛鉤(Two-way Peg), 使得比特幣可以在結算層和側鏈中互轉,在此之上可以允許使用者訪問眾多新服務,通過比特幣區塊鏈,為使用者提供更快的交易速度與智慧合約.
在側鏈技術的基礎上,Cosmos試圖構建一個全新的去中心化與可擴充套件性模型,Cosmos網路通過Tendermint機制來執行眾多區塊鏈。Cosmos提出了空間(Zone)的概念,每一條鏈視為一個空間,網路中的第一條鏈稱之為Cosmos中心(Hub Zone),使用其實現不同空間間的通訊(IBC)。
波卡鏈(Polkadot)是由Gavin Wood博士提出的另一個極具前景的多鏈技術,Polkadot構建了一個可伸縮的異構多鏈系統,通過提供基礎的中繼層,其他鏈如比特幣,以太坊等可以接入Polkadot。
1.3 目標
我們希望在前人的基礎上,為Eosforce基於EOS所帶來的優秀的共識機制設計一套異構多鏈體系,我們希望這個多鏈系統形成一個生態,為我們帶來以下好處:
穩定而廉價的鏈上資源 開發者可以根據自身需求自由選擇執行的側鏈,允許多個側鏈接入整個生態,會使得資源的供給可以充分滿足市場的需求, 這樣可以穩定鏈上資源的成本,另一方面,很多應用會希望鏈上可以提供穩定的資源和TPS,通過部署專門的側鏈,可以充分保證DApp執行不會被其他應用干擾。
允許擴充套件鏈功能 某些時候開發者和使用者需要擴充套件鏈功能以實現其特殊的需求,進而部署專門的聯盟鏈或者私鏈以側鏈加入Eosforce。
多鏈間價值交換 多鏈系統中通過中繼層,可以很方便的交換多個鏈上的資產,進一步,可以在中繼層上部署去中心化的交易所。
支援無縫遷移基於其他鏈的應用 我們可以引入其他底層鏈技術和智慧合約技術,以側鏈的形式提供給開發者和使用者,這樣開發者可以很方便的移植已有的應用到Eosforce生態中。
2. 鏈架構
我們定義三種結構:結算層,中繼層和側鏈。

結算層 (Main Layer) 我們把現有的Eosforce鏈稱為結算層,目前在結算層上,我們暫時沒有開放智慧合約,僅提供 Token 結算等幾個有限的功能。
中繼層 (Relay Layer) 結算層與中繼層連線,中繼層類似於Cosmos中心(Hub Zone),為連線中繼層的側鏈提供與結算層的通訊的能力, 同時,中繼層也可以為其連線的側鏈間提供通訊功能.
側鏈 (App Chain) 側鏈可以部署應用,開發者可以根據需求自由選擇側鏈。
3. 設計綜述
EOS全稱Enterprise Operation System,從作業系統的角度來看,其最重要的一部分就是使用者以及使用者許可權系統,對於使用者來說,Token可以看作使用者在EOS中權利的量化表現,而Eosforce中結算層的職責即為維護使用者權利,結算層與側鏈之間最主要的聯絡即結算主鏈向側鏈的授權行為,表現即為結算層上的Token和側鏈上的Token的雙向轉換。
這類似於傳統作業系統中的使用者系統,傳統的作業系統通過這一機制,使得其所管理的程序獲得其所需要的許可權,同時通過許可權的區分,可以有效的保證整個系統的安全性。相應的,在EOS生態中,我們通過建立一套結算層與側鏈之間的授權機制,使得使用者可以在不同側鏈上使用DApp的同時保證整個系統的安全性。
為了實現主側鏈間的授權,我們引入一個獨立的中繼層,使得我們可以去中心化的實現Token的雙向轉換。
之所以要引入中繼層,有以下幾方面考慮:
·首先,我們的核心訴求就是保證結算層的功能最精簡化以獲取最大的安全性,我們結算主鏈之上只支援結算。
·其次,對於使用者的跨鏈需求,我們需要一箇中立的中繼層來處理鏈之間的互動。
·再次,通過中繼層進行側鏈的治理,我們可以讓側鏈的提供者可以自由的提供側鏈,另一方面,又可以在側鏈出現問題時,對側鏈進行有效的處理。
4. 多鏈生態
通過多鏈我們可以構建一個充分自由的鏈上生態,服務提供者可以自由的提供不同種類的服務,使用者也可以自由的選擇服務。通過構建一個資源的自由市場,我們可以實現很多以往很難實現的應用場景。
4.1 角色
主鏈 主鏈包括結算層與中繼層,結算層作為基礎的結算層,主節點通過出塊,即提供計算資源,獲取token獎勵,另一方面,使用者通過投票可以保證主節點的誠實。中繼層擁有鏈上資產去中心化交易所,其上可以自由交易鏈上對應的資產。
側鏈節點 即側鏈上的超級節點,當然我們的多鏈架構中允許異構鏈作為側鏈,只要其滿足與中繼層的協議,這意味應用節點不一定是EOS超級節點, 也可以是一條私鏈或者聯盟鏈。應用節點主要提供計算資源,側鏈釋出其上的coin給使用者和應用服務者,另一方面,使用者和應用服務者持有coin來使用側鏈上的計算資源。
很多時候應用服務者可以自身作為應用節點來為自己的使用者和應用提供免費的計算資源,也可以選擇使用其他應用節點提供的資源,這樣一個自由供給和消費的市場可以有效的解決應用服務者的需求。
使用者 使用者持有Token,一般實現中,使用者可以通過中繼層可以在結算層上抵押Token,進而在側鏈上獲取Coin,另一方面,使用者可以在側鏈上鎖定Coin,進而在結算層上獲得Token。 當然側鏈與應用服務者可以自由的釋出Coin,這些Coin可以通過中繼層跨鏈結算,通過其他方式讓使用者兌換或者交易。
應用服務者 應用服務者可以在側鏈上部署DApp,應用服務者可以自由選擇部署的側鏈,也可以自行架設側鏈。
4.2 中繼層去中心化交易所
為了不同鏈上coin可以自由的交易,我們在中繼層上建立去中心化交易所。
中繼層作為其下側鏈的一箇中心,一方面,中繼層可以作為中繼實現兩個鏈中的資產掛鉤,另一方面,作為一個第三方,其也可以通過將其他鏈上的coin掛鉤到中繼層上對應的coin,我們在中繼層上建立各個側鏈coin間的去中心化交易所,可以實現各個側鏈上資產的流轉。
4.3 鏈上治理
中繼層對側鏈進行監管,對於第三方的側鏈,當側鏈出現問題時,中繼層可以發起中繼節點投票,來鎖定側鏈與結算層的通訊,避免側鏈故障造成更大影響。
5. Token體系
在Eosforce生態中,Token代表使用者的權利,使用者使用Token在不同的鏈上交易或者使用資源。
所有的服務提供者,包括應用節點和應用服務者,可以發行對應鏈上的Coin來為使用者賦予使用服務的權利,使用者可以在中繼層上建立不同側鏈上的Coin的對映,同時可以在中繼層上的去中心化交易所建立對映Coin和其他資產的交易對,通過交易,我們可以實現不同側鏈間Coin的流動。
5.1 對映Coin
我們保持對側鏈功能的最小假設,這樣我們可以支援多種底層鏈技術和智慧合約技術作為側鏈,通過對映其他鏈資產, 我們可以引入其他數字資產,如EOS主網上的Token,ETH,ADA等,這樣通過中繼層可以將這些資產引入我們的多鏈生態圈。
在中繼層和其連結的鏈間,可以建立Coin的對映對,以此可以實現鏈間Coin的一一對應,如圖:
同質貨幣

非同質貨幣
我們將會提供類似ERC-721標準的非同步貨幣對映支援,以此提供了可以具有唯一屬性的資產。與同質貨幣類似,通過在中繼層和側鏈的結算賬戶,我們可以實現將側鏈的非同質貨幣對映到中繼層。
對映確認機制
為了保證中繼節點的誠實,中繼層上Coin的對映過程需要多個節點確認之後才能進行。 這個過程可以通過發起一次多籤操作來完成。
由多個節點確認的過程可以有效的保證對映過程的安全性,但是同時會帶來一定的延遲, 對於一些對安全性不敏感而同時要求低延遲的Coin對映,我們可以允許Coin對映選擇不同的確認機制,以此提高對映效率。
5.2 穩定價值Coin
為了讓使用者使用中繼層資源的成本保持一定的穩定,不至於隨著Token價值的抖動而過高, 同時讓中繼節點收益不至於隨著Token價值抖動而降低,我們在中繼層上使用一種價值保持穩定的Coin作為使用中繼層上資源的憑證。
我們在中繼層上定義一種穩定式的Coin作為中繼層結算Coin, 使用者可以使用這種Coin來使用中繼層上的資源,包括註冊側鏈、建立Coin對映對以及在交易所建立資源交易對等。
在Bitshares中提出了bitassets的概念,通過一系列的穩定機制來得到一個價值相對穩定的資產, 進一步,2017年正式上線的MakerDAO專案給出了DAI穩定Coin,使用者可以抵押多種數字貨幣來獲得DAI。
對於作為中繼層上的結算Coin,我們會採用相似的機制保持其價值相對穩定,首先我們使用EOSCR(EOSC在中繼層上的對映)建立一個Coin池,使用者可以通過將EOSCR放入池中獲取P-EOSCR(Pooled-EOSCR),進一步通過抵押P-EOSCR建立CDF獲取Coin,這一機制類似與早期的DAI, 後面我們會允許使用者使用其他中繼層上的對映Coin來抵押Coin。
5.3 中繼層去中心化交易所
為了使不同鏈上的Coin可以自由流動,我們在中繼層上允許建立去中心化交易所。
不同的資產交易模式不同,我們會陸續提供不同的交易模式:
·基於Bancor演算法交易
·基於撮合的交易
6. 應用場景用例
在多鏈生態之上,通過資源的自由供給和交易,可以使很多之前很難在鏈上執行的應用進入鏈上運營,這樣這些應用既可以獲取使用者的共識,也可以通過選擇特定的資源,保證TPS的同時控制運營成本。
鏈上網路遊戲平臺
讓我們考慮一個鏈上網路遊戲平臺,傳統網際網路的遊戲運營模式包括遊戲玩家,遊戲開發者(CP),遊戲運營商和遊戲渠道商。
現階段這些主體間充滿矛盾:
·遊戲玩家不信任遊戲開發者,表現之一就是對獎勵概率的質疑,為此官方要求開發者公開各種抽獎概率,但是對於玩家根本無法驗證。
·遊戲玩家不信任遊戲玩家,玩家間無法進行可靠的交易,遊戲中作弊外掛屢見不鮮。
·遊戲開發者不信任運營商和渠道商,遊戲收入分成、排名中游戲開發者處於弱勢,使得遊戲開發者沒有動力開發更好的遊戲。
等等, 最終的結果是全輸,實際上通過區塊鏈技術可以很好的解決這些矛盾,形成共識機制, 但是,遊戲運營對於TPS和資源的要求很高,同時很多遊戲玩法邏輯並不適合也並沒有必要在區塊鏈上執行, 之前的很多區塊鏈遊戲都面臨阻塞整個網路和運營成本過高的問題。
這些問題通過多鏈生態很好解決,如圖:
考慮一個典型的RPG手遊,其大量的邏輯依然通過傳統遊戲伺服器客戶端架構提供給玩家, 而關鍵的邏輯,如產出,排行榜和玩家資產,由平臺在鏈上處理,玩家可以驗證其是否誠實, 平臺提供SDK幫助遊戲開發者接入鏈,這樣也會減少開發者成本,進一步,可以激勵開發者移植現有遊戲到鏈上,
平臺使用專用的側鏈來允許特定的遊戲,這樣可以保證遊戲上線時TPS需求,另外一方面可以減少運營成本。
未來預計會產生專門的側鏈雲服務商,通過幾個服務商聯盟可以高效靈活的為平臺提供側鏈資源,同時保證側鏈的誠實。
另外一方面,玩家可以使用平臺釋出coin兌換遊戲中的coin在遊戲中消費,也可以通過中繼層上的交易所實現玩家間自由資產交易。
關於更多 EOS原力 資訊: https://www.eosforce.io/
更多區塊鏈專案:http://www.qukuaiwang.com.cn/news/xiangmu
風險提示:區塊鏈投資具有極大的風險,專案披露可能不完整或有欺騙。請在嘗試投資前確定自己承受以上風險的能力。區塊網只做專案介紹,專案真假和價值並未做任何稽核。
宣告:登載此文出於傳遞更多資訊之目的,並不意味著贊同其觀點或證實其描述。