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