蝸牛講-fabric原理之MSP介紹


什麼是MSP
算法

 

在區塊鏈網絡中用於頒發和驗證證書和身份的一組加密機制和協議。是一個可插拔的接口。數組

 

理論上講,能夠經過如下組件來定義一個MSP:網絡

  • 身份格式,或是說證書,有時還帶有一個產生身份的算法架構

  • 一種簽名算法,利用與身份相關的祕鑰和消息,生成一組byte數組(實際上就是簽名),這組byte數組也和該身份惟一綁定。區塊鏈

  • 一種簽名驗證算法,算法的輸入爲身份,消息和簽名(bytes數組),若是簽名數組對於輸入消息是一個有效的簽名,那麼輸出是「接受」,不然就是「拒絕」編碼

  • 一組規則。對於MSP來講,知足這個規則的身份必須是一個有效的身份加密

  • 一組admin身份集合,用於修改MSP指定的一些配置url

 

一個區塊鏈網絡中能夠管理一個或是多個MSP。對於不少MSP來講,前面三點是比較通用規則,4和5對於不一樣的MSP會有所變化。從這個角度看,Fabric-CA也算是一個MSP。而官網提供的first-network,沒有用到Farbic-CA, 用的是localMSP。blog

 

使用MSP接口

 

這裏列舉一個節點側的典型MSP場景。注意這裏的節點在網絡中不涉及到身份發佈流程,只限制於客戶端的背書請求,客戶端身份驗證和客戶端身份簽名驗證三個過程。

 

在這個場景中,身份(id) 具備X.509證書格式,由一個明確的根CA頒發。根據證書祕鑰,簽名和簽名驗證算法都是基於 ECDSA或是RSA(取決於生成證書時候的設置的算法),身份的驗證主要包含有:

 經過可信的根CA,驗證證書鏈是否正確

確保身份沒有被吊銷,這個能夠經過在msp啓動階段配置吊銷列表或是MSP身份白名單實現

 

節點簽名能力

 

Orderer節點,peer節點都須要有簽名能力,爲了實現這個,節點的管理員要在節點設置的時候指定MSP的配置。因爲此處包含的MSP實例僅用於實例化節點的簽名標識,所以咱們經過SignerMSP引用此MSP。簽名者MSP是能夠被管理員手動更改,因此能夠在各個節點之間變化。若是須要設置簽名者MSP,須要將下面四組文件複製到節點文件系統中的專用位置,四組文件爲:

Cacert – PEM文件,MSP的根證書

Admincerts – PEM文件,MSP的管理員證書

Keystore-  節點的簽名私鑰

Signcerts – PEM文件,節點身份的編碼證書,fabric有四種身份:user,peer, orderer,client

 

以下爲peer相關證書文件對應的目錄

|——org1.example.com   組織名稱

               |

               |——-ca    組織的根證書

               |

               |——-msp   組織的msp

               |

               |——-peers 節點相關證書

               |

               |——-tlsca    組織內部的tlsca證書

               |

               |——-users   組織所屬用戶

 

 

 

鏈的參與者

 

鏈的創世塊必現包含有鏈的參與者的MSP說明。若是一個MSP涵蓋了多條鏈,那麼須要維護每條鏈上的MSP狀態。這是爲了不從新配置不一致攻擊,所謂的從新配置不一致攻擊是指經過每一個組織的MSP的從新配置交易信息到達每一個鏈的順序不一致致使,這樣就會出如今必定時間內,同一個管道內的節點MSP信息不一致狀況。

 

咱們通常定義一個MSP都是基於鏈或管道的上下文。這是爲了orderer節點和peer節點能夠對這條鏈上或是這條管道內的全部交易簽名者,背書者,管道的廣播和鏈或是管道建立,終止等請求進行認證。

 

特別是在orderer的系統管道中指定的MSP容許策略規範去管理如下請求:管道讀請求(認證,驗證管道的delivery請求),寫請求(認證和驗證管道廣播請求),鏈的建立者(鑑定鏈的建立請求)和管理員(認證和驗證管道配置請求)。能夠看出,鏈中的MSP具備驗證者身份,和本地提供的MSP提供的簽名者造成對比。更具體的說,peer和orderer在系統管道和鏈的上下文設置MSP是爲了認證交易和配置相關的請求,這裏的MSP不提供生成簽名的能力。

 

Peer和orderer節點能夠驗證由多個MSP頒發的身份簽名。爲了方便實現這點,fabric引入了MSP管理者概念。Fabric組件中的MSPManager接口能夠在鏈設置階段或是orderer管道啓動時候被建立一個或是多個實例,使用這些MSP管理者來驗證交易簽名。MSPManager接口的引入給fabric帶來了幾個重要優點:

  • 能夠插拔的MSP

  • 同時支持多個MSP提供者

  • 隱藏了單一MSP和MSP架構內部複雜性

MSPManager 使用鏈的配置塊信息來實例化MSP,以下圖所示

 

 

 

 

 


 

蝸牛講技術,滿滿的都是乾貨,你值得關注。

相關文章
相關標籤/搜索