DATx是針對(duì)當(dāng)前廣告行業(yè)的再一次創(chuàng)新運(yùn)動(dòng)匆浙,致力于建立一個(gè)以去中心化為基石躁愿,以人工智能為引擎的新型智能廣告生態(tài)系統(tǒng)德迹。
DATx提供了用戶行為檔案數(shù)據(jù)遠(yuǎn)程存儲(chǔ)功能雀监,其核心功能是用戶將用戶行為檔案數(shù)據(jù)存儲(chǔ)在去中心化的網(wǎng)絡(luò)節(jié)點(diǎn)中野哭,之后用戶可以在任意地點(diǎn)獲取和訪問(wèn)這些數(shù)據(jù)在塔。用戶行為檔案主要包括了完整的鏈條式的用戶行為記錄,可以讓我們模擬出完整的用戶畫(huà)像虐拓,知道用戶在媒體上個(gè)各種瀏覽心俗、點(diǎn)擊、購(gòu)買(mǎi)背后的商業(yè)真相蓉驹。
把用戶行為檔案數(shù)據(jù)存儲(chǔ)到一個(gè)去中心化的網(wǎng)絡(luò)中城榛,意味著其他的網(wǎng)絡(luò)節(jié)點(diǎn)——存儲(chǔ)節(jié)點(diǎn),將保存用戶的數(shù)據(jù)态兴,而且負(fù)責(zé)在用戶需要訪問(wèn)和廣告平臺(tái)進(jìn)行大數(shù)據(jù)分析時(shí)狠持,會(huì)歸還這些數(shù)據(jù)。當(dāng)用戶成為存儲(chǔ)節(jié)點(diǎn)后瞻润,會(huì)獲得DATx激勵(lì)喘垂。并且,如果有用戶在該存儲(chǔ)節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)绍撞,該存儲(chǔ)節(jié)點(diǎn)會(huì)獲得額外的激勵(lì)正勒。
我們的DATx用戶行為檔案的存儲(chǔ)技術(shù),建立在區(qū)塊鏈技術(shù)的基礎(chǔ)之上傻铣。區(qū)塊鏈?zhǔn)且粋€(gè)分布式賬本章贞,通過(guò)密碼學(xué)方法讓達(dá)成一致的雙方直接交易,并由代碼而不是人來(lái)保證交易的安全可靠非洲。區(qū)塊鏈中所有的規(guī)則事先都通過(guò)算法程序的形式表述出來(lái)鸭限,參與交易的雙方不需要知道對(duì)方是君子或小人,更不需要第三方進(jìn)行信任背書(shū)两踏,只需要信任共同的算法就可以建立互信败京。
DTAx網(wǎng)絡(luò)中,加入DATx生態(tài)的任何用戶(包括但不限于廣告主梦染、渠道赡麦、廣告受眾)都可以成為網(wǎng)絡(luò)存儲(chǔ)節(jié)點(diǎn)。用戶有權(quán)選擇他們自己的存儲(chǔ)節(jié)點(diǎn),也有權(quán)利選擇自己是否成為存儲(chǔ)節(jié)點(diǎn)隧甚,但是加入DATx的存儲(chǔ)節(jié)點(diǎn)必須遵循我們的共識(shí)算法车荔。
FLP定理和CAP定理
區(qū)塊鏈的偉大之處,就是它的共識(shí)機(jī)制在去中心化的思想上解決了節(jié)點(diǎn)間互相信任的問(wèn)題戚扳。區(qū)塊鏈能在眾多節(jié)點(diǎn)達(dá)到一種較為平衡的狀態(tài)也是因?yàn)楣沧R(shí)機(jī)制。
區(qū)塊鏈可以概括為去中心化分布式分類(lèi)賬族吻,但是在賬本中帽借,如何對(duì)在幾乎相同時(shí)間內(nèi)的產(chǎn)生的事物前后排序,這就涉及到區(qū)塊鏈網(wǎng)絡(luò)的共識(shí)機(jī)制超歌。在區(qū)塊鏈中砍艾,所謂共識(shí)機(jī)制,就是在一個(gè)時(shí)間段內(nèi)對(duì)事物的前后順序達(dá)成共識(shí)的一種算法巍举。在DATx生態(tài)中脆荷,兩個(gè)存儲(chǔ)節(jié)點(diǎn)幾乎在相同的時(shí)間內(nèi)競(jìng)爭(zhēng)存儲(chǔ)同一份文件,那么懊悯,怎么對(duì)競(jìng)爭(zhēng)的存儲(chǔ)節(jié)點(diǎn)排序蜓谋,則需要我們的共識(shí)機(jī)制來(lái)解決。
當(dāng)分布式的思想被提出來(lái)時(shí)炭分,人們就開(kāi)始根據(jù)FLP定理和CAP定理設(shè)計(jì)共識(shí)算法桃焕。
FLP定理
FLP定理即FLP不可能性,它證明了在分布式情景下捧毛,無(wú)論任何算法观堂,即使是只有一個(gè)進(jìn)程掛掉,對(duì)于其他非失敗進(jìn)程呀忧,都存在著無(wú)法達(dá)成一致的可能师痕。
FLP基于如下幾點(diǎn)假設(shè):
僅可修改一次
每個(gè)進(jìn)程初始時(shí)都記錄一個(gè)值(0或1)。進(jìn)程可以接收消息而账、改動(dòng)該值胰坟、并發(fā)送消息,當(dāng)進(jìn)程進(jìn)入decide state時(shí)福扬,其值就不再變化腕铸。所有非失敗進(jìn)程都進(jìn)入decided state時(shí),協(xié)議成功結(jié)束铛碑。這里放寬到有一部分進(jìn)程進(jìn)入decided state就算協(xié)議成功狠裹。
異步通信
與同步通信的最大區(qū)別是沒(méi)有時(shí)鐘、不能時(shí)間同步汽烦、不能使用超時(shí)涛菠、不能探測(cè)失敗、消息可任意延遲、消息可亂序俗冻。
通信健壯
只要進(jìn)程非失敗礁叔,消息雖會(huì)被無(wú)限延遲,但最終會(huì)被送達(dá)迄薄;并且消息僅會(huì)被送達(dá)一次(無(wú)重復(fù))琅关。
Fail-Stop模型
進(jìn)程失敗如同宕機(jī),不再處理任何消息讥蔽。
失敗進(jìn)程數(shù)量
最多一個(gè)進(jìn)程失敗涣易。
CAP定理
CAP是分布式系統(tǒng)、特別是分布式存儲(chǔ)領(lǐng)域中被討論最多的理論冶伞。CAP由Eric Brewer在2000年P(guān)ODC會(huì)議上提出新症,是Eric Brewer在Inktomi期間研發(fā)搜索引擎、分布式web緩存時(shí)得出的關(guān)于數(shù)據(jù)一致性(consistency)响禽、服務(wù)可用性(availability)徒爹、分區(qū)容錯(cuò)性(partition-tolerance)的猜想:
It is impossiblefor a web service to provide the three following guarantees: Consistency,Availability and Partition-tolerance.
該猜想在提出兩年后被證明成立,成為我們熟知的CAP定理:
數(shù)據(jù)一致性(Consistency)
如果系統(tǒng)對(duì)一個(gè)寫(xiě)操作返回成功芋类,那么之后的讀請(qǐng)求都必須讀到這個(gè)新數(shù)據(jù)隆嗅;如果返回失敗,那么所有讀操作都不能讀到這個(gè)數(shù)據(jù)梗肝,對(duì)調(diào)用者而言數(shù)據(jù)具有強(qiáng)一致性榛瓮。
服務(wù)可用性(Availability)
所有讀寫(xiě)請(qǐng)求在一定時(shí)間內(nèi)得到響應(yīng),可終止巫击、不會(huì)一直等待禀晓。
分區(qū)容錯(cuò)性(Partition-tolerance)
在網(wǎng)絡(luò)分區(qū)的情況下,被分隔的節(jié)點(diǎn)仍能正常對(duì)外服務(wù)坝锰。
在某時(shí)刻如果滿足AP粹懒,分隔的節(jié)點(diǎn)同時(shí)對(duì)外服務(wù)但不能相互通信,將導(dǎo)致?tīng)顟B(tài)不一致顷级,即不能滿足C凫乖;如果滿足CP,網(wǎng)絡(luò)分區(qū)的情況下為達(dá)成C弓颈,請(qǐng)求只能一直等待帽芽,即不滿足A;如果要滿足CA翔冀,在一定時(shí)間內(nèi)要達(dá)到節(jié)點(diǎn)狀態(tài)一致导街,要求不能出現(xiàn)網(wǎng)絡(luò)分區(qū),則不能滿足P纤子。
理想的分布式系統(tǒng)的一致性應(yīng)該滿足如下:
1)可終止性:一致性的結(jié)果可在有限時(shí)間內(nèi)完成搬瑰;
2)共識(shí)性:不同節(jié)點(diǎn)最終完成決策的結(jié)果應(yīng)該相同款票;
3)合法性:決策的結(jié)果必須是其他進(jìn)程提出的提案。
但是在實(shí)際情況中泽论,可能會(huì)存在以下問(wèn)題:
1)節(jié)點(diǎn)處理事務(wù)的能力不同艾少,網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)的吞吐量有差異;
2)節(jié)點(diǎn)間通訊的信道可能不安全翼悴;
3)可能會(huì)有作惡節(jié)點(diǎn)出現(xiàn)缚够;
4)當(dāng)異步處理能力達(dá)到高度一致時(shí),系統(tǒng)的可擴(kuò)展性就會(huì)變差(容不下新節(jié)點(diǎn)的加入)抄瓦。
所以基于區(qū)塊鏈設(shè)計(jì)的各種共識(shí)機(jī)制都可以看作犧牲某一部分代價(jià)來(lái)?yè)Q取多適合的一致性潮瓶。
DATx前期分別對(duì)幾種主流的共識(shí)機(jī)制進(jìn)行了探索。
POW共識(shí)機(jī)制
POW:Proof-Of-Work钙姊,工作量證明
在比特幣等貨幣型區(qū)塊鏈中,讓各節(jié)點(diǎn)達(dá)成一致性的共識(shí)機(jī)制為工作量證明(Proof-Of-Work埂伦,POW)煞额,也是我們說(shuō)的挖礦。通俗地講沾谜,POW機(jī)理就是“通過(guò)工作以獲得指定成果膊毁,用成果來(lái)證明曾經(jīng)付出的努力”。
POW共識(shí)機(jī)制依賴機(jī)器進(jìn)行數(shù)學(xué)運(yùn)算來(lái)獲取記賬權(quán)基跑,資源消耗相對(duì)較高婚温、可監(jiān)管性弱,同時(shí)每次達(dá)成共識(shí)需要全網(wǎng)共同參與運(yùn)算媳否,性能效率比較低栅螟,容錯(cuò)性方面允許全網(wǎng)50%節(jié)點(diǎn)出錯(cuò)。
POW的核心要義為:算力越大篱竭,挖到塊的概率越大力图,維護(hù)區(qū)塊鏈安全的權(quán)重越大。相對(duì)其他共識(shí)機(jī)制而言掺逼,POW邏輯簡(jiǎn)單吃媒,容易實(shí)現(xiàn),容錯(cuò)達(dá)50%吕喘,其安全有嚴(yán)格的數(shù)學(xué)論證赘那。
POW優(yōu)點(diǎn):完全去中心化,節(jié)點(diǎn)自由進(jìn)出氯质;
POW缺點(diǎn):目前比特幣已經(jīng)吸引全球大部分的算力募舟,其它再用Pow共識(shí)機(jī)制的區(qū)塊鏈應(yīng)用很難獲得相同的算力來(lái)保障自身的安全;挖礦造成大量的資源浪費(fèi)病梢;共識(shí)達(dá)成的周期較長(zhǎng)胃珍。因此梁肿,DATx決定不采用這種共識(shí)機(jī)制。
POS共識(shí)機(jī)制
POS:Proof of Stake觅彰,權(quán)益證明
Proof of Stake由QuantumMechanic在2011年首先提出吩蔑。
POS算法具體流程為:存在一個(gè)持幣人的集合,他們把手中的代幣放入POS機(jī)制中填抬,這樣他們就變成驗(yàn)證者烛芬。假設(shè)在區(qū)塊鏈最前面一個(gè)區(qū)塊(區(qū)塊鏈中最新的塊),這時(shí)POS算法在這些驗(yàn)證者中隨機(jī)選取一個(gè)(選擇驗(yàn)證者的權(quán)重依據(jù)他們投入的代幣多少飒责,比如一個(gè)投入押金為10000代幣的驗(yàn)證者被選擇的概率是一個(gè)投入1000代幣驗(yàn)證者的10倍)赘娄,給他們權(quán)利產(chǎn)生下一個(gè)區(qū)塊。如果在一定時(shí)間內(nèi)宏蛉,這個(gè)驗(yàn)證者沒(méi)有產(chǎn)生一個(gè)區(qū)塊遣臼,則選出第二個(gè)驗(yàn)證者來(lái)代替來(lái)產(chǎn)生新區(qū)塊。與POW一樣拾并,以最長(zhǎng)的鏈為準(zhǔn)揍堰。
POS優(yōu)點(diǎn):不再需要為了安全產(chǎn)生區(qū)塊而大量消耗電能。
由于不再需要大量能耗嗅义,通過(guò)發(fā)行新幣以激勵(lì)參與者繼續(xù)參與網(wǎng)絡(luò)的壓力會(huì)下降屏歹。理論上負(fù)總發(fā)行量甚至成為可能,由于一部分交易費(fèi)被燒掉之碗,因此貨幣供應(yīng)隨著時(shí)間減少蝙眶。隨著規(guī)模經(jīng)濟(jì)的消失,中心化所帶來(lái)的風(fēng)險(xiǎn)減小褪那。
POS缺點(diǎn):還是需要挖礦幽纷,本質(zhì)上沒(méi)有解決商業(yè)應(yīng)用的痛點(diǎn);所有的確認(rèn)都只是一個(gè)概率上的表達(dá)武通,而不是一個(gè)確定性的事情霹崎,理論上有可能存在其他攻擊影響。
并且在權(quán)益證明機(jī)制POS中冶忱,token的余額越多的人獲得公示信息的概率越高尾菇,公示人會(huì)得到一定的token作為獎(jiǎng)勵(lì),如此持有token多的人會(huì)越來(lái)越多囚枪,少的人越來(lái)越少派诬。
瑞波共識(shí)機(jī)制
Ripple Consensus
瑞波共識(shí)算法,使一組節(jié)點(diǎn)能夠基于特殊節(jié)點(diǎn)列表達(dá)成共識(shí)链沼。要接納一個(gè)新成員默赂,必須由51%的初始特殊節(jié)點(diǎn)投票通過(guò)。共識(shí)遵循這核心成員的51%權(quán)力括勺,外部人員則沒(méi)有影響力缆八。由于初始特殊節(jié)點(diǎn)由“中心化”開(kāi)始曲掰,它將一直是“中心化的”,而如果它開(kāi)始腐化奈辰,股東們什么也做不了栏妖。與比特幣一樣,瑞波系統(tǒng)將股東們與其投票權(quán)隔開(kāi)奖恰,因此比其他系統(tǒng)更中心化吊趾。
Pool驗(yàn)證池
基于傳統(tǒng)的分布式一致性技術(shù),加上數(shù)據(jù)驗(yàn)證機(jī)制瑟啃;是目前行業(yè)鏈大范圍在使用的共識(shí)機(jī)制论泛。
優(yōu)點(diǎn):不需要代幣也可以工作,在成熟的分布式一致性算法(Pasox蛹屿、Raft)基礎(chǔ)上屁奏,實(shí)現(xiàn)秒級(jí)共識(shí)驗(yàn)證。
缺點(diǎn):去中心化程度不如bictoin错负;更適合多方參與的多中心商業(yè)模式了袁。
PoET共識(shí)機(jī)制
PoET:Proof of Elapsed Time,消逝時(shí)間量證明
它是由英特爾構(gòu)建在可信執(zhí)行環(huán)境的一種彩票協(xié)議湿颅。核心是用intel支持SGX技術(shù)的CPU硬件,在受控安全環(huán)境(TEE)下隨機(jī)產(chǎn)生一些延時(shí)粥诫,同時(shí)CPU從硬件級(jí)別證明延時(shí)的可信性油航,類(lèi)似于彩票算法,誰(shuí)的延時(shí)最低怀浆,誰(shuí)將獲取記賬權(quán)谊囚。這樣,增加記賬權(quán)的唯一方法就是多增加CPU的數(shù)量执赡,具備了當(dāng)初中本聰設(shè)想的一個(gè)CPU一票的可能镰踏,同時(shí)增加的CPU會(huì)提升整個(gè)系統(tǒng)的資源,變相實(shí)現(xiàn)了記賬權(quán)與提供資源之間的正比例關(guān)系沙合。
QV共識(shí)機(jī)制
QV:Quorum Voting奠伪,仲裁投票
它采用了瑞波和恒星的共識(shí)協(xié)議,用來(lái)解決需立即交易定局的需求首懈。
DPOS共識(shí)機(jī)制
DPOS:Delegate Proof of Stake绊率,股份授權(quán)證明
BitShares社區(qū)首先提出了DPOS機(jī)制。
與POS的主要區(qū)別在于節(jié)點(diǎn)選舉若干代理人究履,由代理人驗(yàn)證和記賬滤否。其合規(guī)監(jiān)管、性能最仑、資源消耗和容錯(cuò)性與POS相似藐俺。類(lèi)似于董事會(huì)投票炊甲,持幣者投出一定數(shù)量的節(jié)點(diǎn),代理他們進(jìn)行驗(yàn)證和記賬欲芹。
DPOS的工作原理為:
去中心化表示每個(gè)股東按其持股比例擁有影響力卿啡,51%股東投票的結(jié)果將是不可逆且有約束力的。其挑戰(zhàn)是通過(guò)及時(shí)而高效的方法達(dá)到51%批準(zhǔn)耀石。為達(dá)到這個(gè)目標(biāo)牵囤,每個(gè)股東可以將其投票權(quán)授予一名代表,獲票數(shù)最多的前100位代表按既定時(shí)間表輪流產(chǎn)生區(qū)塊滞伟。每名代表分配到一個(gè)時(shí)間段來(lái)生產(chǎn)區(qū)塊揭鳞。所有的代表將收到等同于一個(gè)平均水平的區(qū)塊所含交易費(fèi)的10%作為報(bào)酬。如果一個(gè)平均水平的區(qū)塊含有100股作為交易費(fèi)梆奈,一名代表將獲得1股作為報(bào)酬野崇。
網(wǎng)絡(luò)延遲有可能使某些代表沒(méi)能及時(shí)廣播他們的區(qū)塊,而這將導(dǎo)致區(qū)塊鏈分叉亩钟。然而乓梨,這不太可能發(fā)生,因?yàn)橹圃靺^(qū)塊的代表可以與制造前后區(qū)塊的代表建立直接連接清酥。建立這種與你之后的代表(也許也包括其后的那名代表)的直接連接是為了確保你能得到報(bào)酬扶镀。
該模式可以每30秒產(chǎn)生一個(gè)新區(qū)塊,并且在正常的網(wǎng)絡(luò)條件下區(qū)塊鏈分叉的可能性極其小焰轻,即使發(fā)生也可以在幾分鐘內(nèi)得到解決臭觉。
DATx共識(shí)機(jī)制
鑒于DATx需要高并發(fā)、低延遲處理交易的需求辱志,我們采用股份授權(quán)證明共識(shí)機(jī)制蝠筑,即DPOS共識(shí)機(jī)制。
DATx中揩懒,DPOS共識(shí)機(jī)制被分為了兩部分什乙,其一是選舉一組區(qū)塊生產(chǎn)者,其二是調(diào)度生產(chǎn)已球。選舉流程要盡量保證臣镣,權(quán)益所有者最終能控制整個(gè)網(wǎng)絡(luò),因?yàn)橐坏┚W(wǎng)絡(luò)出現(xiàn)問(wèn)題和悦,權(quán)益所有者損失的將會(huì)最大退疫。
1 選舉區(qū)塊生產(chǎn)者
1)成為代表
成為一名代表,用戶必須在網(wǎng)絡(luò)上注冊(cè)屬于他自己的公鑰鸽素,然后其會(huì)被分配一個(gè)32位的特有標(biāo)識(shí)符褒繁,該標(biāo)識(shí)符會(huì)被每筆交易數(shù)據(jù)的“頭部”引用。
2)授權(quán)選票
每個(gè)錢(qián)包有一個(gè)參數(shù)設(shè)置窗口馍忽,在該窗口里用戶可以選擇一個(gè)或更多的代表棒坏,并將其分級(jí)燕差。一經(jīng)設(shè)定,用戶所做的每筆交易將把選票從“輸入代表”轉(zhuǎn)移至“輸出代表”坝冕。一般情況下徒探,用戶不會(huì)創(chuàng)建以投票為目的的交易,因?yàn)槟菍⒑馁M(fèi)他們一筆交易費(fèi)喂窟。但在緊急情況下测暗,某些用戶可能覺(jué)得通過(guò)支付費(fèi)用這一更積極的方式來(lái)改變他們的投票是值得的。
3)保持代表誠(chéng)實(shí)
每個(gè)錢(qián)包將顯示一個(gè)狀態(tài)指示器磨澡,讓用戶知道他們的代表表現(xiàn)如何碗啄。如果他們錯(cuò)過(guò)了太多的區(qū)塊,那么系統(tǒng)將會(huì)推薦用戶去換一個(gè)新的代表稳摄。如果任何代表被發(fā)現(xiàn)簽發(fā)了一個(gè)無(wú)效的區(qū)塊稚字,那么所有標(biāo)準(zhǔn)錢(qián)包將在每個(gè)錢(qián)包進(jìn)行更多交易前要求選出一個(gè)新代表。
4)抵抗攻擊
在抵抗攻擊上厦酬,因?yàn)榍?00名代表所獲得的權(quán)力權(quán)重是相同的胆描,每名代表都有一份相等的投票權(quán)。因此仗阅,無(wú)法通過(guò)獲得超過(guò)1%的選票而將權(quán)力集中到一個(gè)單一代表上昌讲。因?yàn)橹挥?00名代表,可以想象一個(gè)攻擊者對(duì)每名輪到生產(chǎn)區(qū)塊的代表依次進(jìn)行拒絕服務(wù)攻擊减噪。幸運(yùn)的是剧蚣,由于事實(shí)上每名代表的標(biāo)識(shí)是其公鑰而非IP地址,這種特定攻擊的威脅很容易被減輕旋廷。這將使確定DDOS攻擊目標(biāo)更為困難。而代表之間的潛在直接連接礼搁,將使妨礙他們生產(chǎn)區(qū)塊變得更為困難饶碘。
2 調(diào)度生產(chǎn)
我們還需要重點(diǎn)知道的是,當(dāng)區(qū)塊生產(chǎn)者選好后馒吴,如何達(dá)成共識(shí)扎运。為了說(shuō)明DPOS共識(shí)機(jī)制,我們先假設(shè)只有三個(gè)區(qū)塊生產(chǎn)者饮戳,A豪治,B,C扯罐。當(dāng)然在實(shí)際場(chǎng)景中负拟,會(huì)有更多的區(qū)塊生產(chǎn)者。
因?yàn)楣沧R(shí)需要2/3 +1個(gè)成員來(lái)應(yīng)對(duì)所有場(chǎng)景歹河,所以在這里掩浙,我們假設(shè)區(qū)塊生產(chǎn)者C是那個(gè)破局者花吟。另外,如POW(工作量證明)共識(shí)一樣厨姚,基本規(guī)則是我們總是應(yīng)該選擇最長(zhǎng)的區(qū)塊鏈衅澈。任何時(shí)候,一個(gè)誠(chéng)實(shí)的節(jié)點(diǎn)看到另一個(gè)合法的且更長(zhǎng)的區(qū)塊鏈谬墙,它應(yīng)該總是切換到那個(gè)更長(zhǎng)的分支上今布。
1)正常情況
在正常情況下,區(qū)塊生產(chǎn)者輪流每3秒產(chǎn)生一個(gè)區(qū)塊拭抬。假設(shè)沒(méi)有生產(chǎn)者錯(cuò)過(guò)自己順序部默,那么他們生產(chǎn)的鏈條勢(shì)必是最長(zhǎng)的鏈條。另外玖喘,在區(qū)塊生產(chǎn)者在非指定時(shí)間生產(chǎn)區(qū)塊會(huì)被認(rèn)為是無(wú)效的甩牺。
注意,實(shí)際情況中生產(chǎn)者的順序是隨機(jī)的累奈。
在后面所有的例子中贬派,我們展示的是一個(gè)輪流選擇區(qū)塊生產(chǎn)者的方案。但在實(shí)際中澎媒,生產(chǎn)者集合是隨機(jī)的搞乏,每N個(gè)塊就將隨機(jī)一次,其中N是生產(chǎn)者的數(shù)量戒努。這種隨機(jī)保證區(qū)塊生產(chǎn)者B不能總是忽略區(qū)塊生產(chǎn)者A请敦,打破多個(gè)同樣的分支等待。
2)少數(shù)群體的分叉
可以允許最多1/3的節(jié)點(diǎn)是惡意節(jié)點(diǎn)或者是故障節(jié)點(diǎn)储玫,從而導(dǎo)致出現(xiàn)分叉侍筛。這里我們假設(shè)A、B撒穷、C中C是惡意節(jié)點(diǎn)或者惡意節(jié)點(diǎn)匣椰。在這種情形下,少數(shù)分支(下圖下方的鏈)將只能在9秒內(nèi)生產(chǎn)1個(gè)塊端礼,而大多數(shù)分支(下圖上方的鏈)由于數(shù)量多一倍禽笑,將預(yù)期能在9秒內(nèi)生產(chǎn)2個(gè)塊。所以蛤奥,誠(chéng)實(shí)的2/3的大多數(shù)可以比小的那一部分創(chuàng)建一個(gè)更長(zhǎng)的鏈條佳镜。
3)隔離環(huán)境下的重復(fù)塊生產(chǎn)
少數(shù)群體可能?chē)L試創(chuàng)建一個(gè)無(wú)限數(shù)量的分叉,如下圖中凡桥,節(jié)點(diǎn)C嘗試創(chuàng)建了多個(gè)分叉(C0蟀伸,C1,C2,C3)望蜡。但是即使節(jié)點(diǎn)C創(chuàng)建了很多分叉唤崭,分叉的鏈的長(zhǎng)度比主鏈都要短,而且脖律,分叉鏈的成長(zhǎng)速度比主鏈要慢谢肾。
4)網(wǎng)絡(luò)碎片
網(wǎng)絡(luò)非常有可能碎片化,沒(méi)有哪一個(gè)鏈上的區(qū)塊生產(chǎn)者占到了所有區(qū)塊生產(chǎn)者中的大多數(shù)小泉。在此情景下芦疏,最長(zhǎng)的那個(gè)鏈將變成最大的一個(gè)少數(shù)群體。當(dāng)網(wǎng)絡(luò)連接恢復(fù)正常后微姊,相對(duì)較小的那些群體將自然的切換到最長(zhǎng)的鏈酸茴,從而將恢復(fù)明確的共識(shí)。
還有一種非尘そ唬可能的情況是薪捍,三個(gè)分支中,最大的兩個(gè)分支一樣大配喳。此時(shí)酪穿,將由相對(duì)更小的第三個(gè)分支加入網(wǎng)絡(luò)時(shí)來(lái)打破僵局。存在奇數(shù)個(gè)區(qū)塊生產(chǎn)者晴裹,所以僵局一般不會(huì)持續(xù)很久被济。在區(qū)塊生產(chǎn)者的清洗中,會(huì)將生產(chǎn)者隨機(jī)生成順序涧团,以確保即使兩個(gè)分支具有相同數(shù)量的生產(chǎn)者只磷,分支也將以不同的長(zhǎng)度爆發(fā)增長(zhǎng),導(dǎo)致一個(gè)分支最終接管另一個(gè)分支泌绣。
5)少數(shù)群體重復(fù)生產(chǎn)
在這種情景下钮追,少數(shù)群體C在自己可以生產(chǎn)的時(shí)間節(jié)點(diǎn),同時(shí)創(chuàng)建兩條或多條的區(qū)塊鏈阿迈。下一個(gè)執(zhí)行的生產(chǎn)者A畏陕,將選擇C創(chuàng)建的可選鏈中的任一條,A選中的這條鏈將成為最長(zhǎng)的鏈仿滔。下圖中,節(jié)點(diǎn)A選擇了上一區(qū)塊為C的節(jié)點(diǎn)犹芹。之后崎页,即便節(jié)點(diǎn)C再次創(chuàng)建一個(gè)節(jié)點(diǎn),下一個(gè)節(jié)點(diǎn)A也不會(huì)選擇節(jié)點(diǎn)C1腰埂,而是選擇長(zhǎng)鏈飒焦。所以,無(wú)論少數(shù)惡意節(jié)點(diǎn)結(jié)點(diǎn)制造多少的鏈,他們?cè)谙乱惠喼形隙ú粫?huì)是最長(zhǎng)的那個(gè)鏈翁巍。
6)最后的不可逆區(qū)塊
在網(wǎng)絡(luò)碎片的情況下,多個(gè)分叉可能持續(xù)較長(zhǎng)時(shí)間的隔離休雌。長(zhǎng)遠(yuǎn)來(lái)看灶壶,最長(zhǎng)的鏈將最終受到認(rèn)可。但觀察者需要一種手段來(lái)確定某個(gè)塊是否是在最長(zhǎng)鏈條的一部分(確認(rèn)共識(shí))杈曲。這可以通過(guò)2/3 + 1個(gè)區(qū)塊生產(chǎn)者是否對(duì)某個(gè)塊有確認(rèn)驰凛。
下圖中,塊B被A担扑、C確認(rèn)了恰响,這意味著2/3 +1都已經(jīng)確認(rèn)了。由此我們可以為不可能存在更長(zhǎng)的鏈了涌献,因?yàn)?/3的區(qū)塊鏈?zhǔn)钦\(chéng)實(shí)的胚宦。
需要注意的是這個(gè)規(guī)則與比特幣的6個(gè)區(qū)塊確認(rèn)類(lèi)似。一些聰明的人可以設(shè)計(jì)一系列事件燕垃,其中兩個(gè)節(jié)點(diǎn)可能會(huì)在不同的最后不可逆塊上結(jié)束枢劝。這種極端情況需要一個(gè)攻擊者,精確控制通信延遲利术,并需要在幾分鐘內(nèi)實(shí)施不止一次呈野,而是二次攻擊。如果發(fā)生這種情況印叁,那么最長(zhǎng)鏈條這一長(zhǎng)期規(guī)則仍然適用被冒。我們估計(jì)這種攻擊的可能性足夠接近0,經(jīng)濟(jì)后果也微不足道轮蜕,不值得擔(dān)心昨悼。
7)不足法定區(qū)塊生產(chǎn)者
這種情況下,生產(chǎn)者沒(méi)有明確達(dá)到法定人數(shù)跃洛,少數(shù)人可能繼續(xù)生產(chǎn)塊率触。在繼續(xù)生產(chǎn)的區(qū)塊中,利益相關(guān)者可以包含一些改變投票的交易汇竭。這些投票會(huì)選舉一組新的區(qū)塊生產(chǎn)者葱蝗,并將區(qū)塊生產(chǎn)參與度恢復(fù)到100%。一旦發(fā)生這種情況细燎,少數(shù)人鏈最終會(huì)超過(guò)其它低于100%參與鏈两曼。
當(dāng)這個(gè)情況發(fā)生時(shí),所有的觀察者必須要明白整個(gè)網(wǎng)絡(luò)處于不穩(wěn)定的狀態(tài)玻驻,直到多于67%參與者出現(xiàn)后才會(huì)穩(wěn)定下來(lái)悼凑。哪些選擇在這種情景下發(fā)起交易的,與那些在比特幣中接受低于6塊就確認(rèn)交易成功那樣,冒著類(lèi)似的風(fēng)險(xiǎn)户辫。他們必須明白渐夸,存在某些情況下,共識(shí)最終會(huì)以另一個(gè)鏈為準(zhǔn)渔欢。在實(shí)踐中墓塌,這種情形比在比特幣中接受少于3個(gè)塊就確認(rèn)更加安全。
8)大多數(shù)的區(qū)塊生產(chǎn)者的腐敗
如果大多數(shù)區(qū)塊生產(chǎn)者合謀變得腐敗膘茎,他們制造無(wú)限數(shù)量的分支桃纯,每一個(gè)分支都有多于2/3的大多數(shù)的簽名。如下圖中節(jié)點(diǎn)B和節(jié)點(diǎn)C合謀披坏,惡意創(chuàng)建無(wú)限數(shù)量的分支态坦。
在這樣的場(chǎng)景中,最后不可逆轉(zhuǎn)塊算法退化為最長(zhǎng)鏈算法棒拂。此時(shí)最長(zhǎng)的伞梯,獲得了最大的群體認(rèn)證的,將由少數(shù)的誠(chéng)實(shí)節(jié)點(diǎn)的加入來(lái)確定帚屉。這樣的情形不會(huì)持續(xù)很久谜诫,因?yàn)槔嫦嚓P(guān)者會(huì)最終投票替換掉這些區(qū)塊生產(chǎn)者。
交易即權(quán)益證明(TaPOS攻旦,Transactionsas Proof of Stake)
當(dāng)用戶對(duì)一個(gè)交易進(jìn)行簽名時(shí)喻旷,潛在假設(shè)是他們知道當(dāng)前區(qū)塊鏈的狀態(tài)。如果關(guān)于最長(zhǎng)鏈的共識(shí)發(fā)生了變化牢屋,那么對(duì)應(yīng)當(dāng)用戶簽發(fā)交易時(shí)所作的潛在假設(shè)也失去了基礎(chǔ)且预。
TaPoS,是指所有的交易烙无,包括最近區(qū)塊的哈希锋谐。如果它不存在于區(qū)塊歷史中,那么他就被認(rèn)為是無(wú)效的截酷。任何人在一個(gè)孤立的節(jié)點(diǎn)上簽名交易涮拗,交易本身將不會(huì)得到承認(rèn),而且也不能被移植到主網(wǎng)絡(luò)上迂苛。
這個(gè)流程帶來(lái)的一個(gè)副作用是三热,為網(wǎng)絡(luò)帶來(lái)安全,可以抵擋長(zhǎng)程攻擊三幻,試圖生成一個(gè)替代鏈就漾。個(gè)人利益相關(guān)者每次交易就是對(duì)區(qū)塊鏈的一個(gè)投票。隨著時(shí)間的推移赌髓,所有的塊都被所有利益相關(guān)者確認(rèn),這是一個(gè)不能在偽造鏈中復(fù)制的東西。
最后
DATx通過(guò)DPOS和并行鏈的方式解決延遲和數(shù)據(jù)吞吐量的問(wèn)題锁蠕。目前可觀的情況下夷野,DPOS(委托權(quán)益證明)都是強(qiáng)健的,甚至在面對(duì)相當(dāng)數(shù)量區(qū)塊生產(chǎn)者舞弊的情形時(shí)也是安全的荣倾。選擇塊生產(chǎn)者和驗(yàn)證節(jié)點(diǎn)質(zhì)量的算法賦予了DPOS的安全性悯搔。運(yùn)用贊成投票的過(guò)程可以確保一個(gè)人即使擁有50%的有效投票權(quán)也不能獨(dú)自挑選哪怕一個(gè)生產(chǎn)者。DPOS大幅縮小參與驗(yàn)證和記賬節(jié)點(diǎn)的數(shù)量舌仍,可以達(dá)到秒級(jí)的共識(shí)驗(yàn)證妒貌。
程式化廣告中,一直比較重要的是投放的實(shí)時(shí)決策铸豁、個(gè)性化投放需求和大量交易等問(wèn)題灌曙。DATx采用的DPOS共識(shí)機(jī)制在我們的交易中占據(jù)了重要的地位,其在處理比任何其它區(qū)塊鏈更多交易的同時(shí)持續(xù)達(dá)成共識(shí)节芥,在DATx廣告生態(tài)中展現(xiàn)出了非凡的一面在刺。