1

雷鋒網按:聯盟鏈的出現,吸引了眾多傳統行業企業與互聯網公司加入區塊鏈熱潮。其中,金融行業擁抱區塊鏈的熱情顯而易見,打出“ABCD”金融科技戰略的微眾銀行正是弄潮者之一。
出于推動分布式商業生態形成的目的,2017年7月,微眾銀行、萬向、矩陣元三方宣布開源區塊鏈底層平臺BCOS(BlockChain OpenSource)。而聚焦到金融領域,在安全、合規、平臺互操作性等需求推動下,金融區塊鏈合作聯盟(深圳)聯合8家成員機構推出了面向金融行業的開源平臺FISCO BCOS(GITHUB地址:https://github.com/fisco-bcos)。
與早期版本相比,FISCO BCOS在滿足金融級高頻交易、安全性及合規多項需求方面有什么改進,又是如何實現的?區塊鏈實踐項目是怎樣開發、部署、治理的?區塊鏈技術如何與已有IT設施和業務邏輯融合?時至今日,又有哪些新的經驗之談?雷鋒網此番邀請到微眾銀行區塊鏈首席架構師張開翔,細述聯盟鏈在承載商業級應用方面的需求和挑戰,本文將為您回顧此次熱門課程的部分精彩內容。
課程回顧鏈接:http://www.mooc.ai/open/course/445
▍聯盟鏈五大挑戰:安全、性能、可用性、業務落地和監管
安全性
聯盟鏈需要一個立體分層的保護,劃分為應用、存儲、網絡和主機四個技術點。
進行節點準入控制:進入聯盟需要審核且身份可驗證,目前CA技術已經相對成熟,金融機構多半采用CFCA。新加入的節點可以驗證IP地址、證書等,通過后才能發起連接加入聯盟鏈,進行共識或者流通數據。
可靠的密鑰管理:密鑰是賬戶打開的最重要憑證,私鑰丟失則對所有財產和行為都不可控。我們對密鑰不但做了分離,還做了個“保險柜”,它可以通過軟件或加密記賬實現,防止密鑰泄露。

靈活的權限控制:在聯盟鏈上我們劃分了開發、運營、運維、交易員和監管五種角色,如DO分離(即開發和運維分離)是基本運作策略,開發只負責提交代碼,鏈上僅有交易員處理賬目或進行資產轉換,監管可以叫停業務、凍結賬號或暫停智能合約、調用接口來及時干預,具有最高等級的權限。引入權限控制的做法和傳統交易系統相似,安全性有所保證。
性能
眾所周知,區塊鏈為了追求高一致性和高安全性,容易交易速度過慢,分布式網絡需要很多節點去參與。性能優化就涉及到共識機制的問題,這其實是影響區塊鏈表現的核心因素。

POW就是用算力和電力挖礦,相對安全,規模較大,沒有50%以上算力無法顛覆網絡,但難保證效率;
POS和DPOS都是在挖礦的基礎上用資產數量來加速共識過程,一定程度上通過犧牲安全性來保證效率和規模,現在有新框架如EOS也正是在往POS這條路上走,以太坊和Casper共識也是POS路線,但可能會出現權益高度集中如卡特效應或者無權益者的潮水攻擊;
Leader的效率和規模有保障,但安全性完全取決于Leader的作為;
BFT是高安全高效率但規模難保證。共識機制中安全、規模和效率三者不可得兼,必須有所取舍。
我們選擇了PBFT共識機制,它能夠達到秒級確認、高一致性和較高安全性,并發性能很高且不需要挖礦算力的損耗。這種模型下強調狀態管理和轉換以及簽名的搜集,網絡的抖動會特別大,所以規模不會很大。聯盟鏈參與機構一般在幾十個到上百個之內,我們優先強調一致性,以規模換安全。現在也有用PBFT和POS、POW或隨機數來結合,保證效率同時提升規模。

我們另外還做一部分優化,三步的投票確認改為議長和跟隨者同步確認,理論上效率較此前提升一倍,考慮到網絡衰減,最終效率提升在60%到80%之間。此外記賬節點之間可以互相檢測心跳,讓網絡波動時鏈的表現更穩健。
當一臺機器已經把自己的計算、帶寬、存儲等用到極致,到達能力上限,互聯網公司的常見思路之一是做平行擴容或分片等等。區塊鏈也可以做類似的處理,比如多鏈并行架構。假設有五百萬用戶,我們也可以把每一百萬用戶分到一條鏈上,按ID進行一致性Hash或者其他路由策略,在不同鏈進行計算和存儲。這一架構目前已實現并開源。熱點賬戶也是金融業中常見的有性能挑戰的場景,整合多鏈架構和跨鏈歸集技術,增加多個影子戶分散熱點賬戶收付款壓力,實時交易和延時清算分離,實現容量優化和賬戶安全。
想知道講師如何用默克爾樹和輕客戶端思想來攻克跨鏈交互問題嗎?點擊鏈接在線觀看更詳細內容。
總的來說,目前聯盟鏈的解決方案可以滿足常見或有一定爆發性的金融場景需求,同時保證賬戶安全和系統穩定。
可用性
現在我們能夠做到一年之內停機時間極短,不會超過數小時。從運維角度來說,一鍵部署、簡化建鏈過程很有必要,這才能形成多鏈效果。另外,金融機構通常想要部署在機房而非云上,這樣更符合監管合規的需求,同時他們的機構內出于安全需要而存在不少隔離設備,隔離區、服務區、對外合作區等區域的劃分,因此部署方式要適應多種復雜環境。

業務落地
開發者最關心自己怎么寫合約——我們選擇了以太坊Solidity,并且根據GPL協議做了開源回饋到社區。以太坊的EVM虛擬機圖靈完備,具有豐富數據結構;目前發展已相對社區化,擁有廣泛的開發者和大量參考實現。EVM其實是個沙箱,可以跟共識機制良好結合。基于合約我們設置了一個和DNS類似的命名服務,可以用一個簡短的名稱指向合約。因為合約部署之后會是一串二進制或十六進制的地址,記憶困難,命名服務可將其友好化成一個名詞,還可以進行版本管理。比如2.0發布時可以將部分流量引流到新版本,待2.0版本驗證通過,再灰度升級把1.0流量切到2.0。
值得一提的是,AMOP(消息通信協議,Advanced Messaging Onchain Protocol)是個可以使鏈下系統與區塊鏈進行通信的協議,還可以把兩個鏈下系統打通,機構間點對點通信達成協商后再將交易發到鏈上。
▍應用案例之一:基于聯盟鏈的機構間對賬平臺
這是國內首個在金融生產環境中運行的區塊鏈應用,目前已接入3家合作行,運行交易記錄筆數已達上千萬,并且上線一年多以來保持零故障運行。微眾銀行和合作行之間存在繁瑣的賬務來往,機構間通常是T+1或T+2后根據賬目明細信息達成對賬。我們在其中建立區塊鏈體系,賬目明細在交易過程中產生,交易流水不遺漏不混亂地實時旁路上鏈,實現鏈上對賬和總賬、分類賬的展示。賬目功能的智能合約按時間維度創建,進行數據分拆,便于維護升級。

脫敏:銀行存在很多敏感數據,需要一個個字段去判斷哪些數據可以上鏈分享。
隔離:銀行間數據做物理隔離,如有需要可進行跨鏈通信。我們有時會被問到,一旦以后出現量子通信等手段,被這些加密算法保護的數據很難得到保障?這個問題目前確實無法回答,最徹底的方式就是進行物理隔離。
通信:經過非對稱加密、https傳輸來保護銀行系統和區塊鏈之間的通信。
存儲:區塊鏈節點的數據加密后落盤存儲,保證數據存儲安全。
密鑰:各種私鑰、密鑰和節點分離保管,私鑰存儲服務和外網隔離。
而區塊鏈本身就是個互相備份、多活的分布式系統,更利于健壯性設計。打個比方,4個節點,三分之一容錯,那就是掛了一個節點,但其他節點依舊可以通過P2P多路通信來調接、轉發、廣播,讓整個網絡在極短的時間內達成一致。另外銀行自有的立體監控體系也會加入,包括服務器監控、區塊鏈運行時的特性監控、賬目監控等,保證系統健壯運行。
▍答疑解惑部分選段
1. 聯盟鏈對于迎合監管需求還有哪些優勢?
張開翔:運行效率、容量等方面還是比公有鏈更高,隱私保護、數據安全的要求也更高。聯盟內部是根據他們的一些訴求來搭建,比如資源整合,智能協作等等,對于機構間尋求合作和創新的場景也更具優勢。
2. 小企業不對等時,以較小的權重加入不能被接受嗎?
張開翔:這取決于業務場景,權限方面有所限制,至于在聯盟中所貢獻能力、收入分配等問題其實與技術關系不大。
3. 大集團用聯盟鏈,公鏈幾乎都是創業公司吧,說是去中心化,想要顛覆現有中心化商業體系,這是否說明,大家還是從各自利益出發?聯盟鏈仍然是在不跳出現有商業模式情況下的形態。
張開翔:比起去中心,我們著眼于多中心,強調在分布式商業模型中,大家一起高效協作,可控創新,去對現有模型進行優化。也不排除在現有模式之外去,合法合規的前提下進行創新。區塊鏈的信息共享和高效運作確實為創新奠定了良好基礎。
4. 對賬場景,是否圍繞對賬需求直接開發分布式系統更高效?甚至不需要鏈式數據結構等。
張開翔:分布式數據庫來做這個其實是可以的,但是對賬場景還強調賬的一致性跟可驗證。有沒有一種方法在高一致性之外,還能快速地驗證數據,最好是能進行實時的計算呢?最后發現區塊鏈還是最適合的,因為區塊里包含了一批數據,有hash這些快速驗證的效果。
5. 對于自建CA這塊,如果有新機構想要參與進一個已經運營起來的聯盟鏈網絡,那就要首先信任這個網絡創建之初創建出來的那個CA,那這個CA是不是要足夠開源才可以?
張開翔:CA會有許多維度,開源是其中之一,不過你相信這個聯盟而它提供CA,這個信任已經足夠背書了。
6. 完整的BFT算法復雜度應該是達到了N的N次方,PBFT應該是a*N^2. 它的缺點規模大的時候可以說是效率低,要效率高的時候就是規模小,兩者不可兼得。容錯率小于33%,是這樣嗎?
張開翔:這個看法很好,拜占庭容錯確實無法撐起上千個節點的規模,有些變通方法比如分片、分set,用隨機的方式選擇一些可信的記賬者。不過我個人預計兩年之內,基于聯盟鏈的商業場景不會特別大,我非常期待有上百家機構聯手,創造出里程碑式的記錄。目前拜占庭容錯在聯盟鏈中仍頗具生命力,我們同時也在研究更具活力的算法。
7. 相對業務的數據量級,空塊帶來的存儲空間和同步工作量,是否可以忽略不計了?
張開翔:基本上是的,這只是一個優化,在極端的情況下提供一種可選的能力。比如你的業務只在白天有流量有交易,一天8萬秒,每秒存一塊,一天就有4萬個空塊需要你去同步,去空塊的特性還是用得上的。
8.存證場景使用區塊鏈存儲摘要值的必要性?使用分布式存儲系統對摘要值做保全不可以么?業務對摘要的簽名是可驗證的。
張開翔:為什么現在我們的存證需要多個機構加入簽名呢?這要說到業務共識。一個證據的產生,它的確定性、完整性確實可以通過摘要證明,但是這是否在現實法律里有效呢?我們引入機構背書,也就是說機構在證據產生和存儲的過程中是共同見證的,其效力比證據自描述要強很多。
想知道金鏈盟如何構建金融級監控與高校運維管理體系?怎樣在聯盟鏈中實現監管審計支持?還有區塊鏈存證系統等應用案例詳解以及更多專家解答,立即點擊鏈接回顧課程完整版:http://www.mooc.ai/open/course/445
—————————————————————————————————
【金融科技大講堂】是由雷鋒網AI金融評論和AI慕課學院聯合出品的線上公開課,我們將有來自民生保險、微眾銀行、百度金融等機構的技術和產品、業務大咖來與大家分享,區塊鏈技術在傳統金融業務中的實際應用經驗!

雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。