談到比特幣的風險,就不能不談著名的51%攻擊。51%攻擊是指控制了全網(wǎng)過半的算力后,通過重新計算已確認的區(qū)塊來造成雙花的行為。比如有用戶在使用比特幣進行一筆交易后,馬上動用51%以上的算力在新挖出的區(qū)塊中不記錄這筆交易,那就能把已經(jīng)支付的比特幣拿回來了。
在PoW共識機制下,以比特幣為首,51%攻擊威脅會一直存在。目前,比特幣全網(wǎng)絕大多數(shù)算力都掌握在少數(shù)幾家礦池受手里,比特幣并不是絕對安全,理論上說,51%攻擊威脅一直都存在。之所以到現(xiàn)在比特幣一直在安全運行,是因為大型礦池在發(fā)動51%攻擊后,會重創(chuàng)比特幣幣值,這些持有最多比特幣的礦池會受到最大的負面影響。對他們來說,持有比特幣的收益遠遠高于將比特幣擊潰,任何一個理智的人都不會這么做,除非他是個瘋子。
除了PoW,我們知道還有其他的共識機制。如PoS,同樣存在51%攻擊的可能,由于PoS直接在創(chuàng)世區(qū)塊內(nèi)就寫明了股權證明,主要由股東自己來保證安全,少了算力保證這一步,其安全性尚且比不上PoW機制;DPoS機制(委托權益證明)安全性甚至只由少數(shù)關鍵節(jié)點來保證;至于拜占庭機制,其容錯率更低,只要有33%以上的節(jié)點不可信就一籌莫展了。
18路諸侯,忠臣沒過半
讀過三國演義的朋友都知道,十八路諸侯討伐董卓是故事開端的一出重頭戲。因為漢末朝廷無能,西涼軍閥董卓進京,架空皇帝,荒淫無道,各地實力派紛紛起兵,組成聯(lián)軍對董卓進行征討。彼時董卓勢力很大,單一諸侯與之作戰(zhàn)都沒有勝算,只有大家聯(lián)合起來才有希望將其打敗。這時候,18路諸侯可以看做18個節(jié)點,忠誠漢室,勇敢作戰(zhàn)的是“好”節(jié)點,心懷鬼胎,畏敵不前的則是“壞”節(jié)點。
我們知道,18路諸侯兵力并不相等,從數(shù)千到數(shù)萬不等,大家公推袁紹作為盟主。在后來的作戰(zhàn)中,諸侯中的孫堅一度和袁紹,袁術等人起了糾紛,幾乎大打出手。如果把兵力近似理解為算力,把諸侯身份看作是股權證明,把糾紛理解為好壞節(jié)點之爭。那18路諸侯討伐董卓之戰(zhàn),幾乎成為了PoW+PoS+拜占庭容錯的超級混合共識機制之爭了,倘若大多數(shù)都是好節(jié)點,將足以迫使壞節(jié)點一同進兵。遺憾的是,中間只有曹操一個好節(jié)點,數(shù)量實在是太少了。在曹操被董卓擊敗之后,最終討伐軍四分五裂,陷入長期的內(nèi)戰(zhàn)中。
51%攻擊就像一把達摩克利斯之劍,高懸在很多區(qū)塊鏈應用頭上。盡管比特幣可以依靠高幣價來保證自身的安全,但是其他的小幣種可就沒這么幸運了,此前,比特幣的分叉幣比特幣黃金(BTG)就遭遇了51%攻擊,BTG尚且不能幸免,何況那些更小的幣種呢?這就是很多山寨幣不可信的一個主要原因。
有解決的辦法嗎
那么,有沒有什么辦法能夠避免51%攻擊呢?或者如何才能大大提高攻擊閾值呢?可以看到,上面無論哪種共識機制本質(zhì)上都是通過依靠惡意的節(jié)點沒有超過共識機制的抗攻擊數(shù),來保證不影響正確的共識結果。這種做法體現(xiàn)了完全的去中心化精神,但換言之,他們都沒有對節(jié)點“質(zhì)量”判斷的能力,無法選拔出高質(zhì)量的節(jié)點作為代表達成共識。我們便可以從選拔高質(zhì)量節(jié)點這里入手。
這個不難理解。好比將軍帶兵打仗,一般的共識機制是隨機征召來一批人,如果由老人小孩女人甚至病人數(shù)量過半,這樣組成的軍隊自然要打敗仗。倘若能夠選擇年輕力壯,訓練有素,士氣高昂的士兵,哪怕人數(shù)少些,但這樣的軍隊才是王牌軍。
這里再引入一個概念,叫做小世界網(wǎng)絡。我們知道,為數(shù)眾多的節(jié)點與節(jié)點之間連邊數(shù)構成了網(wǎng)絡。網(wǎng)絡的規(guī)??梢杂删W(wǎng)絡平均路徑長度和網(wǎng)絡群聚系數(shù)這兩個參數(shù)來度量,網(wǎng)絡平均路徑長度指的是網(wǎng)絡中任意兩個節(jié)點最短距離的平均值,網(wǎng)絡群聚系數(shù)指的是這個節(jié)點與所有鄰居節(jié)點之間的實際連邊數(shù)除以這些鄰居節(jié)點之間可能出現(xiàn)的最大連邊數(shù)。而小世界網(wǎng)絡指的就是平均路徑長度較短,而網(wǎng)絡群聚系數(shù)較大的網(wǎng)絡。
這里群聚系數(shù)可能不是很好理解,我們舉一個例子。曾經(jīng)火爆一時的人人網(wǎng),便成功運用到了類似小世界網(wǎng)絡的理念。通過人人網(wǎng),我們常常會驚奇的發(fā)現(xiàn),自己小學的同學,竟然與自己私交甚篤的朋友也是朋友;在校園里擦肩而過的美女,竟然是與自己天天逃課上網(wǎng)小伙伴的妹妹…我們可以這樣理解,網(wǎng)絡群聚系數(shù)與朋友圈子的重合度正相關,網(wǎng)絡群聚系數(shù)越高,說明兩個人朋友圈子的重合度越高。
看到這里,有的朋友可能會產(chǎn)生疑問,我的朋友圈怎么還對比特幣風險的原理產(chǎn)生影響了?這兩者之間究竟有著什么關系?這個世界就是充滿奧秘,如何用小世界網(wǎng)絡破解51%%攻擊,下面我們接著談。
值得信任的統(tǒng)帥
我們知道,小世界網(wǎng)絡理念具有極強的現(xiàn)實意義。社會學上的同步問題,傳染病在人群中的流行問題,謠言在人際社會中的擴散問題,都是小世界網(wǎng)絡的傳播案例。通過對小世界網(wǎng)絡的研究,我們發(fā)現(xiàn),小世界網(wǎng)絡能夠節(jié)點間實現(xiàn)信任傳遞,傳遞效果與小世界網(wǎng)絡規(guī)模動態(tài),連邊數(shù)等網(wǎng)絡結構參數(shù)有關,這些參數(shù)對小世界網(wǎng)絡的傳播規(guī)律有著深刻的影響。
我們可以運用小世界網(wǎng)絡理念,通過信任傳遞,僅選取少數(shù)優(yōu)質(zhì)節(jié)點作為代表來達成共識,這樣大大提高了系統(tǒng)的安全可信性,足以突破傳統(tǒng)區(qū)塊鏈51%攻擊的安全上限,參與共識節(jié)點數(shù)量減少了,也實現(xiàn)了效率的提升。
這是什么意思呢?我們知道,效率往往與數(shù)量成反比,參與驗證的節(jié)點數(shù)量越多,耗時越長,效率越低。而且由于諸侯數(shù)量較多,倘若有過半的諸侯懷有私心,勢必造成任務的流產(chǎn)。事實上也是,18路諸侯終日宴飲開會,卻始終形不成作戰(zhàn)共識。試想,如果能在18路諸侯中選出少數(shù)幾個“最忠誠于大漢”的人形成指揮部來進行決策,而非選出“四世三公”家庭條件最好的袁紹作為盟主,這樣,即便過半的諸侯并非完全效忠于朝廷,也必須服從指揮部,這樣安全性大大提升了,討伐董卓的效果應當會更好。
防止渾水摸魚
那么,問題來了。如何才能甄別出誰才是“最忠誠于大漢”的人呢?俗話說:畫虎畫皮難畫骨,知人知面不知心。沒有一個奸臣會把“奸臣”倆字寫在臉上,倘若選出的代表是“一點也不忠誠于大漢”的人,那討伐軍也不用打仗了,就地解散算了。
在Trias提出的異構共識算法(HCGraph)中,通過利用可信執(zhí)行環(huán)境 TEE(Trusted Execution Environment)等可信計算技術,對小世界網(wǎng)絡中節(jié)點質(zhì)量好壞程度的判斷,僅選取少數(shù)優(yōu)質(zhì)節(jié)點作為代表以達成共識,那么這個過程是如何實現(xiàn)的呢?
我們知道,單一TEE技術對技術提供方存在著很強的依賴性,如IntelSGX技術便受到Intel公司的中心化控制,公司做出任何調(diào)整對會對Intel SGX產(chǎn)生巨大影響。Trias首次實現(xiàn)了對TEE技術(包括Intel SGX,IntelTXT, ARM TrustZone, TCG TPM, 國標TCM, 國標TPCM等)的全支持,消除了對單一TEE技術的依賴。
在Trias網(wǎng)絡中,每一個網(wǎng)絡節(jié)點都會在某個時間內(nèi)向周邊的鄰接節(jié)點發(fā)起證實的操作,這樣它就能獲得一個本地的信任向量,通過歸并這些本地向量便可以獲取本地的信任關系,考慮到真實網(wǎng)絡中小世界網(wǎng)絡的特性,通過這種方法往往可以獲取到一個比較完整的網(wǎng)絡互信關系。
每一個節(jié)點都有傳播和驗證兩個功能,他們既可以把自己的可信狀態(tài)傳播出去,又能夠驗證其他節(jié)點的可信狀態(tài)。通過與臨近節(jié)點的認證關系,他們之間便有了信任和不信任這兩種關系,通過確定其與鄰接節(jié)點連接的信任強度值,強度越高,說明節(jié)點的可信度越高。據(jù)試驗數(shù)據(jù)統(tǒng)計,每一個節(jié)點,想要執(zhí)行非法操作而不被發(fā)現(xiàn),都需要超過90%的不良節(jié)點與其同謀,這是接近不可能的事。
信任,需要時時檢驗
另外,值得注意的是,這種信任關系并非一成不變的,信任也好,不信任也好,隨著時間的關系都會逐漸變淡,這種關系是處在反復的驗證中,以確保隨時都能選拔出最可靠的小世界網(wǎng)絡中的節(jié)點。
對應到大漢朝就是,從大臣選拔開始,就不拘泥于單個門閥貴族(單個TEE),而是面向全體有能力的人(所有TEE),(科舉制度優(yōu)于九品中正制,可見一斑)。只有可信的人才能入朝為官。從第一步就減少了奸人亂政的可能性。此后,每一位大臣始終都處在不斷的被周圍人驗證的狀態(tài),驗證其是否對朝廷足夠忠誠,驗證其是夠足夠文韜武略,驗證其是否一直盡職盡責,這個驗證的過程并非一次性的,而是一直在進行中,一旦某個大臣有不軌的舉動,都會被辨識并剔除。
這樣就好比每一個大臣都隨時有一個打分,試想,如果朝廷突然出現(xiàn)董卓這樣的奸臣擅政,所有諸侯自動圍繞在幾個分數(shù)最高的大臣身邊,由他們發(fā)號施令勤王討逆,由于這幾個人都是長期以來被大家公認為最可靠的人,其忠誠,其能力,其威望,各方面都無可指摘,自然最為安全,而且效率高高。