超级账本(介绍)
文章目錄
- 介紹
- Hyperledger Fabric
- 模塊化
- 聯盟鏈vs公有鏈
- 智能合約
- 新的方案
- 隱私與機密
- 可插拔共識
- 性能與擴展性
- 參考
本系列目錄:超級賬本源碼(V1.3)解析目錄
介紹
區塊鏈是由分布式網絡節點維護的一個不可修改的交易賬本,每個節點都維護一個副本,賬本中的交易都由共識算法驗證后打包成區塊的形式,每個區塊中包含前一個區塊的哈希值,形成鏈狀。
| 公有鏈 | public blockchain;permissionless blockchain |
| 聯盟鏈 | consortium blockchain ;permissioned blockchain |
第一個廣受認可的區塊鏈應用是比特幣(Bitcoin),后來的以太坊(Ethereum)在其基礎上引入了智能合約(smart contract),不過比特幣和以太坊都屬于公鏈(public permissionless blockchain)。
但是公鏈對于企業來說,有很多不足,企業可能有如下的需求:
超級賬本(Hyperledger Fabric)誕生之初就是為企業級應用設計的。
Hyperledger Fabric
Fabric是準入型區塊鏈(permissioned blockchain),節點之間擁有一定的信任。
Fabric擁有一個高度模塊化、可配置的架構,支持通用語言編寫智能合約。
Fabric最大的特點之一是支持可插拔式的共識算法,用戶可以根據使用場景配置不同的共識算法(CFT/BFT)。
Fabric不需要加密貨幣的支持,降低了被攻擊的風險,不需要挖礦,降低了能源消耗。
Fabric支持交易的隱私與機密性。
模塊化
工業界有一個共識,“沒有區塊鏈適用于所有場景”,Fabric提供了多樣化的定制操作使得它可以根據不同場景調整。
聯盟鏈vs公有鏈
公有鏈沒有準入機制,任何人都可以加入網絡,網絡成員之間不存在任何信任。比特幣和以太坊都使用了PoW來建立共識,需要加密貨幣/交易費用的激勵。
聯盟鏈的成員之間存在一定程度的信任,可以使用傳統的CFT、BFT共識算法支持更高的吞吐量。同時更加容易追蹤到惡意節點。
智能合約
在Fabric中,智能合約(smart contrat)被稱為鏈碼(chaincode),是區塊鏈應用程序的商業邏輯代碼。
已有的支持智能合約的平臺(Ethereum, Tendermint, Chain, and Quorum.),遵循一種排序–>執行的模式來運行智能合約。即先驗證交易并對交易進行排序,然后分發給所有的節點,節點順序執行這些交易。
這種模式存在的兩個問題:
新的方案
Fabric提出了新的交易執行模型,執行–>排序–>驗證,解決了上述兩個問題。
由于可以定制背書策略,因此第一步不需要所有的節點都執行該交易,使得Fabric可擴展,同時消除了不確定性(如果該交易存在不確定的操作,那么不同的節點執行的結果不一致,無法進行第二步排序),使得Fabric可以使用通用編程語言編寫智能合約。
隱私與機密
在公有鏈中,合約與交易都公開存儲在區塊鏈上,毫無機密與隱私可言,對于企業來說很多場景下無法接受。
可能存在的解決方案:
Fabric提出了channel架構,只有在同一個channel的節點可以看到該channel內的數據,提高了隱私性。
為了 提高隱私和機密性,Fabric還提出了隱私數據(private data)。
可插拔共識
0.6版本支持PBFT,后來去掉了,目前支持Kafka、raft,BFT在路上…
性能與擴展性
IBM做了測試:https://arxiv.org/abs/1801.10228v1
參考
原文鏈接: https://hyperledger-fabric.readthedocs.io/en/release-1.3/whatis.html
總結
- 上一篇: 二值图像分析:二值图像轮廓提取
- 下一篇: 编译原理Antlr教程