YOUChain 節點的設計理念和安全性探討

網絡與節點

區塊鏈網絡,本質是一個分佈式系統,系統中的節點根據某一個約定的規則,完成狀態的遷移。

網絡中的節點的角色、數量、在線情況、是否誠實認真工作等,定義了這個區塊鏈網絡的性質,也關係着系統的安全。

共識與考量

上文提到網絡中的節點遵循的某一個約定,就是所謂的共識協議,簡單的講就是決定哪下一個區塊的規則。在節點的維度考慮問題,那就是哪些節點的哪些考量標準,決定了下一個區塊。

在區塊鏈世界裏面,主要考量標準有所謂的PoWPoS。分別是以「計算能力」和「持幣數量」爲考量標準。

大家可能會問了,爲什麼主要是這兩種考量標準,爲什麼不是別的呢?

原因很簡單——這是兩種最容易量化的標準,且易於抵抗攻擊。其他的,例如 reputation(聲望度)honesty(誠實度) 這類標準,都無法簡單準確的量化。那存儲空間、帶寬能不能成爲量化標準呢?答案是可以的,但是具體實施起來,有一定的難度。

現有公鏈的問題

BTC 創建者中本聰期望通過 PoW 實現 one-CPU-one-vote。早期,普通的家庭電腦也可以成功搶奪到出塊權,確實滿足了這個願景。後來因爲算力競爭,挖礦設備進化到了專業的 ASIC 礦機和礦機聯合體——礦池。ETH 一開始就考慮到了礦池壟斷的問題,它設計的Etash算法,是依賴內存的,所以 ASIC 礦機的優勢沒有那麼大,但是礦池還是形成了。

BTC/ETH 讓人詬病的 POW 挖礦機制帶來能源消耗,吞吐量低等問題,也使得兩者使用費用高昂。

EOS 模擬了美國的選舉人制度。本質是倡導大戶集中,鼓動社羣投票,超級節點競爭。開發者期望用超級節點競爭的方式,實現去中心化。主要開發者BM甚至聲稱,這類超級節點的去中心化程度,比 BTC 的礦池壟斷的模式要高。一直以來,RAM (內存資源)被當做投機標的,使得開發者成本飛漲。有相關計算表明,支撐一個 DAU 1W 的 DAPP,需要近 200W 美金的年費用。

可以看出,這三大代表性公鏈,去中心化程度堪憂,同時使用成本也較高,無法承載商大規模商業應用。

YOUChain 的願景

YOUChain 願景是打造可承載大規模商業應用的去中心化公鏈。要承載大規模商業應用,性能和資費是關鍵;要實現去中心化,節點角色、職責和數量是關鍵。

  1. 低性能,速度慢,難以擴展,不是我們想要的
  2. 權利高度集中,不是我們想要的
  3. 使用費用高昂,不是我們想要的

要實現高性能,需要考慮制約區塊鏈的三個基本物理條件:計算、存儲、網絡。共識協議和網絡結構需要極度的優化。

某種程度上,我們是中本聰的信徒,相信去中心化的願景。因此,我們認爲,以某種方式實現中本聰的 one-CPU-one-vote的初衷,是實現去中心化的一種方式。

思考性能

回顧已經上線的公鏈,包括 BTC/ETH 和 EOS,我們可以觀察到一個現象:一個共識的達成,需要涉及到的節點越多,其性能就越差。前者涉及到了全網所有節點競爭挖礦,性能較差;後者只涉及到了少數的超級節點的輪流出塊,性能較好。

怎麼做到去中心化和擴展性兼得呢?其中一個答案是爲系統引入隨機。Algorand 是我們十分推崇的項目,它爲行業帶來了新的思路,我們也深入研究了它的技術原理和實現。

思考 one-CPU-one-vote

考慮到設備和節點,我們很自然想到了幾乎每個人都會擁有的移動設備(手機)。如果這些設備都能成爲網絡的節點,並參與工作。那豈不是真正的實現了去中心化?

爲什麼移動設備,都被已有的公鏈排除在了節點範疇之外呢?一個直覺印象是,他們的計算、存儲、網絡性能都不夠,穩定性也不夠。

當我們深入去研究的時候發現,最新的移動設備(驍龍845/麒麟980及以上)的計算能力,不亞於普通的雲主機;主流存儲能力也達到了數百 GB;網絡性能隨着 5G 的普及和千兆光纖入戶的進展,不遜機房環境。

思考費用

考慮到能源消耗和運營節點成本,我們選用基於 PoS 的共識機制。

那麼使用公鏈的費用,主要是與運營節點主要包含兩部分成本相關:基礎設施成本_和_抵押物的機會成本

基礎設施成本:機器購置與折舊、帶寬、託管費用、防禦攻擊費用等。

抵押物的機會成本:因抵押而無法自由買賣產生的機會成本(幣漲了或者跌了但是幣被鎖)。

我們認爲,隨着物理條件的演進,當條件具備的時候,不再需要專業的礦機和託管條件,海量的移動設備,都可以成爲網絡的節點,使用成本自然就降低了。

思考可擴展性

從 YOUChain 創始之初,我們在公鏈設計中,就預留了使用安全分片技術進行橫向擴展的技術路徑。

同時,爲了滿足高 TPS 下的海量存儲需求,我們設計了存儲壓縮和根據 merkle root 證明的機制使得移動節點可以快速接入網絡和持續參與共識。

YOUChain 共識「YPOS」

爲了兼具高性能與去中心化。YOUChain 設計了一個基於 PoS 和 VRF 自抽籤的快速 BFT 共識協議:YPOS。

共識流程,主要分爲兩個階段:提議和投票。

  1. 在較大的候選集合中,通過 VRF 自抽籤機制,選取少量(如數十)的區塊提議節點,後者將提出候選區塊及其哈希。

  2. 在較大的候選集合中,通過 VRF 自抽籤機制,選取一定量(如數百到數千)的投票節點,爲前一步提議的區塊哈希按照某一種規則進行投票。

其中第二步,屬於傳統的 BFT 共識的流程,核心是消息複雜度和延遲。我們做了大量的工作,使得我們的 BFT 算法實現了線性的通訊複雜度,可以在大型區塊鏈網絡中運行,並做到秒級收斂。

在節點的去中心化問題上,我們認爲移動節點是未來方向。因此,我們做了大量的的工作,實現了家庭網絡和移動網絡的穩定傳輸和有效穿透。同時我們將節點輸出成 SDK,植入到生態夥伴的 APP,使得搭載 APP 的移動設備,成爲網絡的節點,這樣我們的候選集合就有了海量的節點。

YOUChain 節點設計

安全性是區塊鏈的基礎。沒有了這個,擴展性和去中心化都免談。區塊鏈最常見的攻擊,是女巫攻擊,大部分都是爲了實現雙花。

在對抗女巫攻擊上,基於 PoWPoS 系統都有成熟的經驗。前者不表,後者主要是出塊概率權重或者驗證投票權重與抵押佔比成正比。

一個現實問題是,對於移動節點,我們既無法要求他們有足夠多的抵押,但又要捍衛它們的投票權。

如果完全按照抵押佔比成正比的投票權中,移動節點的願景將因失去激勵而形同虛設;如果按照一設備一票,我們又難以抵禦女巫攻擊(因爲節點很容易僞造)。

爲了實現我們的遠景和目標,我們設計瞭如下的節點結構。

節點類型

系統中包含兩大類節點。

  1. 參議節點(senate-node):部署在數據中心的服務器,擁有較強的計算、存儲、網絡性能,類似於網絡骨幹節點,前期有一定的准入。

  2. 衆議節點(mass-node):部署在家庭網絡或者移動網絡下的各類設備,無准入。

以上兩類節點,均需要參與 token 抵押。我們爲抵押設置一個最低准入門檻,選取抵押排名前若干位的賬戶作爲候選集合,依照節點抵押的 token 數量在候選集合的佔比分配抽籤權重。

節點選取方式

在這裏插入圖片描述

參議節點參數「待定」

在這裏插入圖片描述

衆議節點參數「待定」

在這裏插入圖片描述

兩類節點對比

類型 准入 競爭 職責 抽籤權重 收益攤分方式 量級
參議節點 逐步放開 有競爭 存儲、轉發、提議、投票 股權佔比 股權佔比 大量
衆議節點 有競爭 區塊投票 股權佔比 組內均分 海量

我們既要保護網絡的安全和性能,又要鼓勵衆議節點積極爲網絡做出貢獻,因此,我們設計了兩類投票主體。

YPOS 區塊敲定

  1. 區塊提議者,從參議節點集合中(性能考慮)選舉,提出區塊和哈希。
  2. 區塊驗證者,從參議節點集合和衆議節點集合中分別選舉,分別對提議的區塊進行驗證和投票,hash 較小的優先級高。
  3. 滿足法定票數的區塊,則爲敲定的下一個區塊

定義如下:

在這裏插入圖片描述

網絡安全

參議節點與衆議節點集合,均按照抵押佔比分配抽籤概率,可以抵禦女巫攻擊。

官方持有一定量的 token,承諾永不拋售,但在網絡早期,可用於網絡安全性維護。

官方可以在必要時,可使得維護網絡穩定的 token 數量佔據足夠的份額,以確保網絡的 security 和 liveness。

鏈上將會設計針對各類不當行爲的懲罰措施,使得各類節點有經濟上的動力去誠實工作。

網絡演進

YOUChain 開發者承諾,當衆議節點的數量和質量,達到一定程度,將會推動主網持續升級。

  • 通過安全分片技術提高可擴展性
  • 逐步調整衆議節點的選取參數,實現「人人可參與」
  • 區塊提議節點逐步過渡到從衆議節點中選取
  • 逐步降低參議節點集合法定票數 QsQsQs 的要求
  • 參議節點的功能將演進爲:存儲、轉發

總結

上文主要從區塊鏈網絡及其節點的本質出發,闡述了現有公鏈的去中心化和使用成本等問題,進而介紹了 YOUChain 的願景和節點設計,最後給出了安全考量和演進策略。主旨是爲了闡明設計的思考,引起討論。

筆者閱歷和學識有限,以上設計可能存在巨大漏洞或者謬誤,具體的實施方案,也可能存在不確定性,請讀者不吝指出。作者微信 freeface,有興趣可添加討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章