聯盟鏈與公鏈的一些思考

許可

聯盟鏈與公鏈不是對立關係,聯盟鏈許可的含義有很多維度,包括:

  • 誰可以跑一個節點
  • 誰可以提交一個交易
  • 誰可以看到你的數據
  • 誰可以出塊
  • 你的身份是否公開

模塊化架構

fabric採用高度模塊化的架構:
包括CA、Endorser、Committer、Orderer等模塊,可擴展性強。

fabric採用可插拔共識:
實現orderer的相關接口就可以替代現有共識,目前支持的共識有solo、kafka、etcdraft。

智能合約的語言

  • fabric的智能合約可以採用通用語言來編寫,支持Go、Java、Node.js等通用語言以及solidity。
  • 以太坊的智能合約語言一般是用solidity。

隱私性

  • fabric通過channel、privateData等機制來進行數據隔離,保護相關數據不被鏈上所有節點掌握。fabric還新增了Idemix機制(零知識證明)來實現交易的匿名性。
  • 公鏈的隱私只能採用零知識證明、同態加密等密碼學方式,但是目前這些密碼學技術仍需進一步發展。

共識

  • 公鏈的Po系列共識需要藉助挖礦或加密貨幣;同時也沒有finality,比如比特幣必須等待6個區塊,才能保證交易大概率不會被推翻。
  • 聯盟鏈無需藉助挖礦或加密貨幣就可以達成共識,將出塊與驗證分開,永遠不會出現分叉。

區塊交易模式

  • 公鏈是“order-execute”模式,將交易排序打包然後廣播到每個節點,每個節點再按順序執行(驗證)這些交易。因此所有節點都將會執行交易,導致性能上的限制。
  • 聯盟鏈是“Execute-order-validate”模式,Endorser執行交易並校驗交易合法性,爲之背書;然後通過Orderer來對交易進行排序並打包區塊,最後由Committer來做背書策略等校驗,校驗成功後即可寫入賬本。僅有背書節點執行交易,性能會有一些提升。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章