BTD項(xiàng)目正在開(kāi)創(chuàng)區(qū)塊鏈應(yīng)用真實(shí)落地的新時(shí)代
BTD 項(xiàng)目鑄就全球分布式邊緣云存儲(chǔ)第一鏈,打造一個(gè)分布于全球、貼近網(wǎng)絡(luò)終端用戶進(jìn)行部署和快速響應(yīng)、永不停機(jī)、永不斷電、天然異地容災(zāi)、容量無(wú)限擴(kuò)展、具備自我修復(fù)能力、數(shù)據(jù)私密安全的超級(jí)云存儲(chǔ)和擁有海量數(shù)據(jù)的超級(jí)媒體。
BTD 項(xiàng)目的海量存儲(chǔ)和計(jì)算資源面向技術(shù)合作伙伴開(kāi)放。技術(shù)合作伙伴可基于 BTD 項(xiàng)目開(kāi)發(fā)面向個(gè)人用戶的云盤(pán)服務(wù)、面向企業(yè)用戶的數(shù)據(jù)備份服務(wù)、面向其他應(yīng)用領(lǐng)域的各種存儲(chǔ)和計(jì)算服務(wù)應(yīng)用,利用閑置存儲(chǔ)和計(jì)算資源創(chuàng)造出巨大價(jià)值,領(lǐng)跑于分布式存儲(chǔ)、邊緣云存儲(chǔ)的數(shù)據(jù)存儲(chǔ)時(shí)代,開(kāi)創(chuàng)區(qū)塊鏈應(yīng)用真實(shí)落地的新時(shí)代。
BTD 項(xiàng)目向全球存儲(chǔ)硬件開(kāi)放,用戶可通過(guò)貢獻(xiàn)其存儲(chǔ)空間成為 BTD 節(jié)點(diǎn)。全網(wǎng)節(jié)點(diǎn)協(xié)同工作,形成容量無(wú)限擴(kuò)展、天然異地容災(zāi)、具備自我修復(fù)能力的分布式存儲(chǔ)鏈;而節(jié)點(diǎn)則按照其存儲(chǔ)容量、在線率、網(wǎng)絡(luò)性能、實(shí)際服務(wù)質(zhì)量等綜合貢獻(xiàn)獲得相應(yīng)的 HDT 存儲(chǔ)積分。根據(jù)節(jié)點(diǎn)對(duì)全網(wǎng)穩(wěn)定運(yùn)行所做的當(dāng)日貢獻(xiàn)比例、歷史貢獻(xiàn)比例、未來(lái)發(fā)展貢獻(xiàn)比例的綜合貢獻(xiàn),節(jié)點(diǎn)獲得相應(yīng)的 BTD激勵(lì)積分。HDT 根據(jù) PoCR(可信賴存儲(chǔ)證明)算法產(chǎn)生,是價(jià)值穩(wěn)定和成本低廉的存儲(chǔ)積分,便于鏈上各類 dApp 應(yīng)用為 BTD 項(xiàng)目獲取裂變式海量用戶;BTD 根據(jù) PoS(權(quán)益證明)算法產(chǎn)生,代表了全網(wǎng)的存儲(chǔ)價(jià)值,其總量有限,且一部分 BTD 在運(yùn)行過(guò)程中會(huì)被銷毀,具備天然內(nèi)在的價(jià)值增長(zhǎng)動(dòng)力。
HDT+BTD 立體激勵(lì)體系是全球分布式存儲(chǔ)領(lǐng)域第一個(gè)立體激勵(lì)體系,是存儲(chǔ)鏈上的云盤(pán)應(yīng)用率先落地之后的必然需求,代表了分布式存儲(chǔ)領(lǐng)域的必然趨勢(shì),意義深遠(yuǎn)。BTD 項(xiàng)目預(yù)言所有的分布式存儲(chǔ)項(xiàng)目在其打造的應(yīng)用真正落地后都必將主動(dòng)或被動(dòng)調(diào)整其激勵(lì)體系,從單一激勵(lì)體系調(diào)整為與 BTD 項(xiàng)目類似的“穩(wěn)定積分+激勵(lì)積分”立體激勵(lì)體系。HDT+BTD 所代表的優(yōu)秀激勵(lì)機(jī)制也將極大激發(fā)節(jié)點(diǎn)激情,為 BTD 存儲(chǔ)鏈持續(xù)快速發(fā)展奠定長(zhǎng)期和堅(jiān)實(shí)基礎(chǔ)。
BTD 項(xiàng)目幫助用戶將閑置的存儲(chǔ)空間和計(jì)算資源通過(guò)共享實(shí)現(xiàn)商品化,未來(lái)還可幫助用戶將所存儲(chǔ)的原創(chuàng)數(shù)字內(nèi)容(照片、視頻、文章、直播等)通過(guò)分享實(shí)現(xiàn)價(jià)值化,以區(qū)塊鏈技術(shù)實(shí)現(xiàn)價(jià)值流通,以分布式技術(shù)重構(gòu)云存儲(chǔ)產(chǎn)業(yè)生態(tài)。BTD 項(xiàng)目是面向物聯(lián)網(wǎng)和 5G 時(shí)代數(shù)據(jù)存儲(chǔ)需要的邊緣云存儲(chǔ)基礎(chǔ)設(shè)施,將創(chuàng)造出巨大的經(jīng)濟(jì)價(jià)值和社會(huì)價(jià)值。
BTD節(jié)點(diǎn)
BTD 項(xiàng)目面向全球存儲(chǔ)硬件開(kāi)放,用戶可通過(guò)貢獻(xiàn)其閑置存儲(chǔ)成為節(jié)點(diǎn)。BTD 項(xiàng)目支持非專用和專用的2種類型存儲(chǔ)節(jié)點(diǎn):
1. 非專用存儲(chǔ)節(jié)點(diǎn)
當(dāng)前市場(chǎng)上廣泛存在各類有存儲(chǔ)能力的智能硬件和PC電腦等私人硬件。一般來(lái)說(shuō),私人硬件的存儲(chǔ)能力主要用于自用存儲(chǔ),但有時(shí)也會(huì)有不少存儲(chǔ)空間長(zhǎng)期處于閑置狀態(tài),如果用戶愿意將閑置存儲(chǔ)長(zhǎng)期穩(wěn)定貢獻(xiàn)出來(lái),則用戶的私人硬件也成為了一個(gè)非專用的存儲(chǔ)節(jié)點(diǎn)。
2. 專用的 BTD 存儲(chǔ)節(jié)點(diǎn)
專用的 BTD 存儲(chǔ)節(jié)點(diǎn),其核心功能就是為 BTD 項(xiàng)目提供存儲(chǔ)空間、帶寬資源和計(jì)算資源,不承載其他業(yè)務(wù)。根據(jù)專用節(jié)點(diǎn)所部署位置的不同,BTD 項(xiàng)目專用節(jié)點(diǎn)可以分為家用型和專業(yè)型2大類。
家用型體積相對(duì)較小,噪音相對(duì)較低、適用于普通家庭用戶參與 BTD 網(wǎng)絡(luò)的建設(shè)。
專業(yè)型則一般采取標(biāo)準(zhǔn)機(jī)架式服務(wù)器設(shè)計(jì),更適合放置在小型機(jī)房,尤其是具備較好帶寬資源的區(qū)域,為 BTD 網(wǎng)絡(luò)提供更優(yōu)良的網(wǎng)絡(luò)資源,更適用于專業(yè)用戶參與 BTD 網(wǎng)絡(luò)的建設(shè)。
在 BTD 網(wǎng)絡(luò)的測(cè)試網(wǎng)運(yùn)行期間,已有多個(gè)合作伙伴不同品牌不同型號(hào)的非專用的 BTD 存儲(chǔ)節(jié)點(diǎn)和專業(yè)的 BTD 節(jié)點(diǎn)加入了 BTD 項(xiàng)目,各類 BTD 存儲(chǔ)節(jié)點(diǎn)也已歷經(jīng)多次軟硬件版本迭代,BTD 網(wǎng)絡(luò)已具備了良好的網(wǎng)絡(luò)基礎(chǔ)。
BTD項(xiàng)目的區(qū)塊鏈基本框架
1. 什么是區(qū)塊鏈
區(qū)塊鏈技術(shù)是在多方無(wú)需互信的環(huán)境下,通過(guò)共識(shí)技術(shù)實(shí)現(xiàn)系統(tǒng)中參與方的協(xié)作以達(dá)到對(duì)信息的認(rèn)可與驗(yàn)證。這種協(xié)作是通過(guò)去中心化的方式達(dá)成多節(jié)點(diǎn)共同記錄、維護(hù)、確認(rèn)一個(gè)不可篡改、可靠的數(shù)據(jù)日志。區(qū)塊鏈技術(shù)能夠?qū)崿F(xiàn)無(wú)需單節(jié)點(diǎn)中心服務(wù)器環(huán)境下,用戶對(duì)數(shù)據(jù)的完整控制權(quán)和信任,從而讓數(shù)字時(shí)代的生產(chǎn)關(guān)系更合理、更安全、對(duì)用戶提供更有效的激勵(lì)。
由于每個(gè)區(qū)塊數(shù)據(jù)(Block)都是通過(guò)密碼學(xué)技術(shù)來(lái)生成,并且數(shù)據(jù)塊之間通過(guò)數(shù)據(jù)指紋鏈接(Chain)在一起,所以我們稱這種結(jié)構(gòu)為“區(qū)塊鏈(BlockChain)”;又由于每個(gè)全節(jié)點(diǎn)都擁有所有的交易記錄或數(shù)據(jù)日志總賬,所以我們也稱它為“分布式總賬技術(shù)(Dributed Ledger Technology)”。
區(qū)塊鏈技術(shù)的代表性項(xiàng)目和第一個(gè)成功應(yīng)用就是比特幣(BITCOIN)網(wǎng)絡(luò)。
2. 項(xiàng)目開(kāi)源平臺(tái)
BTD 項(xiàng)目基于開(kāi)源項(xiàng)目平臺(tái) ChainSQL 進(jìn)行開(kāi)發(fā)。ChainSQL 是將區(qū)塊鏈與傳統(tǒng)數(shù)據(jù)庫(kù)相結(jié)合的開(kāi)源區(qū)塊鏈平臺(tái),其核心思想是:把對(duì)數(shù)據(jù)庫(kù)的操作看作一次交易,在底層構(gòu)建一種基于區(qū)塊鏈網(wǎng)絡(luò)的日志式數(shù)據(jù)庫(kù)平臺(tái),從而使得對(duì)數(shù)據(jù)的操作歷史可追溯、不可篡改,從而實(shí)現(xiàn)一個(gè)分布式去中心化的數(shù)據(jù)庫(kù)。
ChainSQL 基于區(qū)塊鏈的四個(gè)主要特性:去中心化(Decentralized)、去信任(Trustless)、集體維護(hù)(Collectively maintain)、可靠數(shù)據(jù)庫(kù)(Reliable Database),建立賬務(wù)系統(tǒng)。系統(tǒng)采用模塊化設(shè)計(jì),對(duì)共識(shí)算法、P2P 通訊協(xié)議、區(qū)塊寫(xiě)入等功能進(jìn)行封裝,各模塊可無(wú)縫對(duì)接。在區(qū)塊鏈中保存共享憑證,執(zhí)行激勵(lì)發(fā)放,通過(guò)區(qū)塊鏈的可回溯、不可篡改的機(jī)制,確保 BTD項(xiàng)目運(yùn)行數(shù)據(jù)的公開(kāi)、透明、公正。
基于 ChianSQL 平臺(tái),BTD 項(xiàng)目在構(gòu)建時(shí)采用以下區(qū)塊鏈底層技術(shù):
2.1 共識(shí)算法
共識(shí)算法采用 RPCA(Ripple Protocol Consensus Algorithm)。
針對(duì)拜占庭將軍問(wèn)題,目前常見(jiàn)的有比特幣與以太坊采用的 POW 算法,HyperLedger 采用的 PBFT 算法。然而,在些這種分布式支付系統(tǒng)中,由于海量節(jié)點(diǎn)間需要同步溝通,導(dǎo)致共識(shí)效率比較低。在 RPCA 算法中,為了降低這種同步溝通的成本,使用了一種子網(wǎng)絡(luò)內(nèi)部互相信任,由這些內(nèi)部信任的子網(wǎng)絡(luò)構(gòu)成大的網(wǎng)絡(luò)的方案。這里子網(wǎng)絡(luò)的信任成本非常低,可以被進(jìn)一步降低為網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)于子網(wǎng)絡(luò)內(nèi)部其它節(jié)點(diǎn)的原子性選擇。另外,為了維護(hù)全網(wǎng)節(jié)點(diǎn)數(shù)據(jù)的一致性,子網(wǎng)絡(luò)之間需要的連接度不能小于一個(gè)閾值。通過(guò)以上解決方案,RPCA 實(shí)現(xiàn)了一種高性能,同時(shí)擁有較高拜占庭容錯(cuò)的算法。RPCA 算法已經(jīng)應(yīng)用在Ripple 共識(shí)協(xié)議中,并得到了大量實(shí)際應(yīng)用驗(yàn)證。
該共識(shí)算法支持高網(wǎng)絡(luò)吞吐量,平均期望超過(guò) 1000TPS。該網(wǎng)絡(luò)下,每個(gè)節(jié)點(diǎn)均為非匿名節(jié)點(diǎn);每個(gè)參與共識(shí)的服務(wù)器均維護(hù) UNL(Unique Node LBTD)列表,列表上的服務(wù)器集合代表整個(gè)網(wǎng)絡(luò)受信任的代表,即記賬節(jié)點(diǎn),由列表上的記賬節(jié)點(diǎn)決定最終共識(shí)。
2.2 共識(shí)算法所解決的問(wèn)題
近些年,針對(duì)分布式共識(shí)系統(tǒng)的研究越來(lái)越多,研究的目標(biāo)是實(shí)現(xiàn)一種高性能,低花費(fèi),同時(shí)去中心化的交易系統(tǒng)。在這類系統(tǒng)的研究過(guò)程中主要問(wèn)題可歸為三類:正確性、一致性、可用性。
正確性指的是分布式系統(tǒng)要能識(shí)別正常交易與欺詐交易。在中心化系統(tǒng)中,這個(gè)問(wèn)題是通過(guò)機(jī)構(gòu)之間的信任以及數(shù)字簽名來(lái)保證交易確實(shí)是由某個(gè)機(jī)構(gòu)發(fā)出來(lái)解決的。而在去中心化系統(tǒng)中,大家甚至都不認(rèn)識(shí)對(duì)方,自然無(wú)法建立類似的信任關(guān)系,因此,必須找到一種替代方案來(lái)保證交易的正確性。
一致性指的是要在去中心化系統(tǒng)中保證能達(dá)成全局唯一的共識(shí)。與正確性不同的是,一個(gè)惡意用戶也許不會(huì)發(fā)起欺詐交易,但是他可以通過(guò)同時(shí)發(fā)起多筆正確的交易來(lái)謀利。在區(qū)塊鏈中,典型的例子是“雙花”問(wèn)題。因此一致性問(wèn)題可被歸結(jié)為如何保證系統(tǒng)中只能有一個(gè)全局唯一識(shí)別的交易集的問(wèn)題。
可用性在去中心化支付系統(tǒng)中一般指的是性能問(wèn)題。假設(shè)一個(gè)系統(tǒng)既能保證正確性又能保證一致性,但是需要一年時(shí)間才能確認(rèn)一筆交易 ,那很顯然這個(gè)系統(tǒng)的可用性很低。另外,可用性的其它方面包括達(dá)成正確性與一致性需要的算力水平、為避免一個(gè)用戶被欺詐所應(yīng)用的算法復(fù)雜度等。
RPCA 算法的實(shí)現(xiàn),可以很好的解決以上三個(gè)問(wèn)題。
2.3 共識(shí)算法的基本概念
服務(wù)節(jié)點(diǎn),就是可以接收交易的區(qū)塊鏈節(jié)點(diǎn),包括驗(yàn)證節(jié)點(diǎn)與非驗(yàn)證節(jié)點(diǎn)兩種,驗(yàn)證節(jié)點(diǎn)是指被其它節(jié)點(diǎn)加入到信任列表中的節(jié)點(diǎn),可參與共識(shí)過(guò)程,非驗(yàn)證節(jié)點(diǎn)不參與共識(shí)過(guò)程。
區(qū)塊和區(qū)塊記錄交易,在 RPCA 中有兩種區(qū)塊比較關(guān)鍵,一個(gè)是最新關(guān)閉的區(qū)塊,也就是最新被共識(shí)過(guò)的區(qū)塊,另一個(gè)是開(kāi)放區(qū)塊,開(kāi)放區(qū)塊是指當(dāng)前正被共識(shí)的區(qū)塊,當(dāng)開(kāi)放區(qū)塊被共識(shí)過(guò),也就成了新的最新關(guān)閉的區(qū)塊。
UNL(Unique Node LBTD)信任節(jié)點(diǎn)列表,每個(gè)服務(wù)節(jié)點(diǎn)都會(huì)維護(hù)一個(gè)信任節(jié)點(diǎn)列表,這里的信任是指這個(gè)列表中的節(jié)點(diǎn)不會(huì)聯(lián)合起來(lái)作弊。在共識(shí)過(guò)程中,系統(tǒng)功能只接受來(lái)自信任節(jié)點(diǎn)列表中節(jié)點(diǎn)的投票。在底層鏈中,信任節(jié)點(diǎn)通過(guò)配置文件中加入其它驗(yàn)證節(jié)點(diǎn)的公鑰的方式來(lái)指定 UNL。
2.4 共識(shí)過(guò)程
底層鏈網(wǎng)絡(luò)每隔幾秒就會(huì)產(chǎn)生一個(gè)新的區(qū)塊,這個(gè)區(qū)塊的產(chǎn)生過(guò)程就是所有網(wǎng)絡(luò)節(jié)點(diǎn) RPCA 共識(shí)的過(guò)程。假設(shè)共識(shí)過(guò)程是成功的,并且網(wǎng)絡(luò)中沒(méi)有分叉產(chǎn)生,那么新生成的區(qū)塊就是全網(wǎng)唯一的。
RPCA 對(duì)交易分兩個(gè)階段完成,第一階段是達(dá)成交易集的共識(shí),第二階段是對(duì)新生成的區(qū)塊進(jìn)行提議,最終形成被共識(shí)過(guò)的區(qū)塊。
達(dá)成交易集的共識(shí)分輪進(jìn)行,在每一輪中進(jìn)行下面的操作:
每個(gè)節(jié)點(diǎn)在共識(shí)開(kāi)始時(shí)盡可能多的收集所能收集到的需要共識(shí)的交易 并放到“候選集”里面;
每個(gè)節(jié)點(diǎn)對(duì)它信任節(jié)點(diǎn)列表中的 “候選集”做一個(gè)并集,并對(duì)每一個(gè)交易進(jìn)行投票;
UNL 中的服務(wù)節(jié)點(diǎn)交流交易的投票結(jié)果,達(dá)到一定投票比例的交易會(huì)進(jìn)入到下一輪,達(dá)不到比例的交易要么被丟棄,要么進(jìn)入到下一次共識(shí)過(guò)程的候選集中;
在最終輪中,所有投票超過(guò) 80%的交易會(huì)被放到共識(shí)過(guò)的交易集中,這里的交易集與比特幣類似,也是 Merkle 樹(shù)的數(shù)據(jù)結(jié)構(gòu)。
形成交易集后,每個(gè)節(jié)點(diǎn)開(kāi)始打包新的區(qū)塊,打包區(qū)塊的過(guò)程如下:
把新的區(qū)塊號(hào)、共識(shí)交易集的 Merkle 樹(shù)根 Hash、父區(qū)塊 Hash、當(dāng)前時(shí)間戳等內(nèi)容放到一起,計(jì)算一個(gè)區(qū)塊哈希;
每個(gè)節(jié)點(diǎn)廣播自己得出的區(qū)塊哈希到它可見(jiàn)的節(jié)點(diǎn),這里的可見(jiàn)節(jié)點(diǎn)不僅僅指可信列表中的節(jié)點(diǎn),而是通過(guò)節(jié)點(diǎn)發(fā)現(xiàn)過(guò)程能發(fā)現(xiàn)的節(jié)點(diǎn);
節(jié)點(diǎn)收集到它所有可信列表中節(jié)點(diǎn)廣播過(guò)來(lái)的區(qū)塊哈希后,結(jié)合自己生成的區(qū)塊哈希,對(duì)每個(gè)區(qū)塊哈希計(jì)算一個(gè)比例,如果某一哈希的比例超過(guò)一個(gè)閾值(一般是 80%),則認(rèn)為這個(gè)哈希是共識(shí)通過(guò)的區(qū)塊哈希。如果自己的哈希與之相同,則說(shuō)明自己打包的區(qū)塊得到了確認(rèn),是新的被共識(shí)過(guò)的區(qū)塊,直接存到本地,并且更新?tīng)顟B(tài)。如果自己的哈希與共識(shí)通過(guò)的哈希不同,那就需要去某個(gè)區(qū)塊哈希正確的節(jié)點(diǎn)索要新的區(qū)塊信息,要到之后存儲(chǔ)到本地并且更新當(dāng)前狀態(tài);
如果上面沒(méi)有對(duì)某一區(qū)塊哈希超過(guò)設(shè)定的閾值,那么重新開(kāi)始共識(shí)過(guò)程,直到滿足條件。
至此,一個(gè)區(qū)塊的共識(shí)過(guò)程結(jié)束,開(kāi)啟下一輪共識(shí)過(guò)程。
2.5 驗(yàn)證
更為快速有效的區(qū)塊認(rèn)證技術(shù):由全網(wǎng)所有的信任節(jié)點(diǎn)負(fù)責(zé)記賬,超過(guò)半數(shù)的記賬節(jié)點(diǎn)維護(hù)的區(qū)塊鏈為有效鏈。區(qū)塊生成后,廣播到全網(wǎng)由記賬節(jié)點(diǎn)進(jìn)行投票,記賬節(jié)點(diǎn)按收到的對(duì)某一區(qū)塊的投票多少來(lái)決定選取哪個(gè)區(qū)塊為有效區(qū)塊,大約 3S 可以生成一個(gè)區(qū)塊。
正確性:RPCA 中正確性的驗(yàn)證方式很簡(jiǎn)單,因?yàn)楣沧R(shí)需要 80%的閾值,那么只要 UNL 中有 80%的誠(chéng)實(shí)節(jié)點(diǎn),就能達(dá)成共識(shí),另外即使有超過(guò) 20%的欺詐節(jié)點(diǎn),也不能破壞正確性,因?yàn)槠墼p節(jié)點(diǎn)也必須達(dá)到 80%以上才能達(dá)成共識(shí)。無(wú)論欺詐節(jié)點(diǎn)還是誠(chéng)實(shí)節(jié)點(diǎn),達(dá)不到 80%,都無(wú)法通過(guò)共識(shí)。
一致性:一致性是通過(guò)子網(wǎng)絡(luò)與其它子網(wǎng)絡(luò)的連通性來(lái)保證的,要保證區(qū)塊鏈不分叉,必須確保每個(gè)子網(wǎng)絡(luò)必須至少與整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中的 20%保持連通性。
可用性:在每一輪投票過(guò)程中,節(jié)點(diǎn)會(huì)搜集它 UNL 中每個(gè)節(jié)點(diǎn)的響應(yīng)時(shí)間,一直響應(yīng)時(shí)間慢的節(jié)點(diǎn)將會(huì)被剔除出去,這樣 UNL 就能保持一個(gè)較高的溝通效率。在高效溝通的前提下,RPCA 算法能保證每 3-10 秒產(chǎn)生一個(gè)區(qū)塊,TPS》1000。
2.6 多點(diǎn)數(shù)據(jù)同步
節(jié)點(diǎn)數(shù)據(jù)不全時(shí),向相鄰節(jié)點(diǎn)索取數(shù)據(jù),通過(guò)數(shù)據(jù)離散、多節(jié)點(diǎn)同時(shí)索取、本地再組合的方式,使系統(tǒng)具備了數(shù)據(jù)快速傳輸,斷點(diǎn)續(xù)傳等優(yōu)秀特性。
2.7 Radix-Merkle 存儲(chǔ)算法
區(qū)塊中的狀態(tài)與交易,根據(jù)哈希后的結(jié)果以 Merkel 樹(shù)的形式進(jìn)行組裝。以基數(shù)樹(shù)的結(jié)構(gòu)來(lái)設(shè)計(jì)多個(gè)葉子節(jié)點(diǎn),通過(guò) key 值可以快速索引到具體的某一個(gè)交易或者狀態(tài)。
2.8 改進(jìn)的 lz4 壓縮算法
交易內(nèi)容中的每個(gè)字段,按名稱進(jìn)行排序,得到固定順序的數(shù)據(jù)內(nèi)容,通過(guò)改進(jìn)后的 LZ4 算法,得到較高的壓縮比及壓縮速度。
2.9 智能合約
項(xiàng)目的存儲(chǔ)積分和激勵(lì)積分的發(fā)放基于智能合約執(zhí)行,對(duì)提供存儲(chǔ)服務(wù)的節(jié)點(diǎn)用戶進(jìn)行激勵(lì)。
3. 分層框架
BTD 項(xiàng)目的技術(shù)分層框架包括:應(yīng)用層、網(wǎng)絡(luò)節(jié)點(diǎn)層、存儲(chǔ)節(jié)點(diǎn)層、文件系統(tǒng)層、區(qū)塊鏈共識(shí)層等多個(gè)不同層級(jí)。
分布式存儲(chǔ)節(jié)點(diǎn):為 BTD 項(xiàng)目提供存儲(chǔ)、帶寬、計(jì)算資源的存儲(chǔ)節(jié)點(diǎn);
分布式網(wǎng)絡(luò)節(jié)點(diǎn):為 BTD 項(xiàng)目提供 P2P 穿透和域路由功能的網(wǎng)絡(luò)節(jié)點(diǎn);
分布式文件系統(tǒng):BTD 項(xiàng)目分布式文件系統(tǒng) BDFS。
區(qū)塊鏈共識(shí)層:基于 ChainSQL 平臺(tái),共識(shí)機(jī)制基于 RPCA。
應(yīng)用層:BTD 錢(qián)包 APP(IOS、Android、Windows 等)。
4. BTD錢(qián)包
BTD 錢(qián)包分為用戶層、應(yīng)用層、服務(wù)層、交易層和技術(shù)平臺(tái)層,提供去中心化賬號(hào)管理和結(jié)算接口,內(nèi)置安全交易功能,主體是一個(gè)輕量級(jí)區(qū)塊鏈客戶端(light-weight client)。
基本功能
地址注冊(cè)、賬號(hào)導(dǎo)入與導(dǎo)出和交易密碼管理等功能。用戶的錢(qián)包文件和私鑰由用戶自行保管,將用戶的權(quán)利完全歸還用戶,系統(tǒng)更私密安全。用戶私鑰一旦丟失,錢(qián)包將永遠(yuǎn)不可找回。交易密碼只用于保護(hù)用戶日常操作安全性,可通過(guò)私鑰進(jìn)行重置。
資產(chǎn)功能
HDT/BTD 的相互轉(zhuǎn)賬、兌換等各種功能。
查詢功能
HDT/BTD 交易查詢,讓一切數(shù)據(jù)盡在掌握。
BTD項(xiàng)目的技術(shù)方案
1. 存儲(chǔ)資源池的形成
BTD 項(xiàng)目的存儲(chǔ)資源池來(lái)源于所有愿意貢獻(xiàn)其閑置存儲(chǔ)空間的用戶。用戶通過(guò)貢獻(xiàn)其閑置存儲(chǔ)空間來(lái)參與建設(shè) BTD 項(xiàng)目,并獲得相應(yīng)的數(shù)字資產(chǎn) HDT+BTD 回報(bào)。
加入 BTD 項(xiàng)目后,節(jié)點(diǎn)所貢獻(xiàn)的存儲(chǔ)空間將會(huì)成為 BTD 項(xiàng)目分布式存儲(chǔ)池的一部分,海量的存儲(chǔ)節(jié)點(diǎn)共同構(gòu)建一個(gè)海量、彈性、可持續(xù)增長(zhǎng)的存儲(chǔ)池。
2. 存儲(chǔ)節(jié)點(diǎn)與和存儲(chǔ)鏈建設(shè)
每一個(gè)運(yùn)行 BTD 項(xiàng)目存儲(chǔ)服務(wù)的節(jié)點(diǎn),既作為存儲(chǔ)服務(wù)的提供者,同時(shí)也是存儲(chǔ)服務(wù)的校驗(yàn)者和存儲(chǔ)鏈信息的傳遞者。
所有存儲(chǔ)節(jié)點(diǎn)共同實(shí)時(shí)協(xié)調(diào)工作,保障 BTD 項(xiàng)目的穩(wěn)定運(yùn)行。
3. 存儲(chǔ)節(jié)點(diǎn)的HDT存儲(chǔ)積分
BTD 項(xiàng)目根據(jù)經(jīng)典的工作量證明共識(shí)機(jī)制和分布式存儲(chǔ)的技術(shù)特點(diǎn),結(jié)合分布式硬件節(jié)點(diǎn)的工作特性,提出基于可信賴存儲(chǔ)證明 PoCR(Proof of Capacity Reliability)算法,根據(jù)節(jié)點(diǎn)所共享的存儲(chǔ)空間大小、在線率、網(wǎng)絡(luò)上下行帶寬、實(shí)際存儲(chǔ)、檢索、讀取服務(wù)質(zhì)量等對(duì)節(jié)點(diǎn)的服務(wù)進(jìn)行校驗(yàn)和激勵(lì),節(jié)點(diǎn)獲得其HDT 存儲(chǔ)積分。
每天每個(gè)存儲(chǔ)節(jié)點(diǎn)所獲得的存儲(chǔ)積分 HDT 的數(shù)量 A,按照如下算法進(jìn)行計(jì)算:
A=節(jié)點(diǎn)貢獻(xiàn)存儲(chǔ)容量*在線率評(píng)分系數(shù)*網(wǎng)絡(luò)帶寬評(píng)分系數(shù)*節(jié)點(diǎn)硬件評(píng)分系數(shù)*節(jié)點(diǎn)信任度評(píng)分系數(shù)。
定義1HDT=1G*1 月,代表存儲(chǔ)節(jié)點(diǎn)不間斷地提供1個(gè)月1個(gè)G存儲(chǔ)空間的服務(wù)工作量。
一臺(tái)貢獻(xiàn)1T 存儲(chǔ)容量,標(biāo)準(zhǔn)化環(huán)境(在線率評(píng)分系數(shù)=1,網(wǎng)絡(luò)帶寬評(píng)分系數(shù)=1, 節(jié)點(diǎn)硬件評(píng)分系數(shù)=1,節(jié)點(diǎn)信任度評(píng)分系數(shù)=1)下的 BTD 存儲(chǔ)節(jié)點(diǎn),每天可產(chǎn)出 HDT 數(shù)量為:
A=(1024G*12 月/365 天)*1*1*1*1=33.7 HDT。
節(jié)點(diǎn)每天的實(shí)際產(chǎn)出數(shù)量會(huì)因?yàn)樯鲜龈黜?xiàng)系數(shù)不同而產(chǎn)生差異。
在線率評(píng)分系數(shù):根據(jù)存儲(chǔ)節(jié)點(diǎn)在線率進(jìn)行評(píng)估。當(dāng)在線率低于70%時(shí),評(píng)分系數(shù)為0。在線率70%-90%時(shí),評(píng)分系數(shù)為50%;在線率90%以上不足100%時(shí),評(píng)分系數(shù)80%;在線率100%時(shí)評(píng)分系數(shù)100%。
網(wǎng)絡(luò)帶寬評(píng)分系數(shù):參考上行帶寬5MB/s,下行帶寬20MB/s。如果一條寬帶下面運(yùn)行了過(guò)多存儲(chǔ)節(jié)點(diǎn)設(shè)備,則存儲(chǔ)節(jié)點(diǎn)設(shè)備的收益比將降低。
節(jié)點(diǎn)硬件評(píng)分系數(shù):參考處理器等硬件處理能力指標(biāo),以及實(shí)際評(píng)估節(jié)點(diǎn)硬件運(yùn)行 BTD 客戶端軟件的效率,取值范圍 0.8-1 之間。
節(jié)點(diǎn)信任度系數(shù):當(dāng)節(jié)點(diǎn)信任度機(jī)制被啟動(dòng)時(shí),所有節(jié)點(diǎn)信任度初始值為5%。如果次日在線率 100%,則信任度增加 5%,連續(xù)保持 20 天后節(jié)點(diǎn)信任度系數(shù)達(dá)到 1,節(jié)點(diǎn)信任度達(dá)到 1 后不再增加。運(yùn)行期間任何一天在線率低于 90%,節(jié)點(diǎn)信任度將重新從 5%開(kāi)始計(jì)起。信任度機(jī)制啟動(dòng)后,節(jié)點(diǎn)也可通過(guò)質(zhì)押 BTD 來(lái)增加該節(jié)點(diǎn)地址的信任度并承諾在失信時(shí)接受懲罰扣除其質(zhì)押的 BTD,被扣除的BTD 將會(huì)被銷毀。節(jié)點(diǎn)信任度機(jī)制將于每天 HDT 數(shù)量產(chǎn)出達(dá)到一定高度時(shí)被激活。
結(jié)算周期: 每 24 小時(shí)結(jié)算一次。
4. 存儲(chǔ)節(jié)點(diǎn)的BTD激勵(lì)積分
HDT 積分體現(xiàn)的是節(jié)點(diǎn)為 BTD 項(xiàng)目運(yùn)行所貢獻(xiàn)的工作量。而 BTD 則體現(xiàn)的是節(jié)點(diǎn)對(duì)全網(wǎng)的價(jià)值貢獻(xiàn)比例。BTD 基于 PoS 算法進(jìn)行計(jì)算。
每天某個(gè)節(jié)點(diǎn)獲得的 BTD 激勵(lì)積分的數(shù)量 B,按照如下算法進(jìn)行計(jì)算:
B=該節(jié)點(diǎn)對(duì)全網(wǎng)的價(jià)值貢獻(xiàn)比例 C*當(dāng)日全網(wǎng)新增 BTD 總量。
【備注:當(dāng)日全網(wǎng)新增 BTD 總量根據(jù)當(dāng)天全網(wǎng)新增 HDT 的數(shù)量而定,具體方案見(jiàn)白皮書(shū)中“BTD 的分配與產(chǎn)出”章節(jié)】
每天某個(gè)節(jié)點(diǎn)對(duì)全網(wǎng)的價(jià)值貢獻(xiàn)比例 C,按照如下算法進(jìn)行計(jì)算:
C=(該節(jié)點(diǎn)當(dāng)日新增 HDT/全網(wǎng)節(jié)點(diǎn)當(dāng)日新增 HDT)*當(dāng)日存力占比+(該節(jié)點(diǎn) HDT 余額/全網(wǎng)節(jié)點(diǎn) HDT 總產(chǎn)出)*?dú)v史存力占比+(該節(jié)點(diǎn)當(dāng)日BTD 余額/全網(wǎng)節(jié)點(diǎn) BTD 總額)*未來(lái)發(fā)展占比;
當(dāng)日存力占比:取值范圍 0%-100%。
歷史存力占比:取值范圍 0%-30%。
未來(lái)發(fā)展占比:取值范圍 0%-100%。
BTD 的產(chǎn)出,綜合考慮了節(jié)點(diǎn)對(duì)全網(wǎng)的當(dāng)日貢獻(xiàn)(類比現(xiàn)實(shí)世界中企業(yè)為員工發(fā)放的每日工資),歷史貢獻(xiàn)(類比現(xiàn)實(shí)世界中企業(yè)為老員工發(fā)放的長(zhǎng)期貢獻(xiàn)獎(jiǎng)),以及未來(lái)發(fā)展貢獻(xiàn)(類比現(xiàn)實(shí)世界中企業(yè)為核心骨干發(fā)放的期權(quán)),代表了分布式存儲(chǔ)領(lǐng)域最為合理的貢獻(xiàn)機(jī)制。
BTD 項(xiàng)目通過(guò)每日 HDT 產(chǎn)出量的變化趨勢(shì)、系統(tǒng) HDT 池余額和消耗比例、BTD 持幣賬戶集中度等運(yùn)行指標(biāo)來(lái)判斷當(dāng)前存力是否滿足存儲(chǔ)市場(chǎng)的需要以及市場(chǎng)是否過(guò)熱或過(guò)冷,綜合指標(biāo)超過(guò)閾值會(huì)觸發(fā)智能合約,對(duì)當(dāng)日存力占比、歷史存力占比、未來(lái)發(fā)展占比等參數(shù)進(jìn)行調(diào)節(jié),在全網(wǎng)存力不足時(shí)鼓勵(lì)更多節(jié)點(diǎn)加入存儲(chǔ)網(wǎng)絡(luò)提升存力,在 BTD 持幣賬戶過(guò)度集中時(shí)鼓勵(lì)新增用戶分散 BTD 持幣比例,從而促進(jìn)和保障 BTD 項(xiàng)目的持續(xù)健康穩(wěn)定運(yùn)行。
5. 智能合約和系統(tǒng)HDT池
如果將 BTD 項(xiàng)目看作一個(gè)虛擬經(jīng)濟(jì)體,則隨著存儲(chǔ)網(wǎng)絡(luò)規(guī)模的持續(xù)運(yùn)行以及執(zhí)行存儲(chǔ)任務(wù), 其產(chǎn)出的 HDT 積分總和代表了虛擬經(jīng)濟(jì)體的總經(jīng)濟(jì)規(guī)模。
另一方面,作為整個(gè) BTD 項(xiàng)目?jī)r(jià)值承載體系的 BTD 而言,其產(chǎn)出的 BTD 代表了虛擬經(jīng)濟(jì)體的總交換價(jià)值。
因此可以認(rèn)為在任意時(shí)刻,當(dāng)前已流通 BTD 總價(jià)值 = 所有已流通的 HDT總價(jià)值+ BTD 流通性溢價(jià)。
如果 BTD 流通性溢價(jià)》0,在任意時(shí)刻,可以認(rèn)為:
1 BTD 》= ( 系統(tǒng)當(dāng)前流通 HDT 總量/系統(tǒng)當(dāng)前流通 BTD 總量) * 1 HDT 。
因此,BTD 項(xiàng)目通過(guò)鏈上智能合約賦予用戶使用 BTD 兌換 HDT 的權(quán)利,但兌換用戶只能將所兌換的 HDT 用于驅(qū)動(dòng)存儲(chǔ)服務(wù)。
智能合約:1 BTD= ( 系統(tǒng)當(dāng)前流通 HDT 總量/系統(tǒng)當(dāng)前流通 BTD 總量) * 1HDT 。
智能合約通過(guò)合約形式進(jìn)一步確定了 BTD 的內(nèi)在價(jià)值和行權(quán)權(quán)利。
BTD 持有者可自行評(píng)估是否使用,以及何時(shí)使用該項(xiàng)權(quán)利。
為保障該智能合約的執(zhí)行, BTD 項(xiàng)目設(shè)立系統(tǒng) HDT 池。
每日系統(tǒng)新增 HDT 總量=全網(wǎng)節(jié)點(diǎn)新增 HDT+系統(tǒng)池新增 HDT。
系統(tǒng)池新增 HDT = 全網(wǎng)節(jié)點(diǎn)新增 HDT* 系統(tǒng)池占比。系統(tǒng)池占比取值 5%-20%。
智能合約的執(zhí)行:用戶地址向智能合約地址打入 BTD,智能合約按照對(duì)應(yīng)比例向用戶地址打入 HDT。
智能合約被執(zhí)行后,相當(dāng)于對(duì)應(yīng)的 BTD 已完成了行權(quán),這一部分 BTD 將永久鎖定在系統(tǒng)池智能合約地址被銷毀,不再參與流通。
除用于保障 BTD 智能合約執(zhí)行,HDT 池還用于支持基于 BTD 存儲(chǔ)鏈的dApp 業(yè)務(wù)。
在計(jì)算節(jié)點(diǎn) HDT 對(duì)全網(wǎng)的貢獻(xiàn)比例時(shí),系統(tǒng) HDT 池余額不參與計(jì)算。
當(dāng)系統(tǒng) HDT 池出現(xiàn)不足時(shí),智能合約會(huì)延期執(zhí)行,并會(huì)調(diào)整 BTD 產(chǎn)出算法中的當(dāng)日存力占比、歷史存力占比、未來(lái)發(fā)展占比等參數(shù),并在滿足智能合約執(zhí)行條件后繼續(xù)執(zhí)行智能合約。
6. BTD的價(jià)值
由于 HDT 總量會(huì)隨時(shí)間和網(wǎng)絡(luò)規(guī)模的快速增加而持續(xù)增長(zhǎng),其增長(zhǎng)速度比BTD 增長(zhǎng)速度要快;而 BTD 總量有限且會(huì)因節(jié)點(diǎn)信用度質(zhì)押違約銷毀、智能合約執(zhí)行銷毀、回購(gòu)銷毀等各種場(chǎng)景使得 BTD 因銷毀而數(shù)量減少;根據(jù) BTD 的兌換智能合約,這意味著單位 BTD 所能對(duì)應(yīng)的 HDT 數(shù)量會(huì)持續(xù)增加。
因此,當(dāng) BTD 項(xiàng)目存儲(chǔ)網(wǎng)絡(luò)持續(xù)穩(wěn)定運(yùn)行和發(fā)展時(shí),單位 BTD 所能對(duì)應(yīng)的存儲(chǔ)服務(wù)能力會(huì)持續(xù)增多,BTD 具有天然的內(nèi)在價(jià)值增長(zhǎng)屬性。
7. BTD項(xiàng)目的具體實(shí)現(xiàn)
BTD 項(xiàng)目的每個(gè)用戶賬戶實(shí)際上是一個(gè) BTD 錢(qián)包地址。每個(gè)用戶保存自己的私鑰,并將公鑰對(duì)應(yīng)的算法保存至 BTD 項(xiàng)目。
BTD 項(xiàng)目的用戶使用 HDT 對(duì)存儲(chǔ)服務(wù)進(jìn)行驅(qū)動(dòng)。一方面,BTD 項(xiàng)目用戶對(duì)文件的存儲(chǔ)、讀取、和分享等行為驅(qū)動(dòng)整個(gè) BTD 項(xiàng)目實(shí)現(xiàn)相關(guān)功能;另一方面,用戶在存儲(chǔ)和讀取文件時(shí)需支付 HDT,從而來(lái)激勵(lì) BTD 項(xiàng)目上的存儲(chǔ)服務(wù)節(jié)點(diǎn)和輔助驗(yàn)證節(jié)點(diǎn)的有序運(yùn)行。
BTD 項(xiàng)目的具體技術(shù)實(shí)現(xiàn),由文件存儲(chǔ)、文件檢索和讀取等環(huán)節(jié)構(gòu)成。
8. 文件存儲(chǔ)
BTD 項(xiàng)目用戶進(jìn)行文件存儲(chǔ)時(shí),需要使用 HDT 對(duì) BTD 項(xiàng)目進(jìn)行驅(qū)動(dòng)。
BTD 項(xiàng)目文件系統(tǒng)使用 BDFS 分布式文件系統(tǒng)作為底層文件系統(tǒng)。
9. 文件檢索和讀取
用戶對(duì)已存儲(chǔ)的文件進(jìn)行檢索和內(nèi)容讀取時(shí),根據(jù)文件 HASH 標(biāo)識(shí)在 BTD存儲(chǔ)鏈中進(jìn)行廣播檢索,有該 HASH 資源的存儲(chǔ)節(jié)點(diǎn)收到廣播后通知用戶,用戶驗(yàn)證確認(rèn)后,根據(jù)存儲(chǔ)節(jié)點(diǎn)的的網(wǎng)絡(luò)情況,選擇網(wǎng)絡(luò)信道最優(yōu)的多個(gè)節(jié)點(diǎn),同步讀取該文件的不同數(shù)據(jù)分片實(shí)現(xiàn)并行下載,取得足夠的文件片數(shù)后解密從而恢復(fù)文件。
10. 小結(jié)
BTD 項(xiàng)目是由分布于全球的存儲(chǔ)節(jié)點(diǎn)共同組成的分布式存儲(chǔ)網(wǎng)絡(luò),每個(gè)存儲(chǔ)節(jié)點(diǎn)都對(duì)外提供一定的存儲(chǔ)容量資源和網(wǎng)絡(luò)帶寬保證從而形成海量和彈性的存儲(chǔ)資源池,共同對(duì)外提供私密安全的共享存儲(chǔ)服務(wù)。
除了用戶自身,包括存儲(chǔ)節(jié)點(diǎn)以及比特米基金會(huì)技術(shù)團(tuán)隊(duì)在內(nèi)的任何其他方都無(wú)法獲得文件內(nèi)容,保證了 BTD 項(xiàng)目具有非常高等級(jí)的私密性;
而全球海量節(jié)點(diǎn)的冗余備份,也避免了單節(jié)點(diǎn)失效對(duì)文件存儲(chǔ)服務(wù)的影響,從而保證了 BTD 項(xiàng)目具備天然的異地容災(zāi)備份能力和數(shù)據(jù)安全保障能力。
同時(shí) BTD 項(xiàng)目不依賴任何中心服務(wù)器,這也意味著任何惡意的單節(jié)點(diǎn)攻擊都將失效。