由中国人民银行数字货币研究所负责起草,由中国人民银行科技司、中国工商银行、中国农业银行、中国银行、中国建设银行和国家开发银行等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标准,成为分布式账本技术的安全规范范例。
0
推荐