對央行《金融分散式賬本技術安全規範》的解讀

買賣虛擬貨幣

由中國人民銀行數字貨幣研究所負責起草,由中國人民銀行科技司、中國工商銀行、中國農業銀行、中國銀行、中國建設銀行和國家開發銀行等20餘家機構參與的《金融分散式賬本技術安全規範》於2020年2月5日由中國人民銀行釋出,並於當日實施。上海雜湊資訊科技合夥企業創始合夥人、中國計算機學會區塊鏈專委會委員高承實博士,於2月28日在陀螺財經組織的線上活動中,對《金融分散式賬本技術安全規範》進行了解讀。

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標準,成為分散式賬本技術的安全規範範例。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;