基於區塊鏈的去中心化應用的四種架構模式
區塊鏈有各種各樣的用例集,從金融到去中心化互聯網。
但是,大多數區塊鏈用例可以使用相對較少的模式來實現。例如,基於區塊鏈的應用程序的模式集合提供了15種區塊鏈模式的列表。
系統設計需要更高級別的抽象。擁有更多的粗粒度宏模式(我們稱為架構模式)對我們更有利。
這篇文章描述了四種這樣的架構模式。為了描述模式,我將使用亞歷山德拉·特沙諾維奇在“什么是模式?”中描述的模板。
1. IAM的體系結構模式。
背景信息:IAM環境包括許多用戶和服務提供商。IAM系統為每個用戶提供一個帳戶和一組功能,使用戶可以前往服務提供商,展示其帳戶所有權,然後根據其功能接收服務。
力量:需要實現一個分散的IAM環境,在該環境中,一個惡意用戶或幾個用戶不會對系統造成重大影響。
解決方案:建議的模式候選者以以下方式使用萬維網聯合會(W3C)DID規範和W3C可驗證聲明規範。
圖1:基於區塊鏈的IAM架構模式
假設Alice需要一個身份(DID,這是一個唯一的標識符)。如創建新DID的圖所示,Alice在區塊鏈中創建了一個條目。該條目包括隨機生成的標識符,帶有其個人資料數據的存儲庫鏈接以及個人資料數據的哈希。用戶個人資料包含一個公共密鑰和一組可驗證的聲明。現在,生成的隨機標識符將成為Alice的DID,因為只有她擁有與公鑰相對應的私鑰。
可驗證的聲明是由主管當局籤名的授權令牌。創建者還以類似於DID的方式將它們與索賠的哈希一起記錄在區塊鏈中。
在質詢-響應協議中,驗證器生成一個隨機種子,使用Alice的公鑰對其進行加密,然後向Alice挑战以通過解密加密的種子來證明她具有私鑰。由於Alice擁有私鑰,因此她必須是DID的所有者。
要標識Alice的另一個用戶或組織(驗證者),Bob首先從Alice接收DID,從區塊鏈中讀取與該DID相關的所有條目,檢索Alice的配置文件數據並進行驗證。Bob可以使用質詢-響應協議再次驗證Alice的身份(標識)。然後,Bob可以確認可驗證的主張,並可以確信關於Alice的主張是真實的。
我們可以在此架構模式之上分層大多數IAM用例。例如,我們可以通過發布我們要用戶執行的操作的可驗證聲明,或者僅接受可驗證聲明中具有某些屬性(例如年齡,工作描述,組成員身份)的用戶來實現訪問控制。一種實現可以選擇將簡檔數據的相關子集緩存在數據庫中以提高性能。
2. 可審核的歷史記錄或工作區的體系結構模式
背景信息:兩個或兩個以上的各方執行交易或一起工作,其活動需要以無可爭議的方式記錄下來。
強制措施:需要實施一個分散的審核日志或一個工作區,在該工作區中,一個惡意用戶或幾個用戶不會嚴重影響系統。
解決方案:提議的系統記錄活動並在區塊鏈中為這些記錄創建條目。該條目包含活動記錄的哈希,因此,以後不能對記錄進行爭議。
圖2:基於區塊鏈的可審核歷史或工作區架構模式
例如,假設Alice想繳稅。Tax Server接受付款應用程序,創建數字收據,將其哈希記錄在區塊鏈中,然後將收據發送給Alice。Alice可以通過計算哈希值並檢查存儲在區塊鏈中的值來驗證收據。此後,Bob無法拒絕收據,因為收據哈希值和時間記錄在區塊鏈中。
如果活動很多,可能需要解決區塊鏈性能限制。因此,一些實現可以將多個活動記錄的哈希記錄作為塊而不是單個活動記錄。
3.注冊表或市場的體系結構模式
上下文:注冊表是可以在網絡上搜索和檢索的數據條目的集合。市場是一個注冊表,允許用戶購买數據條目代表的服務或產品。例如,注冊表可以是可用API的目錄。
力量:需要實現一個分散的環境,在該環境中,一個惡意用戶或幾個用戶不會對系統造成重大影響。
解決方案:建議的模式如下。
圖3:基於區塊鏈的注冊表體系結構模式
讓我們首先考慮一個注冊表。使用建議的體系結構,當用戶發布注冊表更新(以添加或修改條目)時,客戶端會將更改記錄在區塊鏈中。如果更新中的數據很大,則區塊鏈記錄可能包含該數據的鏈接和該數據的哈希值。如果需要修改存儲在注冊表中的數據,則注冊表客戶端會將帶有修改信息的新記錄添加到區塊鏈中。
在上圖中,每個用戶都有一個在本地計算機(例如,筆記本電腦或電話)中運行的注冊表客戶端。每個注冊客戶端都從區塊鏈讀取更新記錄,根據記錄中包含的哈希值驗證更新數據,並從更新中重建記錄的最新視圖。
區塊鏈可以很好地充當“服務市場”,因為同一服務可能會被多次出售。但是,由於性能限制,基於區塊鏈的市場不適用於只能出售一次的商品。
4.智能合約和托管物的架構模式
在這種模式下,我們考慮兩種情況。首先,我們考慮智能合約,其次,我們考慮智能合約的一種常見特殊情況:“托管物”。
4.1 智能合約模式
上下文:多個用戶希望遵守合同,稱為可執行程序。合同按照合同中定義的條件進行狀態轉換,並且在給定時間,每個人都可以就合同的當前狀態達成一致。
強制措施:需要實現一個環境,在該環境中,一個惡意用戶或幾個用戶不會嚴重影響系統。
解決方案:智能聯系人是區塊鏈技術的一部分,並受到以太坊等區塊鏈實施的支持。使用智能合約語言描述合約並分發給所有參與者。當合同中定義的條件發生變化時,每個參與者都將執行合同並使用共識算法將當前狀態記錄在區塊鏈中。
4.2 托管事物模式
上下文:我們需要跟蹤現實世界中智能事物的所有權。在這裏,智能事物是現實世界中的對象,能夠在其中運行計算邏輯。允許所有者對現實世界中的事物進行控制和執行操作。同樣,所有者可以將其所有權轉讓給其他人。
強制措施:需要實現一個環境,在該環境中,一個惡意用戶或幾個用戶不會嚴重影響系統。
解決方案:下面以Car作為被管理對象來描述模式的實現。
圖4:基於區塊鏈的Managed Things體系結構模式
我們可以分兩步為托管物品(在本例中為汽車)實現區塊鏈。首先,制造商記錄汽車所有者的DID和公共密鑰。當所有權更改時,所有者在區塊鏈中添加一條新記錄,指定新所有者。其次,在檢查所有權時,汽車首先檢索區塊鏈中的所有記錄,並驗證所有者當時是否添加了每條記錄。這是通過對照先前所有權記錄中包含的公共密鑰檢查編寫記錄的用戶的公共密鑰來完成的。此有效鏈中的最後一個所有者是當前所有者。
確定所有者後,汽車將通過檢索她的公鑰並使用具有Alice私鑰的Alice手機進行基於質詢-響應-協議的登錄來登錄當前所有者Alice。
這樣的系統降低了與遠程控制僞像相關的風險。
但是,很難阻止有權訪問“事物”的人實際更改內部運行的邏輯。解決此問題的一種方法是構建某種形式的自毀,該自毀在檢測到篡改僞像時觸發。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...
悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤
一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...
區塊鏈研究實驗室
文章數量
4粉絲數
0