三點鐘群分享丨吳軼群:拜占庭算法“君臣斗”與小蟻共識撲克牌

為幫助更多優(yōu)秀項目產(chǎn)品落地电湘,中國第一產(chǎn)品經(jīng)理社區(qū)PMCAFF創(chuàng)建了“3點鐘無眠區(qū)塊鏈產(chǎn)品群”硬分叉群。

目前群友包括:李笑來鹅经、陳偉星寂呛、薛蠻子、杜均瘾晃、李林贷痪、徐明星等一線大佬。(具體加群方式請見本文底部)

本次分享嘉賓:吳軼群蹦误,前蝦米網(wǎng)CTO&創(chuàng)始人劫拢,阿里巴巴安全部大數(shù)據(jù)產(chǎn)品負責(zé)人&大數(shù)據(jù)域總架構(gòu)師∪饨颍現(xiàn)杭州智塊網(wǎng)絡(luò)科技有限公司CEO,正在研發(fā)第三代區(qū)塊鏈公鏈TASchain舱沧。

51%的脆弱與標準拜占庭

先拋個問題妹沙,給大家做思維鍛煉。

比特幣講究控制51%的算力控制一切熟吏,這個好理解距糖,有51%的人就超過半數(shù)了,想干啥干啥牵寺∩隹穑可是拜占庭有個標準公式(2n+1)/(3n+1),近似2/3缸剪。大家想想吗铐,為什么51%還不夠,要67%呢杏节?

現(xiàn)在開始吧唬渗,今天我們先講標準拜占庭,也就是這個67%奋渔。然后講小蟻的實現(xiàn)版本镊逝,讓我們先看圖。

左邊的圖嫉鲸,有11個將軍圍住一座敵人的城池撑蒜,然后需要協(xié)商是進攻還是撤退,無論是進攻還是撤退玄渗,只要是大部分的人決定座菠,都沒有錯,唯一的錯藤树,是一部分將軍決定進攻浴滴,另一部分將軍決定撤退,這樣就算錯了(也就是比特幣里的分叉)岁钓。

這11個將軍里有2個其實是叛徒升略,就是那2個黑色的節(jié)點,他們的目的屡限,就是引起分叉品嚣。

右邊的圖,假設(shè)現(xiàn)在叛徒控制了部分通訊钧大,讓整個網(wǎng)絡(luò)分裂成2個子網(wǎng)翰撑。即左邊紅色部分的忠誠將軍決定進攻,而右邊綠色部分的忠誠將軍決定撤退拓型。但是他們之間沒法直接通訊额嘿。

那2個叛徒怎么做呢瘸恼?

他們對兩邊發(fā)不同的消息!

他們對紅色的將軍說:我們也贊同進攻册养!他們又對右邊的綠色將軍們說:我們贊同撤退东帅!

按51%來共識的話,左邊紅色的將軍一看球拦,哎呀靠闭,有5+2個人贊成進攻,咱們是大多數(shù)了啊坎炼,進攻吧愧膀。右邊綠色的將軍也是,有4+2個人贊同撤退谣光,已經(jīng)超過51%了檩淋,咱們撤退吧。所以萄金,忠誠的將軍被分裂了蟀悦,等到他們會合的時候,發(fā)現(xiàn)做出了不同的決定氧敢,這次戰(zhàn)斗失敗日戈。

這跟區(qū)塊鏈的鑄塊在網(wǎng)絡(luò)上的傳播共識類似,標準拜占庭就是這些孙乖,其實很簡單浙炼。一定要超過2/3的人達成共識,才認為這個共識不能被推翻唯袄。

小蟻的實現(xiàn)版本

講一個理論和一個實踐吧弯屈。

我們還是假設(shè)11個人,這次我們叫大臣和王越妈,這樣比較好講季俩。圖里,拿到權(quán)符的人就是王梅掠,王有鑄塊權(quán),大臣有同意/否決權(quán)店归。假設(shè)現(xiàn)在要鑄25高度的塊阎抒,則首先有3號充當(dāng)王,這個還是簡單求模消痛,然后咱們看看正常流程是怎么樣的且叁。

第二張圖是時序的演進。首先秩伞,3號獲得權(quán)符逞带,然后3號鑄塊欺矫,廣播給各個大臣。

現(xiàn)在我們是6號大臣的視角展氓,即6號先驗證3號王的鑄塊正確穆趴,6號簽名(意思就是我驗證過了),6號把驗證消息在大臣間廣播遇汞。

別的大臣做的事情也跟6號一樣未妹,所以6號陸續(xù)收到了1,2,5,8,9號大臣的驗證通過消息最后,6號又收到了10號的驗證通過消息空入,這樣就達到2/3了络它,6號就想全網(wǎng)廣播25高度鑄塊成功。

這次鑄塊結(jié)束歪赢,繼續(xù)鑄26高度的塊化戳。很簡單,咱們再來看看異常的情況埋凯。

還是鑄25高度的塊点楼,還是6號的視角,這次前面4個步驟完全一致递鹉。

但是最后10號大臣說他不同意這個鑄塊盟步,比如里面有一筆交易有問題,只要有一個大臣發(fā)現(xiàn)的話躏结,將會直接發(fā)出換王消息却盘。

如果收集到2/3的換王消息,就會進行權(quán)符轉(zhuǎn)移媳拴。順時針移到下一個大臣黄橘,由4號擔(dān)任王,然后重新來一遍屈溉,直到25高度鑄塊成功為止塞关。

失敗其實包括兩個原因,1子巾、有大臣否決帆赢;2、是在指定的時間窗口內(nèi)無法收集到2/3的驗證通過消息线梗。

小蟻的版本椰于,如果這次共識失敗,則下次共識的時間翻倍仪搔,最后我用撲克牌的思路理了一遍小蟻的共識瘾婿。

小蟻共識撲克牌

1. 共識牌一共有4種花色,a. 鑄塊,b. 驗證通過偏陪,c. 換王抢呆,d. 廣播出塊

2. N個見證人(大臣)圍坐一圈笛谦。

3. 對每個區(qū)塊高度(M)按求模次序(M%N)決定主鑄塊人(王)抱虐。

4. 只有王才能打出a牌,大臣可以打出b或c揪罕。

5. 一個時間窗口開始梯码,王先打出a,然后等待大臣們打出b或c好啰。

6. 如在時間窗口內(nèi)收集到>2/3的b牌轩娶,則自動切換到d牌,該高度(M)鑄塊成功完成框往。M=M+1鳄抒,重復(fù)3,開始下一個高度的鑄塊椰弊。

7. 如6無法完成许溅,或者時間窗口未到但已有>2/3的c牌,則王位順時針流轉(zhuǎn)到下一個人(新王)秉版,時間窗口翻倍贤重。重復(fù)4。

注:在統(tǒng)計2/3消息時清焕,a牌同時有b的效果并蝗。

群內(nèi)精彩互動節(jié)選

問題1

Ryan@YooGoo:要是有人惡意否決呢?

吳軼群:我覺得見證人是有保證金的秸妥,定期做checkpoint檢查滚停,代碼里沒有考慮惡意否決的情況。

問題2

Ryan@YooGoo:一個鑄塊是所有節(jié)點都要驗證嗎粥惧?還是王和大臣都只是代表键畴?

吳軼群:不是,2/3的大臣驗證通過即可突雪。大臣和王都是POS起惕,DPOS里的見證人。

問題3

wendy Li:時間翻倍咏删?

吳軼群:是的疤祭,就是如果15秒沒完成,4號當(dāng)王的時候就是30秒饵婆。

問題4

wendy Li:那5號當(dāng)王呢?

吳軼群:5號當(dāng)王就是1分鐘,它是個向左位移侨核,時間每次翻倍草穆。

問題5

任鋒@YooGoo:是2/3接受就鑄塊成功?

吳軼群:是的搓译,還包括換王也是一樣悲柱,也是2/3。

問題6

Ryan@YooGoo:我有一個疑惑些己,拜占庭是基于1/3的壞節(jié)點不能搞破壞豌鸡。實現(xiàn)時候又是基于沒有節(jié)點作惡,只有節(jié)點可能失效段标。那小螞蟻還算拜占庭嗎涯冠?

吳軼群:我覺得有2/3的套路,就應(yīng)該算逼庞。它的鑄塊成功和換王蛇更,都是需要2/3的大臣節(jié)點認可。

進群規(guī)則&聯(lián)系方式

進群規(guī)則

1赛糟,需要原有項目優(yōu)秀派任,且已經(jīng)準備上鏈的CEO或產(chǎn)品任負責(zé)人。

2璧南,不需要投資人了掌逛,群內(nèi)已經(jīng)聚集很多大牛投資人。

3司倚,不要拉合伙人進來了豆混,自己轉(zhuǎn)內(nèi)容吧。

4对湃,長期不活躍請退崖叫,留出更多名額,給好項目拍柒。

聯(lián)系方式

加群主 @阿德 微信心傀,私聊邀請進群。(阿德微信號:adee10000)

注:本文內(nèi)容來自前蝦米網(wǎng)CTO&創(chuàng)始人拆讯,現(xiàn)杭州智塊網(wǎng)絡(luò)科技有限公司CEO 吳軼群在3點鐘無眠區(qū)塊鏈產(chǎn)品群內(nèi)的主題分享脂男,如轉(zhuǎn)載或引用請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末种呐,一起剝皮案震驚了整個濱河市宰翅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爽室,老刑警劉巖汁讼,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡嘿架,警方通過查閱死者的電腦和手機瓶珊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耸彪,“玉大人伞芹,你說我怎么就攤上這事〔跄龋” “怎么了唱较?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長召川。 經(jīng)常有香客問我南缓,道長,這世上最難降的妖魔是什么扮宠? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任西乖,我火速辦了婚禮,結(jié)果婚禮上坛增,老公的妹妹穿的比我還像新娘获雕。我一直安慰自己,他們只是感情好收捣,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布届案。 她就那樣靜靜地躺著,像睡著了一般罢艾。 火紅的嫁衣襯著肌膚如雪楣颠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天咐蚯,我揣著相機與錄音童漩,去河邊找鬼。 笑死春锋,一個胖子當(dāng)著我的面吹牛矫膨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播期奔,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼侧馅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呐萌?” 一聲冷哼從身側(cè)響起馁痴,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肺孤,沒想到半個月后罗晕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體济欢,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年攀例,在試婚紗的時候發(fā)現(xiàn)自己被綠了船逮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡粤铭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杂靶,到底是詐尸還是另有隱情梆惯,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布吗垮,位于F島的核電站垛吗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏烁登。R本人自食惡果不足惜怯屉,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饵沧。 院中可真熱鬧锨络,春花似錦、人聲如沸狼牺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽是钥。三九已至掠归,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悄泥,已是汗流浹背虏冻。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弹囚,地道東北人厨相。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像余寥,于是被迫代替她去往敵國和親领铐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

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