區塊鏈網絡中的不一樣參與者包括對等點、排序者、客戶端應用程序,管理員等。這些參與者中的每個 — 網絡內部或外部可以使用服務的活動元素 — 都具備封裝在X.509數字證書中的數字身份,這些身份確實很重要,由於它們肯定了對資源的確切權限以及對參與者在區塊鏈網絡中擁有的信息的訪問權限。segmentfault
此外,數字身份還具備Fabric用於肯定權限的一些附加屬性,而且它爲身份和關聯屬性的聯合提供了一個特殊名稱 - 主體。主體就像userID或groupID,但更靈活一點,由於它們能夠包含參與者的身份的各類屬性,例如參與者的組織,組織單位,角色甚至是參與者的特定身份,當咱們談論主體時,它們是決定其權限的屬性。瀏覽器
要使身份能夠驗證,它必須來自可信任的權威機構,成員資格服務提供商(MSP)是這個功能如何在Fabric中實現的。更具體地說,MSP是定義治理該組織的有效身份的規則的組件,Fabric中的默認MSP實現使用X.509證書做爲身份,採用傳統的公鑰基礎設施(PKI)分層模型(稍後將詳細介紹PKI)。安全
想象一下,你去超市購買一些雜貨,在結帳時,你會看到一個標誌,表示只接受Visa、Mastercard和AMEX卡,若是你嘗試使用其餘卡付款 - 咱們將其稱爲「ImagineCard」 - 不管該卡是否真實且你的賬戶中有足夠的資金都可有可無,它不會被接受。網絡
擁有有效的信用卡是不夠的 - 它也必須被商店接受!PKI和MSP以相同的方式協同工做 - PKI提供身份列表,MSP表示哪些是參與網絡的給定組織的成員。ide
PKI證書頒發機構和MSP提供了一個相似的功能組合,PKI就像一個卡提供商 - 它分配了許多不一樣類型的可驗證身份,另外一方面,MSP就像商店接受的卡提供商列表,肯定哪些身份是商店支付網絡的可信成員(參與者),MSP將可驗證的身份轉變爲區塊鏈網絡的成員。區塊鏈
讓咱們更詳細地深刻研究這些概念。編碼
公鑰基礎設施(PKI)是在網絡中提供安全通訊的互聯網技術集合,它是將S放入HTTPS的PKI - 若是你在Web瀏覽器上閱讀此文檔,你可能正在使用PKI來確保它來自通過驗證的源。加密
公鑰基礎設施(PKI)的要素。PKI由證書頒發機構組成,它們向各方(例如,服務、服務提供商的用戶)頒發數字證書,而後使用它們在其環境中交換的消息中對他們本身進行認證。CA的證書撤銷列表(CRL)構成再也不有效的證書的參考,證書的撤銷可能因爲多種緣由而發生,例如,由於與證書關聯的加密私有材料已被公開致使證書可能會被撤銷。spa
雖然區塊鏈網絡不只僅是一個通訊網絡,但它依賴於PKI標準來確保各個網絡參與者之間的安全通訊,並確保在區塊鏈上發佈的消息獲得正確地認證。所以,瞭解PKI的基礎知識以及爲何MSP如此重要是很是重要的。code
PKI有四個關鍵要素:
讓咱們快速描述這些PKI基礎知識,若是你想了解更多細節,維基百科是一個很好的起點。
數字證書是包含與證書持有者有關的一組屬性的文檔,最多見的證書類型是符合X.509標準的證書,它容許在其結構中編碼一方的識別細節。
例如,Detroit Mitchell汽車製造部門的Mary Morris,Michigan可能有一個SUBJECT
屬性爲C=US
,ST=Michigan
,L=Detroit
,O=Mitchell Cars
,OU=Manufacturing
,CN=Mary Morris /UID=123456
的數字證書,Mary的證書相似於她的政府身份證 - 它提供了Mary的信息,她能夠用它來證實關於她的關鍵事實。X.509證書中還有許多其餘屬性,但如今讓咱們專一於這些。
描述一個名爲Mary Morris的當事人的數字證書,Mary是證書的SUBJECT
,高亮的SUBJECT
文本顯示了關於Mary的關鍵事實。如你所見,證書還包含更多信息,最重要的是,Mary的公鑰是在她的證書中分發的,而她的私人簽名密鑰則不是,此簽名密鑰必須保密。
重要的是,Mary的全部屬性均可以使用稱爲密碼學(字面意思,「祕密寫做」)的數學技術進行記錄,所以篡改將使證書無效,只要對方信任證書頒發者(稱爲證書頒發機構(CA)),密碼學就容許Mary將證書提交給其餘人以證實本身的身份。只要CA安全地保存某些加密信息(意味着它本身的私人簽名密鑰),任何閱讀證書的人均可以肯定關於Mary的信息沒有被篡改 - 它將始終具備Mary Morris的特定屬性,將Mary的X.509證書視爲沒法改變的數字身份證。