數字貨幣的中心化交易所全權掌控了用戶的資產,而頻發的中心化交易所被盜事件一次次表明其安全問題成為懸在整個數字貨幣行業之,上的達摩克利斯之劍。2011年和2014年Mt.Gox兩次被盜,2014年Poloniex被 盜,2015年Bitstamp被盜,2017年Bithumb被盜,2019年Binance被盜等事件一次次印證 了前述的擔憂。在資產安全的問題之外,交易所關門跑路、交易規則不透明、由于主觀或客觀原因造成的暫時無法訪問以及昂貴的上幣費用等也是中心化交易所常被詬病的地方。
能否以去中心化的方式重構數字貨幣的交易市場?不需要注冊要求或者審核流程,沒有單點故障問題、控制或者監管屬性,規則透明的去中心化交易所能夠同時解決中心化交易所面臨的諸多挑戰。近年來涌現出諸如Bitshares 、 Etherdelta 、 0x協議、OmiseGo、Loopring 、Kyber 、 Cosmos等去中心化交易所的技術方案。現有的大部分方案,如Etherdelta、0x協議、OmiseGo、 Loopring、 Kyber都是基 于以太坊的支持ERC20標準的去中心化交易解決方案。基于某個公鏈的去中心化交易平臺的能力則受限于底層公鏈的能力。以以太坊為例,在當下以太坊的交易處理能力遲遲無法提升的情況下,基于以太坊構建的去中心化交易平臺在處理速度、用戶體驗等方面無法與現有的中心化交易平臺匹敵。專門定制的ASIC芯片已經在基于PoW的公鏈挖礦中展現出巨大的優勢,借鑒同樣的思路,構建專門用于去中心化交易的公鏈能夠在規避中心化交易所諸多問題的同時,依然保持較高的交易處理速度和相似的用戶交互體驗。
CoinEx Chain是基于Tendermint共識協議和Cosmos SDK打造的公鏈,旨在打造社區化運營、交易規則透明以及用戶資產由自己控制的去中心化交易平臺(DEX) 。基于CoinEx Chain的DEX.上的原生代幣為CoinEx Token (CET) ,現存的ERC20 Token形態的代幣會按照1:1的比例映射成CoinEx Chain上的原生代幣。
Tendermint共識協議在保證足夠去中心化的前提下能到達到上萬的TPS以及秒級確認,能夠在去中心化交易平臺場景下提供近乎中心化交易平臺的用戶體驗。通過鏈上交易、鏈上撮合的方式帶來最大程度的交易透明度。將數字資產的控制權還給用戶并且通過數字簽名進行權限鑒定,避免了中心化交易平臺所帶來的單點失敗的安全風險,保證了用戶資產的安全性。另外通過跨鏈機制,可以將當前的CET Token連接至更為廣闊的數字貨幣世界。
CoinEx Chain不僅是一條專用于DEX的公鏈,而且是圍繞DEX公鏈構建的更為豐富的生態系統。為最大程度 提升DEX公鏈的交易處理速度,DEX公鏈僅支持必要的功能而不支持智能合約。但是智能合約功能是構建更為復雜的金融應用的基礎,因此在DEX公鏈之外CoinEx Chain將包含-條支持智能合約功能的Smart公鏈。通過跨鏈機制連通Smart公鏈與DEX公鏈,在保證DEX公鏈性能的同時,也支持復雜的金融應用。
當前區塊鏈上的隱私問題備受詬病,因為地址概念提供的匿名特性容易通過數據進行逆向分析,最大程度地保護用戶隱私是CoinEx Chain的核心任務之-。與Smart公鏈類似,通過構建專門的支持交易隱私保護的Privacy公鏈并進行跨鏈連通,能夠提升整個CoinExChain生態的隱私特性。
在三條各司其職的公鏈之外,CoinEx Chain將在多個技術方向進行技術創新與改進:
1) 安全方面,還權于用戶之后如何保證用戶賬戶私鑰的安全性成為核心問題。在錢包的私鑰保護方面提供閾值多方ECDSA簽名機制。與Shamir秘密分享方案(Shamir‘ s Secret Sharing, SSS) 相比,閾值多方ECDSA簽名機制在簽名時,直接利用各個私鑰的分片進行計算即可得到最終的簽名值,無需重構原始私鑰信息,能夠規避SSS方案的單點失敗的隱患。
2) 共識協議方面,Tendermint協議需要驗證者集合對每個提議的區塊進行投票(簽名),每個區塊中的投票信息會隨著驗證者集合的增大而線性增長,消耗可觀的鏈上存儲空間,聚合簽名可解決這一問題。聚合簽名所面臨的Rogue Public-Key攻擊可以通過與共識場景結合進行規避,或者采用在Plain Public Key模型下安全的聚合簽名機制,如Maxwell等人提出的MuSig 以及Boneh等人提出的BL S聚合簽名機制。
3)執行效率方面,參考以太坊的經驗,區塊鏈所采用的可認證數據結構(Authenticated Data Structure, ADS)的效率會顯著影響鏈上交易的處理速度,Cosmos項目基于IAVL+數據結構構造了自己的ADS方案,在效率方面較以太坊提出的MerklePatracia Tree (MPT) 沒有明顯改進。通過工程手段可以部分緩解可能由ADS結構帶來的讀寫性能瓶頸問題。CoinEx Chain也會關注ADS設計方面的最新進展,嘗試從ADS結構角度優化公鏈性能。
公鏈組件
1. Tendermint Core與Cosmos SDK
CoinEx Chain是 基于Tendermint Core和Cosmos SDK構建的。Tendermint Core項目封裝了P2P網絡通信以及Tendermint共識協議,Cosmos SDK通過模塊化方式提供了應用層開發所依賴的基礎功能,兩個組件之間通過區塊鏈應用層接口(Application BlockchainInterface, ABCI)進行交互。
Tendermint Core處理交 易時,不關心交易的具體內容,而是將交易看做字節數組。應用層根據打包好的區塊,依次解釋執行各個交易并更改狀態信息。
Tendermint共識協議是半同步的拜占庭共識協議,具有簡潔、高效和可追責的特點。共識協議的達成是在已知的驗證者集合內完成的,每個驗證者通過其公鑰進行鑒別。具體的共識過程通過多輪的兩階段(Prevote和Precommit) 投票協議以及相應的鎖定機制完成。每一輪開始時通過Round-Robin的形式選取一個驗證者為區塊提議者(Proposer) ,由該驗證者打包并提議區塊,隨后驗證者就該區塊的合法性進行兩階段投票,如果每個階段都能獲得來自多于2/3的驗證者的投票則該區塊會被提交到鏈上執行。需要執行多輪的可能原因有:被選中的驗證者不在線,提議的區塊不合法,在某個投票階段沒有收集到超過2/3的投票信息等等。為了簡化對不確定因素的處理, Tendermint中每 張投票有兩種用途:確認合法信息和確認無效信息。根據投票信息確認當前區塊或者進入下一輪,避免了PBFT共識算法中復雜的視圖轉化協議。可追責的特性則由公鑰可鑒別驗證者這-約束提供。
由于CAP定理的客觀存在,Tendermint協議在安全性與可用性之間選擇了安全性。也因此Tendermint共識協議有可能會短暫停止直到超過2/3的驗證者達成共識。當系統中的惡意的驗證者小于1/3時,Tendermint提供了永不分叉的保證。安全性優先于可用性以及永不分叉的承諾對于金融應用至關重要。CoinEx Chain在項目 啟動時計劃支持42個節點,根據Tendermint共識協議的實驗數據,在42個節點遍布五大洲的條件下Tendermint能夠達到4000TPS的處理速度,能滿足去中心化交易所的需求。伴隨高TPS的并不是交易確認時間的延長,Tendermint共識機制提供逐區塊最終化的特性,能夠在秒級完成交易確認。
2. Proof-of- Stake
Tendermint協議假設了驗證者集合的存在,在每一輪的兩階段投票協議中以帶權重的Round-Robin的形式選取當前輪的區塊提議者。CoinEx Chain采用Proof-of-Stake機制, 生態中任何實體都可以通過抵押CET代幣的形式參與驗證者的競選。驗證者集合不是固定不變的,生態參與方可以發送交易來增減自己抵押的代幣數量。通過跟蹤這一變化并根據更新后的抵押代幣的數量狀態生成新的驗證者集合。
抵押與懲罰機制的引入能夠規避PoS機制所面臨的Nothing At-Stake的問題。 PoS機制面臨的另-個重要挑戰是長程攻擊的問題, 問題的根源在于PoS鏈中創建新的區塊只需要足夠的投票而不是像PoW機制中那樣需要耗費大量資源。當攻擊者設法獲得的某-歷史時刻的驗證者的私鑰數量超過2/3時,就可以從那個歷史時刻進行分叉,導致新設立的節點或者長時間離線的節點無從判斷哪條鏈是真正的主鏈。CoinEx Chain沿襲Cosmos Hub中的策略,通過三種措施抵御長程攻擊:
1) 解綁周期(Unbounding Period) :驗證者取回抵押的代幣時,需要經過一個解綁周期才能取回自己的代幣,當前的解綁周期為3周時間;
2) 弱主觀性(Weak Subjective) [21]: 新節點第- -次連接網絡時或者節點長時間下線后再次上線時需要通過可信節點驗證近期的區塊哈希值,CoinEx Chain基金會將提供可信節點服務;
3) 按時上線同步驗證者集合:在一個解綁周期的時長內節點需要同步驗證者集合的更新。
這三種策略都在某種程度上緩解了長程攻擊的問題,但無法從根本上解決長程攻擊。可驗證延遲函數(Verifiable Delay Function, VDF) 的提出與研究進展為從根本上解決長程攻擊提供了另外-種思路。Increment VDF概念的提出與研究進展為抵御長程攻擊提供了新的工具。CoinEx Chain團隊會持續關注VDF研究領域的進展,并利用前沿進展提升PoS機制安全性。
驗證者是維護公鏈狀態一致性的關鍵角色,而運行全節點也需要付出成本,因此CoinEx Chain會對驗證者進行獎勵,獎勵包含兩部分: 新的區塊獎勵以及區塊中包含的交易手續費。區塊鏈項目中新的區塊獎勵通常依靠鑄造新幣來完成:基于PoW機制的比特幣通過挖礦鑄幣而基FPoS機制的Cosmos Hub中則依靠 通脹鑄幣。通過鑄造新幣的方式會與此前承諾的CET永不通脹的理念相違背。CoinEx Chain的應對策略是從預留的代幣中拿出-部分進行區塊獎勵,此外承諾的關于CET的回收機制依然會如期進行。驗證者的惡意行為或者驗證者沒有能力保證驗證節點的穩定性,都會影響公鏈狀態的穩定性,此類情形下CoinExChain會對相應驗證者進行懲罰。對于驗證者在同一個區塊高度對兩個不同區塊進行投票等直接違反共識協議安全性的行為,會扣除驗證者抵押的代幣中可觀的一部分比例作為懲罰,同時驗證者將被永久性地剔除出驗證者隊列;對于無法維持驗證節點可靠性的行為,會扣除驗證者抵押的代幣中的一小部分作為懲罰警示,并被禁止在-段時間內參與驗證。同時被扣除的代幣將會被系統統一回收用于將來的社區激勵等事項。
賬戶與交易
CoinEx Chain是基于賬戶模型的,每個賬戶原生支持多幣種,也因此CoinEx Chain原生支持多幣種的轉賬。為了防止鏈上出現大量的僵P賬戶消耗鏈上資源,CoinEx Chain要求每個賬戶被激活之后才可以使用,具體的激活方法是向新賬戶發起CET轉賬交易,并從新賬戶的應收CET中扣除1個CET作為賬戶激活的功能費。每個交易可以包含多個消息,每個消息可以完成不同的操作,比如轉賬、獎勵提取等操作。對賬戶權限的鑒定通過交易的簽名驗證來進行。簽名算法是基于secp256k1曲線的ECDSA算法。CoinEx Chain支持多簽交易,目前的多簽交易采用了與Bitcoin中多簽類似的方式,也即把多個簽名和公鑰信息包含在交易內。這種方式容易實現,但也有存儲計算等資源的占用和消耗問題。CoinEx Chain會針對每筆交易收取交易手續費,并且只有CET可以作為交易手續費。交易手續費包含兩個部分:通常意義上的Gas費用以及功能費。Gas費根據交易的字節數、所需驗證的簽名個數以及對存儲的讀寫次數和字節數等進行計費,功能費則是對某些特定的操作收取額外的費用。需要繳納功能費的操作有: DEX公鏈中創建新幣和創建新交易對的交易,激活新賬戶的交易以及帶鎖定功能的轉賬交易。另外會根據被撮合交易中的交易金額按比例收取傭金,這部分也歸入功能費。
CoinEx Chain計劃改進多簽交易的構造方式,通過采用聚合簽名算法可以對多個簽名值/公鑰進行壓縮。這種方式能夠節省鏈上存儲空間,減少需要驗證的簽名的數量。對于n-of-n的多簽交易能夠提升多簽交易的隱私屬性,因為聚合的公鑰和簽名信息能夠隱藏多簽交易涉及到的實體。在支持腳本系統的區塊鏈上,借助Merkle證明對于m-of-n的多簽交易可以達到同樣的隱私保護效果。然而如何在沒有腳本系統的條件下,達到相同的效果仍需進一步調研。聚合簽名算法所面臨的最大挑戰是在RoguePublicKey攻擊存在的前提下在Plain Public Key Model下保證安全性。Rogue Public Key利用了這一事實,允許攻擊者在其他參與方不知情的情況下炮制出合法的聚合簽名。通常的應對方案有兩種,要求參與方證明自己確實有相應的私鑰(KOSK, Knowledge of Secret Key)或者要求在待簽名消息前面級聯參與方的公鑰。要求KOSK證明在實際中難以操作而級聯公鑰的做法會部分抵消聚合簽名機制的效率提升效果。Plain Public Key Model下參 與者無需證明自己持有所宣稱的公鑰對應的私鑰。Blockstream研究 人員設計的MuSig多簽機制與基于雙線性對的BLS簽名機制能夠滿足安全要求并且沒有前述兩種方法的弊端。
基于Schnorr簽名構建的MuSig簽名方案可以在Plain Public Key Model下安全地壓縮公鑰和簽名值,并且驗證簽名過程等同于普通的Schnorr簽名驗證。Bitcoin Cash網絡已經激活了Schnorr簽名機制,為后續部署MuSig方案鋪平了道路。Bitcoin網絡中則圍繞Schnorr簽名和MuSig簽名機制準備了-攬子升級計劃。MuSig簽 名機制的優點在于可以基于secp256k1進行構建,而目前的Cosmos SDK已經支持secp256k1曲線。Boneh等人在2018年構建了在Plain Public Key Model安全的BLS聚合簽名算法[15],同樣可以用于多簽交易的改進。為了支持BLS聚合簽名算法,要求重構錢包體系, 這是對現有系統的深層改動。從secp256k1的私 鑰切換到某個雙線性對友好的橢圓曲線上的私鑰(例如Zcash團隊構建的BLS128-381曲線),需要同時修改分層確定性錢包的實現。因此,基于MuSig機制改進多簽交易目前看來是更兼容當前系統的方式。
Blockstream研究人員設計的MuSig多簽機制與基于雙線性對的BLS簽名機制理想的情況是可以對一個塊中所有交易的簽名進行壓縮,壓縮之后區塊中僅有一個簽名值待驗證。這需要聚合簽名算法能夠把不同私鑰對不同消息的簽名值聚合起來。這種情況下,礦工在打包區塊時可以聚合所有待包含交易的簽名。MuSig無法對不同的消息進行聚合,雖然論文中提到可以通過修正的交互聚合簽名(Fixed Interactive Aggregate Signature)機制實現對不同消息的簽名聚合,但是尚沒有嚴謹的安全性證明。論文在更強的安全性假設基礎上構建的聚合多簽機制(Aggregate Multisignature Scheme, AMSP)可以用來聚合不同交易的簽名以進一步節省鏈上的存儲空間。在更強的安全性假設之外,如何在區塊鏈場景下安全地部署這-機制也需要進一步探索。
區塊鏈
Tendermint共識協議不分叉和逐塊最終化的特性簡化了區塊鏈結構的設計,只需要用哈希指針一次串聯起各個區塊,無需像比特幣--樣考慮區塊的回滾也不需要像Ethereum中考慮對叔塊的連接,每個區塊也由區塊頭和區塊體兩部分構成。區塊頭中包含區塊高度,時間戳,區塊中交易個數,累積的交易個數,指向上一個區塊的哈希指針,本區塊的提案者,包含的證據列表的Merkle樹根,包含的交易列表的Merkle樹根,針對上一個區塊的投票列表的Merkle樹根,上一個區 塊的驗證者集合的Merkle樹根,上一個區塊所產生的新的驗證者集合的Merkle樹根,上一個區塊執行完成后上層應用內部狀態的Merkle樹根,上一個區塊中交易執行后的結果列表的Merkle樹根以及共識參數的Merkle樹根。區塊體中則包含了具體的交易信息,證據信息以及對上一個區塊的投票信息。
值得注意的是,針對一個區塊的投票信息存儲在下一個區塊中。Tendermint共識協議中的投票本質上是驗證者用自己的私鑰對一個區塊的簽名值,當前采用的是基于Ed25519曲線的EdDSA簽名算法。隨著驗證者集合的增多,這些投票/簽名信息也會占據鏈上可觀的存儲空間而且驗證簽名也需要耗費可觀的計算資源。針對計算資源消耗問題,可以通過EdDSA簽名機制本身支持的批量驗證進行改進。要同時減少簽名值占用的存儲空間和計算資源消耗的問題!則可以借助聚合簽名機制。基于MuSig的聚合簽名機制,在簽名時各個簽名參與方之間需要多輪交互,考慮到驗證者可能遍布全球各地,我們傾向于避免在共識協議必需 的交互之外引入更多的交互需求,也因此基于MuSig的聚合簽名機制不宜作為共識過程中的聚合簽名機制。與交易的聚合簽名不同的是,投票的簽名聚合功能上更為獨立,不受錢包的分層密鑰等其他業務邏輯的牽連,也因此可以考慮全新的簽名機制。這種情況下,更適合采用中提出的聚合BLS簽名機制來改進Tendermint Core項目的投票機制。
為了能夠更好地支持跨鏈和輕客戶端,每個區塊中還包含了上層應用內部狀態的Merkle樹根。Merkle樹屬于 可驗證數據結構(Authenticated Data Structure, ADS) ,為了支持輕客戶端的快速驗證,需要能夠支持存在性證明與不存在證明。而狀態需要逐塊更新的特性也要求ADS數據結構支持增量增加和修改,CoinEx Chain目前采用的是Tendermint Core項目自帶的基于數據結構IAVL+的ADS。
基于IAVL+的ADS與Ethereum的Merkle Patricia Tree (MPT) 相比并沒有顯著優勢。基于Ethereum的經驗可知,。 上層業務的狀態讀寫會被MPT數據結構放大多倍(從根節點出發逐步遍歷到葉子節點的過程需要多次訪問底層的鍵值對數據庫),從而成為潛在的性能瓶頸。ADS數據結構引入的讀寫放大的問題,可以通過更好的工程手段進行緩解,也可以通過設計全新的ADS結構來應對。可能的解決方案是開發-種全新的ADS, 它獨特的樹結構允許中間節點被保存在KV數據庫之外,同時可以在程序異常重啟后方便地從KV數據庫恢復出中間節點,而不必擔心數據一致性的問題。通過把常用的中間節點緩存在內存中,不常見的中間節點保持在磁盤上,確保大多數鍵值對訪問只需要訪問內存中的中間節點,從而大幅度減輕底層KV數據庫的壓力。
私鑰安全
數字貨幣領域的資產的所有權是通過私鑰進行簽名來界定的,創建一筆交易通常需要訪問私鑰,而私鑰的保護-直是個困難問題。數字錢包中私鑰通常是通過keystore文件進行加密存放,加密該私鑰的密鑰通常由用戶口令等通過密鑰派生算法生成。雖然keystore文件僅存儲私鑰的密文,但是創建交易的時候仍然需要將其解密,也即完整的私鑰信息總會暴露在系統中,同時也就有了泄露的風險。也可以采用冷錢包的策略,通過在需要時引入人工協助的方式將系統隔離開,從而降低私鑰泄露的風險。通過離線存儲,冷錢包降低了私鑰被惡意軟件竊取的可能性,是- 種通過管理手段提升安全性的方法。
安全性要求更強的場景通常使用硬件安全模塊(Hardware Security Module)進行密鑰的防護,通過HSM模塊生成私鑰、計算簽名可以保證明文私鑰信息不會存在于HSM模塊之外,從而保證私鑰的安全性。冷錢包方案和HSM方案能夠提升私鑰的安全性,但也帶來了使用的不便。而當涉及到多簽交易或者需要將私鑰的訪問權限分散到多個成員時,要求每一方都使用冷錢包或者HSM提高了使用門檻,也進一步增加了使用的復雜性。另外Ledger的研究人員將在Black Hat 2019 上展示的對HSM的攻擊,也說明HSM自身也存在安全隱患。
多簽交易通過要求多個簽名來保證授權一筆交易,就需要多個私鑰共同配合的方式,攻擊者同時需要多個密鑰信息才能夠轉移資產,作惡的難度加大。另外通過調整m和n的參數,多重簽名機制也提供了一定程度的安全冗余,只要被竊取或者丟失的的密鑰個數小于n-m依然可以構造交易。然而多簽交易的交易費會更高,變更安全策略也不夠靈活,另外所有的簽名值和公鑰會公開在鏈上,導致簽名策略的泄露。
Shamir秘密分享方案可以解決多簽交易的問題。在SSS方案中,資產的管理權僅由一個私鑰控制。資產的轉移與標準交易一樣只需要一個簽名值。然而這個私鑰是由多個參與方控制的,這是通過把私鑰分割成多份并且在多個參與方之間分發這些密鑰分片來做到的。獲得足夠多的密鑰分片后,可以重構出原始的私鑰。與多簽交易類似,也可以選擇m-of-n的SSS方案。m-of-n的SS方 案中需要至少m個密鑰分片才能重構出原始密鑰,而通過m-1或者更少的密鑰分片無法獲得原始密鑰的任何信息。m-of n的SSS方案與m-of-n的多簽方案一樣增強了密鑰安全性并能容忍密鑰(分片)遺失。SSS方案中重構原始密鑰的操作需要由某一方來完成。被選中的一方在完成原始密鑰重構之后會獲得原始密鑰的所有信息。如果采用SSS方案,則必須相信被選中的一方在使用密鑰之后會擦除并且遺忘該密鑰的信息。很不幸,在嘗試將密鑰控制分散化的過程中,再次引入了可信第三方和單點失敗的問題。
來自安全多方計算領域的研究進展帶來的多方閾值ECDSA簽名機制({m,n} thresholdECDSA) 同時具備Shamir秘密分享方案與多簽交易兩種方法的優勢:
1)支持與Shamir秘密分享方案類似的密鑰分割,但是在簽名時無需重構原始密鑰信息,這也就避免了Shamir秘密分享方案中單點失敗的問題;
2)與多簽交易相比,最終體現在鏈上的相關信息與傳統P2PKH交易相同,只需要一個簽名值,沒有增加交易的體積也無需暴露訪問控制策略,由于此時的交易與普通的交易無法根據鏈上信息來區分,所以也提供了更好的隱私屬性。
CoinEx Chain會在錢包中支持ECDSA的閾值多方簽名機制,作為私鑰保護的增強方案。
DEX
CoinEx DEX公 鏈是基于Tendermint共識協議打造的專門用于去中心化交易的公鏈,在DEX公鏈上,用戶可以收發CET代幣,發行新的代幣并進行增發,燃燒,鎖定,解鎖等操作,以及創建交易對,交易下單,查詢交易歷史,競選成為驗證者節點等。
通過將資產的控制權返還用戶,用戶掌管自己的私鑰,可以避免中心化交易所帶來的單點失敗風險,而CoinEx Chain提供的多 方閾值ECDSA簽名機制能夠進一步增強用戶側的私鑰保護。借助Tendermint共識協議以及精簡的鏈上功能實現秒級出塊速度與瞬時交易確認。通過資產上鏈、鏈上交易、鏈上撮合的策略,實現公平透明的交易體驗。區別于傳統的智能合約發幣,DEX公鏈內置發幣模塊,使發幣更加高效和安全。用戶無需許可即可發布Token (包括但不限于穩定幣),同時可創建該Token相關交易對,省去中心化交易所冗長的審核流程和高昂上幣費用。DEX公鏈上每一步操作都是標準化的,每一步操作消耗的資源都是可預見的,因此DEX公鏈可做到高達每秒數千筆的交易處理速度。
CET通過主網映射的方式發行,CET除了可以作為鏈上交易的手續費之外,還可以作為抵押代幣,CET持有者可參與CoinEx Chain中的staking經濟。另外CET持有者也可進行提案的發起和投票,參與社區治理。
CET主網映射
CoinEx基金會和CoinEx商業生態將協作完成CET的主網映射,CET持有者需要把ERC20CET充值到CoinEx交易所,主網上相應的CET會分發給CoinEx交易所,隨后用戶可在CoinEx交易所提取主網代幣CET,具體流程如下:
1)在主網上線前,交易所只允許充值ERC20CET,不允許提現
2)所有非鎖倉的幣都是用戶存在CoinEx交易所的幣
3)主網在啟動時,會將CoinEx交 易所中的ERC20 CET以及鎖倉的ERC20 CET做主網映射
4)開通主網CET的提現和充值
5)用戶創建CoinEx Chain主網帳戶地址后,可從CoinEx交 易所提現主網CET
6)用戶也可以提現到第三方錢包或者獨立錢包,使用主網CET參與Staking
CET分發
CET主網映射后的分布如下:
CET激勵
如前所述,CoinEx會信守不增發CET的承諾,因此不會采用通脹的方式鑄造新幣。然而區塊激勵對于提高社區參與度至關重要,因此在主網上線后,CoinEx基金會將分配約3.15億個CET,用于激勵初期驗證節點及staking參與者。預留CET激勵發放的總體時長與出塊間隔時間有關,激勵計劃按出塊速度為3s進行估算,每個區塊的具體獎勵金額參見下面的表格:
區塊獎勵之外,每個區塊的收益還包括區塊中交易的手續費。交易手續費包含兩個部分:通常意義上的Gas費用以及功能費。Gas費用是為 了防止對系統資源的惡意濫用,功能費部分主要用來提升鏈上生態的質量,防止惡意使用相關功能,確保用戶體驗。主網啟動時會設置特殊操作的功能費,而后期可以根據主鏈演進情況,通過社區提案的方式對各個特殊操作的功能費進行調整。特殊操作包括:新Token的發行,新交易對上線,鎖定轉賬,新賬戶激活以及交易撮合。
Token發行與交易
在鏈上發行新Token是無需審查的,任何人都可以發行Token,也可以為發行的Token創建新的交易對,與發行新Token一樣 ,創建新交易對也無需審查。為了保證新Token的流通性,為新發行的Token創建的第-個交易對必須是該新Token與CET之間的交易對。為了避免對系統資源的濫用,保證鏈上生態的質量,發行Token和創建新交易對會收取- -定金額的CET作為功能費。Token的Symbol符 號由2-8位字符數字組成,不可以數字開頭。Token的精度為8位(十進制),Token發行最大數量為900億。 Token發行 者即為Token所有者(Owner),所有權可轉移給他人。
發行Token時的可選項有燃燒、增發、凍結地址、凍結幣種,并且這些選項只能在發行Token時指定,發行之后不可更改。如果Token發行時沒有開啟凍結地址和凍結幣種的選項,則該Token的流轉和持有都是自由且不受限制的。
開啟凍結地址選項后, Token Owner可按需凍結部分地址,被凍結地址中的該Token無法轉帳,也不能進行Exchange交易,但不影響地址中的其它Token。開啟凍結幣種選項后,Token Owner可按需對該Token進行凍結,凍結期間該Token的轉賬和Exchange交易被全局禁止。Token全局凍結期間Token Owner可以創建地址白名單,白名單中的地址可發起轉賬交易但不能進行Exchange交易。Token全 局凍結期間,Token Owner對Token的操作不受影響。
鏈上治理
CoinEx Chain的驗證節點初始數量為42個,未達到驗證節點數量上限時,任何人都可以通過發出CreateValidator交易來創建驗證者。網絡驗證節點數量達到上限后,驗證節點按質押的CET數量進行排序,選取質押量最高的42個驗證者。
社區通過先提案、再投票的方式來達成社區治理,驗證者可以替委托人投票,但是委托人也有權對驗證者的投票進行覆蓋重投。
投票時有四種選項:同意,棄權,反對,強烈反對:
· 如果有大于1/3的人投強烈反對票,則提案失敗;
· 如果參與投票的質押代幣沒有達到所有質押代幣的40%,則提案失敗;
· 如果非棄權票中有超過1/2同意票,則提案通過
投票統計相關的比例值,都由參數進行配置,后續會具備通過提案調整參數的能力。
發起提案后,社區需要向相關提案質押10000個CET代幣以防止提案的濫用。提案通過后會退回給原充值帳戶地址。提案因以下情況不通過時,相關的質押金額會被沒收不再退回,沒收的質押金額由系統保留將來用于社區激勵。
· 充值未達到10000個CET,說明社區對此提案不感興趣或不支持
· 如果參與投票的質押代幣沒有達到所有質押代幣的40%,則提案失敗;
· 有大于1/3的人投強烈反對票
交易撮合
同主流的中心化交易所一樣,我們采用基于訂單簿的撮合方式,如下圖所示:
訂單簿包含賣單列表(AskList) 和買單列表(BidList) , 賣單被標記為綠色,買單被標記為紅色。賣單總是希望拉高價格,買單總是希望壓低價格。目前只支持限價單,不支持市價單。如果賣-和買一的價格沒有交叉的話,市場是沒有成交的。
AskList和BidList內部的組織方式是,先按照價格排序,價格更好的單排在最前面,有資格優先成交;而價格相同的訂單,更早被打包上鏈的,即年齡更大的,有資格優先成交。在圖中,價格越低的賣單在AskList中排列得最靠隊列頭(靠下),而價格越高的買單在BidList中排列得最靠隊列頭(靠上)。
當賣一和買一的價格有交 叉的時候,比賣一價格高的買單,以及比買一價格低的賣單,會先按價格后按年齡來排序,逐一成交。圖中紫色方塊所圈出的賣單和買單,都有資格參與排序,最終有可能成交。最終它們是否能全部成交, 還要看它們當中賣的總量和買的總量。
用戶可以通過NewOrder交易提交新的賣單或買單到訂單簿中,也可以隨時撤銷訂單簿中由自己發出的訂單。Good Till Expire (GTE)訂單和Immediate Or Cancel (10C) 訂單在過期后都會自動地從訂單簿中刪除。前者會在預設年齡達到之后的UTC時間午夜零點過期,預設年齡可以通過支付更多的功能費來延長。I0C訂單會在進入訂單簿之后的下一個區塊過期(即只有一次被撮合的機會)。
鏈下撮合,訂單總是逐一被服務器接受的,可以對它們按先來后到排出全序。在鏈上撮合最重要的不同點是,訂單是批量被打包上鏈的,對同一個區塊內部的訂單,無法對它們進行先來后到的排序。為了保證對同一個區塊內部的訂單一視同仁,我們采用“集合競價”的方式:每輪撮合,針對可以成交的所有買單和賣單,計算出一個單一的執行價格。決定執行價格的原則是:
1.使成交量最大化。
2.使剩余量最小化。如果有超過一個的價格都能實現相同的交易量,則選擇剩余量最小化的價格。剩余量是指可接受執行價格的訂單中,殘余下來未成交的數額。
3.市場壓力。如果多個價格都能滿足上述第1步和第2步的要求,那么先確認目前市場對潛在價格的壓力是哪個方向的。如果剩余量是正數,則買方壓力大,選擇更高的價格;如果剩余量是負數,則賣方壓力大,選擇更低的價格。
4.當正的剩余量和負的剩余量同時存在時,以上一次成交時的執行價格為參考價格,選擇距離參考價格最近的價格。
無論是中心化交易所還是去中心化交易所,都需要應對搶先交易的問題。搶先交易是指借助技術優勢或者市場優勢而預先獲知關于交易的信息,提前預測成交價的變動并據此執行對自己有利的交易,這往往會使得市場的其他參與方蒙受損失。例如在中心化交易所場景下,交易所能夠看到更為全局的交易信息,從而在撮合交易之前,根據當前市場情況為自己炮制最優交易策略并優先成交自身交易以牟利。
CoinEx的DEX公鏈在設計上,天然地具有防止搶先交易的特性。首先,基于Tendermint的秒級出塊速度,使得進行搶先交易的時間窗口很小;其次,在P2P網絡中,很難完整了解到究竟哪些訂單會被包括到下一個區塊中;再次,集合競價的價格生成機制,讓搶先的交易和同一個區塊內的其它交易相比,不具有明顯優勢。因此,普通用戶希望通過搶先交易牟利是非常困難的。
作為Validator,有權決定下一個區塊當中新增哪些訂單,它可以通過“審查攻擊”的方式,在區塊中包含自己專門]設計的訂單,而不包含那些同自己的訂單有沖突的訂單,以此來侵占其它交易者的利益。但是,DEX上的所有數據和執行邏輯都是公開的,如果Validator頻繁地對他人的交易進行審查攻擊,同時插入并未經過全網P2P廣播的交易,那么它的行為會很容易地被觀察到。這會損害它的信用,最終導致委托人撤銷對它的支持。
一項可能的改善是,通過“Commit- Reveal”機制,允許用戶選擇性地讓訂單的內容延遲揭示(例如延后2~3個塊),這樣當驗證者打包下一個區塊的時候無法看到當前交易系統所有的狀態,也使得想要構造能夠獲利的搶先交易更為困難。CoinEx團隊 會持續深入研究搶先交易問題,并在后續提供更為完善的解決方案。
總結
CoinEx Chain致力于打造下一代區塊鏈金融基礎設施,是為支持可編程現金而打造的一系列公鏈項目,目前的規劃中包含三條特定應用方向的公鏈:
1)支持去中心化交易功能的DEX公鏈;
2)支持智能合約功能的Smart公鏈;
3)支持鏈上隱私保護功能的Privacy公鏈。
三條公鏈之間通過IBC鏈間通信協議進行互聯互通,各司其職又相互配合提供完備的功能。
DEX公鏈通過資產上鏈、鏈上交易和鏈上撮合等功能,解決目前中心化交易所被廣泛詬病的安全性差、不透明等問題。通過將資產控制權歸還用戶、基于訂單簿的公平的鏈上撮合算法、無需許可的上幣以及創建交易對的功能,DEX公鏈旨在構建透明、安全、無許可的自由金融平臺。底層的Tendermint共識提供的高TPS以及秒級交易確認的特性,能夠在最大程度上還原中心化交易所的體驗。
為了最大限度地提高交易處理性能,DEX公鏈選擇僅實現必要的功能。然而,功能更為豐富的金融應用依賴功能完備的智能合約,而鏈上隱私保護也日益成為安全焦點。因此,在DEX公鏈之外,CoinEx團隊還將打造-條支持智能合約功能的Smart公鏈以及支持鏈上隱私保護功能的Privacy公鏈: Smart公鏈為CoinEx Chain生 態提供智能合約支持,為構建復雜的金融應用提供平臺; Privacy公鏈 基于最新的密碼學進展,例如Zether協議在賬戶 模型下提供交易金額、發起方以及接收方的信息隱藏。
DEX公鏈、Smart公鏈以及Privacy公鏈不是相互隔離的孤島,通過基于中繼的跨鏈通信解決方案實現互聯互通,功能互補。需要參與復雜金融合約的CET代幣可以通過DEX公鏈轉移到Smart公鏈,并在結束之后再轉回DEX公鏈。而需要參與代幣混淆的CET代幣也可以通過Privacy公鏈的隱私交易進行,并可以最終再返回DEX公鏈。這樣三條公鏈各司其職,在保證各自的交易處理速度和功能屬性之外,也可以聯合提供更為豐富更為安全的功能。在將來,CoinEx團隊也會根據社區需求繼續打造特定應用的公鏈以進一步豐富CET的生態體系。
CoinEx團隊同時會對現有的技術基礎設施進行優化,這包括嘗試利用增量VDF機制改進基于PoS機制的公鏈的安全性,利用MuSig方案來改進多簽交易,減少鏈上空間占用并增強多簽及交易的隱私屬性。利用聚合BLS簽名方案改進Tendermint共識協議的投票過程,減少投票信息所占用的鏈上存儲空間。另外,CoinEx團隊會通過閾值多方ECDSA簽名機制為用戶的私鑰保護提供更理想的解決方案。
評論
查看更多