
由中國人民銀行數字貨幣研究所負責起草,由中國人民銀行科技司、中國工商銀行、中國農業銀行、中國銀行、中國建設銀行和國家開發銀行等20余家機構參與的《金融分布式賬本技術安全規范》于2020年2月5日由中國人民銀行發布,并于當日實施。
解讀全文如下:
1. 對這個規范的名稱應該如何理解?
對這個規范的全稱----《金融分布式賬本技術安全規范》,我們有3點認知。
(1)分布式賬本技術。這個規范沒有用區塊鏈,而是用了分布式賬本技術。但從規范的“引言”給出的定義中,我們基本可以判定,這個分布式賬本技術就是區塊鏈。“引言”將分布式賬本技術定義為“密碼算法、共識機制、點對點通訊協議、分布式存儲等多種核心技術體系高度融合形成的一種分布式基礎架構與計算范”。至少到目前,這個定義是與區塊鏈形態匹配的,除非以后區塊鏈還會產生新的形態出來。至于為什么不直接用區塊鏈,按照我的理解,區塊鏈到目前也沒有一個獲得一致認可的定義,如果直接用區塊鏈,同樣需要對區塊鏈下一個定義,而這個定義是否能得到學界業界的認可,也還不好說。這是第一點。
(2)安全規范。這個規范或標準,僅僅是對金融分布式賬本技術安全方面的規范,而不是對金融分布式賬本的技術規范,更不是對分布式賬本的技術規范。這一點盡管很明顯,從字面上就可以看出來,但也被很多媒體誤讀。
(3)金融。這個規范是由央行數字貨幣研究所提出,由全國金融標準化技術委員會歸口管理,由央行發布,是金融行業標準,有其一定的針對性和局限性,并不是對所有區塊鏈技術或分布式賬本技術的安全規范。但這個界定,并不代表這個規范對其他區塊鏈技術體系或分布式賬本技術體系的安全沒有借鑒作用。
2. 為什么要在這個時候出臺這樣一個規范?“引言”對此有相應的說明,即“落實《中國金融業信息技術‘十三五’發展規劃》(銀發﹝2017﹞140號文印發)和《金融科技(FinTech)發展規劃(2019-2021年)》(銀發﹝2019﹞209號文印發)的要求”。這個規范的發布當然是以上任務驅動的。除此之外,“規范分布式賬本技術在金融領域的應用,提升分布式賬本技術的信息安全保障能力”則是這個規范發布的直接目的。我想從大的方面談3點理解。
一是區塊鏈行業的迅猛發展。所謂迅猛發展,既包括由企業和學界引領的區塊鏈技術、區塊鏈體系結構的創新和大量區塊鏈應用的落地,同時也包括各個國家和各級政府的區塊鏈政策的快速調整。比如我們中國去年10月24日就在中央政治局層面組織了關于區塊鏈的集體學習,今年開年以來絕大部分省份的政府工作計劃,都把區塊鏈列為了工作重點。美國證券交易委員會委員Hester Peirce 2月6日在芝加哥提出《TOKEN安全港提案》,引起業界諸多關注與討論。同時,區塊鏈也在加速向傳統行業滲透,比如這次疫情,就有多個媒體和社區組織了區塊鏈如何助力疫情防控的討論。在具體落地實施上,我們也看到比如阿里和騰訊做的區塊鏈發票。
二是區塊鏈在安全方面的缺失。由于區塊鏈采用了密碼技術,同時在一些典型應用比如比特幣和以太坊上采取了一些安全措施,因此大多數人在一開始就錯誤地認為區塊鏈能夠解決安全問題。但實際上這幾年區塊鏈的發展案例已經完全打破了區塊鏈系統能夠保證安全的幻覺。相應的案例不僅指加密貨幣交易所丟幣(實際上中心化交易所基本沒有采用區塊鏈技術),也包括傳統的區塊鏈系統,比如比特幣系統,由于整數計算溢出,導致被人為偽造幾千億枚比特幣的事故,還包括各種智能合約存在的漏洞。
三是傳統的安全規范尚沒有對區塊鏈這種分布式系統的安全需求作出回應。我們國家去年印發了等級保護2.0標準,但等保2.0主要基于傳統的計算形態,對通用系統和幾種比較典型的系統,比如云計算、移動互聯網、物聯網、工業控制系統作出了安全方面的規范,但還沒有對區塊鏈這種分布式的系統作出安全方面的規范。
以上幾個方面的原因,再加上區塊鏈天生就與金融貨幣有著極其緊密的聯系,同時們又面臨著央行數字貨幣DCEP 呼之欲出的大背景,因此首先在金融行業出現區塊鏈第一個安全方面的規范,也是順理成章的事情。
3. 我們經常用分布式賬本來描述區塊鏈系統,那到底金融領域的分布式賬本與通常的分布式賬本有哪些相同點,又有哪些不同點?我們先看一下通常的分布式賬本,也就是一般意義上的區塊鏈系統。按照用戶類型和應用場景,我們通常把區塊鏈分為公有鏈、聯盟鏈和私有鏈。公有鏈是非許可鏈,不需要任何人或組織或節點的批準和同意,只要認可該公有鏈的共識機制,任何人或節點在任何時候都可以自由進入或退出。我們用得比較多的比特幣系統、以太坊系統,都是公有鏈系統。對公有鏈的定義,目前基本不存在疑義。
聯盟鏈和私有鏈是許可鏈,需要被批準才能進入或退出。一般認為,聯盟鏈用于不同的企業或組織間,面向多用戶群體。私有鏈用于單一企業或組織內部,面向單用戶群體。但經過分析,我們認為這兩個概念有很多含糊之處,比如摩根大通集團內部運行JPM Coin的區塊鏈系統,是私有鏈還是聯盟鏈?一般認為這個系統是聯盟鏈,因為摩根集團內部還有很多機構。包括對Libra系統的定性也面臨同樣問題。但如果從另外一個層面,JPM Coin和Libra面對的盡管是不同的用戶,但在這個系統里都是單一類型用戶,所在的也是單一場景,也符合私有鏈的定義。因此,我們從應用場景和用戶類型重新定義了聯盟鏈和私有鏈,私有鏈是面向單一任務場景面向單一用戶類型的區塊鏈系統,而聯盟鏈是面向多任務場景面向不同用戶類型的區塊鏈系統。由此,也可以由不同的私有鏈構成聯盟鏈。
金融系統所用的區塊鏈是屬于公有鏈、聯盟鏈,還是私有鏈呢?
要完整回答這個問題,必須對金融系統的所有可能應用場景通過分析后再歸類。但總體上來看,應該說各種類型的區塊鏈系統在金融領域都會在其應用。如果用更加開放一點的觀點來看,目前的比特幣系統、以太坊系統本身也是金融應用,只是比特幣和以太坊的金融屬性尚未得到多數國家官方認可。如果我們將區塊鏈系統應用于銀行之間的清算結算,那么這種系統按照我們的定義,應該是一種私有鏈系統。如果在此基礎之上,再加上比如銀行之間的借貸等功能,那么這種系統就成為聯盟鏈系統。
金融系統由于應用場景的特殊性,它的分布式賬本和一般的分布式賬本還是有一些區別的。比如,出于防洗錢方面的需要,金融領域用于大額交易的區塊鏈應用就要實行嚴格的KYC認證,而不可能允許匿名。金融在區塊鏈系統的一些關鍵應用,比如機構間的交易、清算、票據、借貸,首先要保障系統的健壯性和穩定性,不可能允許系統癱瘓。
4. 分布式賬本安全與常用系統的安全有什么區別?答:區塊鏈這種分布式賬本的體系結構與我們常用系統的體系結構是完全不同的。我們常用的系統,無論是以前的客戶-服務器結構,還是曇花一現的網格計算,也包括目前廣泛使用的云計算、移動互聯網、物聯網和工業控制系統,基本都是一種中心化系統,所有的任務都是在中心化系統的調度下完成的。盡管在任務的分配和體系結構的設計上存在不同的分布式結構,但這種分布式結構更多是為了達成任務協同,不同節點有不同的任務分工,節點之間的職責和任務是不同的。
但區塊鏈是高度的數據冗余,所有節點都有一個完整的數據備份。這種冗余不僅僅是為了保證系統的可靠性,甚至可以說,基本不是為了確保系統可靠性而做出的數據冗余,而是為了確保數據不可篡改不可偽造,保證數據高度透明和完全共享。盡管不同的區塊鏈系統在設計上存在節點職責分工上的差異,但大部分節點的任務職責是一致的。絕大部分區塊鏈系統中的節點如果要成為超級節點,需要按照共識算法競爭產生,而不是事前被指定。
由于體系結構上的差異,一般來講,區塊鏈比我們常用的系統(云計算、移動互聯網、物聯網、工業控制系統)具有更強的系統可靠性、可用性和行為不可抵賴性,更好的數據完整性,但具有更差的數據保密性、更差的對數據的可控制性。在用戶身份真實性方面,目前的公鏈系統也不及我們日常的常用系統。
系統可靠性和可用性也被稱為系統的健壯性或魯棒性。由于區塊鏈上的所有行為必須要經過用戶簽名認證,因此區塊鏈系統具有更強的行為不可抵賴性。區塊鏈上所有數據會通過時間戳、哈希函數等技術手段,保證不可被篡改,此外還會通過多方認證和共識機制使得數據難以被篡改,因此區塊鏈具有更好的數據完整性。但由于區塊鏈上的數據要在所有節點上保留一個完整的備份,并且數據還需要得到其他節點認可認證,因此區塊鏈上的數據具有更差的數據保密性。數據一旦上鏈就難以更改,因此區塊鏈上的數據具有更差的可控制性。
但這種對比也不是完全絕對的。我們知道,目前所有的區塊鏈系統仍然建立在操作系統和TCP/IP網絡協議上,如果因為病毒或黑客攻擊造成整個系統癱瘓,那么區塊鏈系統也有癱瘓的可能。當然這是一種比較極端的情況。
體系結構的不同導致了區塊鏈系統與我們常用系統面臨的安全威脅也不同。不同的體系結構也分別對應著不同的應用場景,因此無論是從技術手段,還是業務需要,兩者需要采取的安全措施和安全手段也應該不同。
5. 在這份《標準》文件中,您認為最值得關注的點有哪些?為什么?答:我們總結了6個方面的特點。
第一個方面,這個規范是基于等級保護2.0中第三級安全標準制訂的。
等級保護2.0標準是我們國家強制性的網絡安全標準。等級保護1.0標準是2008年基于我們國家自主的可信計算理論而制訂的,這些年可信計算理論在沈昌祥院士的帶領下得到了全面的發展,在此背景下,等級保護2.0標準于去年修訂完成。
等級保護2.0標準將安全保護能力從低到高共分為五級。第三級安全保護能力定義為,“應能夠在統一安全策略下防護免受來自外部有組織的團隊、擁有較為豐富資源的威脅源發起的惡意攻擊、較為嚴重的自然災難,以及其他相當危害程度的威脅所造成的主要資源損害,能夠及時發現、監測攻擊行為和處置安全事件,在自身遭到損害后,能夠較快恢復絕大部分功能。”
從金融基礎運行環境及網絡的分類來看,將這個標準的安全等級定位為三級是合適的。在開放協作的國際大環境下,金融基礎運行環境及網絡的安全一般情況下不會面臨國家級別或擁有如此豐富資源的敵對組織的惡意攻擊,但是有可能面臨來自有組織的團隊以及擁有較多資源的威脅源發起的惡意攻擊,比如黑惡勢力、跨國洗錢組織等。此外,安全等級定位越高,所要付出的建設和維護成本就越高,使用起來也會越不方便。因此,也不應將安全級別無限制地高定。
為全面理解《金融分布式賬本技術安全規范》,還需要做下等級保護2.0標準的科普。
等級保護2.0標準5.3節指出,“由于業務目標的不同、使用技術的不同、應用場景的不同等因素,不同的等級保護對象會以不同的形態出現,表現形式可能稱之為基礎信息網絡、信息系統(包含采用移動互聯等技術的系統)、云計算平臺/系統、大數據平臺/系統、物聯網、工業控制系統等。形態不同的等級保護對象面臨的威脅有所不同,安全保護需求也會有所差異。為了便于實現對不同級別的和不同形態的等級保護對象的共性化和個性化保護,等級保護要求分為安全通用要求和安全擴展要求。
“安全通用要求針對共性化保護需求提出,等級保護對象無論以何種形式出現,應根據安全保護等級實現相應級別的安全通用要求;安全擴展要求針對個性化保護需求提出,需要根據安全保護等級和使用的特定技術或特定的應用場景選擇性實現安全擴展要求。安全通用要求和安全擴展要求共同構成了對等級保護對象的安全要求。”
等級保護2.0標準針對云計算、移動互聯網、物聯網、工業控制系統提出了安全擴展要求,但卻沒有對區塊鏈這種分布式賬本系統的安全提出對應的個性化擴展要求。因此,這次《金融分布式賬本技術安全規范》的出臺,也可以看作是對等級保護2.0標準的補充和完善。
第二個方面,這個安全規范內容全面,涵蓋了分布式賬本作為金融基礎運行環境及網絡可能涉及的基礎硬件、基礎軟件、密碼算法、節點通信、賬本數據、共識協議、智能合約、身份管理、隱私保護、監管支持、運維要求和治理機制等12個方面。安全既是一個技術問題,更是一個管理問題。如果沒有好的管理,即使安全技術再先進,也不可能確保網絡和信息的安全。從涵蓋內容來看,共識協議、智能合約的安全是傳統安全規范較少涉及,而對區塊鏈系統又極其重要的內容。分布式賬本技術中的節點通信、賬本數據的安全,又與傳統的通信方式和數據安全有明顯區別。此外,身份管理是傳統安全中的重要內容,但在我們廣泛使用的公鏈系統中又是缺失的,但身份管理對于金融領域的應用又是必不可少的。
第三個方面,是鮮明的國密特色。密碼是我們黨和國家的“命門”“命脈”,密碼工作是黨和國家的一項特殊重要事業。2019年10月26日,十三屆全國人大常委會第十四次會議通過《中華人民共和國密碼法》,習近平主席簽署主席令予以公布,并于2020年1月1日起正式施行。同時,《商用密碼管理條例》等配套法規制度的制定修訂工作也提上日程。金融分布式賬本技術作為我們國家金融行業的標準規范,為了維護國家主權和利益,肯定要全面推進國密算法的使用。值得注意的是,除了區塊鏈中使用較多的非對稱密碼算法和哈希函數,規范還使用了分組密碼和流密碼,并且最新的環簽名、群簽名、同態加密等技術也得到了應用。
第四個方面,對隱私保護的強調。從相關章節的規定我們可以推測出未來DCEP將如何實現身份真實和匿名交易的統一。比如14.3.3節中要求,“應對交易內容信息以及交易方信息至少其一進行加密”;“應確保參與方以及審計方擁有對加密信息解密驗證的能力”;“應確保除交易參與方以及審計方外,他人無法從加密信息獲取任何其他信息”;“應確保任何人可對加密的信息進行有效性和正確性的驗證”。此外,14.3.4 “信息由交易驗證節點驗證”一節也有相應規定。也就是說,隱私保護是對當事人和審計方之外的隱私,但其他人或節點還必須具備對信息的有效性和正確性的驗證能力。
這無疑提出了比較高的技術要求。為此,14.4“隱私保護技術要求”一節特地提出,“隱私保護技術和方法包括認證授權、局部廣播、摘要存儲、變更標識、混淆技術以及零知識證明、群簽名、環簽名、同態加密等算法組合”。
此外,第13.7“身份鑒別”一節要求“使用匿名身份認證的分布式賬本系統,其匿名認證方式應具有匿名性、不可偽造性和不可鏈接性”。3.29節對“不可鏈接性”定義為“同一用戶在多次交易過程中出示的匿名身份標識,不能夠被還原為同一用戶”。這是從另外一個層面對匿名身份提出的技術方面的要求。當然,在本規范其他方面,也還有這方面的要求。
第五個方面,對強監管的支持。15.2 “系統監管”一節要求金融分布式賬本系統“應支持監管機構的接入,以滿足信息審計和披露的要求”;“應支持監管部門的監管活動,包括但不限于設置監管規則,提取交易記錄,按需查詢,分析特定業務數據等”;“應支持監管機構訪問底層數據,實現穿透式監管”。15.3“信息管理”一節要求“應支持還原匿名標識中的用戶真實身份以及相關交易信息,配合交易審查,加強KYC管理”。也就是說,一旦認為交易存在問題,監管機構能夠立刻還原用戶真實身份。
15.5“交易干預”一節要求“應具備限制交易權限、凍結賬戶等功能,為監管機構提供交易干預的技術手段”。目前基于公鏈的交易系統是不具備這方面的能力的。此外,17.3.2“干預機制”一節也提出了相應的要求。
第六個方面,可靠性或可用性要求。前面講過,區塊鏈系統本身就具有較強的可靠性和可用性,但金融分布式賬本由于其所擔負的職責的重要性,必須確保其可靠和可用。作為重要基礎設施的金融系統,一旦出現可靠性或可用性問題,則意味著金融秩序停擺。盡管信息技術已經高度發達,但近幾年在世界范圍內也還時常發生交易所宕機事件。因此,對金融分布式賬本的可靠性和可用性要求遍布于整個規范,包括物理硬件的設置,冗余節點的設置,對共識機制和智能合約的要求,對賬本數據的完整性、一致性、有效性和冗余程度的要求,對節點通信完整性的要求等等。
6. 有觀點認為,此次發布的《標準》會使得央行數字貨幣和區塊鏈供應鏈金融發展提速,對此您的看法是?答:央行數字貨幣是金融系統的底層基礎設施。這個規范是金融分布式賬本系統運行的基礎設施,甚至可以把范圍再擴大一些,是金融系統運行的基礎設施。這個規范是利用分布式賬本技術構建金融應用的底層技術安全規范,有了這個規范,才能避免金融分布式賬本系統建設和運行在安全方面的短板。因此,這個規范的發布肯定會對央行數字貨幣的發展帶來速度上的提升。
區塊鏈供應鏈金融是用區塊鏈系統來承載供應鏈金融,還是區塊鏈領域的供應鏈金融?但無論是哪種,目前還看不出這個規范與區塊鏈供應鏈金融發展的直接聯系。
7. 目前區塊鏈標準眾多,但都是比較寬泛的技術標準,還沒到產品標準的層面,目前在區塊鏈標準制定上,是否存在不足之處,就此次發布的標準而言,有哪些做得相對比較好的地方,又有哪些不足之處。這個問題要看如何理解產品這個概念。如果區塊鏈作為底層基礎設施,本身就是產品呢?那么技術標準肯定是產品標準的內核。如果產品是指用區塊鏈去承載其他應用,或者簡稱區塊鏈應用,那么離標準肯定還早,因為畢竟成熟的區塊鏈應用還比較少。
回到這個問題。去年10月24日中央政治局集體學習時也強調了區塊鏈標準制訂的問題。我們一般會把標準理解為規范,但如果想在國際上占領行業先發優勢和至高點,那么標準就不能僅僅局限于一般的規范,更重要的是水平和能力。
具體到這個標準,好的地方或特點,我們在上面回答過了,這個規范的出臺有極強的必要性和時效性,整個規范的制訂也體現了極高的專業水準,但也還是存在個別的不足或遺憾。
第一個方面,這個規范采用的安全方法和技術手段仍然是傳統的中心化方式下的安全方法和手段。區塊鏈本身是分布式架構,有著比較強的去中心化或非中心化(去中心化或非中心化與基于業務邏輯的管理不矛盾)內涵,近些年安全多方計算、零知識證明等理論和技術也取得了較大的進展,在分布式系統中也有較為理想的應用,但在規范中并沒有得到采用和體現。
比如在“密鑰管理”一節,規范建議采用秘密分享,也就是將一個完整的密鑰拆分成幾個不同的部分,再分別存儲或傳輸。這種方式看起來是增強了安全,但無論對于管理還是技術保障都帶來了新的難度。目前基于安全多方計算實現的密鑰分布式生成、分布式簽名驗證已經取得了比較好的工程化效果,并且還可以實現動態的門限方案。這些新的技術發展沒有被采納進規范,不能不說是一個遺憾。
第二個方面是一些細節內容。從規范具體內容來看,7.6節中“智能合約代碼存儲”這個說法有不準確之處,應該是ABI或BIN,也就是代碼編譯后的二進制形態。但也有可能規范隱含著要求提供代碼的要求。錢包對于區塊鏈系統是極為重要的組成部分,但在本規范中沒有體現,也有可能規范制訂者認為錢包屬于一個獨立的應用部件,而不是賬本技術本身的緣故。這個規范同樣缺少對于智能合約編譯器以及SDK等方面的安全規范,而這些內容對于確保系統的整體安全同樣起著比較重要的作用。
8. 企業和普通個人需要以什么樣的姿勢關注這個事情呢?規范第一章“范圍”對此已經有所闡明,“本標準適用于在金融領域從事分布式賬本系統建設或服務運營的機構”。因此,這個標準的出臺,與普通個人關系不大,與一般的企業關系也不大,但對準備通過區塊鏈技術從事或開展金融系統建設或金融服務運營的機構,關系就太大了。
有幾個小地方提請大家注意一下,一個是這個規范本身是推薦性行業標準,而不是強制性行業標準;其二是這個規范的分類是基礎運行環境及網絡,也就是說,這個規范是面向所有金融分布式賬本技術的安全規范,未來應該還有面向不同細分領域或不同應用層次的更有針對性的安全規范。
此外,這個規范在“引言”部分也說明了,“在分布式賬本技術形態尚具可塑性的階段,有必要制定關鍵技術的安全規范,以便金融機構按照合適的安全要求進行系統部署和維護,避免出現安全短板,為分布式賬本技術大規模應用提供業務保障能力和信息安全風險約束能力,對產業應用形成良好的促進作用。”這段話在我看來,意味著目前這個規范的探索意義大于實際落地意義。
因此,這個規范未來的可能發展,一是在實踐中得到進一步檢驗,在有一定落地應用檢驗的情況下獲得修訂機會,修訂多少,以及向哪個方向修訂,既有賴于安全技術,尤其是分布式安全技術的發展,也有賴于主管機關和制訂者的偏好,但最終應該會成為強制性行業標準;二是在此規范之上,會形成系列的針對特定應用或特定類型的金融領域的分布式賬本技術安全規范;三是這個規范的大部分內容有可能被吸納進等級保護2.0標準,成為分布式賬本技術的安全規范范例。
(作者是上海散列信息科技合伙企業創始合伙人、中國計算機學會區塊鏈專委會委員,高承實博士)
責任編輯:張旖旎





