天天看點

Hyperledger Fabric基礎介紹區塊鍊是什麼?區塊鍊為什麼切實可行?Hyperledger Fabric是什麼?

Hyperledger Fabric介紹

  • 區塊鍊是什麼?
    • 分布式賬本
    • 智能合約
    • 共識
  • 區塊鍊為什麼切實可行?
    • 目前的記錄系統
    • 區塊鍊的不同點
  • Hyperledger Fabric是什麼?
    • 共享賬本
    • 智能合約
    • 隐私
    • 共識

區塊鍊是什麼?

分布式賬本

一個區塊鍊網絡的核心是一個分布式賬本,在這個賬本中記錄了網絡中發生的所有交易資訊。

區塊鍊賬本通常被定義為去中心化,這是因為在整個網絡中,每個參與者都儲存着一個區塊鍊賬本的副本,所有參與者通過協作共同維護着賬本。接下來我們會看到,去中心化與協作這兩個特點在現實世界的商業貨物交易和商務服務中展現出的顯著優點。

除了去中心化與協作,區塊鍊的另一個顯著特點是資訊在隻能以“附加”的方式記錄在區塊鍊中,同時使用加密技術保障了交易一旦被添加進賬本中,就無法被篡改。區塊鍊的這種不可篡改性使得資訊來源的确認變得異常容易,這是由于參與者可以肯定資訊一旦被寫入區塊鍊中就幾乎不可被篡改。這也是為什麼區塊鍊常常也被稱為證明的系統的原因。

智能合約

為了持續的進行資訊的更新,以及對賬本進行管理(寫入交易,進行查詢等),區塊鍊網絡引入了智能合約來實作對賬本的通路和控制。

智能合約不僅僅可用于在區塊鍊網絡中打包資訊,它們也可以被用于自動的執行由參與者定義的特定交易操作。

例如,買賣雙方可以定義一個智能合約,以保證當賣方發貨的商品運送到達時,買方支付的貨款會自動轉賬給賣方。

共識

保持網絡中所有賬本交易的同步流程,就是共識。共識保證了賬本隻會在交易雙方都确認後才進行更新。同時在賬本更新時,交易雙方能夠在賬本中的相同位置,更新一個相同的交易資訊。

區塊鍊為什麼切實可行?

目前的記錄系統

自從商業資料記錄網絡系統誕生以來,直到今天的交易網絡并沒有發生太大的變化。在商業網絡中的成員進行互相交易時,他們各自維護着自己獨立的交易記錄。同時,人們交易的物品——無論是16世紀佛蘭德的挂毯,還是現代的有價證券——都任然需要在每次賣出交易過程中提供來源資訊,以確定賣方擁有所出售商品的所有權。

随着科技的進步,上圖中的交易流程不斷演化發展,經曆了從使用石碑、使用紙質賬本、使用硬碟存儲器直到使用雲計算平台的不同階段,但流程的底層架構并沒有發生任何變化。并不存在一個可以統一管理網絡參與者身份的系統,确認商品來源十分費勁,常常會耗費數天的時間明确證券的交易(包含數以萬計美元的數量)。人們必須簽訂合約并手動執行,每一個系統中的資料庫都包含着獨立的資訊并最終代表一個單點的錯誤。

在今天的資訊和過程共享斷裂的方法中,建立一個跨越商業網絡的記錄系統是不可能的,盡管可見性和信任的需求是明确的。

區塊鍊的不同點

那我們為什麼不用“現代”的交易系統來替代這種效率低下的網絡?新的商業網絡可以具有标準的方法建立身份資訊,執行交易,并且存儲資料。為什麼不建立一個可信的交易鍊條記錄?通過查詢這個鍊條上的所有交易,來确定交易商品來源,并且這個鍊條上的資訊一旦被寫入,就無法被再次篡改。

這就是區塊鍊網絡。在區塊鍊網絡中,每一個參與者都保有一份賬本的副本。在區塊鍊網絡中,不僅僅是賬本資訊會被共享,更新賬本的流程也是共享的。不同于目前的系統——參與者使用私有的程式對私有的賬本進行更新,而區塊鍊系統使用共享的程式對共享的賬本進行更新。(自己搭建的區塊鍊系統則滿足不了這些,是以需要借助相關權威區塊鍊平台)

通過使用共享賬本協調整個商業網絡,區塊鍊網絡能夠減少時間、成本以及隐私資訊洩露的風險,并且能使流程更加可信和透明。

現在你已經明白了什麼是區塊鍊以及它的用途。同時還有許多其他的内容也非常重要,他們是資訊與流程共享的基礎知識。

Hyperledger Fabric是什麼?

2015年,Linux基金會啟動了Hyperledger項目,目标是發展跨行業的區塊鍊技術。Hyperledger項目并不僅僅是定義一個單一的區塊鍊标準,它更鼓勵通過開源社群的力量協作開發區塊鍊技術。

Hyperledger Fabric是Hyperledger中的一個區塊鍊項目。與其他區塊鍊技術類似,Hyperledger Fabric包含一個賬本,使用智能合約并且是一個通過所有參與者管理交易的系統。

Hyperledger Fabric與其他區塊鍊系統最大的不同展現在私有和許可。與開放無需許可的網絡系統允許未知身份的參與者加入網絡不同(需要通過工作量證明協定來保證交易有效并維護網絡的安全),Hyperledger Fabric通過Membership Service Provider(MSP)來登記所有的成員。

Hyperledger Fabric也提供了多個可拔插選項。賬本資料可被存儲為多種格式,共識機制可被接入或者斷開,同時支援多種不同的MSP。

Hyperledger Fabric提供了建立channel的功能,這允許參與者為交易建立一個單獨的賬本。當網絡中的一些參與者是競争對手時,這個功能變得尤為重要。因為這些參與者并不希望所有的交易資訊——比如提供給部分客戶的特定價格資訊——都對網絡中所有參與者公開。隻有在同一個channel中的參與者,才會擁有該channel中的賬本,而其他不在此channel中的參與者則看不到這個賬本。

共享賬本

Hyperledger Fabric包含一個賬本子系統,這個子系統包含兩個元件:世界狀态(world state)和交易記錄。在Hyperledger Fabric網絡中的每一個參與者都擁有一個賬本的副本。

世界狀态元件描述了賬本在特定時間點的狀态,它是賬本的資料庫。交易記錄元件記錄了産生世界狀态目前值的所有交易,它是世界狀态的更新曆史。那麼,賬本則是世界狀态資料庫和交易曆史記錄的集合。

賬本的世界狀态存儲資料庫是可更換的。預設配置下,這是一個key-value存儲資料庫。交易記錄子產品不需要被接入。隻需要記錄在區塊鍊網絡中賬本資料庫被使用時之前和之後的值就可以了。

智能合約

Hyperledger Fabric智能合約被稱為chaincode,當一個區塊鍊外部的一個應用程式需要通路賬本時,就會調用chaincode。大多數情況下,chaincode隻會通路賬本的資料庫元件和世界狀态(world state)(比如查詢),但不會查詢交易記錄。

chaincode可通過多種不同程式設計語言實作。目前支援chaincode的語言是Go(包含對java的支援),更多的程式設計語言會在今後的版本中獲得支援。

隐私

根據網絡的需求,在一個Business-to-Business(B2B)網絡中的參與者會對資訊共享的程度極為敏感。然而,對于其他的網絡,隐私并不是首要考慮的因素。

Hyperledger Fabric支援建構隐私保護嚴格的網絡,也支援建構相對開放的網絡。

共識

在網絡中,不同的參與者寫入的交易必須按照産生順序依次被寫入賬本中。要實作這一目标,交易順序必須被正确的建立并且必須包含拒絕錯誤(或者惡意)插入賬本中的無效交易的方法。

這完全是計算機科學的研究領域,可以有多種方法實作上面提到的目标,這些方法各有優缺點。例如,PBFT (Practical Byzantine Fault Tolerance)可以為檔案副本提供一種機制來互相通信,即使是在發生腐敗的情況下,也可以保證每個副本保持一緻。另外,在比特币中,通過一種稱為挖礦的行為進行排序。在挖礦過程中,競争的計算機競相解決一個密碼難題,這個謎題定義了所有後續的建構順序。

Hyperledger Fabric被設計為允許網絡建構者依據業務需求來選擇采用的共識機制。好比考慮隐私性,就會有一連串的需求,從高度結構化的網絡或是更加點對點的網絡。

繼續閱讀