區(qū)塊鏈研習(xí)聯(lián)盟鏈中的特有安全問(wèn)題——女巫攻擊區(qū)塊鏈
對(duì)于區(qū)塊鏈這種新型的技術(shù)體系,在使用它的時(shí)候,需要從技術(shù)、經(jīng)濟(jì)模型等多種角度去考慮系統(tǒng)的安全性
在本系列講區(qū)塊鏈共識(shí)的文章中(區(qū)塊鏈研習(xí) | 區(qū)塊鏈中的共識(shí)機(jī)制是什么? ),曾經(jīng)提過(guò)非公有鏈中的共識(shí)算法原則:“對(duì)于非公有鏈來(lái)說(shuō),情況簡(jiǎn)單了很多:每個(gè)節(jié)點(diǎn)都知道總共的節(jié)點(diǎn)數(shù),我們只要簡(jiǎn)單投票就可以了。”共識(shí)機(jī)制變簡(jiǎn)單了,攻擊也變得簡(jiǎn)單了。在聯(lián)盟鏈中有一種特有的攻擊方式——女巫攻擊(Sybil Attack來(lái)源是70年代的一部叫做《Sybil》的美國(guó)系列片。片中的女主角人格混亂,扮演著16個(gè)角色)。女巫攻擊是在傳統(tǒng)P2P系統(tǒng)中一直存在的一種威脅。
在拜占庭容錯(cuò)算法中,我們知道,PBFT算法能夠抵抗的拜占庭節(jié)點(diǎn)數(shù)是N≥3f 1。因此,在具有身份認(rèn)證的區(qū)塊鏈中,節(jié)點(diǎn)的數(shù)量的比例是非常重要的。而女巫攻擊就是直接針對(duì)這種特性——直接在節(jié)點(diǎn)的數(shù)量上做文章。
在絕對(duì)去中心化的系統(tǒng)中,是沒(méi)有上帝視角的。因此,任何節(jié)點(diǎn)都不能天然的知道在系統(tǒng)中到底有多少個(gè)節(jié)點(diǎn)參與進(jìn)來(lái):他們只能通過(guò)自己接收到的數(shù)據(jù),來(lái)判斷全局的情況。于是,攻擊的節(jié)點(diǎn)就利用到了這個(gè)特性。它把自己偽裝成多個(gè)節(jié)點(diǎn),在P2P網(wǎng)絡(luò)中廣播。(怎樣偽裝?想象上課老師點(diǎn)名時(shí)一個(gè)同學(xué)幫助一個(gè)寢室的全部同學(xué)答到)
例如,在一個(gè)4節(jié)點(diǎn)的區(qū)塊鏈系統(tǒng)中,在有1個(gè)壞節(jié)點(diǎn),剩余3個(gè)仍然能夠達(dá)成一致。但是如果這1個(gè)節(jié)點(diǎn)把自己偽裝成了4個(gè)節(jié)點(diǎn),那么好節(jié)點(diǎn)會(huì)認(rèn)為整個(gè)系統(tǒng)中有7個(gè)節(jié)點(diǎn),然后通過(guò)消息交叉驗(yàn)證機(jī)制,對(duì)于1個(gè)好節(jié)點(diǎn)來(lái)說(shuō),它接收到的消息中,有2個(gè)是來(lái)自好節(jié)點(diǎn),4個(gè)來(lái)自壞節(jié)點(diǎn)。根據(jù)PBFT原則,壞節(jié)點(diǎn)就可以精確控制好節(jié)點(diǎn)的數(shù)據(jù)了。壞節(jié)點(diǎn)可以精確控制3個(gè)好節(jié)點(diǎn)的區(qū)塊的內(nèi)容了。
這種情況是非常危險(xiǎn)的。壞節(jié)點(diǎn)相當(dāng)于可以直接的把好節(jié)點(diǎn)給分叉了,壞節(jié)點(diǎn)可以直接對(duì)好節(jié)點(diǎn)雙花自己的代幣。例如在供應(yīng)鏈金融區(qū)塊鏈中,我們通過(guò)區(qū)塊鏈技術(shù)來(lái)防止企業(yè)用一份數(shù)字資產(chǎn)(例如海關(guān)的電子關(guān)單)在不同的機(jī)構(gòu)進(jìn)行多次抵押。但是如果這家企業(yè)利用女巫攻擊,就可以實(shí)現(xiàn)把這一份數(shù)字資產(chǎn)在不同的銀行進(jìn)行多次抵押,從而實(shí)現(xiàn)盈利。
可以看出,在公有鏈中的共識(shí)機(jī)制,由于其不依賴于節(jié)點(diǎn)數(shù)量,因此公有鏈中不存在女巫攻擊的風(fēng)險(xiǎn)。而聯(lián)盟鏈中應(yīng)對(duì)女巫風(fēng)險(xiǎn)的辦法,除了更換為公有鏈中的共識(shí)機(jī)制這種得不償失的辦法外,常用有幾種策略都是要重點(diǎn)保護(hù)身份認(rèn)證服務(wù)本身,確保“女巫的分身”不會(huì)被好節(jié)點(diǎn)認(rèn)為是區(qū)塊鏈中正常的節(jié)點(diǎn),確保身份認(rèn)證服務(wù)能夠真的把現(xiàn)實(shí)世界中的實(shí)體與區(qū)塊鏈中的節(jié)點(diǎn)對(duì)應(yīng)起來(lái)。
除了這種通用型的策略外,我們還有一些針對(duì)垂直行業(yè)的解決方案:例如在防止企業(yè)用一份數(shù)字資產(chǎn)在不同金融機(jī)構(gòu)間進(jìn)行多次抵押的業(yè)務(wù)場(chǎng)景,我們可以在智能合約中規(guī)定好:每個(gè)抵押必須有其他所有區(qū)塊鏈上的金融機(jī)構(gòu)的數(shù)字簽名,我們才認(rèn)為該抵押真正生效。利用智能合約的特性,在“平等的區(qū)塊鏈網(wǎng)絡(luò)中”建立“不平等的業(yè)務(wù)權(quán)限”,從而確保攻擊者無(wú)法通過(guò)攻擊獲利,最終保護(hù)整個(gè)聯(lián)盟鏈的安全。
從上面這個(gè)例子,我們可以看出,對(duì)于區(qū)塊鏈這種新型的技術(shù)體系,在使用它的時(shí)候,需要從技術(shù)、經(jīng)濟(jì)模型等多種角度去考慮系統(tǒng)的安全性。因此,相比于傳統(tǒng)的信息安全領(lǐng)域,區(qū)塊鏈安全由于系統(tǒng)的節(jié)點(diǎn)控制權(quán)分布在不同主體中,其安全策略是需要引入一些新的思想來(lái)進(jìn)行設(shè)計(jì)的。當(dāng)然,還有最簡(jiǎn)單的解決方式就是:使用區(qū)塊鏈云服務(wù)。區(qū)塊鏈云服務(wù)擁有完善的智能合約市場(chǎng),事先已經(jīng)對(duì)很多安全威脅進(jìn)行了業(yè)務(wù)蹭的預(yù)防。同時(shí)云服務(wù),可以提供完善的身份認(rèn)證機(jī)制,確保“女巫的分身”不會(huì)出現(xiàn),另外也由于云計(jì)算平臺(tái)賬號(hào)的統(tǒng)一性,在一定程度上防止企業(yè)出借(或者賣(mài)掉)賬號(hào)。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為T(mén)MT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。