基于區(qū)塊鏈的去中心化應(yīng)用的四種架構(gòu)模式
區(qū)塊鏈有各種各樣的用例集,從金融到去中心化互聯(lián)網(wǎng)。
但是,大多數(shù)區(qū)塊鏈用例可以使用相對較少的模式來實(shí)現(xiàn)。例如,基于區(qū)塊鏈的應(yīng)用程序的模式集合提供了15種區(qū)塊鏈模式的列表。
系統(tǒng)設(shè)計(jì)需要更高級別的抽象。擁有更多的粗粒度宏模式(我們稱為架構(gòu)模式)對我們更有利。
這篇文章描述了四種這樣的架構(gòu)模式。為了描述模式,我將使用亞歷山德拉·特沙諾維奇在“什么是模式?”中描述的模板。
1. IAM的體系結(jié)構(gòu)模式。
背景信息:IAM環(huán)境包括許多用戶和服務(wù)提供商。IAM系統(tǒng)為每個(gè)用戶提供一個(gè)帳戶和一組功能,使用戶可以前往服務(wù)提供商,展示其帳戶所有權(quán),然后根據(jù)其功能接收服務(wù)。
力量:需要實(shí)現(xiàn)一個(gè)分散的IAM環(huán)境,在該環(huán)境中,一個(gè)惡意用戶或幾個(gè)用戶不會對系統(tǒng)造成重大影響。
解決方案:建議的模式候選者以以下方式使用萬維網(wǎng)聯(lián)合會(W3C)DID規(guī)范和W3C可驗(yàn)證聲明規(guī)范。
圖1:基于區(qū)塊鏈的IAM架構(gòu)模式
假設(shè)Alice需要一個(gè)身份(DID,這是一個(gè)唯一的標(biāo)識符)。如創(chuàng)建新DID的圖所示,Alice在區(qū)塊鏈中創(chuàng)建了一個(gè)條目。該條目包括隨機(jī)生成的標(biāo)識符,帶有其個(gè)人資料數(shù)據(jù)的存儲庫鏈接以及個(gè)人資料數(shù)據(jù)的哈希。用戶個(gè)人資料包含一個(gè)公共密鑰和一組可驗(yàn)證的聲明。現(xiàn)在,生成的隨機(jī)標(biāo)識符將成為Alice的DID,因?yàn)橹挥兴龘碛信c公鑰相對應(yīng)的私鑰。
可驗(yàn)證的聲明是由主管當(dāng)局簽名的授權(quán)令牌。創(chuàng)建者還以類似于DID的方式將它們與索賠的哈希一起記錄在區(qū)塊鏈中。
在質(zhì)詢-響應(yīng)協(xié)議中,驗(yàn)證器生成一個(gè)隨機(jī)種子,使用Alice的公鑰對其進(jìn)行加密,然后向Alice挑戰(zhàn)以通過解密加密的種子來證明她具有私鑰。由于Alice擁有私鑰,因此她必須是DID的所有者。
要標(biāo)識Alice的另一個(gè)用戶或組織(驗(yàn)證者),Bob首先從Alice接收DID,從區(qū)塊鏈中讀取與該DID相關(guān)的所有條目,檢索Alice的配置文件數(shù)據(jù)并進(jìn)行驗(yàn)證。Bob可以使用質(zhì)詢-響應(yīng)協(xié)議再次驗(yàn)證Alice的身份(標(biāo)識)。然后,Bob可以確認(rèn)可驗(yàn)證的主張,并可以確信關(guān)于Alice的主張是真實(shí)的。
我們可以在此架構(gòu)模式之上分層大多數(shù)IAM用例。例如,我們可以通過發(fā)布我們要用戶執(zhí)行的操作的可驗(yàn)證聲明,或者僅接受可驗(yàn)證聲明中具有某些屬性(例如年齡,工作描述,組成員身份)的用戶來實(shí)現(xiàn)訪問控制。一種實(shí)現(xiàn)可以選擇將簡檔數(shù)據(jù)的相關(guān)子集緩存在數(shù)據(jù)庫中以提高性能。
2. 可審核的歷史記錄或工作區(qū)的體系結(jié)構(gòu)模式
背景信息:兩個(gè)或兩個(gè)以上的各方執(zhí)行交易或一起工作,其活動需要以無可爭議的方式記錄下來。
強(qiáng)制措施:需要實(shí)施一個(gè)分散的審核日志或一個(gè)工作區(qū),在該工作區(qū)中,一個(gè)惡意用戶或幾個(gè)用戶不會嚴(yán)重影響系統(tǒng)。
解決方案:提議的系統(tǒng)記錄活動并在區(qū)塊鏈中為這些記錄創(chuàng)建條目。該條目包含活動記錄的哈希,因此,以后不能對記錄進(jìn)行爭議。
圖2:基于區(qū)塊鏈的可審核歷史或工作區(qū)架構(gòu)模式
例如,假設(shè)Alice想繳稅。Tax Server接受付款應(yīng)用程序,創(chuàng)建數(shù)字收據(jù),將其哈希記錄在區(qū)塊鏈中,然后將收據(jù)發(fā)送給Alice。Alice可以通過計(jì)算哈希值并檢查存儲在區(qū)塊鏈中的值來驗(yàn)證收據(jù)。此后,Bob無法拒絕收據(jù),因?yàn)槭論?jù)哈希值和時(shí)間記錄在區(qū)塊鏈中。
如果活動很多,可能需要解決區(qū)塊鏈性能限制。因此,一些實(shí)現(xiàn)可以將多個(gè)活動記錄的哈希記錄作為塊而不是單個(gè)活動記錄。
3.注冊表或市場的體系結(jié)構(gòu)模式
上下文:注冊表是可以在網(wǎng)絡(luò)上搜索和檢索的數(shù)據(jù)條目的集合。市場是一個(gè)注冊表,允許用戶購買數(shù)據(jù)條目代表的服務(wù)或產(chǎn)品。例如,注冊表可以是可用API的目錄。
力量:需要實(shí)現(xiàn)一個(gè)分散的環(huán)境,在該環(huán)境中,一個(gè)惡意用戶或幾個(gè)用戶不會對系統(tǒng)造成重大影響。
解決方案:建議的模式如下。
圖3:基于區(qū)塊鏈的注冊表體系結(jié)構(gòu)模式
讓我們首先考慮一個(gè)注冊表。使用建議的體系結(jié)構(gòu),當(dāng)用戶發(fā)布注冊表更新(以添加或修改條目)時(shí),客戶端會將更改記錄在區(qū)塊鏈中。如果更新中的數(shù)據(jù)很大,則區(qū)塊鏈記錄可能包含該數(shù)據(jù)的鏈接和該數(shù)據(jù)的哈希值。如果需要修改存儲在注冊表中的數(shù)據(jù),則注冊表客戶端會將帶有修改信息的新記錄添加到區(qū)塊鏈中。
在上圖中,每個(gè)用戶都有一個(gè)在本地計(jì)算機(jī)(例如,筆記本電腦或電話)中運(yùn)行的注冊表客戶端。每個(gè)注冊客戶端都從區(qū)塊鏈讀取更新記錄,根據(jù)記錄中包含的哈希值驗(yàn)證更新數(shù)據(jù),并從更新中重建記錄的最新視圖。
區(qū)塊鏈可以很好地充當(dāng)“服務(wù)市場”,因?yàn)橥环?wù)可能會被多次出售。但是,由于性能限制,基于區(qū)塊鏈的市場不適用于只能出售一次的商品。
4.智能合約和托管物的架構(gòu)模式
在這種模式下,我們考慮兩種情況。首先,我們考慮智能合約,其次,我們考慮智能合約的一種常見特殊情況:“托管物”。
4.1 智能合約模式
上下文:多個(gè)用戶希望遵守合同,稱為可執(zhí)行程序。合同按照合同中定義的條件進(jìn)行狀態(tài)轉(zhuǎn)換,并且在給定時(shí)間,每個(gè)人都可以就合同的當(dāng)前狀態(tài)達(dá)成一致。
強(qiáng)制措施:需要實(shí)現(xiàn)一個(gè)環(huán)境,在該環(huán)境中,一個(gè)惡意用戶或幾個(gè)用戶不會嚴(yán)重影響系統(tǒng)。
解決方案:智能聯(lián)系人是區(qū)塊鏈技術(shù)的一部分,并受到以太坊等區(qū)塊鏈實(shí)施的支持。使用智能合約語言描述合約并分發(fā)給所有參與者。當(dāng)合同中定義的條件發(fā)生變化時(shí),每個(gè)參與者都將執(zhí)行合同并使用共識算法將當(dāng)前狀態(tài)記錄在區(qū)塊鏈中。
4.2 托管事物模式
上下文:我們需要跟蹤現(xiàn)實(shí)世界中智能事物的所有權(quán)。在這里,智能事物是現(xiàn)實(shí)世界中的對象,能夠在其中運(yùn)行計(jì)算邏輯。允許所有者對現(xiàn)實(shí)世界中的事物進(jìn)行控制和執(zhí)行操作。同樣,所有者可以將其所有權(quán)轉(zhuǎn)讓給其他人。
強(qiáng)制措施:需要實(shí)現(xiàn)一個(gè)環(huán)境,在該環(huán)境中,一個(gè)惡意用戶或幾個(gè)用戶不會嚴(yán)重影響系統(tǒng)。
解決方案:下面以Car作為被管理對象來描述模式的實(shí)現(xiàn)。
圖4:基于區(qū)塊鏈的Managed Things體系結(jié)構(gòu)模式
我們可以分兩步為托管物品(在本例中為汽車)實(shí)現(xiàn)區(qū)塊鏈。首先,制造商記錄汽車所有者的DID和公共密鑰。當(dāng)所有權(quán)更改時(shí),所有者在區(qū)塊鏈中添加一條新記錄,指定新所有者。其次,在檢查所有權(quán)時(shí),汽車首先檢索區(qū)塊鏈中的所有記錄,并驗(yàn)證所有者當(dāng)時(shí)是否添加了每條記錄。這是通過對照先前所有權(quán)記錄中包含的公共密鑰檢查編寫記錄的用戶的公共密鑰來完成的。此有效鏈中的最后一個(gè)所有者是當(dāng)前所有者。
確定所有者后,汽車將通過檢索她的公鑰并使用具有Alice私鑰的Alice手機(jī)進(jìn)行基于質(zhì)詢-響應(yīng)-協(xié)議的登錄來登錄當(dāng)前所有者Alice。
這樣的系統(tǒng)降低了與遠(yuǎn)程控制偽像相關(guān)的風(fēng)險(xiǎn)。
但是,很難阻止有權(quán)訪問“事物”的人實(shí)際更改內(nèi)部運(yùn)行的邏輯。解決此問題的一種方法是構(gòu)建某種形式的自毀,該自毀在檢測到篡改偽像時(shí)觸發(fā)。