HNB 是下一代基于區塊鏈的去中心化經濟體,旨在建立服務實體經濟體的可持續發展的經濟模型。從技術層面來講,HNB 是一個支持具有多側鏈架構且支持多數字資產流通的區塊鏈技術體系,用于建立基于公有區塊鏈的去中心化經濟生態。基于 HNB 的業務理念和發展規劃,我們對市場上現有的區塊鏈項目和技術進行了分析和梳理,?出了實現 HNB 區塊鏈經濟模型的技術方案。
本文詳細闡述了 HNB 公有區塊鏈的設計原則,整體技術架構,以及核心技術的實現方法。本文主要描述的核心技術包括身份管理,共識機制,數據存儲,多資產賬本,交易管理,智能合約,節點管理,網絡通信和密碼學算法等。同時結合實體經濟應用,技術白皮書還介紹了 HNB 的去中心化應用 DApp 體系、應用場景例如算法銀行等的方面的內容。
設計原則
HNB 被設計用于建立服務實體經濟體的可持續發展的經濟模型。HNB 為下一代基于區塊鏈的去中心化經濟體打造,目標為上億消費者和商家的生態圈?供服務,其經濟規模和社區成員會隨著生態圈的擴大而不斷壯大。因此,HNB 區塊鏈的設計原則為:
可擴展性 Scalability
?可支撐HNB社區的持續增長, 包括區塊鏈底層節點數的增長、更多商戶的接入、用戶數增加等
?支持數百萬用戶和并發事務,可支持大并發交易峰值的處理,降低交易確認延時,秒級共識效率
安全性 Security
?在應用和基礎設施級別的強安全性,保護商業數據和個人數據的隱私性
互操作性 Interoperability
?支持與現有系統的快速集成和持續開發,便于與其他區塊鏈系統和應用系統對接
綜合上述應用場景的考慮,我們設計 HNB 區塊鏈具備以下的特性:
? 創新的共識機制,可支持多節點快速共識
? 雙鏈雙數字資產:HNB 和 HGS; HGS 與法幣錨定的調控機制;
? 算法銀行調控匯率穩定
? 健壯有機的 DApp 集和靈活的輕量級 SDK 支持商戶應用對接集成
? 支持智能合約和支持多側鏈模式
? 高性能和高可擴展:支持。鏈外極速網絡等技術
? 強大的安全性和加密處理能力
整體技術架構
1. HNB 生態技術架構
HNB 生態技術架構遵循層次化、模塊化的設計理念,強調框架的可擴展性、可交互性、性能和安全性。HNB 生態技術架構是包含底層區塊鏈模塊以及其相關的外圍生態組件的集合體,是基于用戶層、HNB 業務服務層、區塊鏈核心層、基礎組件層和通用服務層的結構化設計。
用戶層
用戶層是終端用戶的接入點。用戶通過用戶層訪問 HNB 區塊鏈服務。從技術角度來看,HNB 終端用戶服務的特性由后續章節的去中心化應用DApp 服務支持,包含數字錢包、數字資產管理等功能。
HNB 業務服務層
HNB 業務服務層實現了 HNB 去中心化經濟社區的所有核心業務邏輯。從技術角度來看,HNB 的 DApp 去中心化應用為該層提供服務支持。
區塊鏈核心層
區塊鏈核心層,即 HNB 區塊鏈底層,具備共識機制、賬本管理、多資產管理、資產交易管理、智能合約等區塊鏈核心功能。
基礎組件層
主要為區塊鏈核心層?供分布式基礎組件,包括:分布式數據庫、分布式存儲、分布式網絡。其中,數據庫和存儲服務支持可插拔,為社區參與者?供了更多的選擇空間和更廣泛的業務支撐能力。
通用服務層
通用服務層為上述四層的模塊?供服務,包括:安全、審計、運維等功能。
2. HNB 底層鏈技術體系
HNB 底層區塊鏈技術體系,是針對生態技術架構的區塊鏈核心層、基礎組件層和通用服務層的進一步細化設計。
HNB 區塊鏈技術體系同樣采用層次化和模塊化的設計思想,分為合約層、共識層、激勵層、數據層、網絡層、安全層、基礎層的七層架構。
合約層
合約層即智能合約服務層,為智能合約的生命周期管理、運行成本管理、運行環境、形式化證明邏輯提供服務。HNB 的智能合約支持采用 golang、JavaScript 等高級語言編寫,滿足圖靈完備的特性,其成熟的運行環境保障合約運行的安全可靠。
共識層
共識層,采用 DPoS 與 Algorand 結合的混合共識算法,鼓勵 HNB 社區內貢獻多的節點參與記賬,同時基于加密抽簽保證共識提案人的公平選舉,最終以 bft 共識算法保證共識的高效和一致。
激勵層
激勵層,基于 HNB 生態中算法銀行的設計,公開、透明、統一的管理激勵策略,對社區內貢獻度較高的節點,進行激勵 HGS 數字資產。
數據層
數據層,作為 HNB 基礎設施層中分布式數據庫和分布式存儲模塊的細化,在區塊鏈底層技術架構中體現出來。主要為區塊鏈的分布式數據庫、分布式文件存儲?供基礎存儲服務,同時支持 HNB 雙資產賬本管理。
網絡層
網絡層,作為區塊鏈底層的網絡通信基礎模塊,主要包含:區塊鏈底層對應用層提供的訪問接口、區塊鏈節點間 P2P 組網、區塊鏈節點間廣播數據的用途。
安全層
安全層,從通信安全、數據安全、合約安全、密碼安全的維度分析 HNB 對高安全區塊鏈底層的方案設計。
基礎層
基礎層,為區塊鏈底層?供通用的基礎服務。包含:密碼學算法庫、節點管理、多資產鏈管理、賬戶管理、交易管理、事件管理等。
身份管理
1. 身份標識
1.1 去中心化身份標識
傳統身份標識是對人本身進行識別,識別方式有:身份證、戶口簿、駕照等。隨著技術發展,指紋、DNA 等新興身份識別方法逐步應用。在互聯網世界中,所有事物非實體存在,需要網絡標識來映射與管理實體身份。
HNB-ID 是根據用戶的 HNB 公鑰進行數學算法計算得到。HNB-ID 不需要通過中心化系統計算生成,也無需通過中心化系統進行沖突檢測,由用戶自身生成與管理。
1.2 隱私保護
HNB-ID 生成算法決定根據 ID 無法推導公鑰信息,根據公鑰信息也無法與用戶其他身份屬性信息進行關聯。真正意義的做到了保護用戶隱私。
1.3 自證身份
HNB-ID 與用戶公鑰具有一一映射關系,用戶可通過身份驗證算法證明該 HNB-ID 屬于某線下實體,以便進行其他商業活動。
2. 身份注冊
HNB 支持可配置的節點準入機制,加入 HNB 生態需要進行節點授權。該授權需要由 HNB證書授權中心 CA(Certificate Authority )中心頒發證書,表示允許某 HNB-ID 加入到 HNB 生態。與 HNB-ID 關聯的屬性信息將不會被發送至 HNB 公鏈底層。節點啟動、網絡組建時,將帶有 CA頒發的證書信息發送至其他節點,表明被授權身份。
3. 信任模型
3.1 密鑰生成安全
密鑰生成過程在離線錢包中進行,用戶私鑰不能以任何形式在網絡上傳輸,保證攻擊者無法盜取用戶密鑰,杜絕盜取 HNB 的可能。
3.2 密鑰托管安全
根據用戶需求,HNB 支持密鑰托管服務。用戶可將密鑰交給分布式私鑰服務器進行管理,密鑰存儲過程使用對稱加密,加密密鑰由用戶以其他形態進行管理。即使私鑰服務器被攻破,攻擊者無法還原用戶私鑰。
3.3 身份注冊安全
用戶進行身份注冊過程中,用戶將實體屬性信息與 HNB-ID 進行綁定,并發送至證書授權中心 CA 中心,CA 中心驗證實體身份后頒發證書。HNB 系統對用戶實體屬性信息進行非對稱算法加密,中間人無法解析交易報文并獲取關聯信息,從而在最大程度上保護用戶隱私。
如下圖所示,Alice 身份注冊時,需要將實體信息與用戶公鑰信息進行打包,使用證書授權中心 CA (Certificate Authority )的公鑰對信息數據進行加密,保證傳輸安全。同時使用 HTTPS協議進行安全通信,這樣使用了雙重加密機制來保護數據安全和用戶隱私。
共識機制
對于任何一個去中心化自治系統,其共識機制往往是社區信任建立的根基。共識是用來來描述了整個區塊鏈系統中多個節點之間,對某個狀態達成一致結果的過程。要保障系統滿足不同程度的一致性,往往需要共識算法來達成。有效的共識算法解決的是對某個提案達成一致意見的過程,這里的提案可以指任何能達成一致的信息,無論是基礎的區塊產生和校驗還是社區運行的規則。
1. 區塊鏈不可能三角
CAP 定律(一致性 Consistency,可用性 Availability,分區容錯性 Partition Tolerance Theorem)是指在一個分布式計算機系統中,一致性,可用性和分區容錯性這三種特性,無法保證同時得到滿足,最多同時滿足其中的兩個特性;系統設計者需要根據不同的需求進行取舍。
在區塊鏈共識算法設計上,我們把焦點集中在了 SDE(安全 Security, 去中心化Decentralization, 和效率 Efficiency) 三大核心特性上。 安全,去中心化和效率構成一個不可能三角形,三者不能同時滿足。如果我們設計一個安全的去中心化系統,它必然是以犧牲效率,以付出能源與計算力為代價(比如比特幣的工作量證明機制)。我們要求設計一個既保證效率又去中心化的密碼學貨幣,它將會是不足夠安全的。
目前的主流的共識機制為 PoW/PoS/DPoS/PBFT,經典的 PoW,滿足安全和去中心化的要求,但是效率非常低下,達成共識的時間很長; PoS 滿足去中心化和效率,但是安全性不足,其確認僅僅為概率上的表達而沒有所謂的“最終確認”,具有遭受攻擊的可能,此外在機制設定上很難避免無利益攻擊(nothing-at-the-stake attack)。DPoS 滿足效率,但是去中心化不足,容易被少數利益集團的節點把持,導致單個節點存在作惡的可能。單純的 PBFT 雖然滿足去中心化和效率,但是當節點數增多時網絡開銷就會變得很大,很難在短時間內得出共識,并不適合大型網絡。
我們分析了 HNB 當前應用場景與經濟模型,效率應當是首先被考慮的,需要支持更大的并發事務和高性能。同時作為一個圍繞支付作為核心的系統,在保證低延遲的前提下,需要避免出現雙花問題,因此安全可靠也是至關重要的。基于上述分析,HNB ?出了 DPoS+Algorand 的算法,通過 DPoS 進行共識組的選舉,然后 Algorand 進行區塊的生成。
基于這樣組合的共識算法,主要的優勢為:
· 利用身份屬性的 Dpos 選出的節點充分考慮了利益分配和公平性,避免了單一群體作惡的情況。
· 共識達成速度較快,且速度不會隨著系統節點增多而降低,能夠支持海量節點。此外利用Dpos 來競選候選節點會比利用 Algorand 來純粹隨機挑選普通用戶更為穩定和相對高性能的配置
· 記賬者完全隨機且隱秘,無法對其產生特定攻擊
· 在保證安全性的前?下不做無意義的運算,節省算力資源
· 單一記賬者出現分叉的概率接近 0,容錯率高
2. HNB 共識算法
2.1 共識算法概要
HNB 底層鏈采用 DPoS + Algorand 共識算法,提議者為從 HNB 社區選出的 99 名委員會成員,被分成 3 組,代表 3 個不同的利益集團,分為:消費者、生產者(或商戶)和貢獻者。DPoS 將從三大利益團體中選舉提議者,并且保證沒有單一利益群體持續獲得提議權。
塊提議流程將使用加密抽簽方法(Verifiable Random Function,簡稱 VRF),隨機選擇提議者,加密抽簽每次根據前塊數據信息選擇提議者,保證提議者選擇的絕對隨機性。攻擊者無法預測、修改下一輪次的提議者,增加系統容錯能力。
BA*流程將使用拜占庭容錯算法在提議者間進行共識,HNB BA*算法利用多輪交互保證最終提議塊在提議者間絕對一致性。BA* 兩輪投票必須票數大于 2/3 才能進入下一流程,保證永遠不會出現共識分區、區塊分叉等問題。
2.2 提議流程
? 具體步驟
1. 廣播自己最新塊的狀態信息,并接收其他節點的狀態信息。
2. 檢查自己是否落后,如果落后則進入同步流程,否則進入步驟 3。
3. 更新配置信息,更新共識節點資產表。
4. 各個節點獨立計算提議者列表。(根據上一個塊的信息和資產表來計算)
5. 如果自己是提議者,去交易池獲取交易構建提議消息。(提議者不止一個)
6. 把提案消息廣播給 BA*共識組。
? 實現說明
抽簽需要一個角色(role)參數來區分用戶可以選擇的不同角色; 例如,用戶可能在某個回合中被選擇提出一個塊,或者在 BA?的某個步驟他們被選擇為委員會的成員。 Algorand 指定了一個閾值τ,用于確定為該角色選擇的用戶的預期數量。
在 VerifySort 算法中顯示了用于驗證抽簽證明的偽代碼,遵循相同的結構以檢查是否選擇了該用戶。 該函數返回所選子用戶的數量,如果用戶沒有被選中,則返回 0。
2.3 同步流程
? 具體步驟
1. 判斷自己是否可以快速同步,可以進入步驟 2,否則進入步驟 3。
2. 遍歷內存中的所有未處理的共識信息。
3. 2.1 根據當前塊號構建提案信息。
4. 2.2 根據當前塊號構建最終提案信息。
5. 2.3 打包塊,并更新狀態。
6. 向其他節點發送塊請求,并等待收到響應塊,驗證塊并落塊。
? 實現說明
2.4 BA*流程
? BA*處理流程簡述
1. 提議者將提議塊發送給參與 BA*的提議者,其中參與 BA*的提議者總數 N = 3f + 1。
2. 對參與 BA*的提議者信息進行 Hash 計算進行降序排序,得到序號 n。
3. 獲取本輪次共識編號 R。
4. 確定本輪次共識發起者編號 curNum = R mod N。
5. 取提議塊 Hash 最小值最為最終提議塊。
6. 共識發起者將最終提議塊的 Hash 廣播至其他參與 BA*的提議者。
7. 參與 BA*的提議者對該提議塊進行預投票,預投票需要包含自身節點編號 n、預投票輪次 R、投票的塊 Hash、validater 投票簽名 S。
8. 參與 BA*的提議者在超時時間內等待接受投票數,對投票報文進行身份識別操作。
9. 收集預投票個數,超過 2/3 進入 preCommit 流程。
10. 參與 BA*的提議者對 preVote 塊進行預提交,預投票需要包含自身節點編號 n、預投票輪次 R、投票的塊 Hash、validater 投票簽名 S。
11. 收集預提交個數,超過 2/3,完成 preCommit 流程。
12. 更新塊高度 H、輪次 R,廣播共識結果。
? 實現說明
為了提高效率,BA?投票表決塊的散列,而不是整個塊的內容。在 BA?算法的最后,使用BlockOfHash()函數來表明,如果 BA?還沒有收到商定散列的前映像,它必須從其他用戶那里獲得。BA?算法還決定是否建立最終的或暫定的共識,其主函數流程如下:
ProcessMsg()不僅返回消息中包含的值,還返回與該值關聯的投票數。如果消息不是來自選定的委員會成員,則 ProcessMsg()返回零票。如果委員會成員多次被選中,ProcessMsg()返回的選票數量也反映了這一點。ProcessMsg()也返回抽簽散列。
Reduction()程序將在任意值上達成一致的問題轉換為在兩個值中的一個上達成一致:或者是特定建議的塊散列,或者是空塊的散列。Turpin 和 Coan 的兩步技術啟發了我們的減少。這種減少對于確保活力非常重要。
3. 共識激勵
虛擬貨幣的生態體系的可持續發展,離不開完善的生態體系模型,也離不開合理優化的共識激勵模型。中本聰創造的新型經濟激勵模型保證比特幣 10 年的長治久安,擁有強大的支持者群體,并因此建立新型的行業生態。可見共識激勵模型在數字貨幣生態發展中占有舉足輕重的作用。
HNB 激勵算法是根據經濟學模型建立,極大程度提高持幣用戶參與生態建設的積極性、維護生態可持續發展。HNB 為每輪共識成功出塊的記賬節點提供 HGS 獎勵,對于 HNB 作惡節點將扣除一定比例 HGS 以示懲戒。
HNB 經濟體的激勵機制遵循以下準則:
1. HNB 根據幣齡與持幣數量計算權重 w,被選為共識組概率與 w 值正相關。
2. 共識成功后,明確本次共識的提議者及參與 BA*的提議者。將 HGS 獎勵數量根據比例發放至本次共識相關成員。
3. HGS 獎勵數量與該塊內交易復雜度總和正相關,存在相關系數 k。
4. HNB 支持分級懲罰,區分節點作惡及節點故障。若提議者發送虛假、錯誤提案,參與BA*的提議者發送異常共識協議判定為節點作惡。若節點共識期間網絡交互無響應判定為節點故障。
5. HGS 獎勵的相關系數 k 根據出塊總數負相關。
評論
查看更多