在諸多新技術付諸應用之后,越來越多的技術從業者開始發現,似乎摩爾定律已經開始失靈了,兩年的周期遠遠跟不上技術和信息爆炸的速度。但與此同時,我們卻發現另一個定律出乎意外的開始在科技圈里盛行,那就是叢林法則。狼性文化也好,剩者為王也好,云計算、人工智能、再到區塊鏈等技術無不在彰顯一個亙古不變的真理,適者生存。
那么如今大為火熱的區塊鏈技術是如何適應當今的互聯網環境的呢?從無到有,從瘋狂到理智,從虛擬到價值,區塊鏈的發展正在逐步走上正軌。攻克了性能、去中心化、數據安全等諸多難關之后,區塊鏈已經變得越發的成熟。那么究竟怎樣的區塊鏈才是適合當今市場環境的呢?我們又需要做怎樣的區塊鏈呢?
9月8日,《騰訊技術工程—區塊鏈技術沙龍》在深圳舉行,此次沙龍分別從騰訊區塊鏈技術探索近況、微眾銀行在金融科技和區塊鏈領域的探索、區塊鏈與下一代網絡基礎設施的結合、區塊鏈技術的本質等四個方面的主題內容,與參會者共同探討研究及業務過程中所遇到的挑戰與問題解決思路。
騰訊在區塊鏈技術的探索近況
首先登場演講的嘉賓是騰訊區塊鏈最早發起人之一、CDG FIT開發高級工程師王宗友,他對當前區塊鏈技術中面臨的挑戰以及騰訊區塊鏈的解決思路做出了詳細的介紹。
首先,區塊鏈究竟是什么呢?可能一千人眼中有一千種,區塊鏈可以是分布式數據庫、信任機器、Token經濟、價值互聯網、下一代互聯網、新的生產關系或者是分布式賬本等。但官方來講,區塊鏈的定義是一種由多方共同維護,使用密碼學保證傳輸和訪問安全,能夠實現數據一致存儲、防篡改、防抵賴的技術體系。典型的區塊鏈是以塊鏈結構實現數據存儲。
那么區塊鏈首先想到的是安全問題,以比特幣為例,防篡改的技術一方面包括了塊鏈、UTXO、HASH、簽名等密碼學原理防范,第二維度則包括了POW等算力博弈,第三方面則能容錯的分布式多方見證,三者完全獨立多維度共同防篡改,大大降低了 被篡改的可能。
從根源來看,防篡改有三個發展方向,一方面是在發現新維度,如POS及其變種如權益博弈等;舊維度優化也可以包括BFT及其變種能在容錯方面實現多點一致;另一方面,過去采用的是靜態數據防篡改的方式, 在采用智能合約后就變成了動態邏輯防篡改。
商業區塊鏈系統應用情景來看,目前外在的特征包括了用戶數量多、活躍度高、商業安全等,而由此帶來的技術挑戰就包括了性能、存儲、隱私等,這三個維度構成了主要的挑戰。
在性能方面,造成性能主要問題的原因是由于多點共識和區塊串行所導致。解決性能問題需要從多個角度入手,在鏈外涵蓋閃電網絡、雷電網絡、打包簽名等;分片則涵蓋子鏈、多通道sharding等;在鏈內的話,共識優化的方法可以從時間角度、節點個數、VRF等;創新維度可以包括DAG、Hash Graph等。值得注意的是,在公式算法中,類似CAP原理,性能、參與節點數、容錯性三者不可兼得。
第二個挑戰就是來自于海量存儲方面,這主要包括了用戶增加和交易增長兩方面,單機將會無法存儲所有的數據。一個解決方案就是按照時間來切分,一般來講,采用的都是互聯網通用的解決方案,例如賬戶數據存儲解決方案或塊鏈文件存儲方案等。
第三個挑戰就是隱私保護,這需要保障信息共享和商業私密性之間實現平衡。那么應當如何解決呢?從數據方面分類,如果當數據完全隔離時,交易數據只在交易相關方存儲,其他方無法獲取,但與防篡改的多方見證有沖突;所以數據部分隔離思路就是交易結果的特征在各節點數據相同,詳細數據只在交易相關方存儲;再者就是數據完全不隔離,通過密碼學手段保證交易信息不被競爭對手看到。
騰訊的區塊鏈解決方案如上圖所示,主要也是分為了應用服務層、平臺產品服務層和底層核心平臺層等。在應用時,聯盟鏈商業應用有三個必要條件,多方參與、參與動力并且要保障鏈上和線下的一致性等。
區塊鏈技術在金融領域的應用實踐
第二位分享的嘉賓是微眾銀行區塊鏈首席架構師,FISCO BCOS平臺架構師張開翔,他講述了微眾銀行在金融科技和區塊鏈領域的探索,以及在分布式商業場景中區塊鏈技術的發展和行業現狀。
張開翔首先對微眾銀行進行了介紹,微眾銀行對金融科技的研究和投入很高,目前在區塊鏈領域的探索包括推出了鏈接同業的金鏈盟、開源底層平臺FISCO BCOS、與政府合作參與標準制定、也參與建立了機構間的對賬平臺、仲裁鏈等。目前在探索分布式商業模式,存在分布式技術需求,采用了多方參與、聯盟組織的形式等實現合作共贏和業務創新。
那么應該如何在金融行業理解區塊鏈呢?基于分布式網絡來對各種不同的數據進行管理,多采用了分布式數據庫進行存儲。在商業層面,多方參與監督、高效協作,以共識機制管控操作層面,支持監管;在規則層面,定義資產流通規則、智能合約快速交易,控制業務風險提升流動性。
目前來看,區塊鏈具有如下幾個特點,其打破機構間或自然人界限的分布,通過共識算法在交易發生時就達成一致性確定性,在驗證過程中強調抗欺詐完成博弈和信任,計算和存儲冗余,能無差別計算和存儲;具有極高的容災能力和系統可用性;能提供標準化的系統,也正是這些特點使其成為機構之間創新互聯的基礎設施。
區塊鏈的知識體系非常的廣泛,往上走涵蓋了行業專家的內容,而向下則包括了技術專家的內容,中間則是一些架構師的內容。總結下來可以將之比喻為一個房子,其地基是數學、密碼學、操作系統、編譯原理等,框架是分布式系統架構,空間是博弈,窗戶是信息安全,天花板則是業務和商業模式。
作為一種整體技術解決方案,區塊鏈融匯吸收了分布式架構、分布式存儲、點對點網絡協議、加密 算法、共識算法、智能合約等多類技術;微眾銀行選擇了聯盟鏈作為支持分布式商業的基礎組件,其更能滿足分布式商業中的多方對等合作與合規有序發展要求,兼顧金融創新和金融穩定。
目前,區塊鏈技術的主要應用點在于分布式架構部署、數據追溯與存證、對賬與清算、支付與結算等,而具體到聯盟鏈則用于存證、供應鏈、支付、版權、身份等。而聯盟鏈面臨的挑戰則主要包括了高安全性、高性能、高可用性、業務落地及合法合規等五個方面。在速度方面,由于區塊鏈強調的是一致性、事務性和安全性等,所以會行程區塊鏈速度的瓶頸。
那么應該如何解決問題呢?網絡方面優化網絡互聯,減少冗余流量,加速關鍵信息傳遞, 處理網絡抖動問題;存儲選擇讀寫速度更快的存儲方案,優化流程減少讀寫沖突,批量讀寫,適當應用緩存;計算采用更高性能的庫和算法,避免重復計算,無鎖計算,隊列化和多線程計算;協作采用高速低耗能共識算法,優化共識算法流程,協同多個節點并行驗證和計算,獨立事務交易并行處理,異步驗證。
在安全和隱私方面,需要分層次進行,控制方面,需要準入控制,驗證參與者身份和證書,角色設計,權限控制,過濾讀寫接口;然后進行脫敏,敏感數據偽碼上鏈或不上鏈,將Hash摘要和少量元數據方式上鏈;加密方面,采用對稱加密非對稱加密算法, 用密碼信封完成加密數據分享 零知識證明,同態,環簽名,群簽名,閾值簽名;最后是隔離,如采用中央對手方,多鏈多通道,跨鏈通信等方式,再者還有鏈下計算和物理隔離等實現。
區塊鏈與下一代網絡基礎設施的結合
第三位分享的嘉賓是深圳大學副研究員楊術,他針對基于區塊鏈技術提出新一代TCP/IP,用以升級和改造現有互聯網做出了分享。
目前互聯網正在飛速發展,在未來將為網絡接入百億甚至千億級別的網絡設備,但現有網絡恐怕難以承載如此大量的設備。網絡開始從計劃經濟向市場經濟進行轉變,但過去的網絡是靜止、信任和安全的,而如今的網絡需要承載更多責任,需要變革。那么從哪里變革呢?從最重要的TCP/IP協議,TCP將下層網絡向上層提供統一接口調用網絡連接來連接到服務器。
但是,TCP/IP設計了TCP地址,但是沒有設計IP地址。比如在高鐵上,人的IP會常常改變,導致整個TCP/IP重啟,因此人們常常會感覺到網絡掉線或者卡頓。傳統互聯網結構雖然解決了TCP/IP的可擴展性和移動性問題,但并沒有解決其他問題,網絡主機之間依然需要不斷的合作,因此結合區塊鏈技術設計的新一代網絡幫助解決了可信任、公平性、安全等問題。
那么網絡發生了哪些變化的呢?傳統網絡更關注節點本身,但是在現有互聯網中,針對特定信息的訪問是最普遍的場景,也就是說信息中心網絡中更關注的是信息實體,具體表現為訪問被命名的資源,而非主機節點;通過內容復制和緩存實現可擴展的內容分發;快速的內容解析路由及靈活的訪問控制。
在未來對網絡影響比較大的項目,如NDN就將網絡中的一切內容名字化取一個ID,在用戶需要某一個內容時,網絡只需要將ID交給路由就可以實現。如果是傳統網絡的話就必須要通過網絡連接到服務器才能實現,造成巨大資源浪費,而且在傳播過程中還可能造成更大的安全問題。但是NDN提出在網絡中建立倉庫,只要發現有所需內容就可以獲取,保障可擴展性。但NDN的問題在于完全棄用了TCP/IP,需求過大。
為此,普林斯頓大學提出了服務中心網絡,保留了TCP/IP,增加了服務訪問層,采用漸進式的修改,只需要修改IP地址和端口號就實現。服務中心網絡只需要用戶向網絡提出服務,而服務中心網絡則會把這一信號轉換為路由信號,且不需要用戶擔心IP地址變更這些問題,而且速度更快。因此用區塊鏈結合服務中心網絡就成為了新一代網絡的原型。
區塊鏈網絡原本存在一些問題,整體運行效率較低,運行范圍也會受限,因此驗證交易的成本較低,如果運行高復雜度計算時,驗證花費時間過長,這甚至容易導致網絡DDoS攻擊。目前不同的項目采用不同的方式解決,如IPFS,當服務方希望網絡存儲,那么用戶可以發起挑戰,挑戰成功可以獲取獎勵,這樣就從全網驗證變為了部分驗證。但這種機制在于任意性比較大,所以目前希望利用區塊鏈選取節點,并對全網進行監督,當發現有問題時及時抽查并進行懲罰。
對于目前的比特幣的結構來講,其效率比較低。對其進行改進目前有兩種機制,一種是鏈下機制,另一種則是鏈上改進交易結構來提升效率。以IOTA的DAG結構為例,對傳統線性交易結構改為樹樁,異步性增強,不同節點進行附著,但這導致整體結構發散,算力分布在大界面上,交易確定時間較長,也更容易受到攻擊。解決方法可以通過設置一個寬度,讓其在后續節點發展在范圍之內,不會過分發散也能保障不被攻擊。
區塊鏈技術本質
最后一位分享的嘉賓是中國計算機協會CCF區塊鏈專業委員會委員、TEG計費平臺部賬戶中心總監潘安群,他講述了針對區塊鏈技術未來的判斷、認識以及一些推理。
從本質上來看,區塊鏈可以理解為一個異地多活的分布式數據庫。宏觀上看,區塊鏈和數據庫一樣都是用來保存數據。無論數據庫的形式如何變化,本質還是數據的存取,區塊鏈本質上是交易數據的存取。異地多活機制多年來一直是分布式數據庫領域在探索的方向,但鮮有成效。區塊鏈以一種全新的方式實現了全球最大的異地多活數據庫。
二者功能對應來看,區塊鏈本質來看是鏈式賬本,有World State,采用共識算法,利用智能合約實現,具有分片和跨鏈方式;而分布式數據庫則是采用操作日志記錄,用于數據存儲,采用一致性算法,存儲過程,采用分片方式。
而在安全性方面來看,二者的側重點明顯不同。區塊鏈賬本有成千上萬份副本分散在全球各地,數據幾乎永不丟失,同時利用所有節點的相互制約,人很難惡意篡改數據。安全性和抗審查是區塊鏈的重心,表現出來就是去中心化。用戶體驗和性能相對而言并不是區塊鏈最關心的,而這些問題卻是數據庫所重視的。二者產品上的側重點不同,從而導致技術實現上的差異。
共識機制在分布式數據庫里叫一致性算法,數據庫采用主從結構。而在區塊鏈里每個節點是完全對等的多活架構,使用pow或pos等共識算法爭奪記賬權,爭奪記賬權的節點決定將那些交易打包進區塊,并將區塊同步給其他節點,其他節點仍然需要基于本地數據對區塊中的交易做驗證,并不像數據那樣無條件接受。
騰訊云區塊鏈平臺TBaaS最初是基于聯盟鏈做的,為此推出了一些優化性功能,比如成員管理、區塊服務、頁面封裝、賬鏈代碼等。其在設計時提供了諸多的模塊化設計,針對不同的應用場景為用戶提供不同的選擇;智能合約方面采用的通用合約開發語言是golang,javascript,java,隔離的合約執行環境是docker;安全隱私方面支持硬件加密機和國密算法,采用多鏈設計,實現數據物理隔離,私有數據隔離保護。
TBaaS邏輯上分成三個組件:背書節點,共識節點,驗證節點,其中背書節點是驗證節點的一個子集;交易依次在三個組件上執行,采用三階段的交易流程:執行合約—打包區塊—交易驗證。具體來看從背書節點模擬執行合約,并對執行結果簽名—背書,采用了靈活可配置的背書策略;在打包區塊,共識節點將背書后的交易中打包成區塊;然后在驗證節點驗證區塊并提交。
區塊鏈所遇到的挑戰主要是性能和可擴展性等問題。針對性能問題,并發處理采用了流水線技術,及保證交易順序不變,區塊鏈之間進行并發。并發會引入數據競爭,由于版本不一致還會導致分叉、數據幻讀等問題;而通過預處理為多活并發節點提供統一數據視圖。
結合通兌積分的場景舉個例子,比如a和b是互相不認識的兩個人,分別在銀行1與銀行n辦理業務獲得了對應銀行的積分,可能銀行1的積分并不能兌換或僅能兌換很少東西,通過TBaaS,用戶a可以一起使用銀行1和銀行n的積分兌換,另外其他行業也接入通兌平臺,提供兌換物品,這樣TBaaS就可以聯合積分提供方、物品兌換方,增強了流動性,也提高了積分的使用價值。
區塊鏈技術的發展,經歷了野蠻生長,也經歷了變革穩重。目前來看,這一技術顯然還沒有達到他的最高峰,這場沙龍為我們揭示的就是其未來發展的路徑,順應發展,順應市場需求,憑借區塊鏈的潛力,未來依然大有可為。
評論
查看更多