現階段,雖然區塊鏈的行業生態已初步成形,但區塊鏈技術仍面臨諸多技術瓶頸,具體表現在體系架構、共識機制、互操作性、系統安全等多個方面。www.emoneybtc.com因此,必須對區塊鏈關鍵技術給予高度重視,並集多方力量突破技術瓶頸,從而為區塊鏈應用的全方面落地掃清障礙。
2.1共識機制
共識機制是區塊鏈系統能夠穩定、可靠運行的核心關鍵技術。不同於傳統的中心化系統,區塊鏈系統中所有網絡節點是自由參與、自主維護的,不存在一個可信的中心節點承擔網絡維護、數據存儲等任務。因此,如何使眾多地理位置分散、信任關系薄弱的區塊鏈節點維持一致性的可信數據副本,並實現系統穩定運行,是區塊鏈共識機制必須解決的難題。
共識機制的主要功能是解決兩個基本問題:
(1)誰有權寫入數據。區塊鏈系統中,每一個骨干網絡節點都將各自獨立維護一份區塊鏈賬本(即區塊鏈系統中的數據庫)。為了避免不同的區塊鏈賬本出現數據混亂的問題,必須要設計公平的挑選機制,每次只挑選一個網絡節點負責寫入數據;
(2)其他人如何同步數據。當被挑選的網絡節點寫入數據後,其他網絡節點必須能夠准確及時的同步這些數據。為了避免網絡中出現偽造、篡改新增數據的情況,必須設計可靠的驗證機制,使所有網絡節點能夠快速驗證接收到的數據是由被挑選的網絡節點寫入的數據。
一旦解決這兩個問題,區塊鏈分布式網絡中的節點就可以自發的建立一致性的可信數據副本。首先,每隔一定時間,經過共識機制挑選的節點將挑選待入庫的交易,構造最小的區塊鏈數據存儲結構“區塊”,然後將區塊數據廣播到區塊鏈網絡。其次,全網所有節點將對接收到的區塊數據進行檢測,根據共識機制判斷區塊數據是否是由合法的授權節點發布。如果區塊數據滿足共識機制和其他格式需求,將會被節點追加在各自維護的區塊鏈賬本中,完成一次數據同步。通過重復這兩項過程,區塊鏈賬本就可以穩定、可靠的實現更新和同步,避免數據混亂、數據偽造等問題。
共識機制是區塊鏈的核心技術,與區塊鏈系統的安全性、可擴展性、性能效率、資源消耗密切相關。迄今為止,研究者已經在共識相關領域做了大量研究工作,提出了眾多不同的共識機制。從如何選取記賬節點的角度,現有的區塊鏈共識機制可以分為選舉類、證明類、隨機類、聯盟類和混合類共5種類型:
選舉類共識是指礦工節點在每一輪共識過程中通過“投票選舉”的方式選出當前輪次的記賬節點,首先獲得半數以上選票的礦工節點將會獲得記賬權。例如PBFT、Paxos和Raft等。PBFT共識機制效率高,支持秒級出塊,而且支持強監管節點參與,具備權限分級能力,在安全性、一致性、可用性方面有較強優勢。然而,在PBFT系統,一旦有1/3或以上記賬人停止工作,系統將無法提供服務,當有1/3或以上記賬人聯合作惡,且其他所有的記賬人被恰好分割為兩個網絡孤島時,惡意記賬人可以使系統出現分叉。
證明類共識被稱為“Proof of X”類共識,即礦工節點在每一輪共識過程中必須證明自己具有某種特定的能力,證明方式通常是競爭性地完成某項難以解決但易於驗證的任務,在競爭中勝出的礦工節點將獲得記賬權。例如PoW和PoS共識算法等。PoW(工作量證明機制)的核心思想是通過分布式節點的算力競爭來保證數據的一致性和共識的安全性。PoS(權益證明機制)的目的是解決PoW中資源浪費的問題。PoS是由具有最高權益的節點獲得新區塊的記賬權和收益獎勵,不需要進行大量的算力競賽。PoS一定程度上解決了PoW算力浪費的問題,但是PoS共識機制導致擁有權益的參與者可以持幣獲得利息,容易產生壟斷。
隨機類共識是指礦工節點根據某種隨機方式直接確定每一輪的記賬節點,例如Algorand和PoET共識算法等。Algorand共識是為了解決PoW共識協議存在的算力浪費、擴展性弱、易分叉、確認時間長等不足。Algorand共識的優點包括:能耗低,不管系統中有多用戶,大約每1500名用戶中只有1名會被系統隨機挑中執行長達幾秒鐘的計算;民主化,不會出現類似比特幣區塊鏈系統的“礦工”群體;出現分叉的概率低於10-18。
聯盟類共識是指礦工節點基於某種特定方式首先選舉出一組代表節點,而後由代表節點以輪流或者選舉的方式依次取得記賬權。這是一種以“代議制”為特點的共識算法,例如DPoS等。DPoS不僅能夠很好地解決PoW浪費能源和聯合挖礦對系統的去中心化構成威脅的問題,也能夠彌補PoS中擁有記賬權益的參與者未必希望參與記賬的缺點。
混合類共識是指礦工節點采取多種共識算法的混合體來選擇記賬節點,例如PoW+PoS混合共識、DPoS+BFT共識等。通過結合多種共識算法,能夠取長補短,解決單一共識機制存在的能源消耗與安全風險問題。
當前現有的共識機制很難做到性能和擴展性的平衡。比特幣、以太坊等公有鏈使用的共識機制(如PoW,PoS等)雖然支持大規模節點網絡,但共識性能較低,如比特幣的TPS(每秒處理的交易數)大約只有7。而以Fabric為首的聯盟鏈共識機制(如PBFT等)雖然有較高的TPS,如PBFT的TPS能達到1000,但這些共識算法的擴展性較差,只支持小規模的網絡,當節點數量過多時共識機制就會崩潰,且很多聯盟鏈共識算法的共識節點是預置的,不支持節點的動態加入與退出。目前區塊鏈系統的共識效率仍是區塊鏈技術的瓶頸之一,在一定程度上限制著區塊鏈技術的發展和相關應用的落地。未來區塊鏈共識算法的研究方向將主要側重於共識機制的性能提升、擴展性提升、安全性提升和新型區塊鏈架構下的共識創新。
2.2互操作性
區塊鏈技術已經滲透至金融、供應鏈等不同的行業與場景,有效打破了同一場景下不同參與方間的價值孤島。但現階段價值難以在不同行業、不同場景之間流動。這使得不同區塊鏈的參與方成為了一個個封閉的小團體,這顯然不利於價值的社會化流通。因而,實現區塊鏈的互操作性勢在必行。目前,區塊鏈的互操作性主要通過跨鏈技術實現。依據具體的技術路線,跨鏈技術可分為公證人技術、側鏈技術、原子交換技術以及分布式私鑰控制技術四類。
(1)公證人技術
在公證人技術中,交易參與方事先選擇一組可信的公證人,以確保交易的有效執行。由Ripple公司提出的InterLedger協議,是公證人技術的一個典型案例。InterLedger實現了跨區塊鏈轉賬,在A鏈發送方在向B鏈接收方轉賬前,需找到一組連接者(Connectors),由連接者逐跳地把資金發送至接收方。各連接者需指定一組公證人(notaries),由公證人監督這一組交易的有效性。
公證人技術的主要問題在於需要信任特定的公證人群體,這違背了區塊鏈去中心化的設計初衷,並引入一定的安全性隱患。
(2)側鏈技術
借助側鏈技術,一條區塊鏈可以讀取並驗證其他區塊鏈的事件和狀態。目前,側鏈技術可分為一對一側鏈和星形側鏈兩大類。一對一側鏈技術包括以btc Relay、RSK為代表的新型區塊鏈。此類區塊鏈能夠和一條已有的區塊鏈(如比特幣)交互,主要目的是實現已有區塊鏈的功能拓展。而星形側鏈技術主要包括以Polkadot、Cosmos為代表的跨鏈基礎設施,其通過構建一條新區塊鏈連接多條其他區塊鏈,進而形成一個星形拓撲結構,實現不同區塊鏈間的價值與信息流通。
(3)原子交換
原子交換的基本思想是,當位於兩條鏈上的雙方互換資產時,交易雙方通過智能合約等技術,維護一個相互制約的觸發器(trigger)以保證資產交換的原子性。即A與B之間的資產交換或者同時發生,或者同時不發生,而不會發生A向B轉賬完成,而B未向A轉賬的情況。
此類跨鏈方案的典型案例是Blocknet。在原子交換的基礎上,Blocknet增加了訂單匹配、交易撮合等功能,以實現去中心化跨鏈貨幣兌換。然而,原子交換技術的應用范圍較為狹窄,僅限於跨鏈轉賬領域,無法滿足其他跨鏈需求。
(4)分布式私鑰控制技術
分布式私鑰控制技術旨在通過分布式私鑰生成與控制技術,將各種數字資產映射到一條新的區塊鏈上,從而在同一條區塊鏈上實現不同數字資產的自由交換。
Fusion是分布式私鑰控制技術的代表性項目。其核心思想將各條區塊鏈上的數字資產映射到Fusion構建的公共區塊鏈上。簡單來說,就像不同區塊鏈用戶將數字資產存入“銀行”,銀行內的數字資產可以進行自由的流通與兌換,並實時更新用戶賬戶余額,用戶從“銀行”提款時以最後的賬戶余額為准。
分布式私鑰控制技術與原子交換技術類似,僅能完成跨鏈資產轉移,尚不能進行更復雜的跨鏈互操作。如果後續無法對其功能完成進一步的拓展,那麼分布式私鑰控制技術的應用范圍將遠達不到預期的效果。
可以看到,已有區塊鏈互操作性方案存在明顯不足。首先,應用范圍窄。例如,BTC Relay只能完成比特幣到以太坊的單向操作,而InterLedger和Fusion等僅能完成跨鏈轉賬,無法進行其他類型的操作。其次,兼容性差。例如,Cosmos等系統僅支持結構相同區塊鏈的互聯互通。總之,現有各種跨鏈與互操作性方案仍處在起步階段,距離實際應用還有很長一段距離。針對此類問題進行優化,也是區塊鏈互操作性的未來演進方向。此外,區塊鏈的互操作性研究直接關系到區塊鏈通信的接口標准。然而,目前最具影響力的跨鏈方案均由國外的企業和研究機構提出。相關實體在設計跨鏈方案時,首先考慮的將是自身經濟利益。因此,我國應盡快推動區塊鏈互操作性研究,積極參與跨鏈標准的制定,從而為國內的區塊鏈產業爭取更多話語權。
2.3安全性
目前,區塊鏈技術已在金融、政務甚至國防領域獲得初步應用。這些場景對安全性的要求極高,然而很多區塊鏈均發生過嚴重的安全問題。截至2018年4月,區塊鏈已發生超過200起重大安全事件,造成的經濟損失已超過36億美元。因此,對區塊鏈安全性的研究勢在必行。
現階段,業界側重於從不同角度提出針對區塊鏈系統的攻防措施,進而對區塊鏈安全性進行全方位探索。研究表明,任何違反區塊鏈安全性的行為,都可以歸結為從算法安全、協議安全、實現安全、使用安全和系統安全等五個層面進行的破壞、更改和洩露。
(1)算法安全
算法安全通常是指密碼算法安全,既包括用於檢驗交易的哈希算法、簽名算法,也包括用於某些智能合約中的復雜密碼算法。
一般來說多數區塊鏈中使用的通用標准密碼算法在目前是安全的,但是這些算法從間接和未來看也存在安全隱患。首先從間接來看,SHA256算法對應的ASIC礦機以及礦池的出現,打破了原有“一CPU一票”的理念,使得全網節點減少,權力日趨集中,51%攻擊難度變小,對應的區塊鏈系統受到安全性威脅。其次從未來發展看,隨著量子計算的興起,實用的密碼體制均存在被攻破的威脅。
此外,對於新型密碼,由於其沒有經過足夠的時間檢驗和充分的攻防考驗,其在實際應用中更容易成為短板。比如麻省理工學院發現新興區塊鏈IOTA的哈希算法中存在致命漏洞,使得IOTA團隊緊急更換算法。某些未經檢驗的隨機數生成器也可能存在漏洞,利用生日攻擊會產生相同隨機數,進而威脅區塊鏈安全。
為了防止ASIC過度使用造成區塊鏈中心化問題,設計不利於並行計算的哈希算法勢在必行。目前,萊特幣的scrypt算法和暗黑幣X11算法均從增加內存消耗方面提高了ASIC開發難度。為防范量子計算威脅,傳統密碼算法需要盡早替換為抗量子密碼算法,目前業界已提出了基於格上困難問題的密碼算法和基於糾錯碼的密碼算法等。為了防范不成熟密碼造成的安全漏洞,必須對於未經驗證的密碼算法謹慎使用。另外隨機數生成器也必須從偽隨機向真隨機過渡,如采用基於混沌的隨機數發生器129J和基於量子的隨機數發生器等。
(2)協議安全
協議是通信雙方為了實現通信而設計的約定或通話規則,包括網絡層面的通信協議和上層的區塊鏈共識協議。
協議安全在網絡層面表現為P2P協議設計安全。攻擊者利用網絡協議漏洞可以進行日蝕攻擊(Eclipse Attack)和路由攻擊(Routing Attack)。攻擊者利用網絡節點的連接數限制可以用日蝕攻擊將節點從主網中隔離,而路由攻擊則是通過控制路由基礎設施將區塊鏈網絡分區而進行的攻擊。攻擊者還可以發起DDoS攻擊,目前對於DDoS攻擊只能依靠收取交易費和浪費算力來控制。
協議安全在區塊鏈共識層面表現為共識協議安全。首先各類共識協議均有容錯能力限制,如PoW存在51%算力攻擊,PoS存在51%幣天攻擊,而DPoS還存在著中心化風險。其次,共識協議容易受到外部攻擊影響。例如,針對PoW共識已出現了自私挖礦(Selfish Mining)和頑固挖礦(Stubborn Minging)等多種攻擊。自私挖礦可以使攻擊者獲得多出自身算力占比的收益;而頑固挖礦是對自私挖礦的拓展,可以使攻擊者收益率比自私挖礦提高13.94%。PoS共識則存在“無利害關系(Nothing at Stake)”問題,即區塊鏈發生分叉時,礦工可能會在多個分叉上同時下注,以謀取不當利益。
針對協議安全性問題,為防止網絡層面的攻擊,需要開發者謹慎選擇區塊鏈的網絡協議。而為了防止區塊鏈共識層面的攻擊,則需設計適當的激勵與懲罰措施,從而降低攻擊者獲得的收益。
(3)實現安全
在區塊鏈系統的實現過程中,程序員可能會有意或無意留下漏洞,從而導致區塊鏈的安全性受到損害。具體表現在以下兩個方面。
首先,眾多區塊鏈引入了圖靈完備的智能合約機制。用戶可以利用智能合約編寫自動化程序,完成資產分配等操作。然而,在編寫智能合約時很可能會引入安全性漏洞。例如,某些合約可能會錯誤地把資產發送到不受控的地址,或者資產無限期鎖死,導致全網可用代幣減少等。
其次,區塊鏈的底層源碼也可能存在整數溢出漏洞、短地址漏洞和公開函數漏洞等各種漏洞。例如,比特幣0.3.11之前版本可以違規生成大量比特幣,而以太坊的短地址漏洞可以使交易者從交易所違規獲得256倍甚至更多的利益。
針對智能合約等程序在實現上的安全問題,業界已提出一系列的形式化驗證和安全測試技術,從而在產品上線之前發現其可能存在的漏洞。此外,諸多區塊鏈的產品開發者已開始定期進行代碼審計,包括交易安全審查和訪問控制審查等,從而爭取在攻擊者發現漏洞之前修復安全問題。
(4)使用安全
在區塊鏈中,“使用安全”特指用戶私鑰的安全。私鑰代表了用戶的資產所有權,是資產安全的前提。然而在傳統的區塊鏈中,私鑰均由用戶自己生產並保管,沒有第三方的參與,所以私鑰一旦丟失或被盜,用戶就會遭受資產損失。
在現實使用中,某些交易平台會代替用戶管理私鑰,但是很多平台往往采用聯網的“熱錢包”管理私鑰,一旦“熱錢包”被黑客破解,用戶的資產就會被盜取。此外,由於沒有完善的風險隔離措施和人員監督機制,導致部分擁有權限的員工利用監管機會盜取信息或代幣。
針對使用安全性問題,用戶需要更加謹慎保管私鑰,盡量使用與網絡隔離的冷錢包存儲私鑰。而交易平台需嚴格進行權限管理,謹慎開放服務器端口,定期進行安全監測,建立完善的應急處理措施。
(5)系統安全
系統安全是一個整體性概念,它受到各級安全因素的共同影響。攻擊者可以綜合運用網絡攻擊手段,對算法漏洞、協議漏洞、使用漏洞、實現漏洞、系統漏洞等各個方面綜合利用,從而達成攻擊目的。另外社會工程學攻擊的引入也使區塊鏈變得更加脆弱。為此,業界需還要關注用戶自身系統安全性,包括定期更新補丁、啟用設備防火牆、禁用路由器中不必要的組件等。
區塊鏈技術已開始獲得廣泛應用。然而,現有區塊鏈的安全問題曾出不窮,因此必須對安全性問題高度重視。目前對區塊鏈安全性的研究主要從“攻”與“防”兩個角度進行。業界分別從從算法、協議、實現、使用和系統等五個層面發現安全隱患,並提出彌補措施。然而,現階段並從根本上解決安全問題。因此在未來,必須從區塊鏈體系架構進行創新,從本質上找到單一漏洞影響系統安全的原因,得到應對區塊鏈安全問題的有效機制。
2.4隱私保護
隨著區塊鏈技術不斷發展和廣泛應用,其面臨的隱私洩露問題越來越突出,必須得到研究人員和工業界開發人員的充分重視。相對於傳統的中心化存儲架構,區塊鏈機制不依賴特定中心節點處理和存儲數據,因此能夠避免集中式服務器單點崩潰和數據洩露的風險。但是為了在分布式系統中的各節點之間達成共識,區塊鏈中所有的交易記錄必須公開給所有節點,這將顯著增加隱私洩露的風險。
然而,區塊鏈本身分布式的特點與傳統IT架構存在顯著區別,很多傳統的隱私保護方案在區塊鏈應用中不適用,因此分析區塊鏈隱私洩露缺陷、研究針對性的隱私保護方法具有重要意義。
根據保護隱私的對象分類,主要可以分為3類:網絡層隱私保護、交易層隱私保護和應用層的隱私保護。網絡層的隱私保護,涵蓋數據在網絡中傳輸的過程,包括區塊鏈節點設置模式、節點通信機制、數據傳輸的協議機制等;交易層的隱私保護,包含區塊鏈中數據產生、驗證、存儲和使用的整個過程,交易層隱私保護的側重點是滿足區塊鏈基本共識機制和數據存儲不變的條件下,盡可能隱藏數據信息和數據背後的知識,防止攻擊者通過分析區塊數據提取用戶畫像;應用層的隱私保護場景,包含區塊鏈數據被外部應用使用的過程等,區塊鏈被外部使用的過程存在洩露交易隱私和身份隱私的威脅,因此,應用層隱私保護的側重點包括提升用戶的安全意識、提高區塊鏈服務商的安全防護水平,例如合理的公私鑰保存、構建無漏洞的區塊鏈服務等。
目前的公有鏈項目中,各參與方都能夠獲得完整數據備份,所有數據對於參與方來講是透明的,任何人都可以在鏈上查詢到上鏈數據。比特幣項目只是通過隔斷交易地址和地址持有人真實身份的關聯,達到匿名效果,攻擊者能夠看到每一筆轉賬記錄的發送方和接受方的地址,但無法對應到現實世界中的具體某個人。盡管如此,攻擊者仍可以通過多個層面的攻擊達到竊取隱私的目的,例如網絡層、交易層和應用層發動不同形式的攻擊。對於聯盟鏈而言,帶有CA性質的監管角色雖然可以保證接入節點的可信,但如果區塊鏈要承載更多的業務,比如實際場景中登記實名資產、通過智能合約實現具體借款合同的同時保證驗證節點在不知曉具體合同信息的情況下如何執行合同等等,基於密碼學、零知識證明等技術的研究正在不斷推進,只有不斷完善區塊鏈技術本身的多層面隱私保護機制,才能讓區塊鏈實際賦能傳統行業,發揮其既定的優勢。
2.5可監管性
當前以數字貨幣為首的各類區塊鏈應用發展迅速,與此同時,區塊鏈中潛在的監管問題也逐漸顯現。一方面,區塊鏈數字貨幣為洗錢、勒索病毒等犯罪活動提供了一條安全穩定的資金渠道,促進了地下黑市的運行。以比特幣為例,著名的勒索病毒WannaCry通過比特幣來實現對用戶資產的勒索,地下黑市網站“絲綢之路”利用比特幣進行非法買賣,很快受到了地下人群的追捧。另一方面,區塊鏈數字貨幣使跨國境的資金轉移變得更為簡單,將有可能損害各國的金融主權,影響金融市場的穩定。與此同時,由於區塊鏈去中心化、不可篡改等特性,使得區塊鏈常被用於敏感信息的存儲與傳播。有些人將敏感有害信息保存在比特幣和以太坊區塊鏈的交易中,而這些信息並不能從區塊鏈中刪除。同時,由於區塊鏈的匿名性,監管方也不能通過這些敏感信息和涉及違法犯罪的交易的發送方地址找到發送方的真實身份。此類事件嚴重危害國家安全和穩定,給網絡監管機構帶來了極大的挑戰和威脅。
當前對公有鏈的監管剛剛處於起步階段,研究方向不全面,研究技術也不成熟。然而,對公有鏈的監管需求又是十分必要且緊急的。因此,監管成為了公有鏈領域急需解決的問題,也成為了當前公有鏈項目落地的最大挑戰。聯盟鏈由於其自身特點,使得聯盟鏈能夠很好的支持對節點和鏈上數據的監管。因此,如何設計監管友好的聯盟鏈基礎架構,在保護隱私的前提下實現監管功能,是聯盟鏈監管中需要研究的主要問題。任何技術的發展都離不開對技術本身的監管,我們需要加強對區塊鏈監管的研究,只有這樣才能夠保證區塊鏈行業的健康和可持續發展。