引言
起源于比特币[1]的区块链技术作为继互联网之后计算存储模式的又一次颠覆式创新,通过其独特的块链式数据结构,多方维护的共识算法及灵活编程的智能合约,构建了一种新型的分布式信任网络,有力的推动了互联网技术由信息互联网向价值互联网的转化。
然而,区块链系统在提供灵活分布式协作优势的同时,其自身身份管理也面临着极大挑战。在传统中心化交易系统中,参与方的身份管理及交易数据均由中心机构统一核验确认,且相关信息均不对外公开,而在区块链系统中,为了实现去中心化的目标,需公开所有交易信息,以便多方共识确认完成交易的背书核验。因此,对于区块链系统中的身份管理我们应该着重考虑,如何在去(多)中心开放网络环境下安全、高效的实现用户身份的标识、认证及资产确权。接下来,本文将主要站在身份标识,身份认证及身份隐私保护的角度来谈谈当前区块链交易系统中对于身份管理的实践。
基础之身份标识
身份标识是指能够证明实体身份的凭证,在我们日常生活中最常见的有个人身份信息,户口本、各类印章等,并且随着互联网技术的发展,数字身份标识也逐渐被广泛接纳使用。在区块链交易系统中,数字身份用于标识交易用户的身份信息以便资产的支付确权,其实现手段主要依赖于密码算法和认证协议,但公有链和联盟链在具体实现方式上存在一定的差异,以比特币为代表的公有链多直接使用公钥(地址)作为身份标识符,而以Fabric[2]为代表的联盟链则多采用数字证书来标识用户身份。
公钥(地址)标识
在比特币、以太坊、门罗币、零币等强调用户身份隐私,采取匿名认证机制的区块链交易系统中,身份标识通常基于公钥密码体系中椭圆曲线密码算法来进行构建。我们以比特币为例,在比特币网络中用户的身份标识符A称为比特币地址(address),其长度为160bit,是由用户公钥P通过两次哈希运算而生成,其运算过程大致如下:
而通过上述用户身份标识符(地址),就可以明确标识当前UTXO属于用户A,并通过A来控制UTXO的支付,实现数字资产的权属标记,对于属于A的UTXO进行支付的交易脚本可简单描述为:
通过上述操作不难看出,比特币基于非对称密码算法的公私钥对和签名验签实现了对链上数字资产的权属标识及支付确权。
数字证书标识
以Fabric和BCOS等为代表的联盟则更关注强监管环境下参与方身份识别(KYC)的需求,为了实现对用户身份的实名可控认证,均采用了基于数字证书的用户身份标识。我们以开源联盟链平台Hyperledger Fabric为例,Fabric中默认的MSP使用了X.509证书作为身份标识符,采用传统的公钥基础设施(PKI)体系[3]来对其成员身份进行管理。数字证书中包含了用户身份信息、用户公钥信息、CA数字签名及有效期等,可实现与用户的一一映射,在整个交易系统运作的过程中,数字证书可替代公钥作为数字资产的权属标记,证书格式内容如下图所示。
图1 数字证书格式
分布式身份标识
除了上述介绍的两种传统身份标识方式外,一种新型的分布式数字身份标识技术(DID)正在快速发展。不同于前两种标识,分布式身份标识不依赖于中心化权威机构,强调用户身份信息的自主可控,若与区块链系统相结合,可以构建一种扁平化的身份管理模式,通过将身份数据的所有权归还用户来解决身份隐私问题,是未来构建信任生态的基石。W3C组织已于2019年底发布了首个DID标准规范[4],该规范可用来标识人、组织、物品、抽象实体等任意主体,分布式身份标识体系与传统标识体系区别如下图所示。
图2 分布式与传统身份标识体系区别
总的来说,分布式数字身份提供了一种更为灵活的身份标识和属性证明方法,限于篇幅,对于分布式数字身份的规范定义及实践应用,我们将在后续文章中做更深入的讨论分析。
应用之身份认证
匿名认证机制
为保护交易用户的身份隐私,公有链提供了匿名身份认证机制,即用户在注册过程中无需出示身份信息即可获得身份标识并将其应用于认证。由于公有链采用无准入机制的开放网络架构,用户可基于公钥密码算法实现自身身份标识,同时,同一用户还可通过使用多个不同公钥(地址)来降低不同交易之间的关联性。但由于区块链交易系统具有账本公开、多方确认的特点,通过对账本数据聚类分析,便可关联用户实体身份,因此,简单使用匿名认证并不能完全有效地解决交易身份隐私保护问题,身份隐藏技术的助力不可或缺。
实名认证机制
与匿名认证机制相反,为了实现参与方准入控制并保证交易符合监管要求,在联盟链系统中多通过部署CA,采用基于数字证书的方式来实名管理用户数字身份,其管理使用方式如图3所示。对于中心化系统中账本保密的应用场景来说,使用实名认证机制无疑高效且安全,但是对于区块链中的公开账本,则将会带来极大的隐私泄露风险,威胁用户交易安全。为解决这一问题,联盟链在身份管理中也提出了相应的可监管匿名认证机制。
图3 数字证书的管理使用
可监管匿名认证机制
通过巧妙运用密码学技术手段,便可在联盟链的身份管理中实现可监管匿名认证。例如,在Fabric 0.6版本中,成员管理服务利用注册证书(ECert)-交易证书(TCert)两级安全证书体系实现了前台匿名后台可监管的需求;而在Fabric 2.0版本中,引入了支持多消息盲签和零知识证明的Idemix方案,用来实现用户身份的匿名性和不可链接性;
通常情况下,可监管匿名认证机制[5]包含三个参与方,分别为可信中心(CA),用户和验证者,通过在传统认证手段中引入监管机制,使CA 能够对匿名证书进行身份追踪,可监管匿名认证方案如下图所示。
图4 可监管匿名认证方案
在交易过程中,CA根据用户提交的属性信息为用户颁发相关的证书,用户按照规定利用证书显示交易需要公开的内容,其他个人信息则可进行隐藏,验证者可对签名进行验证,若通过则用户出示的证书有效,一旦出现纠纷,验证者可将用户出示的证书发送给CA请求仲裁,CA可以“打开”签名,恢复参与者的身份。
进阶之身份隐私保护
在上一节中我们有提到,简单使用匿名认证并不能完全有效地解决交易身份隐私保护的问题,以使用匿名认证方式的比特币交易系统为例,基于对公开账本中交易特征的分析,就可以推测出匿名用户的交易规律,从而发现用户身份信息和区块链地址之间的关联关系。因此,在区块链系统中若想更好的保护用户身份隐私,引入强力的身份隐藏技术手段便成为必然。
“混淆”也可称之为“混币”,作为区块链系统中实现用户身份隐藏的基本思想,通过在交易过程中加入中间环节对多笔交易进行混淆,从而增加攻击者的分析难度,达到保护用户身份隐私的目的。混币机制的工作原理如下图所示。
图5 混币的工作原理
混币机制在技术层面可分为三类,分别为协同混币技术、自主混币技术以及全局混币技术。所谓“协同”是指混币过程中需要第三方机构或非交易人的主动参与才能完成混淆过程;而“自主”是指交易方在混币过程中无需第三方中心机构和其他用户的参与即可自主完成混淆,门罗币就是自主混币技术的典型代表,其实现细节可参见区块链隐私保护技术解析——之门罗币(monero);全局混币技术则依赖于系统体系架构内生,更多采用“证明”来解决问题,零币正是其典型代表,技术细节欢迎参见区块链隐私保护技术解析——零知识证明。当然,在引入混淆技术的同时也不可避免地增加了交易操作的时间复杂度和空间复杂度。
小结
随着区块链技术在多领域的广泛落地和深入应用,身份管理已成为制约区块链系统整体安全和应用推广的关键要素。本篇文章基于目前主流区块链平台,从身份标识、身份认证和身份隐私保护三个层面对作为区块链系统基础组件的身份管理技术进行了简要分析。
此外,随着分布式数字身份(DID)概念的提出发展,如何将分布式数字身份管理与区块链系统相融合,实现分布式数字身份体系也值得我们继续关注。在后续的研究中,我们将聚焦分布式数字身份,去探索更加广阔的数字经济世界。
作者:绿盟科技 李智科
参考文献
- Nakamoto S. Bitcoin: A peer to peer electronic cash system. 2008. https://bitcoin.org/bitcoin.pdf
- https://github.com/hyperledger/fabric
- https://www.w3.org/TR/did-core/
- 王震, 范佳, 成林, 等. 可监管匿名认证方案[J]. Journal of Software, 2019, 30(6): 1705-1720.
- https://mp.weixin.qq.com/s/rVVzAzbKWzPvczHTuyWehg