聊一聊公鏈的共識(shí)
POW噪窘,這是大家最熟悉的BTC的共識(shí)機(jī)制,最穩(wěn)定效扫,運(yùn)行時(shí)間最久倔监,但也有被人詬病的地方:
- 算力集中,大量的算力集中在少部分人手里菌仁。
- 能源消耗浩习,算力最高的拿獎(jiǎng),其他的算力都是做無用功济丘,消耗掉了谱秽。
- 對(duì)于新出的公鏈,采用POW摹迷,很容易被殺死(51%攻擊)
POS疟赊,這是一種股權(quán)證明機(jī)制,用戶將通過持幣行為獲得“利息”峡碉,并且這個(gè)利息與持幣量和幣齡有關(guān)近哟。簡(jiǎn)單說,就是誰有錢誰出塊鲫寄。有錢的愈有錢吉执,大戶的持幣成本理論上講,會(huì)無限趨近于0地来。
這樣導(dǎo)致的問題就是:
nothing at stake :礦工為獲得生成區(qū)塊的獎(jiǎng)勵(lì)而同時(shí)支持多個(gè)有沖突的區(qū)塊鏈分叉鼠证,導(dǎo)致區(qū)塊鏈系統(tǒng)無法達(dá)成共識(shí)。
Long range attack: 惡意節(jié)點(diǎn)在初始區(qū)塊的起點(diǎn)處重新再造一個(gè)比目前的鏈更長(zhǎng)的鏈充當(dāng)為主鏈靠抑,因?yàn)樵趨^(qū)塊鏈的世界里量九,最長(zhǎng)的鏈才是主鏈。
根據(jù)CAP定理:
CAP原則又稱CAP定理,指的是在一個(gè)分布式系統(tǒng)中荠列,Consistency(一致性)类浪、 Availability(可用性)、Partition tolerance(分區(qū)容錯(cuò)性)肌似,三者不可兼得费就。
如何在設(shè)計(jì)公鏈的共識(shí)機(jī)制時(shí)使得以上三者之間形成一個(gè)納什均衡,正是目前公鏈設(shè)計(jì)的難點(diǎn)和重點(diǎn)川队。
GNX的SPoR+POS共識(shí)
Genaro是一個(gè)基于區(qū)塊鏈技術(shù)的可靠且去中心化的存儲(chǔ)空間力细。用戶可以將Genaro作為他們高效且經(jīng)濟(jì)的私人永久云存儲(chǔ)途徑。
GNX采用的是雙底層設(shè)計(jì)固额。主要是想用混合機(jī)制來解決POS無法解決的問題眠蚂。
目前探索混合機(jī)制的公鏈也有不少,主要是希望用POW機(jī)制來保證系統(tǒng)的穩(wěn)定性斗躏,再利用POS機(jī)制來保證系統(tǒng)的可用性逝慧。
GNX對(duì)這種混合機(jī)制做了自己的創(chuàng)新:
儲(chǔ)存疊加混合共識(shí)
SPoR+POS
劃重點(diǎn),SPoR全稱為sentinel proof of retrievability啄糙,是一種數(shù)據(jù)可檢索行證明笛臣。
跟大家粗淺的聊一聊SPoR。
GNX的目的是建立一個(gè)點(diǎn)對(duì)點(diǎn)加密分享的公鏈隧饼。
那么沈堡,首先需要用算法來確認(rèn)文件完好無損的保存在系統(tǒng)中。Genaro 在這里選擇的是具有代表性的 SPoR 算法:
該算法提供了一套完備的燕雁,可證明安全的踱蛀,文件存儲(chǔ)完整性驗(yàn)證的理論體系。通過設(shè)立特定的文件指紋 (Sentinel)來偵測(cè)數(shù)據(jù)可驗(yàn)證性贵白。
在Genaro系統(tǒng)中每天都會(huì)對(duì)存儲(chǔ)節(jié)點(diǎn)的文件進(jìn)行定時(shí)抽樣“排查”。
SPoR算法的優(yōu)點(diǎn):
有效計(jì)算崩泡,相比于POW禁荒,消耗更低:
因?yàn)樽C明數(shù)據(jù)文件的完整性,只需要驗(yàn)證文件指紋對(duì)的哈希數(shù)值角撞,并非是無效的運(yùn)算呛伴,計(jì)算難度也不會(huì)增加。安全谒所,文件指紋是隨機(jī)的:
如果惡意節(jié)點(diǎn)改變或刪節(jié)了部分源文件热康,則相對(duì)應(yīng)的指紋也會(huì)發(fā)生改變,可以被驗(yàn)證出來劣领。有效抑制分叉和長(zhǎng)攻擊:
因?yàn)樗械奈募伎梢酝ㄟ^定時(shí)隨機(jī)抽樣被找回姐军,所以主鏈記錄了最多的指紋驗(yàn)證總數(shù)。
假設(shè)說,有一個(gè)惡意節(jié)點(diǎn)著觉,想回到鏈最初的狀態(tài),迅速構(gòu)建一條新的最長(zhǎng)鏈——這個(gè)在POS下是有可能的,因?yàn)榕琶罡叩墓?jié)點(diǎn)出塊速度非常有優(yōu)勢(shì),在理論上,只要擁有一定比例的代幣汛骂,是可以對(duì)系統(tǒng)發(fā)動(dòng)攻擊的。
然而蝶念,GNX的主鏈會(huì)定時(shí)記錄指紋驗(yàn)證摔敛,因此,新鏈無法復(fù)制同樣總數(shù)的指紋驗(yàn)證攒暇,從而,新鏈的指紋驗(yàn)證數(shù)會(huì)少于總鏈,無法發(fā)動(dòng)攻擊。
分叉也是同樣的情況,因?yàn)橹讣y驗(yàn)證數(shù)少于主鏈肥橙,因此到了指紋驗(yàn)證點(diǎn)味榛,就會(huì)停止。
社區(qū)治理的方式
雖然在存儲(chǔ)層加上了SPoR垂涯,但GNX chain主要采用的還是POS治理機(jī)制。
社區(qū)治理的流程大概如下:
1航邢,節(jié)點(diǎn)進(jìn)行押注耕赘,進(jìn)入系統(tǒng)貢獻(xiàn)儲(chǔ)存單元,參與排名:
這里要注意的是膳殷,并非直接按照押注的大小進(jìn)行排名操骡,還需要考慮儲(chǔ)存貢獻(xiàn)量的權(quán)重,這樣的設(shè)定提高了初選節(jié)點(diǎn)的門檻秽之,簡(jiǎn)單來說,不僅僅要求節(jié)點(diǎn)擁有相當(dāng)?shù)腉NX吃既,還對(duì)節(jié)點(diǎn)的儲(chǔ)存空間和硬件都有一定的要求考榨。
2,排名最靠前的101 個(gè)節(jié)點(diǎn)出塊
現(xiàn)有的出塊操作鹦倚,分為輪流出塊以及隨機(jī)數(shù)出塊河质。
排名高的節(jié)點(diǎn)輪次會(huì)多,但,因?yàn)榧俣薖OS中的節(jié)點(diǎn)不一定是好節(jié)點(diǎn)掀鹅,所以散休,還會(huì)用SPoR來驗(yàn)證數(shù)據(jù)找回的信息。也就是說乐尊,節(jié)點(diǎn)的是否優(yōu)秀戚丸,能否進(jìn)入委員會(huì),需要滿足兩個(gè)標(biāo)準(zhǔn):
- 押注量
- 存儲(chǔ)貢獻(xiàn)
這兩者按照一定的權(quán)重比來進(jìn)行綜合排名扔嵌,以確保選出優(yōu)秀的節(jié)點(diǎn)限府。
采用這種方式的邏輯在于,如果節(jié)點(diǎn)抵押大量的GNX痢缎,同時(shí)又對(duì)系統(tǒng)做出巨大的貢獻(xiàn)(存儲(chǔ)量大)胁勺,那么可以認(rèn)為這個(gè)節(jié)點(diǎn)和主鏈的利益是相互綁定的,不會(huì)作惡独旷。
3署穗,大節(jié)點(diǎn)可以選擇小節(jié)點(diǎn)為自己貢獻(xiàn)存儲(chǔ)。
大節(jié)點(diǎn)嵌洼,中節(jié)點(diǎn)和小節(jié)點(diǎn)會(huì)相互博弈案疲。在我的理解里,這其實(shí)相當(dāng)于一種另類的投票:
- 小節(jié)點(diǎn)將自己的存儲(chǔ)貢獻(xiàn)給大節(jié)點(diǎn)
- 大節(jié)點(diǎn)獲得更高的排名咱台,出塊更多
- 大節(jié)點(diǎn)將部分收益分給小節(jié)點(diǎn)
整個(gè)過程類似于投票分紅的輪回络拌。
這樣做的意義在于,中型節(jié)點(diǎn)有機(jī)會(huì)和小節(jié)點(diǎn)合起來與超級(jí)節(jié)點(diǎn)展開競(jìng)爭(zhēng)回溺,避免了超級(jí)節(jié)點(diǎn)的壟斷春贸。
某一方面說,降低了系統(tǒng)的中心化遗遵。
加入SPoR算法的優(yōu)勢(shì):
在文章最開始萍恕,我們聊到了單純的POS和POW機(jī)制都有一定的問題,當(dāng)然车要,也有各自的優(yōu)勢(shì)允粤。
混合機(jī)制最大的優(yōu)勢(shì)就是以彼之長(zhǎng)補(bǔ)己之短。
簡(jiǎn)單來說翼岁,就是利用SPoR機(jī)制來確保整個(gè)系統(tǒng)的穩(wěn)定性类垫,同時(shí)有用POS的鏈上治理來獲得高性能。
1琅坡,GNX并非直接加入存儲(chǔ)層悉患,而是將存儲(chǔ)加入到共識(shí)機(jī)制中,相當(dāng)于將一個(gè)微型的POW加入到POS的共識(shí)中形成混合機(jī)制榆俺,確保安全售躁,穩(wěn)定的同時(shí)提升效率坞淮。
2,采用雙層設(shè)計(jì)陪捷,將儲(chǔ)存網(wǎng)絡(luò)和公鏈進(jìn)行結(jié)合回窘。使得用戶可以分享加密數(shù)據(jù),并將分布式加密數(shù)據(jù)與區(qū)塊鏈結(jié)合起來市袖,讓鏈外的數(shù)據(jù)更容易使用啡直,同時(shí)也解決了鏈上數(shù)據(jù)受限制的問題。
如果想法可以得到驗(yàn)證凌盯,那么更多優(yōu)秀的dapp將會(huì)面世付枫。
這是對(duì)開發(fā)者來說,非常好的解決方案驰怎,讓Dapp的開發(fā)和app一樣容易阐滩、或者可以直接將現(xiàn)有的app數(shù)據(jù)上鏈,進(jìn)行分布式存儲(chǔ)县忌。
現(xiàn)有的公鏈都在解決這兩個(gè)基本問題:
- 容量
- 效率
GNX也許是問題的終結(jié)者掂榔。