HitChain是面向開(kāi)發(fā)者的開(kāi)放型DAO(Distributed Autonomous Organization,分布式共治組織),致力于構(gòu)建一個(gè)全球化的開(kāi)發(fā)者共有、共建、共享的共治社區(qū)。HitChain代表全球開(kāi)發(fā)者的全體利益,將逐步解決現(xiàn)有開(kāi)源生態(tài)在開(kāi)發(fā)者產(chǎn)出物安全管理、能力合理度量、價(jià)值及時(shí)兌現(xiàn)、創(chuàng)意快速實(shí)現(xiàn)、權(quán)利真實(shí)擁有等挑戰(zhàn)性問(wèn)題。
這里特別說(shuō)明,參與HitChain的所有用戶都稱為開(kāi)發(fā)者。雖然HitChain中活躍的用戶可能是技術(shù)產(chǎn)品的消費(fèi)者,也有可能是企業(yè)和組織,他們也被視為廣義上的開(kāi)發(fā)者。
HitChain借鑒開(kāi)源理念,基于區(qū)塊鏈技術(shù)打造一個(gè)去中心化的全球開(kāi)源軟件新型社區(qū)系統(tǒng)。HitChain社區(qū)通過(guò)獨(dú)創(chuàng)的核心底層架構(gòu)技術(shù)和共識(shí)機(jī)制,由全世界開(kāi)發(fā)者參與并完全共治, 社區(qū)收益完全由社區(qū)用戶共享。開(kāi)發(fā)者勞動(dòng)產(chǎn)出物通過(guò)HitChain開(kāi)源托管協(xié)議Hit協(xié)議實(shí)現(xiàn)共享存儲(chǔ)、瀏覽、分發(fā)、有償使用等。在HitChain社區(qū),每個(gè)開(kāi)發(fā)者的勞動(dòng)成果都將得到尊重并自動(dòng)版權(quán)保護(hù),通過(guò)代幣得到量化回報(bào)。
HitChain創(chuàng)始團(tuán)隊(duì)均來(lái)自于知名技術(shù)公司和開(kāi)源組織如Redhat、Google、Apache基金、Linux基金及開(kāi)源中國(guó)等核心專家,具備很強(qiáng)的相關(guān)技術(shù)實(shí)力和運(yùn)營(yíng)能力。
HitChain技術(shù)方案
1.系統(tǒng)整體架構(gòu)
為真正建立一個(gè)由開(kāi)發(fā)者共建、被開(kāi)發(fā)者共有、為開(kāi)發(fā)者服務(wù)的社區(qū),推動(dòng)開(kāi)發(fā)者價(jià)值實(shí)現(xiàn),需要解決幾個(gè)關(guān)鍵問(wèn)題,即開(kāi)發(fā)者自由高效的代碼開(kāi)發(fā)、開(kāi)發(fā)者代碼知識(shí)產(chǎn)權(quán)的保護(hù)與傳播,以及開(kāi)發(fā)者代碼價(jià)值的度量與交換。
我們創(chuàng)新地提出了一種將Git協(xié)議與區(qū)塊鏈技術(shù)相結(jié)合的新型代碼管理協(xié)議和代碼知識(shí)產(chǎn)權(quán)鑒定方法,并構(gòu)建了一整套的解決方案,實(shí)現(xiàn)去中心化的代碼托管、產(chǎn)權(quán)保護(hù)、價(jià)值度量、服務(wù)交付等,從而建立一個(gè)透明、公正的全球開(kāi)源應(yīng)用新生態(tài)HitChain。
HitChain整體架構(gòu)主要包括運(yùn)行基礎(chǔ)設(shè)施、社區(qū)基礎(chǔ)設(shè)施、HitChain開(kāi)發(fā)與交易社區(qū)以及HitChain應(yīng)用軟件等四個(gè)核心組成部分:
① HitChain貨幣基礎(chǔ)設(shè)施
主要基于區(qū)塊鏈技術(shù),為HitChain生態(tài)系統(tǒng)的運(yùn)行提供基礎(chǔ)技術(shù)支撐,包括分類賬本、隔離見(jiàn)證、共識(shí)機(jī)制以及智能合約等。
② HitChain社區(qū)基礎(chǔ)設(shè)施
主要為HitChain社區(qū)運(yùn)轉(zhuǎn)提供關(guān)鍵服務(wù),包括Hit新型代碼管理協(xié)議、分布式代碼存儲(chǔ)管理服務(wù)、代碼鑒權(quán)服務(wù)等。
③ HitChain社區(qū)
包括HitChain開(kāi)發(fā)社區(qū)(HitChain Development Community)和HitChain交易社(HitChain Trading Community)基于社區(qū)基礎(chǔ)設(shè)施構(gòu)建和形成,主要包括軟件開(kāi)發(fā)社區(qū)和代碼交易社區(qū)。其中,軟件開(kāi)發(fā)社區(qū)主要由開(kāi)源開(kāi)發(fā)者構(gòu)成,借助Hit協(xié)議和分布式存儲(chǔ)技術(shù)等完成代碼的開(kāi)發(fā)等;代碼交易社區(qū)則由代碼開(kāi)發(fā)者和代碼消費(fèi)者構(gòu)成,借助代碼鑒權(quán)等服務(wù)進(jìn)行代碼的交易。
④ HitChain應(yīng)用軟件
為開(kāi)發(fā)者和消費(fèi)者等提供HitChain生態(tài)接入服務(wù),用戶通過(guò)HitChain應(yīng)用軟件來(lái)使用HitChain提供的各項(xiàng)服務(wù),完成代碼開(kāi)發(fā)、交易等。
2.HitChain區(qū)塊鏈基礎(chǔ)網(wǎng)絡(luò)
HitChain是基于區(qū)塊鏈技術(shù)構(gòu)建的面向軟件代碼開(kāi)發(fā)、存儲(chǔ)、交易活動(dòng)等的區(qū)塊鏈,并為HitChain社區(qū)提供運(yùn)行時(shí)支撐。其中,主要涉及的組件和服務(wù)包括混合式分片鏈、分類賬本、共識(shí)機(jī)制、隔離見(jiàn)證與智能合約等。
1)混合鏈基礎(chǔ)架構(gòu)
以比特幣、以太坊為代表的區(qū)塊鏈架構(gòu),在不斷的應(yīng)用實(shí)踐中,暴露出了交易規(guī)模、響應(yīng)速度和擴(kuò)展性等一系列問(wèn)題,這些問(wèn)題阻礙著區(qū)塊鏈商業(yè)應(yīng)用的發(fā)展與落地。HitChain作為領(lǐng)先的區(qū)塊鏈網(wǎng)絡(luò)應(yīng)用,需要建立在能使用高頻次并發(fā)、億萬(wàn)級(jí)用戶、零延遲響應(yīng)的區(qū)塊鏈公有鏈上, 結(jié)合Hit分布式托管系統(tǒng),才能真正地歸于成功。
HitChain采用混合式分片鏈技術(shù),將公有鏈、分片鏈(邏輯子鏈)有機(jī)結(jié)合,形成混合鏈基礎(chǔ)架構(gòu)。HitChain將少量的交易記錄核心內(nèi)容保存于公鏈賬本,而對(duì)于見(jiàn)證歷史、共識(shí)記錄、業(yè)務(wù)流轉(zhuǎn)等交易,保存于獨(dú)立的空間中。
通過(guò)標(biāo)準(zhǔn)化跨鏈通信協(xié)議,HitChain在公有鏈和分片鏈中無(wú)縫對(duì)接交換數(shù)據(jù)。哈希索引技術(shù)可有效保證同一數(shù)據(jù)的有效映射和唯一權(quán)威性。
2)DAG高并發(fā)異步執(zhí)行
HitChain的雙鏈并行技術(shù),既可以保證主鏈的不可篡改性,又可以在分片鏈中保留靈活性。主鏈仍然采用傳統(tǒng)的鏈?zhǔn)浇Y(jié)構(gòu),而分片鏈中則使用DAG數(shù)據(jù)結(jié)構(gòu)。
DAG是一種全稱為有向無(wú)環(huán)圖的數(shù)據(jù)結(jié)構(gòu),由集合的頂點(diǎn)和有向邊構(gòu)成,每條邊連接不同的頂點(diǎn),這樣頂點(diǎn)之間不存在循環(huán)返回的可能。DAG結(jié)構(gòu),可以通過(guò)見(jiàn)證人機(jī)制快速找到相關(guān)的最短路徑,提高交易確認(rèn)效率和并發(fā)性能,分片鏈中只要符合主鏈規(guī)則定義的交易,都可以快速視為有效交易。
除區(qū)塊鏈自身的特點(diǎn)去中心化、分布式賬本、不可篡改之外,DAG區(qū)塊鏈技術(shù)不但可以支持高并發(fā),結(jié)合雙層共識(shí)機(jī)制,使用工作量證明共識(shí)算法,還能夠防止“雙花”問(wèn)題。
3)分類動(dòng)態(tài)賬本技術(shù)
分布式賬本是區(qū)塊鏈的核心組成部分,對(duì)保證交易等各類信息的完整性和透明性具有關(guān)鍵作用。針對(duì)代碼開(kāi)發(fā)等的特殊性,圍繞軟件代碼、存儲(chǔ)空間的共享與交易等活動(dòng),HitChain設(shè)計(jì)了相應(yīng)的分類賬本,來(lái)實(shí)現(xiàn)對(duì)各類信息的存儲(chǔ)和管理,主要包括交易賬本、存儲(chǔ)集群管理賬本以及代碼管理賬本三類。
交易賬本
主要用于記錄代碼交易、存儲(chǔ)空間交易等涉及交易的相關(guān)過(guò)程信息,交易賬本是不可篡改的。
存儲(chǔ)集群管理賬本
用于記錄存儲(chǔ)共享信息、集群節(jié)點(diǎn)分布信息、存儲(chǔ)空間大小信息等涉及存儲(chǔ)集群變更的數(shù)據(jù)。
代碼管理賬本
將與Hit協(xié)議相結(jié)合,用于記錄代碼的版本變更、代碼提交、代碼下載評(píng)論等信息。
4)雙共識(shí)并行機(jī)制
目前的區(qū)塊鏈應(yīng)用為了保證分布式賬本的一致性,主要采用以下5類共識(shí)機(jī)制,即POW、POS、DPOS、POOL、PBFT。其中,最具有代表性的方法是POW(Proof of Work) 和POS(Proof of Stake),此方法也是目前業(yè)界價(jià)值最高的比特幣和以太坊所采用的方式。然而,這些方法的局限性也較為明顯。例如,POW需要消耗大量的計(jì)算資源才能達(dá)成一次共識(shí)形成一個(gè)新的區(qū)塊,而這些計(jì)算任務(wù)以解決密碼學(xué)的復(fù)雜問(wèn)題為基礎(chǔ),難以形成有效的計(jì)算力。
HitChain的混合鏈技術(shù)支持在公有鏈和分片鏈中采用雙共識(shí)機(jī)制(PBFT和DPOS雙共識(shí))。
在公有鏈中,我們采用PBFT共識(shí)算法(Practical Byzantine Fault Tolerance,實(shí)用拜占庭容錯(cuò)算法)維持基礎(chǔ)交易的合法性。PBFT共識(shí)在保證靈活性和安全性的前提下提供了(N-1)/3的容錯(cuò)性,它使用加密技術(shù)防止欺騙攻擊和重播攻擊,以及檢測(cè)被破壞的消息。每一個(gè)Message包含了抗量子公鑰簽名(RSA256算法)、消息驗(yàn)證編碼(MAC)、無(wú)碰撞哈希函數(shù)生成的消息摘要(Mes- sage Digest)等。
在分片鏈中可采用DPOS共識(shí)機(jī)制,對(duì)Hit代碼托管業(yè)務(wù)層面進(jìn)行驗(yàn)證管理。DPOS通過(guò)投票選舉中的超級(jí)節(jié)點(diǎn)完成交易確認(rèn),可大幅提高交易并發(fā)規(guī)模和確認(rèn)速度,通過(guò)簽名的可信任記賬人證明,消除了交易等待驗(yàn)證的時(shí)間消耗,便于HitChain用戶快速提交業(yè)務(wù)請(qǐng)求,同時(shí)降低了交易手續(xù)費(fèi)成本。
5)隔離見(jiàn)證與智能合約
為了保證HitChain的高效運(yùn)轉(zhuǎn)和安全穩(wěn)定,HitChain底層將采用輕量級(jí)的隔離式數(shù)據(jù)結(jié)構(gòu), 將對(duì)不同類型的數(shù)據(jù)進(jìn)行隔離存儲(chǔ)、按需傳輸。此結(jié)構(gòu)具體可分為:記錄結(jié)余進(jìn)出的“交易狀態(tài)”、交易合法的“見(jiàn)證狀態(tài)”,以及其他HitChain中為了擴(kuò)展區(qū)塊鏈功能的特定狀態(tài)信息。在傳遞過(guò)程中,不同角色的用戶根據(jù)自身的關(guān)注點(diǎn)可以個(gè)性化選擇所需要的數(shù)據(jù)信息進(jìn)行操作。因此,相對(duì)于完整的區(qū)塊設(shè)計(jì)結(jié)構(gòu)而言,隔離模式可大大減輕區(qū)塊鏈中存儲(chǔ)和通信的負(fù)載壓力。
在隔離數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,HitChain的業(yè)務(wù)場(chǎng)景將采用智能合約的方式支持各類用戶自定義的業(yè)務(wù)活動(dòng)(如項(xiàng)目開(kāi)發(fā)眾包、代碼版權(quán)交易等)和社區(qū)公共活動(dòng)(如政策公投、創(chuàng)意征集等)。智能合約與隔離模式的有機(jī)結(jié)合,可以保證每一項(xiàng)信息或數(shù)據(jù)以按需、按權(quán)的方式進(jìn)行交換傳遞,從而提高HitChain運(yùn)轉(zhuǎn)的高效性和可信性。
3.基于Hit協(xié)議的分布式托管系統(tǒng)
1)IPFS去中心化存儲(chǔ)結(jié)構(gòu)
傳統(tǒng)的中心化存儲(chǔ)方式存在訪問(wèn)性能瓶頸、存儲(chǔ)可靠性與安全性低等一系列問(wèn)題,HitChain將基于區(qū)塊鏈技術(shù)構(gòu)建一個(gè)完全去中心化的、可自由共享存儲(chǔ)的高效分布式存儲(chǔ)系統(tǒng)。基于該系統(tǒng),平臺(tái)用戶可以共享空閑存儲(chǔ)空間并獲取激勵(lì),HitChain則基于用戶共享的存儲(chǔ)空間構(gòu)建一個(gè)去中心化存儲(chǔ)網(wǎng)絡(luò),并為軟件代碼托管提供高效、可靠、廉價(jià)的存儲(chǔ)服務(wù)。
存儲(chǔ)空間的共享與交易
用戶通過(guò)安裝HitChain應(yīng)用程序接入HitChain社區(qū),就可以自由的將個(gè)人電腦、手機(jī)等具有存儲(chǔ)驅(qū)動(dòng)設(shè)備上的空閑存儲(chǔ)共享到HitChain分布式存儲(chǔ)網(wǎng)絡(luò),成為該網(wǎng)絡(luò)的一個(gè)存儲(chǔ)節(jié)點(diǎn)。HitChain 則將用戶共享的存儲(chǔ)空間相關(guān)信息包括共享時(shí)間戳、存儲(chǔ)節(jié)點(diǎn)標(biāo)示、存儲(chǔ)空間大小等記入存儲(chǔ)管理賬本。
當(dāng)該存儲(chǔ)空間被其他用戶使用時(shí),將根據(jù)相應(yīng)的評(píng)估規(guī)則及共識(shí)算法,對(duì)共享存儲(chǔ)進(jìn)行計(jì)價(jià)并給予共享者相應(yīng)的Hit幣激勵(lì)。
IPFS星際文件系統(tǒng)
去中心化分布式共享存儲(chǔ)網(wǎng)絡(luò)各個(gè)存儲(chǔ)節(jié)點(diǎn)存在存儲(chǔ)空間差異大、在線狀態(tài)高度動(dòng)態(tài)化等特點(diǎn),為保證高效存儲(chǔ)利用、高可靠數(shù)據(jù)存儲(chǔ)與高效率數(shù)據(jù)訪問(wèn)等,我們采用IPFS星際文件系統(tǒng)對(duì)存儲(chǔ)文件進(jìn)行切割、映射和冗余存儲(chǔ)。
IPFS作為下一代文件網(wǎng)絡(luò)傳輸系統(tǒng),通過(guò)內(nèi)容可尋址的對(duì)等超媒體分發(fā)協(xié)議,在IPFS網(wǎng)絡(luò)中的節(jié)點(diǎn)構(gòu)成一個(gè)分布式文件系統(tǒng),可以讓網(wǎng)絡(luò)更快、更安全、更開(kāi)放。全部的IPFS對(duì)象形成了一個(gè)被稱作Merkle DAG的加密認(rèn)證數(shù)據(jù)結(jié)構(gòu)。
IPFS對(duì)象是一個(gè)含有兩個(gè)域的數(shù)據(jù)結(jié)構(gòu):
? Data —— 非結(jié)構(gòu)的二進(jìn)制數(shù)據(jù),小于256kB
? Links —— 一個(gè)Link數(shù)據(jù)結(jié)構(gòu)的數(shù)組。IPFS對(duì)象通過(guò)他們鏈接到其他對(duì)象
它具有如下特性:基于內(nèi)容尋址,而非域名尋址;提供文件的歷史版本控制器,可以讓多節(jié)點(diǎn)使用保存不同版本的文件;IPFS上運(yùn)行的區(qū)塊鏈,可存儲(chǔ)Hit文件的哈希表;代幣成為協(xié)調(diào)資源分享者和使用者的重要體系。
IPFS對(duì)數(shù)據(jù)文件進(jìn)行存儲(chǔ)時(shí),需要將大文件切分為多個(gè)小的分塊,對(duì)其內(nèi)容進(jìn)行映射,并將對(duì)應(yīng)Hash值通過(guò)多備份方式存儲(chǔ)到多個(gè)不同的存儲(chǔ)節(jié)點(diǎn)。各分塊間關(guān)系及其存儲(chǔ)位置等則被記錄到存儲(chǔ)管理賬本中。數(shù)據(jù)文件進(jìn)行下載時(shí),則基于存儲(chǔ)管理賬本查找文件分塊及存儲(chǔ)位置信息,從多個(gè)服務(wù)器并行下載不同的分塊,然后根據(jù)分塊間關(guān)聯(lián)信息聚合和重構(gòu)整體文件。
存儲(chǔ)位置選擇策略
在進(jìn)行文件分塊存儲(chǔ)時(shí),需要首先確定各個(gè)分塊的備份數(shù)量及存儲(chǔ)位置,以達(dá)到最佳的存儲(chǔ)和訪問(wèn)效率。
數(shù)據(jù)文件的存儲(chǔ)基本策略是全局視圖下的最優(yōu)存儲(chǔ)。通過(guò)圍繞存儲(chǔ)請(qǐng)求發(fā)起者節(jié)點(diǎn)及后續(xù)文件分塊存儲(chǔ)節(jié)點(diǎn)構(gòu)建拓?fù)浣Y(jié)構(gòu),設(shè)計(jì)采用多備份情況下多輪迭代的存儲(chǔ)方式。在對(duì)初始分塊進(jìn)行存儲(chǔ)時(shí),我們采用最快到達(dá)原則,保證初始數(shù)據(jù)的快速存儲(chǔ);在后續(xù)備份塊的傳播存儲(chǔ)過(guò)程中,選擇了最遠(yuǎn)距離原則,保證后續(xù)文件下載時(shí)能夠在全局視角達(dá)到最快下載速率。
2)Hit分布式托管協(xié)議
Git是目前在軟件開(kāi)發(fā)領(lǐng)域使用最為廣泛的代碼管理協(xié)議,圍繞Git協(xié)議構(gòu)建的社交化開(kāi)發(fā)社區(qū)有GitHub、GitLab及開(kāi)源中國(guó)等。盡管如此,Git協(xié)議在實(shí)際使用過(guò)程中仍然存在較多問(wèn)題,主要包括大文件的存儲(chǔ)支持及大規(guī)模小文件的訪問(wèn)速度等。
HitChain的目標(biāo)是結(jié)合區(qū)塊鏈技術(shù),針對(duì)Git協(xié)議面臨的問(wèn)題和局限,構(gòu)建一個(gè)全新的面向軟件代碼管理的Hit協(xié)議,實(shí)現(xiàn)對(duì)大規(guī)模、分布式軟件代碼的高效管理,并在全網(wǎng)提供服務(wù)。
默克爾樹(shù)文件處理是一種有效的碎片化文件管理方案。在Hit協(xié)議下載之前,先從可信的源獲得文件的Merkle樹(shù)根,一旦獲得了樹(shù)根,就可以從其他不可信的源獲取Merkle Tree。通過(guò)可信的樹(shù)根來(lái)檢查接受到的Merkle Tree。如果Merkle Tree是損壞的或者虛假的,就從其他源獲得另一個(gè)Merkle Tree,直到獲得一個(gè)與可信樹(shù)根匹配的Merkle Tree。
代碼文件存儲(chǔ)優(yōu)化
在軟件開(kāi)發(fā)過(guò)程中,項(xiàng)目相關(guān)文件中既有部分大的二進(jìn)制文件,包括Jar包、設(shè)計(jì)資源庫(kù)、SDK等,也有數(shù)量規(guī)模非常大的代碼小文件。對(duì)大文件進(jìn)行高效存儲(chǔ)與清理、對(duì)大量小文件進(jìn)行快速讀取等,是Hit協(xié)議需要解決問(wèn)題。
Hit協(xié)議將結(jié)合區(qū)塊鏈技術(shù)構(gòu)建代碼管理賬本,并基于分布式存儲(chǔ)平臺(tái)來(lái)解決高效大文件存儲(chǔ)與小文件訪問(wèn)的問(wèn)題。對(duì)于大文件的存儲(chǔ),將首先使用文件分割算法對(duì)大文件進(jìn)行高效分割,切分為合適大小的文件分塊,提交給分布式存儲(chǔ)平臺(tái)進(jìn)行存儲(chǔ)。
對(duì)于大量小文件的讀取優(yōu)化,則借助分布式存儲(chǔ)平臺(tái)多副本、多分塊存儲(chǔ)的特點(diǎn),通過(guò)多存儲(chǔ)節(jié)點(diǎn)的并行多路下載,從而提升查詢和檢出效率。
多粒度檢出控制
Git協(xié)議的檢出主要針對(duì)整個(gè)版本庫(kù)特定版本進(jìn)行,難以按需實(shí)現(xiàn)對(duì)不同粒度代碼文件基于相應(yīng)權(quán)限進(jìn)行檢出控制,對(duì)代碼的檢出效率較低。
Hit協(xié)議以單個(gè)文件為最小檢出單位,然后基于文件之間的關(guān)系對(duì)不同層級(jí)文件夾進(jìn)行重構(gòu),實(shí)現(xiàn)對(duì)多粒度檢出的控制。在提交存儲(chǔ)時(shí),將代碼文件之間的關(guān)系以及文件權(quán)限信息記入代碼管理賬本。在進(jìn)行檢出時(shí),獲取文件存儲(chǔ)位置及各文件之間的關(guān)系,然后將符合權(quán)限要求的各文件下載到本地,并根據(jù)文件間關(guān)系重構(gòu)文件夾層級(jí)結(jié)構(gòu),實(shí)現(xiàn)多粒度按權(quán)限的文件檢出。
代碼文件可靠傳輸
HitChain基于分布式存儲(chǔ)平臺(tái)對(duì)代碼數(shù)據(jù)進(jìn)行存儲(chǔ)管理,并對(duì)數(shù)據(jù)文件進(jìn)行切割分塊存儲(chǔ),可以有效實(shí)現(xiàn)代碼文件的數(shù)據(jù)可靠傳輸,包括斷點(diǎn)續(xù)傳等。
在代碼文件下載傳輸過(guò)程發(fā)生斷網(wǎng)并在恢復(fù)網(wǎng)絡(luò)后重新進(jìn)行下載時(shí),并不需要對(duì)整個(gè)數(shù)據(jù)文件進(jìn)行重新下載,而僅需對(duì)部分未完整下載的文件分塊進(jìn)行下載。
具體過(guò)程為,首先對(duì)尚未下載到本地的文件分塊開(kāi)啟下載;然后,對(duì)已下載到本地的文件分塊,通過(guò)對(duì)文件內(nèi)容映射的哈希值的比較,判斷該文件分塊是否已經(jīng)完整下載,如果哈希值與預(yù)先存儲(chǔ)的哈希值完全一樣,則表明該分塊已完整下載,不需重新下載。否則,則表明該分塊未完整下載,則清除該分塊并重新下載。在所有分塊完成下載后,即可進(jìn)行重構(gòu)形成完整的數(shù)據(jù)文件。
3)跨鏈鑒權(quán)機(jī)制
HitChain的跨鏈鑒權(quán)機(jī)制包括用戶身份管理和版權(quán)鑒定兩個(gè)部分,以實(shí)現(xiàn)持續(xù)有效的代碼版權(quán)保護(hù)。
用戶身份管理
HitChain社區(qū)中每一位開(kāi)發(fā)者都對(duì)應(yīng)著唯一的身份信息,該身份信息用于標(biāo)識(shí)開(kāi)發(fā)者在社區(qū)內(nèi)的各項(xiàng)活動(dòng),如社區(qū)討論、交易、代碼創(chuàng)作等。同時(shí)開(kāi)發(fā)者身份信息也是用來(lái)保護(hù)開(kāi)發(fā)者勞動(dòng)成果原創(chuàng)性、侵權(quán)追責(zé)的重要依據(jù)。
在HitChain社區(qū)中,開(kāi)發(fā)者還可以圍繞相同的興趣或者目標(biāo)組成小團(tuán)體。在創(chuàng)建團(tuán)體時(shí),開(kāi)發(fā)者通過(guò)協(xié)商的方式指定團(tuán)體管理模式以及成員間的權(quán)益設(shè)定,如新成員是否需要通過(guò)邀請(qǐng)才能加入、團(tuán)體成員間是否可以無(wú)償共享資源等。
版權(quán)鑒定
HitChain為開(kāi)發(fā)者提交的每一份原創(chuàng)代碼生成ECC(Encrypt Copyright Certificate,加密版權(quán)認(rèn)證)證書作為它的唯一標(biāo)記。ECC證書是證明代碼原創(chuàng)性的重要依據(jù),能夠有效地支持代碼鑒權(quán)、授權(quán)、維權(quán)等服務(wù)。
ECC證書主要包含以下幾部分的信息:
代碼摘要:利用散列函數(shù),為每一段代碼生成固定長(zhǎng)度的哈希值作為代碼摘要。散列函數(shù)是輸入敏感的,它保證了不同的代碼片段很難映射為相同的代碼摘要值。
代碼作者:用戶在HitChain社區(qū)的賬戶信息作為代碼作者的身份標(biāo)識(shí),如果該段代碼還曾使用過(guò)其它開(kāi)發(fā)者的代碼,那么這里還會(huì)包含被使用代碼的ECC證書。
創(chuàng)建時(shí)間:使用UTC加蓋時(shí)間戳確保了版權(quán)登記時(shí)間的權(quán)威性和可靠性,先創(chuàng)作代碼并先申請(qǐng)的開(kāi)發(fā)者優(yōu)先對(duì)代碼獲取版權(quán)。
授權(quán)協(xié)議:代碼所有者可以指定其它開(kāi)發(fā)者以何種方式使用他的原創(chuàng)代碼,包括授權(quán)策略和具體實(shí)施方式等內(nèi)容。雙方在智能合約的作用下自動(dòng)履行授權(quán)協(xié)議,協(xié)議履行的效果被社區(qū)所接受和保證。
ECC證書存放在區(qū)塊鏈上,保證了公開(kāi)性、不可篡改性和可追溯性。任何開(kāi)發(fā)者可以隨時(shí)查看HitChain社區(qū)的代碼版權(quán)信息,但其所包含的內(nèi)容卻很難被人惡意篡改。根據(jù)其所包含的代碼授權(quán)記錄,開(kāi)發(fā)者還可以還原出完整的代碼使用(授權(quán))路徑。
在生成ECC證書前,為判定代碼的原創(chuàng)性,首先利用自然語(yǔ)言處理和抽象語(yǔ)法樹(shù)等技術(shù)對(duì)給定代碼進(jìn)行分析建模,抽取出其所包含的功能性代碼(如文件讀取、數(shù)據(jù)庫(kù)訪問(wèn))和業(yè)務(wù)邏輯代碼,然后從多粒度和多維度計(jì)算它與已登記的版權(quán)代碼進(jìn)行比對(duì),從而判斷提交的代碼是否存在侵權(quán)問(wèn)題。
4)MTSM-多任務(wù)并行狀態(tài)機(jī)
MTSM(Mutlti-Task State Machine)狀態(tài)機(jī)是HitChain獨(dú)創(chuàng)的多任務(wù)并行狀態(tài)機(jī)技術(shù),其核心任務(wù)是保證開(kāi)源托管代碼系統(tǒng)的代碼安全性、鑒權(quán)業(yè)務(wù)、Hit網(wǎng)絡(luò)安全等。
MTSM狀態(tài)機(jī)與HitChain系統(tǒng)并行運(yùn)行,實(shí)時(shí)監(jiān)測(cè)HitChain系統(tǒng)安全,確保Hit網(wǎng)絡(luò)數(shù)據(jù)輸入輸出的合法性,同時(shí)提供源代碼鑒權(quán)服務(wù)。
MTSM狀態(tài)機(jī)重點(diǎn)完成以下三個(gè)任務(wù):
① 代碼安全管理
MTSM狀態(tài)機(jī)采用一種基于肯定選擇分類算法的惡意代碼檢測(cè)機(jī)制,在后臺(tái)實(shí)時(shí)對(duì)Hit碎片化代碼庫(kù)進(jìn)行監(jiān)測(cè)。代碼輸入后,MTSM狀態(tài)機(jī)將樣本文件轉(zhuǎn)換成十六進(jìn)制格式,提取樣本文件的所有n-gram,計(jì)算具有最大信息增益的N個(gè)n-gram詞頻,然后做歸一化處理。該算法優(yōu)化了分類器訓(xùn)練過(guò)程,優(yōu)于樸素貝葉斯、貝葉斯網(wǎng)絡(luò)算法,支持向量機(jī)和決策樹(shù)等算法。
② 代碼鑒權(quán)服務(wù)
MTSM狀態(tài)機(jī)后臺(tái)實(shí)時(shí)對(duì)鏈上代碼庫(kù)進(jìn)行動(dòng)態(tài)掃描,采用BP神經(jīng)網(wǎng)絡(luò)等多種技術(shù),檢測(cè)鏈上代碼相似性。其中,人工神經(jīng)網(wǎng)絡(luò)試模擬人腦生物過(guò)程的人工智能技術(shù),由大量的神經(jīng)元互連形成復(fù)雜的非線性系統(tǒng)。誤差反向傳播(BP)神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)輸入和輸出間的任意非線性映射,其核心思想是將代碼轉(zhuǎn)化為神經(jīng)智能網(wǎng)絡(luò)的輸入向量,通過(guò)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí),檢測(cè)代碼之間的相似性,從而給出代碼鑒權(quán)建議或結(jié)論。
③ 安全沙箱監(jiān)測(cè)
通過(guò)延時(shí)檢測(cè)鏈上賬本、鏈上節(jié)點(diǎn)等交易記錄,MTSM狀態(tài)機(jī)可有效分析出節(jié)點(diǎn)的活躍特征和交易記錄的合法性。當(dāng)發(fā)現(xiàn)交易記錄非法或惡意節(jié)點(diǎn)時(shí),MTSM狀態(tài)機(jī)將采用事件驅(qū)動(dòng)機(jī)制,通知共識(shí)節(jié)點(diǎn),及時(shí)剔除非法賬本(不可篡改的賬本除外),并將惡意欺騙節(jié)點(diǎn)從網(wǎng)絡(luò)中刪除。
4.HitChain應(yīng)用生態(tài)
HitChain提供了一系列的客戶端應(yīng)用軟件。利用這些軟件開(kāi)發(fā)者可以方便快捷地參與社區(qū)的各項(xiàng)活動(dòng)。
在線社區(qū)平臺(tái)
HitChain在線社區(qū)平臺(tái)支持開(kāi)展社區(qū)運(yùn)營(yíng)、資產(chǎn)管理及用戶交互等三類活動(dòng)。各自的具體內(nèi)涵如下:
社區(qū)運(yùn)營(yíng)
公開(kāi)透明的社區(qū)運(yùn)行模式是HitChain成長(zhǎng)為一個(gè)健康的共治社區(qū)的重要前提,社區(qū)委員會(huì)的各項(xiàng)事務(wù)均在線上公開(kāi)進(jìn)行,開(kāi)發(fā)者對(duì)社區(qū)發(fā)展的建議和意見(jiàn)也都集中反饋到在線平臺(tái)上。
資產(chǎn)管理
開(kāi)發(fā)者可以在在線平臺(tái)管理個(gè)人資產(chǎn),還可以與其他開(kāi)發(fā)者進(jìn)行線上交易。開(kāi)發(fā)者在使用資產(chǎn)服務(wù)前需要進(jìn)行個(gè)人身份驗(yàn)證,以保證資產(chǎn)賬號(hào)的真實(shí)性和安全性。安全可靠的資產(chǎn)服務(wù)是保障開(kāi)發(fā)者合法權(quán)益的必要措施。
用戶交互
基于在線平臺(tái),開(kāi)發(fā)者之間可以開(kāi)展一系列的交互活動(dòng),例如以眾籌和懸賞的形式為某個(gè)新穎的創(chuàng)意和復(fù)雜的任務(wù)提供解決方案。豐富多樣的用戶交互渠道是充分發(fā)揮和利用開(kāi)發(fā)者才智、發(fā)掘隱藏在社區(qū)中群體力量的有效手段。
資源共享管理系統(tǒng)
HitChain把開(kāi)發(fā)者的源代碼通過(guò)分布式的形式存儲(chǔ)在全網(wǎng),有貢獻(xiàn)意愿的開(kāi)發(fā)者通過(guò)資源共享管理系統(tǒng)來(lái)共享自己本地的計(jì)算資源。該系統(tǒng)提供圖形化和命令行形式的管理工具,輔助開(kāi)發(fā)者完成對(duì)共享空間和共享帶寬的設(shè)置和調(diào)整。
Hit客戶端
開(kāi)發(fā)者使用Hit客戶端在本地完成代碼提交、同步等操作。Hit基于Git開(kāi)發(fā),是對(duì)Git協(xié)議的一次重大改善和升級(jí),它被設(shè)計(jì)為是Git用戶友好的協(xié)議,兼容Git協(xié)議的絕大部分命令,Git用戶幾乎可以零成本地采用Hit。
HitChain經(jīng)濟(jì)模型
HitChain是基于開(kāi)源理念和區(qū)塊鏈技術(shù)的全球開(kāi)源應(yīng)用新生態(tài)社區(qū),其核心本質(zhì)是圍繞開(kāi)源應(yīng)用重新定義的商業(yè)價(jià)值體系。這個(gè)商業(yè)體系,由開(kāi)發(fā)者共建、為開(kāi)發(fā)者服務(wù)、使開(kāi)發(fā)者謀利。
HitChain的經(jīng)濟(jì)模型包含3個(gè)主要的價(jià)值流轉(zhuǎn)場(chǎng)景,具體包括:個(gè)人閑置計(jì)算資源的共享獎(jiǎng)勵(lì)、社區(qū)貢獻(xiàn)的公共獎(jiǎng)勵(lì)、以及社區(qū)成員勞動(dòng)成果的自由交易。前兩個(gè)為代幣的主要來(lái)源, 最后一個(gè)是代幣流通的主要場(chǎng)景。
1.代幣體系
HitChain基本商業(yè)元素包括開(kāi)發(fā)者、礦工、開(kāi)源軟件用戶、開(kāi)源應(yīng)用服務(wù)機(jī)構(gòu)、證書頒發(fā)機(jī)構(gòu)、第三方組件開(kāi)發(fā)者、商業(yè)合作伙伴等。在HitChain系統(tǒng)中,所有社區(qū)參與者都是去中心化的共治者:參與者在既定的商業(yè)規(guī)則下共同完成開(kāi)源托管相關(guān)業(yè)務(wù)活動(dòng),包括代碼托管、版權(quán)管理、眾籌打賞、付費(fèi)使用、基礎(chǔ)網(wǎng)絡(luò)建設(shè)、資源共享等。
執(zhí)行商業(yè)模型、完成價(jià)值流轉(zhuǎn)的核心協(xié)調(diào)機(jī)制就是代幣。為實(shí)現(xiàn)這一目的,HitChain采用雙代幣機(jī)制,代幣分為基礎(chǔ)代幣和燃料代幣兩種:
基礎(chǔ)代幣用于以下場(chǎng)景:
C2C Trade 支付HitChain常規(guī)業(yè)務(wù)的費(fèi)用,包括代碼托管、版權(quán)管理、眾籌打賞、付費(fèi)使用等。
Copyright Authorization HitChain用戶之間的價(jià)值流轉(zhuǎn)。
Voting Right 社區(qū)選舉投票權(quán)的權(quán)重核定與價(jià)值持有憑證。
Code Hosting 當(dāng)燃料代幣不足以支付時(shí),自動(dòng)轉(zhuǎn)換成燃料代幣,以確保完成交易。
燃料代幣用于以下場(chǎng)景:
Mining Reward 礦工提供基礎(chǔ)網(wǎng)絡(luò)設(shè)施和交易確認(rèn)的賬本費(fèi)用。
Resource Reward P2P資源共享者所收取的資源費(fèi)用。
Advanced Service 用戶使用高級(jí)功能所需要支付的服務(wù)費(fèi)用。
需要注明:HitChain公鏈上線前,為保證HitChain社區(qū)積極、高效地運(yùn)營(yíng)實(shí)施,社區(qū)實(shí)行基于以太坊的ERC20代幣HIT,以激勵(lì)社區(qū)健康成長(zhǎng)。HIT代幣作為一種社區(qū)貢獻(xiàn)的價(jià)值持有憑證,用于前期社區(qū)獎(jiǎng)勵(lì)、運(yùn)營(yíng)推廣,主鏈上線后,按照一比一的比率兌換為HitChain原生代幣。
2.價(jià)值核定與分配
HitChain完全采取去中心化的分布式計(jì)算模式,因此在計(jì)算資源基礎(chǔ)設(shè)施建設(shè)方面,社區(qū)鼓勵(lì)參與者積極貢獻(xiàn)出自己空閑的存儲(chǔ)空間、CPU或GPU計(jì)算資源和網(wǎng)絡(luò)帶寬,從而從根本上保障HitChain社區(qū)整體的信息處理能力。為了激勵(lì)參與者積極主動(dòng)進(jìn)行貢獻(xiàn),社區(qū)將采取“貢獻(xiàn)早收益早,貢獻(xiàn)大收益大”的基本原則對(duì)資源貢獻(xiàn)者進(jìn)行獎(jiǎng)勵(lì)。從時(shí)間維度上來(lái)說(shuō),如果社區(qū)參與者早期貢獻(xiàn)出一定量的計(jì)算資源,則其獲得的獎(jiǎng)勵(lì)會(huì)比之后貢獻(xiàn)出同等價(jià)值資源的參與者要高。同樣的,從貢獻(xiàn)價(jià)值來(lái)說(shuō),貢獻(xiàn)的資源稀缺性越高、資源量越大,則其獲得的獎(jiǎng)勵(lì)越高。具體來(lái)說(shuō), 社區(qū)對(duì)于某個(gè)貢獻(xiàn)者在時(shí)刻t(如2018年1月1日,12:00)貢獻(xiàn)的某類資源r(如300M存儲(chǔ)空間) 對(duì)應(yīng)的獎(jiǎng)勵(lì)公式如下所示:
3.社區(qū)貢獻(xiàn)激勵(lì)機(jī)制
HitChain要打造一個(gè)徹底由開(kāi)發(fā)者締造、被開(kāi)發(fā)者共有、為開(kāi)發(fā)者謀利的共治社區(qū)。因此,社區(qū)要對(duì)積極參與社區(qū)公共建設(shè)的參與者給予獎(jiǎng)勵(lì)。目前,我們考慮兩種最直接的社區(qū)公共貢獻(xiàn)行為:貢獻(xiàn)出優(yōu)質(zhì)的軟件項(xiàng)目和提出了促進(jìn)社區(qū)良性發(fā)展的意見(jiàn)。
1)內(nèi)容共治激勵(lì)
如同優(yōu)秀的書籍對(duì)于圖書市場(chǎng)、優(yōu)秀車型對(duì)于汽車市場(chǎng)一樣,優(yōu)秀的軟件項(xiàng)目是開(kāi)發(fā)者社區(qū)良性生態(tài)構(gòu)建與發(fā)展的基石。直至今日,無(wú)論是商業(yè)軟件還是開(kāi)源軟件都已經(jīng)數(shù)十年的蓬勃發(fā)展,軟件市場(chǎng)已經(jīng)積累了種類繁多但質(zhì)量又參差不齊的軟件項(xiàng)目。因此,HitChain為了吸引優(yōu)質(zhì)的軟件項(xiàng)目遷移到本社區(qū),將根據(jù)項(xiàng)目的優(yōu)質(zhì)程度發(fā)放獎(jiǎng)勵(lì)貨幣,其中軟件項(xiàng)目的優(yōu)質(zhì)程度可從傳播效應(yīng)、項(xiàng)目成熟度、代碼健康度、開(kāi)發(fā)團(tuán)隊(duì)健康度,和項(xiàng)目發(fā)展趨勢(shì)五個(gè)維度進(jìn)行度量,具體指標(biāo)如下表所示。
由于高維空間難以清晰的展示和表達(dá)上述思想,在此我們以2個(gè)維度,即代碼健康度和團(tuán)隊(duì)健康度為例,簡(jiǎn)述本方法的基本思想。假設(shè)我們有兩個(gè)被遷移項(xiàng)目P1和P2,其中P1的代碼健康度為0.6、團(tuán)隊(duì)健康度為0.3,項(xiàng)目P2的代碼健康度為0.4、團(tuán)隊(duì)健康度為0.6。在二維空間中,P1可表示為坐標(biāo)(0.6,0.3),P2坐標(biāo)為(0.4,0.6),繪圖表示后P1的曲面函數(shù)可表示成藍(lán)色平面,P2為紅色平面。因此,P1的優(yōu)質(zhì)程度為藍(lán)色平面面積對(duì)應(yīng)的值,P2項(xiàng)目的優(yōu)質(zhì)程度為紅色平面面積對(duì)應(yīng)的值,即兩個(gè)項(xiàng)目的優(yōu)質(zhì)程度被量化表示。同理,在高維空間中,項(xiàng)目的優(yōu)質(zhì)程度可對(duì)應(yīng)曲面下體積,具體量化數(shù)值可通過(guò)雙重積分求得。
2)社區(qū)建設(shè)激勵(lì)
HitChain的理念是充分的民主化,鼓勵(lì)社區(qū)中的每一位成員對(duì)社區(qū)的現(xiàn)狀和發(fā)展提出自己的意見(jiàn)和建議。意見(jiàn)征集模式類似于頭腦風(fēng)暴,針對(duì)社區(qū)中某一問(wèn)題,社區(qū)全體成員行動(dòng)起來(lái)一起貢獻(xiàn)意見(jiàn)和建議。作為對(duì)參與用戶的回報(bào),社區(qū)會(huì)拿出一部分電子貨幣作為獎(jiǎng)勵(lì)。獎(jiǎng)勵(lì)的發(fā)放采取后驗(yàn)?zāi)P停瓷鐓^(qū)會(huì)對(duì)征集到的意見(jiàn)進(jìn)行多輪篩選,通過(guò)對(duì)可行性和有效性等多維度的考量,選出少數(shù)幾個(gè)較優(yōu)秀的方案進(jìn)行實(shí)現(xiàn)并評(píng)估;最后,社區(qū)根據(jù)各種解決方案的實(shí)際效果進(jìn)行獎(jiǎng)勵(lì),具體的獎(jiǎng)勵(lì)計(jì)算公式如下:
其中T是對(duì)意見(jiàn)的實(shí)際應(yīng)用效果的觀察窗口期,比如社區(qū)可以規(guī)定以一個(gè)月或三個(gè)月為周期對(duì)其效果進(jìn)行觀察。E是在第T個(gè)觀察窗口期內(nèi),被觀察意見(jiàn)所取得的效益值。比如,由于某位開(kāi)發(fā)者的意見(jiàn),社區(qū)改進(jìn)了平臺(tái)服務(wù)而吸引了越來(lái)越多的用戶。假如社區(qū)指定每增加一個(gè)新用戶就獎(jiǎng)勵(lì)意見(jiàn)提供者一個(gè)單位的代幣,那么一個(gè)觀察期內(nèi)新增加的用戶數(shù)就是該意見(jiàn)在該觀察期內(nèi)所取得的總效益值。該方案會(huì)使得那些能夠產(chǎn)生長(zhǎng)期效益的意見(jiàn)持續(xù)性地獲得越來(lái)越豐厚的獎(jiǎng)勵(lì)。
4.開(kāi)發(fā)者價(jià)值模型
開(kāi)發(fā)者可以在HitChain進(jìn)行開(kāi)發(fā)者之間的C2C交易,常見(jiàn)的交易場(chǎng)景如下:
代碼交易
當(dāng)開(kāi)發(fā)者想要使用他人的原創(chuàng)代碼時(shí),他需要接受該代碼的授權(quán)協(xié)議并付費(fèi)。代碼授權(quán)方式可以有兩種可選策略:(a)先付費(fèi)后使用(Pay Then Use, PTU),代碼使用者一次性付清代碼所有者要求的Hit幣。付費(fèi)完成之后,代碼使用者后續(xù)對(duì)該段代碼的任何應(yīng)用和盈利等行為與代碼所有者不再有任何關(guān)聯(lián)。(b)先盈利后付費(fèi)(Earn Then Pay, ETP),代碼的直接使用行為不收取Hit幣,只有在使用者利用該段代碼獲利后,代碼使用者才需要向代碼所有者支付Hit幣。
任務(wù)懸賞
開(kāi)發(fā)者遇到難題時(shí),可以在社區(qū)發(fā)布懸賞任務(wù)并提供獎(jiǎng)勵(lì)金,提供解決方案的用戶依據(jù)規(guī)則獲取相應(yīng)的獎(jiǎng)勵(lì)金。獎(jiǎng)勵(lì)金的發(fā)放有兩種方式:(a)只有一名勝出者獲得全部獎(jiǎng)勵(lì)金,該勝出者由任務(wù)發(fā)布者從提供正確解決方案的用戶中選擇,或者由平臺(tái)通過(guò)多維指標(biāo)評(píng)判出最優(yōu)解決方案;(b)由全部提供正確解決方案的用戶所共享,每位用戶獲得的獎(jiǎng)勵(lì)金份額為:M?2n,其中M是總的獎(jiǎng)勵(lì)金額,n表示該用戶是第幾個(gè)提供解決方案的,即越快提供正確解決方案,獲得的獎(jiǎng)勵(lì)金額就越多。
咨詢服務(wù)
開(kāi)發(fā)者還可以通過(guò)向?qū)<易稍兊耐緩絹?lái)解決自己的問(wèn)題,具體的收費(fèi)由被咨詢的專家指定。由于每個(gè)開(kāi)發(fā)者的能力和收費(fèi)標(biāo)準(zhǔn)都公開(kāi)在社區(qū),開(kāi)發(fā)者可以根據(jù)實(shí)際需求做出最經(jīng)濟(jì)的選擇。
資訊訂閱
開(kāi)發(fā)者為保持對(duì)相關(guān)領(lǐng)域最新動(dòng)態(tài)的持續(xù)關(guān)注,他可以訂閱領(lǐng)域內(nèi)權(quán)威開(kāi)發(fā)者或者活躍開(kāi)發(fā)者的動(dòng)態(tài),以第一時(shí)間獲取相關(guān)技術(shù)的發(fā)展趨勢(shì)和線上線下講座等信息。訂閱費(fèi)用由被訂閱者指定可以采用月費(fèi)、季費(fèi)、年費(fèi)的形式。
社交互動(dòng)
基于社區(qū)平臺(tái),開(kāi)發(fā)者可以開(kāi)展一系列的泛社交互動(dòng),在社交互動(dòng)中開(kāi)發(fā)者可以方便地進(jìn)行各種形式的交易。如開(kāi)發(fā)者在平臺(tái)直播寫代碼時(shí),觀看者可以根據(jù)自己的喜好進(jìn)行打賞,而打賞金額由打賞者隨意支付。
項(xiàng)目協(xié)同
HitChain提供一種去中心化的項(xiàng)目協(xié)同解決方案,便于開(kāi)源項(xiàng)目在自治型環(huán)境中公平、透明地完成。任何達(dá)到一定信譽(yù)權(quán)重閾值的社區(qū)用戶,都可以成為項(xiàng)目發(fā)起人,召集社區(qū)開(kāi)發(fā)者為其服務(wù),通過(guò)代幣形式回饋任務(wù)開(kāi)發(fā)者。
評(píng)論
查看更多