區(qū)塊鏈筆記-番外算法Snowflake to Avalanche(一)

今天我們來學(xué)習(xí)一下一個(gè)新的共識(shí)算法歹河,他較以往有非常大的改變摩窃。雪崩算法如果在數(shù)學(xué)上可以給出更好地安全性證明以及活性證明卤恳,它可能在接下來一段時(shí)間大放異彩鳞滨。

在 2018 年 5 月紐約舉行的 Token Summit III 上洞焙,康奈爾教授埃米·岡·瑟勒(Emin Gun Sirer)發(fā)布了一個(gè)新型的區(qū)塊鏈共識(shí)協(xié)議,它是由一組算法組成的家族拯啦,聲稱它是公式算法的重大突破和創(chuàng)新澡匪,這個(gè)算法家族集成了經(jīng)典的 Non-Byzanting 共識(shí)算法和 Nakamoto 共識(shí)算法(即 POW) 兩者的特點(diǎn)。用他們的話來說就是褒链,簡(jiǎn)單而又強(qiáng)大無比唁情。

亞穩(wěn)態(tài)機(jī)制:

算法提出了一種基于亞穩(wěn)態(tài)機(jī)制(metastable)的共識(shí)協(xié)議族。所謂亞穩(wěn)態(tài)甫匹,是指系統(tǒng)在某段時(shí)間內(nèi)處于穩(wěn)定狀態(tài)甸鸟,但在另外一段時(shí)間內(nèi)可能是不穩(wěn)定的。穩(wěn)態(tài)代表了系統(tǒng)的最低能量點(diǎn)兵迅,而亞穩(wěn)態(tài)則是一個(gè)局部的而非全局的最低能量點(diǎn)抢韭。以下圖中的小球?yàn)槔绻帽容^小的力推小球恍箭,則會(huì)停留在位置1這個(gè)亞穩(wěn)態(tài)上刻恭,而如果用比較大的力推,則會(huì)進(jìn)入位置3這個(gè)真正的穩(wěn)態(tài)上季惯。

圖 亞wen態(tài)示意圖

那么這個(gè)新的共識(shí)協(xié)議族有什么特點(diǎn)呢吠各?

綠色(Green):消耗很少能源

安靜(Quiescent):沒有交易時(shí)不需要工作(出塊)

高效(Efficient):節(jié)點(diǎn)交互復(fù)雜度O(knlogn) ~ O(kn)

如何實(shí)現(xiàn)以上目標(biāo)?主要依賴以下幾種措施:

并行共識(shí)模型:不使用單一復(fù)制狀態(tài)機(jī)(RSM)模型勉抓,每個(gè)節(jié)點(diǎn)維護(hù)自己的RSM(可以互相轉(zhuǎn)移所有權(quán))贾漏,系統(tǒng)對(duì)有關(guān)聯(lián)的交易只維護(hù)偏序(partial order)

反復(fù)隨機(jī)采樣:引導(dǎo)誠(chéng)實(shí)節(jié)點(diǎn)產(chǎn)生相同輸出

亞穩(wěn)態(tài)決策:亞穩(wěn)態(tài)決策可以使得一個(gè)大網(wǎng)絡(luò)快速推進(jìn)到一個(gè)不可逆的狀態(tài)(雖然不能100%保證)

既然是共識(shí)協(xié)議,必然繞不過安全性和活性的證明藕筋。我們先看一下這兩個(gè)特性的定義:

安全性(Safety):nothing bad happens

活性(Liveness):something good eventually happens

該論文證明纵散,文中提出的算法可以提供強(qiáng)概率安全性保證,并且保證誠(chéng)實(shí)節(jié)點(diǎn)的活性。所謂“強(qiáng)概率安全保證”伍掀,是指共識(shí)被逆轉(zhuǎn)的可能性小到可以被忽略(甚至小于哈希沖突的概率)掰茶,實(shí)際上POW提供的也是強(qiáng)概率安全性保證。

另外蜜笤,文中的理論分析是基于同步系統(tǒng)假設(shè)濒蒋,而實(shí)驗(yàn)過程則是在部分同步系統(tǒng)中完成的,實(shí)驗(yàn)結(jié)果和理論分析基本吻合把兔。

雪泥算法SLUSH:


圖 雪泥算法實(shí)現(xiàn)過程

為了算法的通用性沪伙,這里是以顏色沖突為例:R表示紅色,B表示藍(lán)色县好,⊥表示沒有顏色(初始狀態(tài))围橡。

初始狀態(tài):沒有顏色(⊥)

收到交易:染成交易中指定的顏色,同時(shí)發(fā)起查詢

查詢:在網(wǎng)絡(luò)中隨機(jī)選取k個(gè)節(jié)點(diǎn)缕贡,如果規(guī)定時(shí)間內(nèi)沒有收到k個(gè)回復(fù)翁授,再多選一些節(jié)點(diǎn),直到收到k個(gè)回復(fù)為止

收到查詢:如果沒有染色晾咪,染成查詢中指定的顏色收擦,并回復(fù)該顏色,同時(shí)自己也發(fā)起查詢禀酱。否則直接回復(fù)自己當(dāng)前的顏色

決策:收到k個(gè)回復(fù)后炬守,如果某種顏色所占比例超過閾值α(0.5~1),則把自己染成那種顏色剂跟。然后繼續(xù)進(jìn)入下一輪查詢减途,一共查詢m輪,決定最終結(jié)果

可以證明曹洽,隨著節(jié)點(diǎn)數(shù)n的增長(zhǎng)鳍置,m呈對(duì)數(shù)級(jí)增長(zhǎng),因此可以有效控制通信量送淆。

Slush算法是一種非拜占庭容錯(cuò)(BFT)算法税产,但卻是后面三種BFT算法的基石。

下面總結(jié)一下這個(gè)協(xié)議的特點(diǎn):

(1)簡(jiǎn)單狀態(tài)(simple state)

節(jié)點(diǎn)是 memoryless 的偷崩,在每一輪 query 之間辟拷,除了 color,不保存其他任何狀態(tài)阐斜。

**(2)小樣本(small sample) **

不像其他共識(shí)算法衫冻,每輪必須向所有節(jié)點(diǎn)發(fā)出請(qǐng)求。Slush 只需要向一個(gè)很汹顺觥(常量 k)的隨機(jī)樣本集發(fā)出 query隅俘。

(3)反復(fù)抽樣(repeated sampling)

通過反復(fù)抽樣邻奠,可以放大隨機(jī)擾動(dòng)。比如为居,即使初始狀態(tài)是一個(gè) 50/50 的對(duì)等分裂狀態(tài)(收到了兩種沖突的 color 響應(yīng) 碌宴,且他們數(shù)量相同),抽樣過程中的隨機(jī)擾動(dòng)(perturbation) 也會(huì)導(dǎo)致一種 color 會(huì)獲得輕微的優(yōu)勢(shì)蒙畴,然而協(xié)議通過反復(fù)的抽樣可以不斷放大這種優(yōu)勢(shì)贰镣。

(4)抽樣輪數(shù)或時(shí)間期限(用 m 表示)

如果 m 足夠大,Slush 算法可以保證所有節(jié)點(diǎn)都有同等的機(jī)會(huì)被染色(colorized)膳凝,每個(gè)節(jié)點(diǎn)每輪通信都會(huì)有一個(gè)常量的八孝,可以預(yù)測(cè)的通信消耗。m 會(huì)隨著 n 變大鸠项。 m 是指輪數(shù)或時(shí)間限制。 如果 Slush 被用在有 Byzantine 節(jié)點(diǎn)的網(wǎng)絡(luò)中子姜,那么由于 adversary 節(jié)點(diǎn)可以故意把自己翻轉(zhuǎn)(flip)成一個(gè)與主流 color 不一樣的 color 來打亂平衡,使得整個(gè)網(wǎng)絡(luò)的安全性大大降低。 因此灾茁,我們把 Slush 協(xié)議作為 BFT 協(xié)議的原始狀態(tài)构回,它不能提供完整的 BFT 保證。

雪花算法Snowflake:

Slush算法是無狀態(tài)記憶的(memoryless)遥赚,節(jié)點(diǎn)不保存和其他節(jié)點(diǎn)的交互歷史扬舒。

Snowflake算法在該基礎(chǔ)上,為每個(gè)節(jié)點(diǎn)增加了一個(gè)查詢計(jì)數(shù)器凫佛,用于累積該節(jié)點(diǎn)對(duì)當(dāng)前顏色的信任度讲坎。如果連續(xù)β輪都選擇該顏色,則接受該顏色愧薛。


圖 雪花算法實(shí)現(xiàn)

具體修改的部分:

每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)計(jì)數(shù)器

每次顏色發(fā)生變化時(shí)晨炕,將該計(jì)數(shù)器清零

每次查詢成功(收到αk個(gè)回復(fù)),并且顏色不變時(shí)毫炉,計(jì)數(shù)器加一

Snowflake 對(duì) Slush 的改進(jìn)非常簡(jiǎn)單瓮栗,下面也做個(gè)總結(jié):

(1)每個(gè)節(jié)點(diǎn)維護(hù)一個(gè) counter 變量 。

(2)每當(dāng) color 進(jìn)行改變瞄勾,節(jié)點(diǎn)都會(huì)把 counter 值重置為 0费奸。

(3)一旦 query 得到的響應(yīng)結(jié)果中包含同一 color 的數(shù)量 ≥ αk,那么該節(jié)點(diǎn)就會(huì)把 counter 加 1进陡。

當(dāng) Snowflake 選擇了一個(gè)合適的 β 參數(shù)愿阐,和一個(gè)理想的 ε 安全系數(shù),就可以同時(shí)保證 Safty 和 Liveness四濒。

論文在后面還介紹了一個(gè) phase-shift 點(diǎn)换况,correct node 更傾向與做出一個(gè)決定而不是維持在一個(gè) bivalent 狀態(tài)职辨。 并且,還會(huì)有一個(gè)叫做 point-of-no-return 的時(shí)間點(diǎn)戈二,Byzantine node 在 phase-shift 之后失去控制舒裤,而 Correct node 則在 point-of-no-return 點(diǎn)之后開始 commit color。


(要出差觉吭,回來繼續(xù))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腾供,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲜滩,更是在濱河造成了極大的恐慌伴鳖,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徙硅,死亡現(xiàn)場(chǎng)離奇詭異榜聂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嗓蘑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門须肆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桩皿,你說我怎么就攤上這事豌汇。” “怎么了泄隔?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵拒贱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我佛嬉,道長(zhǎng)逻澳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任暖呕,我火速辦了婚禮赡盘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缰揪。我一直安慰自己陨享,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布钝腺。 她就那樣靜靜地躺著抛姑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艳狐。 梳的紋絲不亂的頭發(fā)上定硝,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音毫目,去河邊找鬼蔬啡。 笑死诲侮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的箱蟆。 我是一名探鬼主播沟绪,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼空猜!你這毒婦竟也來了绽慈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤辈毯,失蹤者是張志新(化名)和其女友劉穎坝疼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谆沃,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钝凶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唁影。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腿椎。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖夭咬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铆隘,我是刑警寧澤卓舵,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站膀钠,受9級(jí)特大地震影響掏湾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肿嘲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一融击、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧雳窟,春花似錦尊浪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至誉结,卻和暖如春鹅士,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惩坑。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工掉盅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留也拜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓趾痘,卻偏偏與公主長(zhǎng)得像慢哈,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扼脐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 這篇文章介紹一個(gè)最新的區(qū)塊鏈共識(shí)算法岸军,它于 2018 年 5 月首次發(fā)布,是由一組共識(shí)協(xié)議構(gòu)成的一個(gè)共識(shí)家族瓦侮。相比...
    juniway閱讀 729評(píng)論 0 6
  • 其實(shí)艰赞,我總是聽別人說我很幸運(yùn),可是肚吏,我似乎并不是很喜歡這個(gè)詞方妖,總感覺這個(gè)詞也是再否定我的努力。我罚攀,是不是很奇怪呢 ...
    懵萌懵萌i閱讀 189評(píng)論 1 1
  • 元旦剛放假回來,2018年1月2日炫掐,新的第二天魁莉,天氣也別樣的好。宣威市龍?zhí)兜没晷∮行碌拇笈e動(dòng)呢募胃!他們有什...
    宣威018吳桂芳閱讀 662評(píng)論 13 9
  • 基本操作員 一個(gè)運(yùn)營(yíng)商是一個(gè)特殊的符號(hào)旗唁,或者你使用來檢查,更改或合并值的短語痹束。例如检疫,加法運(yùn)算符(+)添加兩個(gè)數(shù)字,...
    Fuuqiu閱讀 250評(píng)論 0 0
  • 團(tuán)團(tuán)圓圓的臉祷嘶,和老版電視劇《紅樓夢(mèng)》里的薛寶釵一樣珠圓玉潤(rùn)屎媳,有著富貴恬然的夫人氣質(zhì)。黛眉輕掃论巍,眼...
    城門下閱讀 2,693評(píng)論 2 10