HNB(HashNet BitEco)基於區塊鏈的下一代去中心化經濟體

買賣虛擬貨幣
HNB 是下一代基於區塊鏈的去中心化經濟體,旨在建立服務實體經濟體的可持續發展的經濟模型。從技術層面來講,HNB 是一個支援具有多側鏈架構且支援多數字資產流通的區塊鏈技術體系,用於建立基於公有區塊鏈的去中心化經濟生態。基於 HNB 的業務理念和發展規劃,我們對市場上現有的區塊鏈專案和技術進行了分析和梳理,ᨀ出了實現 HNB 區塊鏈經濟模型的技術方案。本文詳細闡述了 HNB 公有區塊鏈的設計原則,整體技術架構,以及核心技術的實現方法。本文主要描述的核心技術包括身份管理,共識機制,資料儲存,多資產賬本,交易管理,智慧合約,節點管理,網路通訊和密碼學演算法等。同時結合實體經濟應用,技術白皮書還介紹了 HNB 的去中心化應用 DApp 體系、應用場景例如演算法銀行等的方面的內容。設計原則HNB 被設計用於建立服務實體經濟體的可持續發展的經濟模型。HNB 為下一代基於區塊鏈的去中心化經濟體打造,目標為上億消費者和商家的生態圈ᨀ供服務,其經濟規模和社羣成員會隨著生態圈的擴大而不斷壯大。因此,HNB 區塊鏈的設計原則為:可擴充套件性 Scalability•可支撐HNB社羣的持續增長, 包括區塊鏈底層節點數的增長、更多商戶的接入、使用者數增加等
高效能High Performance•支援數百萬使用者和併發事務,可支援大併發交易峰值的處理,降低交易確認延時,秒級共識效率安全性 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 根據出塊總數負相關。(是否獎勵衰減)

關於更多HNB資訊:https://hnb.eco/

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;