常雨蒙 景 旭
(西北農(nóng)林科技大學(xué)信息工程學(xué)院 陜西 咸陽(yáng) 712100)
聯(lián)盟鏈?zhǔn)菍?duì)特定組織開(kāi)放的區(qū)塊鏈,在高可用、高性能、可編程、隱私保護(hù)、數(shù)據(jù)監(jiān)管上更有優(yōu)勢(shì),被認(rèn)為是“部分去中心化”或“多中心”的區(qū)塊鏈。相比公有鏈,聯(lián)盟鏈有節(jié)點(diǎn)數(shù)精簡(jiǎn)、系統(tǒng)運(yùn)行效率更高、成本更低、確認(rèn)時(shí)間短、節(jié)點(diǎn)準(zhǔn)入控制、國(guó)家安全標(biāo)準(zhǔn)支持等優(yōu)點(diǎn),作為支持分布式商業(yè)基礎(chǔ)的組件,滿足分布式商業(yè)中的多方對(duì)等合作、合規(guī)有序發(fā)展,更容易在應(yīng)用場(chǎng)景中落地[1]。
為推進(jìn)區(qū)塊鏈數(shù)字技術(shù)和交易驗(yàn)證,2015年Linux基金會(huì)發(fā)起開(kāi)源項(xiàng)目超級(jí)賬本(Hyperledger),成為聯(lián)盟鏈典型案例,其中最受關(guān)注的項(xiàng)目是IBM的Fabric。Fabric架構(gòu)設(shè)計(jì)中為提供身份認(rèn)證和監(jiān)管留有成員管理服務(wù)(Membership Service Providers,MSP)接口。默認(rèn)MSP基于標(biāo)準(zhǔn)公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)進(jìn)行身份驗(yàn)證,并且可以容納商業(yè)證書(shū)頒發(fā)機(jī)構(gòu),也提供了獨(dú)立的證書(shū)頒發(fā)機(jī)構(gòu)(Certificate Authority,CA)Fabric-CA[2]。區(qū)塊鏈產(chǎn)品設(shè)有專門(mén)的管理機(jī)構(gòu)或管理平臺(tái)來(lái)控制鏈上節(jié)點(diǎn)的驗(yàn)證和授權(quán),這種有效地去中心化與區(qū)塊鏈完全無(wú)中心化的初衷并不完全一致,但能夠滿足部門(mén)內(nèi)部或行業(yè)內(nèi)部的可靠的互聯(lián)互通[3]。X.509證書(shū)鏈層次模型中包括了信任傳遞,信任上級(jí)CA就是完全信任它們頒發(fā)的證書(shū),沒(méi)有考慮到信任傳遞的衰減[4]。根據(jù)X.509的嚴(yán)格層次關(guān)系,所有的實(shí)體包括終端實(shí)體和中間層的CA都完全信任一個(gè)根CA,若中心化CA故障,導(dǎo)致所有證書(shū)不可用[5]。雖然Fabric網(wǎng)絡(luò)可以由一個(gè)或多個(gè)MSP共同管理,但是系統(tǒng)的安全性取決于預(yù)先存儲(chǔ)的信任的根CA自簽名證書(shū)。作為有限的第三方,CA具有直接關(guān)乎整個(gè)開(kāi)源平臺(tái)安全與否的重要性。
在聯(lián)盟鏈中使用一個(gè)絕對(duì)權(quán)威的認(rèn)證中心不符合權(quán)力分散的去中心化思想,單一節(jié)點(diǎn)有特殊權(quán)力就不可被視為區(qū)塊鏈[6]。在優(yōu)良保密協(xié)議(PGP)公鑰管理機(jī)制中沒(méi)有可信賴中心,采用公鑰介紹機(jī)制,用戶都是平等關(guān)系,每個(gè)公鑰都可以簽發(fā)證書(shū),全部操作都基于對(duì)介紹人的信任和公鑰的合法性,采用了自底向上的方式建立證書(shū)體系。聯(lián)盟機(jī)構(gòu)在沒(méi)有統(tǒng)一的集中認(rèn)證的情況下進(jìn)行互相認(rèn)證,認(rèn)證包括實(shí)體身份認(rèn)證和數(shù)據(jù)來(lái)源認(rèn)證。PGP公鑰認(rèn)證的無(wú)中心化與聯(lián)盟鏈對(duì)等節(jié)點(diǎn)的認(rèn)證特性相吻合。
針對(duì)上述問(wèn)題,基于區(qū)塊鏈驗(yàn)證可信的思想,在聯(lián)盟鏈中既要做身份認(rèn)證,又不能使得單一節(jié)點(diǎn)存在特殊權(quán)利,提出一種去中心化身份認(rèn)證的節(jié)點(diǎn)選取方案。首先,基于PGP公鑰介紹機(jī)制擴(kuò)展用戶的可信鄰域,以延長(zhǎng)信任鏈;其次,基于延長(zhǎng)的信任鏈建立PGP信任傳遞模型;再次,基于k階可達(dá)矩陣計(jì)算變長(zhǎng)的節(jié)點(diǎn)聚合度,也就是節(jié)點(diǎn)信任度;第四,基于PageRank算法,對(duì)節(jié)點(diǎn)進(jìn)行完整信任度排名;最后,根據(jù)系統(tǒng)規(guī)模選取信任度排名前n個(gè)節(jié)點(diǎn)作為去中心化身份認(rèn)證的管理節(jié)點(diǎn)。
PGP基于公鑰加密體系,通過(guò)介紹者模型建立信任機(jī)制,提供信任的遍歷手段,利用公開(kāi)的信息將公鑰和信任相聯(lián)系。在PGP節(jié)點(diǎn)中有兩種密鑰環(huán),私鑰環(huán)是公鑰/私鑰對(duì),用來(lái)管理用戶的私鑰;公鑰環(huán)是本節(jié)點(diǎn)維護(hù)的一個(gè)其他人和相應(yīng)公鑰的列表,它不是封閉的數(shù)據(jù)結(jié)構(gòu)而是數(shù)學(xué)集合,可以松散地建模為受信任的列表或信任域。公鑰環(huán)為PGP信任模型提供實(shí)現(xiàn)方式[7]。在聯(lián)盟鏈中如果直接通過(guò)PGP建立,可能導(dǎo)致如下問(wèn)題:PGP基于“介紹者模型”,它取決于認(rèn)證鏈的完整性,對(duì)于介紹者是完全信任,對(duì)介紹者信任的人也是完全信任。從用戶和信任關(guān)系角度看,信任鏈變長(zhǎng),信任等值傳遞,這不符合實(shí)際。更進(jìn)一步說(shuō),可驗(yàn)證鏈最長(zhǎng)信任長(zhǎng)度為2,難以與更多其他節(jié)點(diǎn)建立聯(lián)系,關(guān)系稀疏不利于評(píng)估。
針對(duì)上述問(wèn)題,擴(kuò)展PGP用戶的可驗(yàn)證鏈長(zhǎng)度,長(zhǎng)度不再局限于2,對(duì)通過(guò)介紹人而得到的介紹人直接可信鄰域中的節(jié)點(diǎn)也進(jìn)行認(rèn)證,擴(kuò)大用戶的可信鄰域。PGP沒(méi)有必須集中統(tǒng)一認(rèn)證的問(wèn)題,以期待通過(guò)用戶自身選擇信任節(jié)點(diǎn)與更多節(jié)點(diǎn)建立更強(qiáng)的聯(lián)系。
用戶認(rèn)為完全可信的機(jī)構(gòu)或其他用戶信任其證書(shū),這種用戶間的關(guān)系稱為直接信任,是系統(tǒng)中最基本的信任關(guān)系。通過(guò)PGP公鑰介紹機(jī)制建立的節(jié)點(diǎn)間關(guān)系稱為推薦信任。根據(jù)信任路徑,可將信任關(guān)系劃分為間接信任和擴(kuò)展信任。用戶將直接信任人作為可信介紹人,通過(guò)中間介紹人而得到其他人公鑰從而建立的聯(lián)系稱為間接信任關(guān)系。通過(guò)間接信任人與更遠(yuǎn)的用戶建立聯(lián)系,單條信任鏈上多于一個(gè)中介人而建立的信任關(guān)系稱為擴(kuò)展信任關(guān)系。
PGP用戶公鑰環(huán)中每一項(xiàng)都是它信任的另一個(gè)用戶的公鑰證書(shū),與證書(shū)相關(guān)的是密鑰合法性域,使得用戶相信自己公鑰環(huán)中的用戶公鑰是正確的。信任程度越高,用戶標(biāo)識(shí)與密鑰標(biāo)識(shí)間捆綁關(guān)系越強(qiáng)。每個(gè)簽名有一個(gè)簽名信任域,表示用戶信任該簽名的程度。密鑰合法性域來(lái)源于該表項(xiàng)中的簽名信任域。每個(gè)表項(xiàng)定義一個(gè)與特定所有者的公鑰證書(shū)的信任程度的域,并且信任級(jí)別的設(shè)定由用戶自己決定。
PGP用戶X作為自己的完全信賴中心進(jìn)行自簽名如式(1)所示。利用私鑰并附帶必要的身份相關(guān)信息生成一個(gè)根證書(shū),將簽名、公鑰等相關(guān)信息公布來(lái)聲明自己的身份。
pgpCertx=Sigskx(pkx,self)
(1)
式中:Sigskx表示用X的私鑰對(duì)X的公鑰進(jìn)行簽名;pkx表示X的公鑰。
若用戶Y1認(rèn)為用戶X可信,則用戶X充當(dāng)CA角色,由X對(duì)Y1進(jìn)行身份核實(shí)與認(rèn)證,X對(duì)Y1簽發(fā)證書(shū)如式(2)所示。direct表示X與Y1是直接信任關(guān)系,且Y1完全信任X。
pgpCerty1-x=Sigskx(pky1,direct)
(2)
用戶X在一定范圍內(nèi)充當(dāng)局部CA角色,可以對(duì)多個(gè)用戶進(jìn)行公鑰認(rèn)證而簽發(fā)證書(shū),如式(3)所示。用戶X將自己信任的人及其公鑰信息進(jìn)行簽名生成公鑰環(huán)并發(fā)布出去,表明自己的直接可信域?yàn)閅1,Y2,…,Yn。
keyringx=Sigx(y1,y2,…,yn,pky1,pky2,…,pkyn)
(3)
同理,用戶Z1認(rèn)為用戶X可信,用戶Z1充當(dāng)CA為用戶X簽發(fā)證書(shū)。X獲得Z1對(duì)其簽名證書(shū),當(dāng)X與Z1信任以外的用戶建立聯(lián)系時(shí),該證書(shū)就無(wú)法發(fā)揮作用,故X盡可能選擇一些可信的用戶為其簽發(fā)證書(shū),來(lái)擴(kuò)大信任范圍,X的所有簽名如式(4)所示。
pgpCertx=pgpCertx-z1,pgpCertx-z2,…,pgpCertx-zn
(4)
利用對(duì)象的概念,把介紹人簽發(fā)的證書(shū)當(dāng)作主體的內(nèi)容,對(duì)此簽發(fā)一個(gè)新的證書(shū),其中包括了對(duì)證書(shū)擔(dān)保的信任程度的定義,即證書(shū)的嵌套[4]。Z1根據(jù)X以及其他Z1信任的人給Y1簽發(fā)的證書(shū),并通過(guò)自身設(shè)置的可信策略判定Y1的可信程度,若認(rèn)為完全可信或部分可信,則簽發(fā)證書(shū)如式(5)所示,indirect表示Z與Y1是間接信任關(guān)系。
pgpCerty1--=Sigskz((Sigskx,direct),indirect)
(5)
用戶Z信任用戶X,用戶X信任用戶Y,從而建立從Z到Y(jié)的信任傳播路徑。有向箭頭表示節(jié)點(diǎn)關(guān)系,箭尾是被認(rèn)證的節(jié)點(diǎn),箭頭指向的是被信任的節(jié)點(diǎn),進(jìn)行頒發(fā)證書(shū)的操作,局部充當(dāng)CA角色,從而建立有向的信任鏈如圖1所示??芍庇^地看到X是Zm與Yn建立聯(lián)系的中間介紹人,證書(shū)內(nèi)嵌形成證書(shū)鏈的用戶信任方向是從右到左,信任的傳遞方向是從左到右,兩者是兩個(gè)相反的方向。
圖1 基于中介人的信任鏈
在實(shí)際情況中,用戶Zm與用戶Yn沒(méi)有這么嚴(yán)格劃分,因?yàn)樾湃位騿蜗蚧螂p向的,肯定存在交叉,也可能是同一用戶,從局部看只是扮演的角色不同。用戶Zm與用戶Yn是平等的,在整個(gè)集體中沒(méi)有層級(jí)關(guān)系,也就是沒(méi)有上下級(jí)之分。
用戶進(jìn)行間接簽發(fā)證書(shū)時(shí),檢驗(yàn)直接信任用戶對(duì)間接信任用戶簽發(fā)的證書(shū),對(duì)比間接信任用戶的證書(shū)與直接信任用戶的公鑰環(huán),驗(yàn)證信任路徑與信任來(lái)源。該驗(yàn)證過(guò)程中,既考慮用戶的證書(shū)數(shù)量,又考慮用戶的證書(shū)來(lái)源用戶的可信度,及自身與證書(shū)來(lái)源用戶的信任關(guān)系,從而防止為提高介紹人的中心性而惡意增加信任人。
傳統(tǒng)的信任結(jié)構(gòu)一般是層次型的,而PGP采用了網(wǎng)狀信任結(jié)構(gòu)(web of trust)[8]。在網(wǎng)狀信任結(jié)構(gòu)中,沒(méi)有大家都信任的中心權(quán)威機(jī)構(gòu),而是用戶以各自為中心,相互認(rèn)證公鑰,相互簽名公鑰證書(shū)。這些簽名使得用戶的公鑰彼此相連,形成自然的網(wǎng)狀結(jié)構(gòu),就是信任網(wǎng)[9]。
擴(kuò)展之后的PGP信任簽名不再給予同等的信任力度,即你信任我,可能你也會(huì)對(duì)我信任的這些證書(shū)給予一定程度的信任,并非完全信任。節(jié)點(diǎn)的公鑰環(huán)中節(jié)點(diǎn)集合是其直接信任域,也是邊長(zhǎng)為一的信任關(guān)系,稱作一度信任關(guān)系。將此定義延伸,將直接信任人的直接信任域中節(jié)點(diǎn)定義為邊長(zhǎng)為二的間接信任,稱作二度信任。依此類推,定義三度信任等。在信任鏈中,隨著鏈長(zhǎng)增長(zhǎng),信任衰減則信任越弱。
多個(gè)節(jié)點(diǎn)可以對(duì)一個(gè)節(jié)點(diǎn)認(rèn)證形成單一節(jié)點(diǎn)擁有多個(gè)簽名,來(lái)提高單個(gè)節(jié)點(diǎn)的可信度。節(jié)點(diǎn)間通過(guò)互相認(rèn)證,生成簽名信任域,用直接傳播方法發(fā)布和獲取用戶的可信鄰域,通過(guò)信任傳遞而建立一個(gè)信任網(wǎng)如圖2所示。PGP信任模型以用戶節(jié)點(diǎn)為中心,每個(gè)節(jié)點(diǎn)可以自由選擇信賴哪些證書(shū)、拒絕哪些證書(shū),也可以根據(jù)與目標(biāo)節(jié)點(diǎn)的路徑條數(shù)和長(zhǎng)度等綜合判斷其可信度。實(shí)線表示直接信任關(guān)系,是基于節(jié)點(diǎn)本身的評(píng)判認(rèn)知而建立的;虛線代表建立的間接信任關(guān)系。如果說(shuō)實(shí)線是穩(wěn)定的關(guān)系,則虛線是不確定性關(guān)系。隨著認(rèn)證鏈的延長(zhǎng),節(jié)點(diǎn)關(guān)系越來(lái)越弱,縱向認(rèn)證的可信程度也越來(lái)越弱。如果節(jié)點(diǎn)間存在多條信任路徑,橫向上一定程度提高信任度。
圖2 PGP信任傳遞模型
因?yàn)镻GP信任模型依賴于用戶自身的行為和決策能力,因此以用戶為中心的模型在技術(shù)水平較高和利害關(guān)系高度一致的群體中是可行的。針對(duì)聯(lián)盟鏈情況,為進(jìn)一步提高系統(tǒng)可用性,系統(tǒng)全節(jié)點(diǎn)與現(xiàn)實(shí)中的機(jī)構(gòu)相對(duì)應(yīng),節(jié)點(diǎn)的信譽(yù)由組織成員的信用和資產(chǎn)做背書(shū),故此系統(tǒng)中預(yù)備節(jié)點(diǎn)不存在匿名性。系統(tǒng)中由組織成員所代表的預(yù)備節(jié)點(diǎn)均被認(rèn)作合作節(jié)點(diǎn),不存在不合作的節(jié)點(diǎn),或者至少在這個(gè)階段是合作的。
節(jié)點(diǎn)不一定都有完全可信的直接信任節(jié)點(diǎn)。沒(méi)有完全可信節(jié)點(diǎn)作為中間介紹人的節(jié)點(diǎn)稱為孤立節(jié)點(diǎn)。作為聯(lián)盟鏈的預(yù)備節(jié)點(diǎn)至少需要存在一定數(shù)量的完全可信節(jié)點(diǎn)在后續(xù)作為信任推薦節(jié)點(diǎn),若是孤立節(jié)點(diǎn)在進(jìn)行認(rèn)證節(jié)點(diǎn)選擇時(shí)就被忽略了,需要預(yù)備節(jié)點(diǎn)大部分處于聯(lián)通圖中。對(duì)基于PGP構(gòu)建的信任網(wǎng)絡(luò)所采用的信任模型做出以下假設(shè):(1) 節(jié)點(diǎn)根據(jù)一定的評(píng)判標(biāo)準(zhǔn),自行選出一定數(shù)量的節(jié)點(diǎn)作為直接信任節(jié)點(diǎn)。每個(gè)預(yù)備節(jié)點(diǎn)至少有一個(gè)可以建立起直接信任的節(jié)點(diǎn)。(2) 節(jié)點(diǎn)之間地位平等,即使是網(wǎng)絡(luò)中的預(yù)備節(jié)點(diǎn),其地位也平等。(3) 基于介紹人推薦的信任傳遞路徑相互獨(dú)立。
節(jié)點(diǎn)之間通過(guò)互相的信任關(guān)系,將自己信任的節(jié)點(diǎn)添加到自己的信任列表。然后每個(gè)節(jié)點(diǎn)將自己的信任列表公布出去,通過(guò)獲取每個(gè)節(jié)點(diǎn)的直接信任域,從而得到所有節(jié)點(diǎn)之間的信任關(guān)系。這一過(guò)程與網(wǎng)絡(luò)節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)無(wú)關(guān),只針對(duì)建立的信任關(guān)系。聯(lián)盟鏈中企業(yè)或?qū)嶓w等作為一個(gè)獨(dú)立的機(jī)構(gòu),一般作為PGP用戶充當(dāng)局部的CA且相互獨(dú)立。將聯(lián)盟機(jī)構(gòu)全節(jié)點(diǎn)所代表的PGP用戶抽象為點(diǎn),將全節(jié)點(diǎn)之間通過(guò)公鑰介紹機(jī)制建立的關(guān)系抽象為邊,通過(guò)PGP信任模型將點(diǎn)和邊映射形成一個(gè)信任關(guān)系網(wǎng)。
以本地節(jié)點(diǎn)關(guān)系為例,現(xiàn)以節(jié)點(diǎn)A為基準(zhǔn),得到A的直接信任域,對(duì)直接信任域中節(jié)點(diǎn)的公鑰環(huán)進(jìn)行遍歷得到直接信任人的信任人,即間接信任人,與自己對(duì)間接信任人簽發(fā)證書(shū)進(jìn)行對(duì)比,取二者交集得間接信任域。從間接信任域獲得其直接信任域,如此遞歸遍歷得到A的所有可達(dá)節(jié)點(diǎn)的信任傳遞路徑,將有直接信任關(guān)系的節(jié)點(diǎn)添加邊,如圖3所示。
圖3 節(jié)點(diǎn)A的信任關(guān)系
因?yàn)樾湃侮P(guān)系具有不對(duì)稱性,故節(jié)點(diǎn)關(guān)系是有向的。以圖3為例,將通過(guò)遍歷得到的信任關(guān)系用布爾矩陣表達(dá),用兩個(gè)數(shù)組來(lái)存儲(chǔ),一個(gè)一維數(shù)組存儲(chǔ)頂點(diǎn)信息,一個(gè)二維數(shù)組存儲(chǔ)弧的信息。設(shè)有向圖G有N個(gè)頂點(diǎn),則鄰接矩陣是一個(gè)N×N的布爾數(shù)組,如果節(jié)點(diǎn)i信任j,即從頂點(diǎn)i到j(luò)之間有邊,則定義i行j列的元素值為1,否則為0,如式(6)所示。
(6)
圖3的鄰接矩陣表示圖上點(diǎn)到點(diǎn)恰好經(jīng)過(guò)一條邊的路徑條數(shù)的矩陣,即一步可達(dá)的路徑條數(shù)。0表示點(diǎn)到點(diǎn)恰好經(jīng)過(guò)一條邊的路徑條數(shù)為0,沒(méi)有直接的可達(dá)路徑。本文所有節(jié)點(diǎn)自身認(rèn)為不可達(dá),則主對(duì)角線為0,減少自身傳遞的閉包。將圖3以節(jié)點(diǎn)A為起始點(diǎn)通過(guò)廣度優(yōu)先遍歷節(jié)點(diǎn),轉(zhuǎn)換成相應(yīng)的鄰接矩陣M,亦稱作可達(dá)矩陣,如式(7)所示。
A0110100000000B1000010000000C1000001100000D1000000000000E0000000000000F0100000001000H0010000100100L0010000000010O0001000000000P0000000000000Q0000000000000R0000000100001S0000000000000
(7)
可達(dá)矩陣可以表示節(jié)點(diǎn)之間直接或間接關(guān)系。可達(dá)關(guān)系滿足傳遞性,所有一階可達(dá)矩陣實(shí)際上又是節(jié)點(diǎn)的傳遞閉包對(duì)應(yīng)的關(guān)系矩陣??蛇_(dá)矩陣與自身的復(fù)合一定等于可達(dá)矩陣[8]。兩個(gè)布爾矩陣相乘,得到兩步可達(dá)的路徑條數(shù),當(dāng)存在多條路徑和重復(fù)路徑,則表示該邊的影響更強(qiáng)。根據(jù)定理1,用鄰接矩陣自乘得到矩陣G×G表示i行到j(luò)列恰好經(jīng)過(guò)兩條邊的路徑條數(shù)的矩陣[9]。將矩陣M與自身相乘的結(jié)果如式(8)所示,M2表示節(jié)點(diǎn)間兩步可達(dá)的路徑數(shù)目。同理,Gk表示i行到j(luò)列恰好經(jīng)過(guò)k條邊的路徑條數(shù)的矩陣,即經(jīng)過(guò)k跳的路徑數(shù)目。
A2000011110000B0211000000000C0131001000010D0000000000000E0111000000000F1000010000000H1000001100000L1010001200000O0000000000000P0100000000000Q0010000000000R0010001000010S0000000100000
(8)
定理1[11]設(shè)A(G)是圖G的鄰接矩陣,則A(G)k中i行、j列元素aij表示G中連接vi到vj的長(zhǎng)度為k的通路的數(shù)目。
Mk每行代表的行節(jié)點(diǎn)經(jīng)過(guò)k步到達(dá)列節(jié)點(diǎn)的路徑數(shù),則行節(jié)點(diǎn)到達(dá)列節(jié)點(diǎn)的多步可達(dá)路徑數(shù)目之和的矩陣為:T=M+M2+…+Mk,k為步數(shù)。換言之,所有行節(jié)點(diǎn)到達(dá)目標(biāo)列節(jié)點(diǎn)的k步以內(nèi)的路徑條數(shù)的和為T(mén)ij。T是1步到k步結(jié)果的累加,代表了行節(jié)點(diǎn)到列節(jié)點(diǎn)的k步以內(nèi)可達(dá)路徑的數(shù)目,也表示節(jié)點(diǎn)的中心性或者聚合度,T是節(jié)點(diǎn)的k階聚合度,為后續(xù)節(jié)點(diǎn)選取提供一個(gè)重要參考指標(biāo)。
計(jì)算節(jié)點(diǎn)信任依賴于中間節(jié)點(diǎn)和路徑長(zhǎng)度及數(shù)量,路徑可以一直延長(zhǎng),考慮到實(shí)際應(yīng)用則將步長(zhǎng)限定在一定范圍內(nèi)。六度分割理論[12]可以通俗地解釋為“你和任何一個(gè)陌生人之間所間隔的人不會(huì)超過(guò)六個(gè),也就是說(shuō),最多通過(guò)六個(gè)人你就能夠認(rèn)識(shí)任何一個(gè)陌生人”。六度分割說(shuō)明了社會(huì)中普遍存在的“弱紐帶”,但是卻發(fā)揮著非常強(qiáng)大的作用。關(guān)于六度分割的應(yīng)用,將網(wǎng)絡(luò)世界比擬社會(huì)網(wǎng)絡(luò)。根據(jù)三度影響力對(duì)六度分割進(jìn)行強(qiáng)弱關(guān)系的定性劃分,前三度是強(qiáng)連接性,信任長(zhǎng)度在超過(guò)三時(shí),影響力急劇下降[12]。為保證更高的可信度而使用三度以內(nèi)的強(qiáng)連接,在此基礎(chǔ)上,且考慮到在六度理論中每個(gè)節(jié)點(diǎn)都會(huì)考慮當(dāng)下自己認(rèn)為可能性最高的節(jié)點(diǎn)去建立連接,考慮到強(qiáng)連接是信任傳遞基礎(chǔ),弱連接是信任的輔助,故將步長(zhǎng)限制于3到6之間,k取值范圍是3≤k≤6,從而只計(jì)算信任的有效影響。k值范圍固定,但是數(shù)值可變,T也稱步長(zhǎng)可變的節(jié)點(diǎn)聚合度。
多步可達(dá)計(jì)算節(jié)點(diǎn)的k步可達(dá)節(jié)點(diǎn)內(nèi)的聚合度,忽略可達(dá)節(jié)點(diǎn)本身也受其本身k步可達(dá)節(jié)點(diǎn)迭代的影響,這種計(jì)算方式是靜態(tài),沒(méi)考慮迭代影響,故下一步將迭代影響考慮進(jìn)去,以達(dá)到更精確的切實(shí)可用的結(jié)果。
PageRank[13]是搜索引擎中網(wǎng)頁(yè)排序的經(jīng)典算法。將Web做如下抽象:將每個(gè)網(wǎng)頁(yè)抽象成一個(gè)節(jié)點(diǎn);如果一個(gè)頁(yè)面A有鏈接直接鏈向B,則存在一條有向邊從A到B(多個(gè)相同鏈接不重復(fù)計(jì)算邊)。整個(gè)Web被抽象為一幅有向圖。對(duì)每個(gè)目標(biāo)網(wǎng)頁(yè)附上權(quán)值,權(quán)值大的就靠前顯示,權(quán)值小的就靠后顯示。PageRank算法借鑒學(xué)術(shù)界論文重要性的評(píng)估方法:誰(shuí)被引用的次數(shù)多,誰(shuí)就越重要[13]。
在計(jì)算信任網(wǎng)中用戶信任度時(shí),用戶對(duì)應(yīng)一個(gè)節(jié)點(diǎn),用戶間的指向性信任關(guān)系抽象為邊,借鑒PageRank排名算法,對(duì)節(jié)點(diǎn)進(jìn)行信任評(píng)估排名。該算法基于“從優(yōu)質(zhì)網(wǎng)頁(yè)鏈接而來(lái)的網(wǎng)頁(yè)必定還是優(yōu)質(zhì)網(wǎng)頁(yè)”的回歸關(guān)系,在應(yīng)用中可認(rèn)為“高可信用戶認(rèn)證的用戶也必定是高可信的”。應(yīng)用在評(píng)估節(jié)點(diǎn)信任排名時(shí)具體為:當(dāng)節(jié)點(diǎn)A有一個(gè)信任連接指向節(jié)點(diǎn)B,就認(rèn)為節(jié)點(diǎn)B獲得了節(jié)點(diǎn)A對(duì)它貢獻(xiàn)的分值,該值的多少取決于節(jié)點(diǎn)A本身的可信程度,節(jié)點(diǎn)A的可信程度越高,節(jié)點(diǎn)B獲得的信任貢獻(xiàn)值就越高。換言之,相對(duì)于低信任度節(jié)點(diǎn),高信任度節(jié)點(diǎn)影響并提高其周?chē)?jié)點(diǎn)的可信度,通過(guò)高信任度節(jié)點(diǎn)及其周?chē)墓?jié)點(diǎn)的共同作用提高了局部的可信度。由于節(jié)點(diǎn)中信任關(guān)系的傳遞,該分值的計(jì)算是一個(gè)迭代過(guò)程,最終節(jié)點(diǎn)根據(jù)所得分值進(jìn)行排序。PageRank的數(shù)學(xué)公式如式(9)[13]所示。
(9)
式中:PR(x)是節(jié)點(diǎn)的PageRank值;PR()為信任節(jié)點(diǎn)x的節(jié)點(diǎn)Yi的PageRank值;Cout(Yi)為節(jié)點(diǎn)Yi所信任節(jié)點(diǎn)的數(shù)量;σ為阻尼系數(shù),表示節(jié)點(diǎn)向后傳遞信任的程度,值越大衰減程度越??;N為節(jié)點(diǎn)總數(shù)。在計(jì)算中一般σ取值為0.85。
該計(jì)算比較依賴PR初始值,PageRank初始化值的選取很大程度上決定了算法的適用性,故根據(jù)節(jié)點(diǎn)的聚合程度來(lái)設(shè)定初始值。在計(jì)算中通過(guò)迭代達(dá)到數(shù)據(jù)收斂,一般迭代二十多次達(dá)到收斂。根據(jù)六度分割理論、三度影響力的劃分、節(jié)點(diǎn)選擇高信譽(yù)節(jié)點(diǎn)的傾向性,綜合考慮k步可達(dá)矩陣?yán)奂铀淼墓?jié)點(diǎn)聚合度作為節(jié)點(diǎn)PR初始值,k的取值可根據(jù)需求的精度由系統(tǒng)決定。
以圖3為例,將節(jié)點(diǎn)k階可變聚合度作為PR初始值,經(jīng)過(guò)PageRank排名算法迭代,并進(jìn)行歸一化,得到數(shù)據(jù)如圖4所示。
圖4 節(jié)點(diǎn)k階聚合度的PR排名
PR計(jì)算經(jīng)過(guò)20次迭代,節(jié)點(diǎn)PR值在一定誤差范圍內(nèi)趨于平穩(wěn)。根據(jù)節(jié)點(diǎn)k階的PR值進(jìn)行排序,比較k取值不同的情況下PR值排名變化,最后得出在k=4時(shí)相當(dāng)一部分信任高的節(jié)點(diǎn)PR值排名基本穩(wěn)定。考慮到影響程度和效率,認(rèn)證管理節(jié)點(diǎn)選取數(shù)量為4個(gè)時(shí),此時(shí)節(jié)點(diǎn)C、L、H和R的PR值較高,可以作為聯(lián)盟鏈認(rèn)證節(jié)點(diǎn)。當(dāng)k值越大,節(jié)點(diǎn)PR值越集中。最后的PR值排名和節(jié)點(diǎn)選取之間受數(shù)據(jù)精度、數(shù)據(jù)規(guī)模、選取數(shù)量等因素影響。不同情況下k值可以根據(jù)需要在一定范圍內(nèi)靈活調(diào)整。
對(duì)于認(rèn)證節(jié)點(diǎn)的選取要遵循幾個(gè)原則:不能過(guò)度集中,節(jié)點(diǎn)必須有一定的數(shù)量才能保證去中心化;后續(xù)由這些節(jié)點(diǎn)頒發(fā)全局認(rèn)證的證書(shū)的安全性也依賴于共識(shí)機(jī)制中對(duì)惡意節(jié)點(diǎn)的比例上限,不能集體作弊;考慮到共識(shí)效率,節(jié)點(diǎn)的數(shù)量也不能過(guò)多,在去中心化性和效率和安全性上做一個(gè)折中。最終選擇信任高的節(jié)點(diǎn)作為認(rèn)證節(jié)點(diǎn),依賴于所追求的效率和去中心化程度。
聯(lián)盟鏈中采用單節(jié)點(diǎn)做身份認(rèn)證,導(dǎo)致權(quán)力不對(duì)等且難以滿足去中心化的問(wèn)題,提出面向聯(lián)盟鏈的去中心化身份認(rèn)證節(jié)點(diǎn)選取方案。該方案通過(guò)PGP公鑰介紹機(jī)制自底向上地建立認(rèn)證機(jī)制,根據(jù)節(jié)點(diǎn)影響力進(jìn)行信任評(píng)估排名,最后選出n個(gè)PR值排名靠前的節(jié)點(diǎn)作為認(rèn)證節(jié)點(diǎn)。在聯(lián)盟鏈內(nèi)選出一定數(shù)量的高信譽(yù)節(jié)點(diǎn)作為身份認(rèn)證節(jié)點(diǎn),來(lái)保證身份認(rèn)證的去中心化,從而該方案面向聯(lián)盟鏈身份認(rèn)證滿足區(qū)塊鏈中扁平化結(jié)構(gòu)設(shè)計(jì),提高身份認(rèn)證的可用性和安全性。
本文為聯(lián)盟鏈認(rèn)證節(jié)點(diǎn)的信任評(píng)估和選取提供一條新的途徑,具有一定的理論和應(yīng)用價(jià)值。對(duì)節(jié)點(diǎn)的正向傳遞影響力進(jìn)行評(píng)估,對(duì)可能出現(xiàn)惡意節(jié)點(diǎn)的破壞行為沒(méi)有檢測(cè)機(jī)制及相應(yīng)的替換方案,本文存在一定的局限性。未來(lái)我們將增加對(duì)節(jié)點(diǎn)的多方位評(píng)估,力求更加接近真實(shí)應(yīng)用環(huán)境,并為后續(xù)節(jié)點(diǎn)的替換方案做足工作。