項(xiàng)目的特點(diǎn)
1. 共識(shí)協(xié)議:DDPOS。高TPS,兼顧精英治理與大眾普選,避免成為少數(shù)人的專政。
2. 完善的系統(tǒng)升級(jí)機(jī)制:區(qū)塊鏈系統(tǒng)的每次升級(jí)即是一次硬分叉。由于各種原因,部分用戶選擇不更新客戶端,因此和升級(jí)后的客戶端失去共識(shí),造成系統(tǒng)價(jià)值的損失。Genesis將投票功能built in客戶端,系統(tǒng)升級(jí)在系統(tǒng)中多數(shù)人達(dá)成共識(shí)后自動(dòng)進(jìn)行,保證了系統(tǒng)升級(jí)的時(shí)候的價(jià)值得以延續(xù)。
3. DApp Store(1.0版):傳統(tǒng)的區(qū)塊鏈主鏈像windows一樣,開發(fā)者開發(fā)的DApp散落無(wú)組織。 Genesis中有一個(gè)DApp store作為面對(duì)普通用戶的入口,開發(fā)者和用戶都必須遵守一定的規(guī)則和監(jiān)管。作為一個(gè)去中心的自制社區(qū),這個(gè)監(jiān)管由社區(qū)自行投票擬定。最初的原始規(guī)則采用類似reddit的排名機(jī)制(基于用戶投票排名)。
4. 自帶存儲(chǔ)側(cè)鏈:目前市面上的公鏈大都不具備存儲(chǔ)能力。Storj和siacoin之類 雖然允許開發(fā)者存儲(chǔ)數(shù)據(jù),但是這些鏈設(shè)計(jì)復(fù)雜,更適合于專業(yè)的去中心存儲(chǔ)場(chǎng)景。Genesis存儲(chǔ)側(cè)鏈自帶數(shù)據(jù)存儲(chǔ)的經(jīng)濟(jì)體系,開發(fā)者可以直接調(diào)用來(lái)開發(fā)需要存儲(chǔ)大量數(shù)據(jù)的應(yīng)用。
5. 開發(fā)進(jìn)度30%:基于Rust開發(fā),系統(tǒng)編程、安全、并發(fā)、高效。Framework鏈計(jì)劃于2018年9月測(cè)試,主網(wǎng)testnet計(jì)劃于2018年12月上線。
6. 和其他主鏈項(xiàng)目的對(duì)比:Genesis作為一條公鏈,通過(guò)側(cè)鏈實(shí)現(xiàn)擴(kuò)展,和現(xiàn)有的公鏈的對(duì)比如下:
?
項(xiàng)目的目標(biāo)
我們希望最終Genesis要打造的不僅僅是一個(gè)區(qū)塊鏈基礎(chǔ)鏈,更是John Barlow 夢(mèng)想中的,能實(shí)現(xiàn)DAO治理的理想國(guó),一個(gè)全新的,完全獨(dú)立自治的,不受任何中心化權(quán)威控制的互聯(lián)網(wǎng)虛擬世界,一個(gè)未來(lái)將顛覆所有現(xiàn)有社交網(wǎng)絡(luò)和互聯(lián)網(wǎng)生產(chǎn)關(guān)系的互聯(lián)網(wǎng)空間。
Genesis系統(tǒng)介紹
出發(fā)點(diǎn)
用戶為社交平臺(tái)貢獻(xiàn)了大量的內(nèi)容,成就了臉書等社交平臺(tái)的巨大成功。然而,用戶提交的內(nèi)容所產(chǎn)生的收益大部分被這些平臺(tái)拿走,并沒(méi)有分享給這些用戶。實(shí)際上,用戶只有這些社交平臺(tái)的使用權(quán),沒(méi)有所有權(quán)。Genesis用區(qū)塊鏈技術(shù)打造一個(gè)去中心的社區(qū)。社區(qū)所有內(nèi)容由全體用戶擁有,社區(qū)的規(guī)則也由用戶自己制定。社區(qū)依托于一條高性能的公鏈,用戶可以通過(guò)在其上發(fā)布的各種去中應(yīng)用來(lái)實(shí)現(xiàn)各種功能和場(chǎng)景。
治理機(jī)制
Genesis用區(qū)塊鏈技術(shù)打造一個(gè)去中心的社區(qū)。社區(qū)所有內(nèi)容由全體用戶擁有,社區(qū)的規(guī)則也由用戶自己制定。Genesis的核心治理原則為“自治”, 用戶參與自治最重要的工具是“投票”。
Genesis里有下面這些核心對(duì)象:
1. 人
Genesis系統(tǒng)里的第一要素是人,也就是用戶。Genesis由共享同一用戶系統(tǒng)的一條主鏈和多條側(cè)鏈組成。Genesis中的用戶可分為普通用戶、地主和元老三種。其中地主負(fù)責(zé)維護(hù)一個(gè)云盤,而元老負(fù)責(zé)維護(hù)整個(gè)區(qū)塊鏈系統(tǒng)。
Genesis的用戶具有如下特點(diǎn):
● 用戶名無(wú)需注冊(cè),生成私鑰/公鑰即可以使用。
● 出生紙:用戶激活時(shí),設(shè)定一個(gè)僅自己知道的字符串,用于被質(zhì)疑時(shí)驗(yàn)證身份。
● 投票權(quán):每個(gè)用戶都有投票權(quán)利,用于對(duì)各種事件作出選擇。
Genesis的用戶在系統(tǒng)里有不同角色,例如:
● 元老 Block Producer:元老負(fù)責(zé)對(duì)全網(wǎng)數(shù)據(jù)進(jìn)行共識(shí)維護(hù)。
● 地主 Landholder:地主負(fù)責(zé)以Merkle Tree的形式維護(hù)一個(gè)云盤。
● 普通用戶 Users:普通用戶可以從市場(chǎng)購(gòu)買應(yīng)用并且參與投票等。
2. 貨幣
Genesis系統(tǒng)流通的貨幣叫Gencoin或者創(chuàng)世幣。創(chuàng)世幣是驅(qū)動(dòng)Genesis生態(tài)系統(tǒng)的動(dòng)力。
獲得創(chuàng)世幣渠道:
● 普通用戶:
○ 保持在線狀態(tài)會(huì)有機(jī)會(huì)獲得創(chuàng)世幣
○ 用戶的事件記錄被應(yīng)用端程序調(diào)用時(shí)會(huì)獲得創(chuàng)世幣
○ 參與投票等活動(dòng)會(huì)獲得發(fā)起投票的人所附上的獎(jiǎng)勵(lì)
○ 創(chuàng)造出有用的內(nèi)容
○ 創(chuàng)建應(yīng)用程序并發(fā)布在應(yīng)用商店上
● 地主:維護(hù)云盤獲得創(chuàng)世幣
● 元老:維護(hù)區(qū)塊鏈共識(shí)機(jī)制等獲得創(chuàng)世幣
消耗創(chuàng)世幣的渠道:
● 應(yīng)用端程序每次獲得用戶授權(quán)需要消耗創(chuàng)世幣
● 普通用戶:
○ 發(fā)起投票等活動(dòng)可能會(huì)消耗創(chuàng)世幣
○ 使用應(yīng)用程序或購(gòu)買應(yīng)用程序內(nèi)的功能
類似EOS的模式,基本上任何需要消耗計(jì)算力的事件都需要用創(chuàng)世幣做抵押,這樣可以有效防止Ddos攻擊。 以下是Genesis創(chuàng)世幣的經(jīng)濟(jì)關(guān)系圖:
3. 市場(chǎng)
市場(chǎng)(Genesis Market/DApp store)是DApp的交易場(chǎng)所,也叫應(yīng)用商店。在這里,普通用戶可以找到所有在Genesis生態(tài)圈里的應(yīng)用。用戶通過(guò)對(duì)這些應(yīng)用的下載和使用來(lái)實(shí)現(xiàn)其在Genesis虛擬世界的各項(xiàng)生活需求。對(duì)于開發(fā)者來(lái)說(shuō),這里是他們發(fā)布應(yīng)用并獲取收入的場(chǎng)所。
4. 憲法
Genesis允許用戶簽訂共同希望遵守的協(xié)議,即憲法(如果是少數(shù)用戶直接的協(xié)議,則叫法律)。憲法是系統(tǒng)的最高規(guī)則,所有用戶和活動(dòng)必須遵守憲法。憲法由大法官來(lái)負(fù)責(zé)發(fā)起投票動(dòng)議,并且由全體用戶投票的方式來(lái)更新。
5. 投票
通過(guò)投票來(lái)參與到管理是Genesis的核心治理原則。用戶的投票權(quán)作為核心機(jī)制寫在區(qū)塊鏈里。系統(tǒng)運(yùn)行之后,算法成為基本邏輯的堅(jiān)定執(zhí)行者,任何一種全局性改變都需要群體通過(guò)投票的來(lái)決定。投票的機(jī)制是Genesis演化和用戶自治的核心手段。區(qū)塊鏈中記錄的不可篡改的特點(diǎn)讓Genesis里的投票具有絕對(duì)的公信力,因此集體通過(guò)投票達(dá)到的系統(tǒng)進(jìn)化即可以代表大多數(shù)用戶的意愿。
Genesis主要通過(guò)用戶投票的機(jī)制完成對(duì)自身協(xié)議的更新, 實(shí)現(xiàn)進(jìn)化。對(duì)于程序無(wú)法處理的邏輯,Genesis通過(guò)人工投票來(lái)完成決策。例如軟件出現(xiàn)bug,必須更新的情況,即可由系統(tǒng)里的任何一個(gè)人提出動(dòng)議,并且附上更新后的版本以及愿意為該動(dòng)議支付的貨幣,其它人用投票方式表決是否接受新版本。Genesis中投票應(yīng)用廣泛,還可以用于仲裁用戶之間的糾紛等場(chǎng)合。
Genesis的區(qū)塊鏈技術(shù)
Genesis的共識(shí)機(jī)制
Genesis項(xiàng)目在發(fā)展過(guò)程中,設(shè)計(jì)過(guò)兩種共識(shí)機(jī)制。第一種是將POW的算力用于數(shù)據(jù)模型訓(xùn)練的POC(Proof of Comprehension)共識(shí)。第二種是民主代理人權(quán)益證明 DDPOS(Democratic Delagated Proof of Stake)共識(shí)。兩種機(jī)制都為Genesis團(tuán)隊(duì)原創(chuàng)并申請(qǐng)專利。POC作為Genesis共識(shí)的最初版本,將被做成一個(gè)DApp放在側(cè)鏈。目前Genesis采用第二種共識(shí)機(jī)制,即DDPOS。
1.0版:POC(Proof of Comprehension)
POC(Proof of Comprehension)是一種基于POW的改良。傳統(tǒng)區(qū)塊鏈工作量證明POW是一個(gè)復(fù)雜的加密機(jī)制, 當(dāng)?shù)V工節(jié)點(diǎn)試圖去制造一個(gè)區(qū)塊時(shí), 會(huì)將若干筆交易通過(guò)hash算法進(jìn)行加密,來(lái)形成一個(gè)符合協(xié)議的字符串。這個(gè)加密的過(guò)程會(huì)消耗幾乎100%的cpu運(yùn)算量以及時(shí)間,加密出來(lái)的字符串被稱為解。傳統(tǒng)POW機(jī)制產(chǎn)生的解是無(wú)意義的,其好壞只由反映出區(qū)塊鏈的健壯性的特定序列的長(zhǎng)度來(lái)決定。
眾所周知基于深度學(xué)習(xí)的人工智能算法近些年在包括語(yǔ)音識(shí)別,圖像識(shí)別等領(lǐng)域都取得了突破性進(jìn)展。而訓(xùn)練深度學(xué)習(xí)模型需要消耗大量的算力,可以說(shuō)算力的堆積對(duì)于深度學(xué)習(xí)模型的效果有著決定性的作用。由于GPU等高性能計(jì)算設(shè)備價(jià)格昂貴且在市場(chǎng)上經(jīng)常供不應(yīng)求,而算力的缺乏成為了學(xué)術(shù)界和工業(yè)界搭建更優(yōu)秀深度學(xué)習(xí)系統(tǒng)的瓶頸之一。
Genesis將區(qū)塊鏈加密所必須的工作量證明和深度學(xué)習(xí)進(jìn)行了有機(jī)結(jié)合。不同于傳統(tǒng)的POW方法僅僅依賴于算力的多少來(lái)進(jìn)行工作量證明,我們通過(guò)驗(yàn)證礦工使用算力訓(xùn)練所得到的深度模型的有效性來(lái)判斷其工作量,這也就是所謂的POC(Proof of Comprehension)。鑒于之前我們提到的模型有效性與算力之間的正比關(guān)系,因此礦工所訓(xùn)練深度模型的有效性可以作為其工作量的證明,同時(shí),挖礦的過(guò)程最終將締造出強(qiáng)大的人工智能系統(tǒng),使整個(gè)求解的過(guò)程具有實(shí)際意義,解決了傳統(tǒng)POW算力浪費(fèi)的問(wèn)題并且為Genesis提供了一個(gè)極其廣闊的應(yīng)用空間。
Genesis的Proof of Comprehension 本質(zhì)上是一個(gè)具有自動(dòng)學(xué)習(xí)和理解能力的人工智能機(jī)制。POC在不斷的數(shù)據(jù)訓(xùn)練中會(huì)變得更強(qiáng)大和聰明,讓Genesis的共識(shí)過(guò)程更高速,單位時(shí)間內(nèi)處理更多交易。不同于大多數(shù)區(qū)塊鏈項(xiàng)目,Genesis單位時(shí)間處理交易的次數(shù)tps是隨著系統(tǒng)的進(jìn)化動(dòng)態(tài)增加的一個(gè)指標(biāo),隨著使用人數(shù)和處理數(shù)據(jù)越多,系統(tǒng)tps反而會(huì)越大。
另外一方面,隨著Genesis訓(xùn)練的數(shù)據(jù)越多,Genesis將有能力理解更多人類邏輯,從而未來(lái)系統(tǒng)有可能進(jìn)入到其它需要大量運(yùn)算力的領(lǐng)域,前景非常廣闊。需要強(qiáng)調(diào)的是,Genesis 的POC共識(shí)機(jī)制僅僅會(huì)放在側(cè)鏈上作為一個(gè)DApp運(yùn)行。
Genesis的POC機(jī)制是Genesis團(tuán)隊(duì)原創(chuàng),已經(jīng)申請(qǐng)專利。POC的詳細(xì)實(shí)現(xiàn)流程如下:
數(shù)據(jù)獲取和模型輸出
數(shù)據(jù)通過(guò)DApp store里的DApps輸入Genesis。第三方的應(yīng)用程序開發(fā)團(tuán)隊(duì)可以在Genesis現(xiàn)有的基礎(chǔ)上進(jìn)行DApps的開發(fā),并通過(guò)這些DApps提供個(gè)人或者實(shí)體上傳數(shù)據(jù)的渠道。同時(shí)數(shù)據(jù)提供者也通過(guò)DApps獲得補(bǔ)償。
數(shù)據(jù)進(jìn)來(lái)Genesis后,將會(huì)被存在一個(gè)分布式的文件存儲(chǔ)系統(tǒng)。Genesis中,每一個(gè)farmer都是一個(gè)數(shù)據(jù)資源的維護(hù)者,而所有的farmer的集群可以看作是一個(gè)由所有farmer共同維護(hù)的可實(shí)時(shí)擴(kuò)充的分布式文件存儲(chǔ)系統(tǒng)。
數(shù)據(jù)經(jīng)過(guò)POC訓(xùn)練后,通過(guò)DApp輸出結(jié)果。
數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)在Genesis中被存儲(chǔ)在一個(gè)虛擬數(shù)據(jù)中心當(dāng)中供下一步POC使用。
1. 虛擬數(shù)據(jù)中心
Genesis系統(tǒng)中用于存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)被稱為存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)和普通節(jié)點(diǎn)使用一樣的地址空間。數(shù)據(jù)集將以碎片的形式復(fù)制并分散到不同的存儲(chǔ)節(jié)點(diǎn)上。 存儲(chǔ)節(jié)點(diǎn)的集群被稱為虛擬數(shù)據(jù)中心。每當(dāng)用戶提交transaction時(shí), 該用戶將會(huì)和虛擬數(shù)據(jù)中心的若干節(jié)點(diǎn)簽訂存儲(chǔ)合約來(lái)租賃數(shù)據(jù)中心的存儲(chǔ)空間。該技術(shù)將確保Genesis的可擴(kuò)容性和數(shù)據(jù)一致性。
2. 默克爾樹
默克爾樹常用于不可信源數(shù)據(jù)驗(yàn)證。 默克爾樹有如下特征:
● 默克爾樹的葉子節(jié)點(diǎn)上的值為等長(zhǎng)數(shù)據(jù)塊。
● 非葉子節(jié)點(diǎn)的value是根據(jù)它下面所有的葉子節(jié)點(diǎn)值,然后按照一定的HASH算法計(jì)算而得出的。如果非葉子節(jié)點(diǎn)的子節(jié)點(diǎn)也同為非葉子節(jié)點(diǎn),該非葉子節(jié)點(diǎn)的值由其子節(jié)點(diǎn)的值組合后HASH加密后得到。
● 用戶會(huì)以默克爾樹的一個(gè)分支路徑進(jìn)行數(shù)據(jù)同步。這個(gè)路徑被稱為驗(yàn)證路徑。 每一個(gè)驗(yàn)證路徑會(huì)被默克爾樹根驗(yàn)證。
Genesis使用二叉默克爾樹進(jìn)行數(shù)據(jù)存儲(chǔ)。假設(shè)數(shù)據(jù)塊的數(shù)量為N, 那么根據(jù)二叉樹的特性可知一個(gè)默克爾樹的生成復(fù)雜度為O(2-N)。
3. 數(shù)據(jù)存儲(chǔ)方式
Genesis的數(shù)據(jù)以默克爾樹的形式存于不同的存儲(chǔ)節(jié)點(diǎn)中。處于激活狀態(tài)的存儲(chǔ)節(jié)點(diǎn)在p2p網(wǎng)絡(luò)中廣播自己的IP,用戶收到廣播后會(huì)將可信度高的存儲(chǔ)節(jié)點(diǎn)置于節(jié)點(diǎn)隊(duì)列中并構(gòu)建虛擬數(shù)據(jù)中心。之后用戶將自己的默克爾樹同步到虛擬數(shù)據(jù)中心并在數(shù)據(jù)同步校驗(yàn)成功后和虛擬數(shù)據(jù)中心簽訂存儲(chǔ)合約。
4. 存儲(chǔ)合約的制定與發(fā)布
存儲(chǔ)合約是存儲(chǔ)空間租賃者和存儲(chǔ)節(jié)點(diǎn)之間達(dá)成的協(xié)議。 協(xié)議內(nèi)容以腳本的形式存在于合約的payload中, 協(xié)議內(nèi)容包含簽訂者雙方應(yīng)當(dāng)履行的義務(wù)。合約在發(fā)布前會(huì)要求合約附上數(shù)據(jù)提供者與數(shù)據(jù)中心的數(shù)字簽名組。 一旦合約簽訂發(fā)布,合約將不能被修改。合約內(nèi)容包含:
● 合約hash頭
● 合約創(chuàng)建時(shí)當(dāng)前區(qū)塊鏈高度
● 租賃周期(以區(qū)塊高度計(jì)算)
● 驗(yàn)證數(shù)據(jù)有效性的默克爾樹根
● 數(shù)字簽名組(包含數(shù)據(jù)提供者和虛擬數(shù)據(jù)中心的數(shù)字簽名)
● 存儲(chǔ)節(jié)點(diǎn)的外網(wǎng)IP組
● 雙重鎖定腳本(數(shù)據(jù)上傳者會(huì)將一個(gè)周期內(nèi)的獎(jiǎng)勵(lì)通過(guò)虛擬數(shù)據(jù)中心的公鑰組合特殊驗(yàn)證路徑進(jìn)行雙重鎖定, 需要礦工使用特殊驗(yàn)證路徑以及存儲(chǔ)節(jié)點(diǎn)使用私鑰進(jìn)行解鎖)
● 存儲(chǔ)合約將以transaction的形式發(fā)布到存儲(chǔ)區(qū)塊鏈上。
5. 存儲(chǔ)鏈與存儲(chǔ)合約的執(zhí)行
負(fù)責(zé)維護(hù)存儲(chǔ)合約的側(cè)鏈名為存儲(chǔ)鏈。存儲(chǔ)鏈由礦工負(fù)責(zé)維護(hù)。礦工在創(chuàng)建新存儲(chǔ)鏈塊的時(shí)候會(huì)將當(dāng)前有效周期內(nèi)的部分存儲(chǔ)合約指向的數(shù)據(jù)進(jìn)行下載驗(yàn)證,當(dāng)數(shù)據(jù)被存儲(chǔ)合約上的數(shù)據(jù)可信根驗(yàn)證通過(guò),礦工會(huì)將一個(gè)帶有特定數(shù)據(jù)驗(yàn)證路徑的交易發(fā)布到主鏈上,該交易會(huì)復(fù)制存儲(chǔ)合約中雙重鎖定腳本并進(jìn)行一次解鎖,上述過(guò)程被稱為合約履行。用戶客戶端會(huì)監(jiān)聽區(qū)塊鏈上的交易并收到合約履行成功的事件。存儲(chǔ)合約在有效周期過(guò)后會(huì)從存儲(chǔ)側(cè)鏈上移除。在合約周期快結(jié)束時(shí),用戶可以選擇是否向數(shù)據(jù)中心進(jìn)行續(xù)租。
6. RS碼糾錯(cuò)
由于網(wǎng)絡(luò)抖動(dòng)或者數(shù)據(jù)損壞等原因,虛擬數(shù)據(jù)中心的節(jié)點(diǎn)會(huì)提供錯(cuò)誤數(shù)據(jù)。Genesis采用RS編碼來(lái)進(jìn)行數(shù)據(jù)糾錯(cuò)。 RS編碼是一種簡(jiǎn)單實(shí)用的代數(shù)編碼模式,該技術(shù)廣泛用于數(shù)據(jù)傳輸中并有著較強(qiáng)的抗干擾能力。
POC實(shí)現(xiàn)
Genesis的POC機(jī)制采用基于深度神經(jīng)網(wǎng)絡(luò)模型的優(yōu)化和驗(yàn)證邏輯,下面詳細(xì)描述其實(shí)現(xiàn)。
1. 深度神經(jīng)網(wǎng)絡(luò)
基于深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network)的深度學(xué)習(xí)已經(jīng)被證明在包括圖像識(shí)別,自然語(yǔ)言處理在內(nèi)的人工智能應(yīng)用中極其有效。神經(jīng)網(wǎng)絡(luò)模型采用類似大腦神經(jīng)突觸聯(lián)接的結(jié)構(gòu)進(jìn)行信息處理,主要用于監(jiān)督式學(xué)習(xí)領(lǐng)域。通過(guò)處理給定的帶有標(biāo)簽的數(shù)據(jù),抽象數(shù)據(jù)的分布特征,從而學(xué)習(xí)出從數(shù)據(jù)特征到標(biāo)簽的映射,使訓(xùn)練出的模型具有數(shù)據(jù)分類(classification),回歸(regression)等功能。增加神經(jīng)網(wǎng)絡(luò)的層數(shù)后,即可通過(guò)組合低層特征形成更為抽象的高層標(biāo)書屬性類別或特征,可更好地刻畫數(shù)據(jù)的分布。
例如在圖1展示的深度神經(jīng)網(wǎng)絡(luò),通過(guò)對(duì)將數(shù)據(jù)輸入模型的輸入層(input layer),經(jīng)過(guò)多層隱含層(hidden layers)的特征提取及抽象,在輸出層(output layer)生成數(shù)據(jù)的標(biāo)簽。其中,層與層之間的聯(lián)系往往是線性變換,而每一次的神經(jīng)元?jiǎng)t對(duì)應(yīng)了一個(gè)非線性變換。深度神經(jīng)網(wǎng)絡(luò)可以用于解決不同的實(shí)際問(wèn)題。舉例而言,當(dāng)使用神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉識(shí)別時(shí),將圖片通過(guò)輸入層,經(jīng)過(guò)隱含層的特征提取及抽象,判斷該圖片是否包含人臉(例如,當(dāng)輸出層輸出1則有人臉,輸出0為無(wú)人臉)。
神經(jīng)網(wǎng)絡(luò)的架構(gòu)有很多種,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)通常用于圖像識(shí)別。遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network)以及衍生出來(lái)的長(zhǎng)短期記憶網(wǎng)絡(luò)(LongShort Term Memory)則更多的應(yīng)用于自然語(yǔ)言處理。生成對(duì)抗網(wǎng)絡(luò)(GAN)則是一類在無(wú)監(jiān)督學(xué)習(xí)中使用的神經(jīng)網(wǎng)絡(luò),在圖片,視頻,自然語(yǔ)言和音樂(lè)的生成方面有著廣泛應(yīng)用。
2. 深度神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化
在使用深度神經(jīng)網(wǎng)絡(luò)時(shí),除了設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)(網(wǎng)絡(luò)的層數(shù)及每層的結(jié)構(gòu))一個(gè)重要的問(wèn)題是如何通過(guò)給定的訓(xùn)練集(數(shù)據(jù)及對(duì)應(yīng)的標(biāo)簽)對(duì)模型進(jìn)行訓(xùn)練,以決定其每一層的參數(shù)。具體而言,這個(gè)問(wèn)題可以定義為,給定數(shù)據(jù)集D = {X,Y},其中X={X_1,。..X_N}為輸入數(shù)據(jù),且每一個(gè)樣本向量xk為一個(gè)d維的向量,Y={y1,…,yN}為對(duì)應(yīng)樣本的標(biāo)簽。而我們優(yōu)化的目的就是找到一個(gè)由X到Y(jié)的映射F(X),這樣給定一個(gè)樣本向量,我們可以確定它的標(biāo)簽。為了達(dá)成這個(gè)目標(biāo),一般的做法是確定一個(gè)損失函數(shù)L(F(X),Y),使得映射F(X)相對(duì)于Y的損失值最優(yōu)。常見的損失函數(shù)包括squared loss,cross-entropy等。
其中n是預(yù)先設(shè)定的學(xué)習(xí)率。在實(shí)際的訓(xùn)練過(guò)程中,通常會(huì)在開始訓(xùn)練的時(shí)候選取一個(gè)稍微大一點(diǎn)的學(xué)習(xí)率(比如0.1),加速訓(xùn)練的過(guò)程,在訓(xùn)練的過(guò)程中慢慢的調(diào)小學(xué)習(xí)率,以求達(dá)到精確的結(jié)果。由于深度神經(jīng)網(wǎng)絡(luò)模型所需優(yōu)化的參數(shù)數(shù)量很多,即使使用了不同的正則化方法(如使用卷積神經(jīng)網(wǎng)絡(luò),或使用Dropout技術(shù))稀疏所需優(yōu)化的參數(shù),想要訓(xùn)練如此巨大的模型仍舊需要大量數(shù)據(jù),那么計(jì)算梯度往往會(huì)導(dǎo)致運(yùn)算速度過(guò)慢。一個(gè)標(biāo)準(zhǔn)化的處理方法是使用隨機(jī)梯度下降(stochastic gradient descent)的方法。具體而言,就是每次計(jì)算梯度以更新參數(shù)時(shí),都隨機(jī)從原訓(xùn)練數(shù)據(jù)集中抽取部分?jǐn)?shù)據(jù)計(jì)算梯度并進(jìn)行參數(shù)更新,在有限次迭代更新中同樣可以取得穩(wěn)定的表現(xiàn)。
3. 驗(yàn)證深度神經(jīng)網(wǎng)絡(luò)的表現(xiàn)
在實(shí)際的使用中,我們需要在訓(xùn)練好模型后判斷神經(jīng)網(wǎng)絡(luò)的表現(xiàn)是否足夠優(yōu)秀。在訓(xùn)練模型時(shí),我們已經(jīng)使用了大量數(shù)據(jù)進(jìn)行參數(shù)優(yōu)化,由于在訓(xùn)練樣本的過(guò)程中已經(jīng)包含了訓(xùn)練時(shí)使用數(shù)據(jù)的信息,那么在測(cè)試模型是否真正有效時(shí),我們需要預(yù)留一部分用于交叉驗(yàn)證的測(cè)試數(shù)據(jù),并只是用訓(xùn)練數(shù)據(jù)進(jìn)行模型訓(xùn)練,以規(guī)避模型訓(xùn)練中常見的過(guò)擬合信息。如圖2所示,一個(gè)在訓(xùn)練集中表現(xiàn)優(yōu)秀的模型可能對(duì)于新數(shù)據(jù)表現(xiàn)不夠穩(wěn)定。而只有當(dāng)測(cè)試數(shù)據(jù)在訓(xùn)練好的模型中表現(xiàn)優(yōu)秀,我們才可以信任訓(xùn)練好的深度學(xué)習(xí)模型。
4. 模型訓(xùn)練與工作量證明
Genesis的POC共識(shí)機(jī)制是基于深度神經(jīng)網(wǎng)絡(luò)模型的優(yōu)化及驗(yàn)證邏輯,通過(guò)模型的有效性來(lái)驗(yàn)證miner的工作量證明。同時(shí),POC中深度學(xué)習(xí)模型的訓(xùn)練是和側(cè)鏈技術(shù)緊密結(jié)合的,其中每個(gè)模型訓(xùn)練任務(wù)都是互相獨(dú)立并由一條側(cè)鏈單獨(dú)完成。
2.0版:DDPOS(Democratic Delegated Proof of Stake)
傳統(tǒng)共識(shí)機(jī)制的弊端
目前市面上有各種各樣的共識(shí)機(jī)制,應(yīng)用比較廣泛的有POW(Proof of Work)、POS(Proof of Stake)和DPOS(Delegated Proof of Stake)。這些共識(shí)機(jī)制在實(shí)際應(yīng)用中,逐漸暴露出來(lái)一些問(wèn)題。
POW強(qiáng)調(diào)“全民參與”,任何節(jié)點(diǎn)都可以成為礦工去挖礦,維護(hù)整個(gè)系統(tǒng)。然而實(shí)際應(yīng)用中,特殊礦機(jī)的出現(xiàn)讓普通人幾乎不可能挖到礦,更糟糕的是,礦場(chǎng)和礦池的出現(xiàn)讓系統(tǒng)的挖礦算力變得越來(lái)越集中,系統(tǒng)越來(lái)越中心化。
POS采用通過(guò)計(jì)算節(jié)點(diǎn)持有幣數(shù)占總幣數(shù)的百分比,包括節(jié)點(diǎn)占有幣數(shù)的時(shí)間來(lái)決定一個(gè)節(jié)點(diǎn)獲得本次記賬權(quán)利的概率,這導(dǎo)致窮人參與到系統(tǒng)維護(hù)的機(jī)率渺茫,可以說(shuō)POS是一種”富人游戲“。
DPOS是 POS 的進(jìn)化方案。DPOS中,系統(tǒng)首先選出delegates,然后由這些超級(jí)節(jié)點(diǎn)來(lái)負(fù)責(zé)維護(hù)整個(gè)系統(tǒng)。這些超級(jí)節(jié)點(diǎn)被賦予了對(duì)系統(tǒng)維護(hù)的至高權(quán)力,同時(shí)他們也因?yàn)樘峁┚S護(hù)系統(tǒng)的服務(wù)進(jìn)而獲得更多系統(tǒng)的stake,和POS一樣,這會(huì)導(dǎo)致富人更富,系統(tǒng)越來(lái)越中心化的問(wèn)題。
DDPOS簡(jiǎn)介
Genesis團(tuán)隊(duì)經(jīng)過(guò)長(zhǎng)時(shí)間的研究后,提出一種全新的共識(shí)機(jī)制DDPOS(DemocraticDelegated Proof Of Stake)。DDPOS可以完美的保留DPOS的高速tps的特性,同時(shí)又可以有效的解決DPOS的“富人更富”的問(wèn)題。
以下詳細(xì)描述DDPOS的概念與邏輯。
元老院:元老院由21個(gè)超級(jí)節(jié)點(diǎn)組成,這些節(jié)點(diǎn)有維護(hù)區(qū)塊的絕對(duì)權(quán)利,包括打包,回滾,刪除賬號(hào)等。
元老選舉:元老的選舉指元老院的超級(jí)節(jié)點(diǎn)通過(guò)某種機(jī)制將其中全部或者部分成員換成新的節(jié)點(diǎn)的過(guò)程。所有元老都可以從普通節(jié)點(diǎn)中直接選舉產(chǎn)生。每次選舉根據(jù)之前的表現(xiàn)更換排名最靠后的3位元老。
選舉期:系統(tǒng)正常運(yùn)行一定階段后,會(huì)自動(dòng)進(jìn)入的一個(gè)進(jìn)行元老院中元老的選舉和置換的過(guò)程,稱為選舉期。 并且,在上一個(gè)選舉期之后系統(tǒng)內(nèi)發(fā)生的任何投票動(dòng)議(系統(tǒng)升級(jí),回滾,刪除賬號(hào)等所有投票動(dòng)議)都會(huì)在這個(gè)選舉期中匯總,并決定是否執(zhí)行。
第一次全民公選:第一次元老會(huì)成員的選舉通過(guò)全民公投來(lái)進(jìn)行。采用某種投票的辦法,系統(tǒng)的開發(fā)者發(fā)起第一次全民公投,由所有節(jié)點(diǎn)參與投票后選出21個(gè)元老。
DDPOS的選舉過(guò)程:
(1)元老院的第一期成員由全網(wǎng)公投選舉產(chǎn)生。
(2)維持循環(huán),并且按一定周期自動(dòng)調(diào)整元老會(huì)。
執(zhí)政期:系統(tǒng)正常運(yùn)行的時(shí)期,由若干個(gè)循環(huán)周期組成,其中每21個(gè)塊周期為一個(gè)循環(huán)周期(Round),元老院每產(chǎn)出一個(gè)塊為一個(gè)塊周期(slot);在執(zhí)政期內(nèi),所有的區(qū)塊由元老院的全部元老依次生成,每個(gè)元老生成一個(gè)塊。
選舉期:當(dāng)一輪執(zhí)政期完成后,系統(tǒng)會(huì)迎來(lái)為期若干個(gè)循環(huán)周期(Round)的選舉期。值得一提的是,在DDPOS中,每個(gè)元老會(huì)成員會(huì)在打包時(shí)以自己的區(qū)塊頭生成一個(gè)Hash謎題發(fā)布到區(qū)塊中,謎題類型與POW中的Hash碰撞謎題相似。選舉期開始時(shí),當(dāng)前最高區(qū)塊的有效謎題會(huì)被推舉為選舉謎題。全網(wǎng)任何節(jié)點(diǎn)都可以提交對(duì)謎題的解,每次提交需要支付一定的token作為費(fèi)用;選舉期結(jié)束后,剩余的18名元老會(huì)通過(guò)謎題答案來(lái)推選出3名新的元老會(huì)成員。 因?yàn)槊恳粋€(gè)區(qū)塊的區(qū)塊頭都必須由前一個(gè)區(qū)塊的區(qū)塊頭組成,我們不用擔(dān)心最高區(qū)塊的打包者會(huì)以此作弊。通過(guò)對(duì)每一個(gè)節(jié)點(diǎn)有效提交次數(shù)的限制,我們可以在確保不對(duì)選舉期的整個(gè)網(wǎng)絡(luò)造成擁堵同時(shí)盡可能地篩選出優(yōu)質(zhì)的競(jìng)選者。
獎(jiǎng)勵(lì)周期:根據(jù)區(qū)塊鏈高度,設(shè)置里程碑時(shí)間(Milestone),在某個(gè)時(shí)間點(diǎn)調(diào)整區(qū)塊獎(jiǎng)勵(lì)。
(3)循環(huán)產(chǎn)生新區(qū)塊,廣播
DDPOS的創(chuàng)新之處
DDPOS中更換元老的方式通過(guò)在選舉期的算力比拼,讓那些有較強(qiáng)算力的普通節(jié)點(diǎn)也有機(jī)會(huì)成為元老會(huì)成員,進(jìn)而參與到系統(tǒng)的治理過(guò)程中,避免了整個(gè)系統(tǒng)被小部分節(jié)點(diǎn)壟斷的風(fēng)險(xiǎn)。同時(shí),通過(guò)嚴(yán)格的懲罰機(jī)制和末位輪換制度,即使進(jìn)入了元老會(huì)的超級(jí)節(jié)點(diǎn)也需要提供高效的出塊率來(lái)保障自己的長(zhǎng)期收益,整個(gè)系統(tǒng)因此更公平高效。
Genesis的DDPOS機(jī)制也是Genesis團(tuán)隊(duì)原創(chuàng),已經(jīng)申請(qǐng)專利。DDPOS的詳細(xì)技術(shù)原理請(qǐng)見Genesis的專利申請(qǐng)。
Genesis的升級(jí)機(jī)制
在一個(gè)中心化的軟件系統(tǒng)里,系統(tǒng)的升級(jí)一般通過(guò)服務(wù)器來(lái)完成。當(dāng)有新的軟件版本時(shí),服務(wù)器推送消息給用戶,提醒用戶去官網(wǎng)下載或者如果更新包比較小的話,直接將新版本推送到用戶客戶端,用戶安裝新的版本后,更新過(guò)程完成。
在一個(gè)去中心的分布式系統(tǒng)中,節(jié)點(diǎn)與節(jié)點(diǎn)通過(guò)共識(shí)機(jī)制形成聯(lián)系,整個(gè)系統(tǒng)沒(méi)有服務(wù)器的概念,因此一旦系統(tǒng)客戶端有了新版本,是否升級(jí)取決于每個(gè)節(jié)點(diǎn):
1. 是否得知這個(gè)新版本的消息。
2. 是否愿意自己去下載這個(gè)新版本并且進(jìn)行升級(jí)。
這個(gè)情況導(dǎo)致系統(tǒng)的更新并不像中心化系統(tǒng)那樣有效率,新舊客戶端混合在一起。如果這個(gè)版本更新是一次硬分叉的話,會(huì)導(dǎo)致舊版的客戶端和新版客戶端實(shí)際運(yùn)行在兩個(gè)不同的共識(shí)機(jī)制下,整個(gè)系統(tǒng)也一分為二,這個(gè)對(duì)一個(gè)分布式系統(tǒng)來(lái)說(shuō),是一種嚴(yán)重價(jià)值的損害。
Genesis系統(tǒng)的升級(jí)采用發(fā)起特殊投票的方式,這個(gè)機(jī)制的目標(biāo)是讓盡可能多的節(jié)點(diǎn)在同一時(shí)間完成升級(jí)。分為以下幾個(gè)步驟:
1. 提出投票動(dòng)議
任何節(jié)點(diǎn)都可以提出一個(gè)投票動(dòng)議,在系統(tǒng)里相當(dāng)于發(fā)起一個(gè)特殊類型的交易。這個(gè)交易包含以下內(nèi)容:
● 動(dòng)議的描述
● 愿意為此投票動(dòng)議所支付的token獎(jiǎng)勵(lì)
● 可執(zhí)行代碼
2. 投票
動(dòng)議提出后,這個(gè)動(dòng)議(特殊交易)通過(guò)p2p網(wǎng)絡(luò)在全網(wǎng)廣播,系統(tǒng)中的所有節(jié)點(diǎn)將收到這個(gè)動(dòng)議以及其附帶的獎(jiǎng)勵(lì)和可執(zhí)行代碼。這些節(jié)點(diǎn)必須對(duì)這個(gè)動(dòng)議做出選擇:同意、不同意、棄權(quán)(默認(rèn)無(wú)操作)
3. 動(dòng)議通過(guò),客戶端完成升級(jí)
當(dāng)滿足要求數(shù)量的節(jié)點(diǎn)對(duì)這個(gè)動(dòng)議做出選擇后,如果選擇同意的節(jié)點(diǎn)超出一定的比例,則認(rèn)為這次投票動(dòng)議獲得通過(guò),這時(shí),該動(dòng)議所附的可執(zhí)行代碼被激活,將所有節(jié)點(diǎn)的客戶端自動(dòng)升級(jí)到新版本,同時(shí)把附帶的獎(jiǎng)勵(lì)平均分配給參與了投票的節(jié)點(diǎn)。
這個(gè)投票的機(jī)制保證了系統(tǒng)升級(jí)只是在大多數(shù)節(jié)點(diǎn)人工投票“同意”后才進(jìn)行,系統(tǒng)升級(jí)后,大多數(shù)節(jié)點(diǎn)也將運(yùn)行在同一個(gè)共識(shí)機(jī)制下,系統(tǒng)的價(jià)值得以最大程度的保留。
Genesis里,投票可以分為多個(gè)級(jí)別的投票,一般遵循的方案是只需要涉及到的節(jié)點(diǎn)參與投票。如果一個(gè)動(dòng)議只涉及到側(cè)鏈上的少數(shù)人,則這個(gè)動(dòng)議只需要側(cè)鏈上的少數(shù)人投票即可。如果這個(gè)動(dòng)議涉及到系統(tǒng)里所有的節(jié)點(diǎn),則這個(gè)動(dòng)議是一次對(duì)憲法的公投,需要系統(tǒng)內(nèi)所有節(jié)點(diǎn)的參與率達(dá)到一定比例,并且選擇“同意”的節(jié)點(diǎn)和選擇“不同意”的節(jié)點(diǎn)超過(guò)一定比例才可以。
側(cè)鏈技術(shù)
Genesis的將大部分核心內(nèi)容放在主鏈上,同時(shí)大量采用側(cè)鏈技術(shù)來(lái)分擔(dān)網(wǎng)絡(luò)的負(fù)擔(dān)并且增加可擴(kuò)展性。Genesis的主鏈上包含用戶核心信息、交易(Genesis所有行為都以交易的形式來(lái)呈現(xiàn),如投票、 用戶互動(dòng) 以及提交文件等)。Genesis的主鏈全部采用經(jīng)過(guò)驗(yàn)證的成熟技術(shù),以穩(wěn)定為優(yōu)先。
側(cè)鏈?zhǔn)菍?shí)現(xiàn)Genesis進(jìn)化的關(guān)鍵技術(shù)。用戶可以通過(guò)投票更新側(cè)鏈協(xié)議,甚至可以整體遷移到一個(gè)全新的側(cè)鏈,從而達(dá)到系統(tǒng)的進(jìn)化。
Genesis的側(cè)鏈都可以有單獨(dú)的合約,主鏈通過(guò)動(dòng)態(tài)索引實(shí)現(xiàn)與側(cè)鏈溝通。Genesis目前有兩條內(nèi)置側(cè)鏈,分別負(fù)責(zé)實(shí)現(xiàn)文件存儲(chǔ)、應(yīng)用商店機(jī)制,未來(lái)還將上一條側(cè)鏈運(yùn)行POC。另外,Genesis上可以快速生成一條和主鏈架構(gòu)完全一樣的側(cè)鏈,作為程序員的開發(fā)測(cè)試環(huán)境。
Genesis的側(cè)鏈技術(shù)詳細(xì)描述如下:
雙向錨定以及簡(jiǎn)化支付驗(yàn)證機(jī)制(SPV)
簡(jiǎn)化支付驗(yàn)證(SPV)的概念最初出現(xiàn)在Satoshi2008年寫的一個(gè)區(qū)塊鏈文檔中。Satoshi沒(méi)有運(yùn)行完整的節(jié)點(diǎn)來(lái)驗(yàn)證區(qū)塊鏈中的交易,而是討論了一種更有效(更輕)的方法,即簡(jiǎn)化版驗(yàn)證過(guò)程。這個(gè)機(jī)制是這樣的:只保留最長(zhǎng)工作證明鏈的塊頭的副本。可以通過(guò)查詢盡可能多的網(wǎng)絡(luò)節(jié)點(diǎn)來(lái)獲得區(qū)塊鏈的頭部,直到獲得滿足可信度的最長(zhǎng)鏈為止。然后,獲得一個(gè)包含這筆交易的,帶有時(shí)間戳的Merkle分支。
與全節(jié)點(diǎn)驗(yàn)證相比,SPV不會(huì)驗(yàn)證所有內(nèi)容,而是將其作為高難度的可信度作為有效性證明的代理。這是一種DMMS,可以使用概率和隨機(jī)游走進(jìn)行進(jìn)一步的理論分析來(lái)證明這一點(diǎn)。從實(shí)際角度來(lái)看,SPV提供了一種簡(jiǎn)易的方法來(lái)確定某個(gè)特定交易處于區(qū)塊鏈的某一塊中,而無(wú)需存儲(chǔ)和檢查整個(gè)區(qū)塊鏈。由于每個(gè)交易都具有哈希值,并且每個(gè)塊都有哈希值,因此可以建立Merkle樹證明交易的哈希和區(qū)塊的哈希。
Merkle樹是一種數(shù)學(xué)模型,其中樹根位于頂點(diǎn),所有交易都放置在樹葉中。整個(gè)結(jié)構(gòu)呈一個(gè)樹狀。 Merkle樹證明包含頂點(diǎn)(塊)和葉子(交易)之間所有哈希的列表。為了證明某一筆交易在某個(gè)區(qū)塊中,只需要塊的一小部分。基本驗(yàn)證有兩個(gè)步驟:1。驗(yàn)證Merkle分支的存在,證明交易處于塊中。 2.驗(yàn)證塊本身是否在區(qū)塊鏈的主鏈中。這兩個(gè)步驟足以證明交易的真實(shí)性。
在Genesis Space中,我們使用SPV和Merkle樹來(lái)實(shí)現(xiàn)父鏈和側(cè)鏈之間的驗(yàn)證過(guò)程。我們現(xiàn)在討論虛擬幣轉(zhuǎn)移示例的步驟。該設(shè)計(jì)主要基于Back等人的Enabling Blockchain Innovations with Pegged Sidechains 理論的常見側(cè)鏈框架。最初,父鏈上的幣被發(fā)送到父鏈上的特殊輸出,該輸出只能通過(guò)側(cè)鏈上的SPV證據(jù)解鎖。為了使兩個(gè)鏈保持同步,定義了兩個(gè)等待(緩沖)周期:
1)確認(rèn)期。側(cè)鏈之間轉(zhuǎn)移的確認(rèn)期是在將虛擬幣轉(zhuǎn)移到側(cè)鏈之前必須將虛擬幣鎖定在父鏈上的持續(xù)時(shí)間。此確認(rèn)期的目的是允許創(chuàng)建足夠的工作量證明,使得在下一個(gè)等待期間的DDOS攻擊變得更加困難。典型的確認(rèn)期限為一天或兩天。
在父鏈上創(chuàng)建特殊輸出后,用戶將等待確認(rèn)期,然后在引用此輸出的側(cè)鏈上創(chuàng)建一個(gè)交易,提供SPV證明它已創(chuàng)建并隱藏在父鏈的足夠工作量證明之下。確認(rèn)期是一個(gè)每側(cè)鏈的安全參數(shù),它以交叉鏈傳輸速度換取安全性。
2)競(jìng)爭(zhēng)期。然后用戶必須等待驗(yàn)證期間。其的目的是通過(guò)在重組期間轉(zhuǎn)移先前鎖定的硬幣來(lái)防止雙花。如果在此延遲期間的任何時(shí)候,發(fā)布的新證據(jù)包含具有更多聚合工作的鏈,該鏈不包括創(chuàng)建鎖定輸出的塊,則轉(zhuǎn)換將追溯無(wú)效。我們稱之為重組證明。
如果可能的話,側(cè)鏈的所有用戶都有動(dòng)機(jī)提出重組證明,因?yàn)樽C據(jù)不正確的結(jié)果是所有虛擬幣價(jià)值的稀釋。典型的競(jìng)爭(zhēng)期間也將是一天或兩天的量級(jí)。為避免這些延遲,用戶可能會(huì)使用原子交換進(jìn)行大多數(shù)傳輸。
當(dāng)鎖定在母鏈上時(shí),虛擬幣可以在側(cè)鏈內(nèi)自由轉(zhuǎn)移而無(wú)需與母鏈進(jìn)一步交互。但是,它保留了作為母鏈幣的身份,并且只能轉(zhuǎn)移回它來(lái)自的鏈。當(dāng)用戶想要將幣從側(cè)鏈轉(zhuǎn)移回母鏈時(shí),他們會(huì)按照原始轉(zhuǎn)移過(guò)程執(zhí)行相同的操作:將側(cè)鏈上的幣發(fā)送到SPV鎖定輸出,生成足夠的SPV證明,這樣做,并使用證明解鎖父鏈上具有相等面額的多個(gè)先前鎖定的輸出。
Genesis的存儲(chǔ)側(cè)鏈
作為社交社區(qū)平臺(tái),當(dāng)用戶與Genesis Space交互時(shí),預(yù)計(jì)會(huì)產(chǎn)生大量數(shù)據(jù)。因此,為數(shù)據(jù)存儲(chǔ)的可擴(kuò)展性和安全性建立分散的存儲(chǔ)機(jī)制至關(guān)重要。在Genesis Space中,采用了存儲(chǔ)側(cè)鏈以滿足這些要求。除了一些核心敏感數(shù)據(jù)(如用戶配置文件和錢包數(shù)據(jù))之外,大多數(shù)數(shù)據(jù)都存儲(chǔ)在此存儲(chǔ)側(cè)鏈中。這樣既保證了社交網(wǎng)絡(luò)對(duì)區(qū)塊鏈的快速反應(yīng)和記錄的要求,同時(shí)也滿足了社交網(wǎng)絡(luò)等系統(tǒng)產(chǎn)生的大數(shù)據(jù)的存儲(chǔ)需求。在目前的設(shè)計(jì)中,輕量級(jí)數(shù)據(jù)將直接存儲(chǔ)在側(cè)鏈上(類似與Steemit存儲(chǔ)方案);更大的數(shù)據(jù)(超過(guò)1MB的文件等)將采用ipfs進(jìn)行存儲(chǔ),僅在側(cè)鏈上記錄指向該塊存儲(chǔ)的Hash值。提供存儲(chǔ)的側(cè)鏈節(jié)點(diǎn)將受到獎(jiǎng)勵(lì)。
Genesis 中的存儲(chǔ)鏈用作對(duì)等存儲(chǔ)網(wǎng)絡(luò),其中文件管理記錄在存儲(chǔ)側(cè)鏈中被索引。當(dāng)Genesis Space用戶想要存儲(chǔ)文件時(shí),用戶可以創(chuàng)建包含文件元信息的文件合同,以及他愿意為此支付的付款。 Genesis 中的其他用戶可以將文件存儲(chǔ)在本地硬盤上來(lái)充當(dāng)主機(jī)。文件合同由客戶簽署,主機(jī)指定存儲(chǔ)協(xié)議以及獎(jiǎng)勵(lì)。合同存儲(chǔ)在存儲(chǔ)側(cè)鏈上并且是不可變的。為避免虛假的主機(jī),還需要從主機(jī)進(jìn)行存儲(chǔ)證明。在發(fā)送來(lái)自客戶的獎(jiǎng)勵(lì)付款之前,證據(jù)將被發(fā)送到存儲(chǔ)側(cè)鏈。此外,該文件可以分為幾個(gè)部分和多個(gè)副本,以提高文件的完整性和可檢索性。
Genesis的去中心應(yīng)用商店側(cè)鏈
Genesis包含一個(gè)DApp的商店(即Genesis市場(chǎng)),幫助開發(fā)者發(fā)布應(yīng)用,同時(shí)方便所有的用戶查找并下載應(yīng)用。Genesis的應(yīng)用商店有一個(gè)基于投票的應(yīng)用審核、上架、下架和反饋的機(jī)制。同時(shí),Genesis采用類似Reddit的vote機(jī)制對(duì)應(yīng)用做出排名,讓優(yōu)秀的應(yīng)用更容易被用戶發(fā)現(xiàn)。Genesis的應(yīng)用商店是整個(gè)Genesis系統(tǒng)基礎(chǔ)設(shè)施建設(shè)中最主要的表現(xiàn)形式,也是最重要的一個(gè)環(huán)節(jié)。
Genesis Space中的DApp Store通過(guò)側(cè)鏈實(shí)現(xiàn)。 DApp開發(fā)人員可以在DApp商店中發(fā)布他們的應(yīng)用程序。當(dāng)他們這樣做時(shí),相關(guān)的應(yīng)用程序信息將被散列并添加到側(cè)鏈中。為了使用戶更容易找到相關(guān)的應(yīng)用程序,DApp元數(shù)據(jù)被索引為Merkle樹,并且根將被記錄在塊頭中。
如圖所示,Genesis Space中DApp Store Side Chain的框架。客戶端和DApp開發(fā)人員之間的應(yīng)用程序購(gòu)買交易是通過(guò)側(cè)鏈完成的。此外,為了鼓勵(lì)應(yīng)用用戶提高參與率,開發(fā)人員還可以根據(jù)用戶在DApp上的注意力提供獎(jiǎng)勵(lì)激勵(lì)(以Gencoins的形式)。關(guān)注度是Herbert A. Simon于1971年在“為信息豐富的世界設(shè)計(jì)組織”中創(chuàng)造的一個(gè)概念。它指的是消費(fèi)者對(duì)信息作為稀缺資源的關(guān)注。注意模塊是預(yù)定義的智能合約,用于評(píng)估客戶參與度。根據(jù)用戶的關(guān)注量向用戶授予獎(jiǎng)勵(lì),并將反饋發(fā)送給開發(fā)人員以進(jìn)一步改進(jìn)應(yīng)用程序。同時(shí),為了鼓勵(lì)開發(fā)人員提供高質(zhì)量的應(yīng)用程序,還在側(cè)鏈上跟蹤聲譽(yù)記錄。基于用戶投票和評(píng)級(jí)來(lái)評(píng)估信譽(yù)。較高的聲譽(yù)將使應(yīng)用程序獲得更高的排名,并且還將向開發(fā)者授予獎(jiǎng)勵(lì)。
Genesis的測(cè)試鏈
除了使用側(cè)鏈進(jìn)行數(shù)據(jù)存儲(chǔ)和實(shí)現(xiàn)應(yīng)用程序市場(chǎng)外,我們還實(shí)現(xiàn)了第三個(gè)側(cè)鏈,使開發(fā)人員能夠試驗(yàn)和測(cè)試他們的應(yīng)用程序。此側(cè)鏈可幫助開發(fā)人員在DApp Store鏈中發(fā)布高質(zhì)量且穩(wěn)定的DApp,而不會(huì)讓迭代的應(yīng)用測(cè)試影響到應(yīng)用商店鏈。該鏈也可供部分用戶訪問(wèn),例如自愿選擇開發(fā)人員進(jìn)行測(cè)試的用戶(調(diào)查,行為反饋等)。獎(jiǎng)勵(lì)也以實(shí)驗(yàn)參與的形式授予,以開發(fā)人員和志愿者之間的交易形式。
獨(dú)立合約
Genesis的每條側(cè)鏈都可以有自己的合約,可以單獨(dú)用來(lái)解決某一方向的問(wèn)題。這種架構(gòu)讓單一業(yè)務(wù)的處理變的更容易,同時(shí)又極具擴(kuò)展性和維護(hù)性。
索引
Genesis的主鏈包含側(cè)鏈的索引,鏈與鏈之間可以很容易通過(guò)主鏈的Merkle Tree以及外部消息的輸入驗(yàn)證來(lái)交互。
Genesis的經(jīng)濟(jì)模型
一個(gè)去中心的系統(tǒng),除了技術(shù)以外,最重要的是保證系統(tǒng)內(nèi)的各個(gè)元素有一個(gè)合理并且公平的經(jīng)濟(jì)平衡,只有這樣才能激勵(lì)系統(tǒng)內(nèi)的各個(gè)對(duì)象,為系統(tǒng)的繁榮作出貢獻(xiàn),保證一個(gè)可持續(xù)的系統(tǒng)。Genesis的經(jīng)濟(jì)模型圖如下:
系統(tǒng)中各個(gè)角色如下:
● 普通人:
正如現(xiàn)實(shí)世界從太陽(yáng)獲取能量,Genesis里用戶花在系統(tǒng)里的時(shí)間就是系統(tǒng)的原始驅(qū)動(dòng)力。因此普通用戶只要保持在線狀態(tài)就可以獲得系統(tǒng)的token獎(jiǎng)勵(lì)。系統(tǒng)將BP的收入的一部分隨機(jī)分配給在線的用戶。
● 開發(fā)者:
Genesis強(qiáng)調(diào)將應(yīng)用開發(fā)者的地位提高到和礦工一個(gè)等級(jí),給他們直接的經(jīng)濟(jì)反饋,激勵(lì)他們來(lái)開發(fā)更多更好的DApp。
● 大法官:
Genesis作為一個(gè)去中心系統(tǒng),其發(fā)展依賴于持續(xù)不斷的版本迭代。Genesis專門在系統(tǒng)里設(shè)置大法官的角色,用來(lái)推動(dòng)系統(tǒng)的更新。大法官在系統(tǒng)里可以提出對(duì)憲法的更新的投票動(dòng)議。大法官分享部分參議院(即Block Producer)的收益。
● 參議員:
參議院負(fù)責(zé)出塊,又叫BP(Block Producer),負(fù)責(zé)維護(hù)整個(gè)系統(tǒng),每次出塊會(huì)獲得系統(tǒng)的獎(jiǎng)勵(lì)。這個(gè)獎(jiǎng)勵(lì)的一部分自動(dòng)分配給普通人和大法官。
● 地主:
地主負(fù)責(zé)維護(hù)一條存儲(chǔ)側(cè)鏈,為用戶提供存儲(chǔ)服務(wù),通過(guò)智能合約的方式獲得收益。
整個(gè)系統(tǒng)采用通貨膨脹的方式每年增發(fā)5%的貨幣,用于支付上述的各項(xiàng)活動(dòng)。系統(tǒng)范圍內(nèi)的所有服務(wù)都不需要費(fèi)用,但是部分服務(wù)將需要用戶將自己的財(cái)產(chǎn)抵押,這個(gè)設(shè)計(jì)主要是防止DDoS攻擊。
評(píng)論
查看更多