区块链(Web3)开发工程师

区块链(Web3)开发工程师

1 身份与数字身份

1.1 身份

身份是一个人属于某一国家成员的法定身份的延伸,传统社会中的物理身份通常采用一系列的纸质材料来证明“我是我”。这些身份证明可以是证明法定身份的身份证,也可以是基于法定身份的延伸,如证明学历的毕业证等。

1.2 数字身份

随着互联网的出现和普及,身份有了另外一种表现形式,即数字身份。一般认为,数字身份的演进经历了三个阶段,分别是:中心化数字身份、联盟式数字身份、分布式数字身份。

(1)中心化数字身份:由单一的权威机构进行管理和控制的数字身份;

(2)联盟式数字身份:由多个权威机构或者联盟进行管理和控制的数字身份,用户的身份数据具备了一定程度的可移植性;

(3)分布式数字身份:由分布式基础设施改变应用厂商控制数字身份的模式,让用户控制和管理的数字身份,通过将数据所有权归还用户从根本上解决隐私问题。

从身份发展的全生命周期看,身份从诞生到使用包含四个阶段:注册、签发、认证和管理,以及三个参与方:身份所有方(用户)、身份提供方(签发机构)、身份依赖方(有身份验证需求)。

【区块链 | DID】白话数字身份-LMLPHP

图1 身份全生命周期流程图

(1)注册:用户向身份所有方发起身份认证请求;

(2)签发:身份提供方接收到用户发起的身份认证请求,成功记录并承认用户身份,给用户签发可识别的身份标识;

(3)验证:身份所有方在信赖身份提供机构的依赖方使用身份时,通过技术手段,验证身份的真实性、有效性;

(4)管理:对数字身份的管理,包括但不限于:身份的存储、更新、撤销、授权等。

2传统数字身份

2.1 概述

传统数字身份的实现方式多以中心化和联盟式为主,从互联网业务看,用户的身份和数据已实现了数字化和网络化,互联网公司具备一整套成熟的身份管理系统,从加密信任验证角度看,每个中心化管理机构充当信任根,并可能联合多机构实现身份信任背书。

2.2 痛点

伴随着传统数字身份多年的发展,其暴露了诸多问题。

(1) 身份数据分散、重复认证、多地认证问题

传统数字身份通常由一个或多个权威机构或联盟管理和控制,导致身份认证系统各不相同,需要重复认证。例如,在金融场景下,同一公民去不同的银行开户需要分别进行KYC(Know Your Customer, KYC),用户体验繁琐,身份数据相互重叠,数据可能存在差异甚至冲突。身份体系重复建设,在浪费资源的同时,也存在诸多数据共享和使用上的障碍,不同身份系统形成“身份孤岛”,阻碍了数字身份的发展。

(2) 身份数据隐私与安全问题

传统数字身份中心化控制、中心化管理的模式,导致用户身份信息散落在权威机构或联盟的身份认证者手中,不排除某些机构在未经用户授权的情况下使用用户身份数据。其次,用户身份信息在各家企业的服务器上存储,不同的企业对数据安全的重视程度和措施强度不同,使得用户的数据泄漏。

(3) 中心化认证效率和容错问题

传统的公钥基础设施(Public Key Infrastructure, PKI)系统,数字证书是认证的核心,它由相对权威的证书颁发机构(Certificate Authority, CA)签发的,容易引发性能问题和安全问题。性能问题:中心化签发过程涉及证书的所有操作,任务繁重,可能成为性能短板拖累效率,如庞大的已撤销证书列表的有效分发。安全问题:单中心的结构容易使其成为攻击的目标,一旦上级CA被攻破,则与之相关联的下级CA也会受到牵连,容易引发连锁反应。同时,由于CA也有民间团体,因此无法完全保证每个CA的信用。

3 分布式数字身份

分布式数字身份(Decentralized Identifiers, DID),在万维网联盟(World Wide Web Consortium, W3C)发布的分布式数字身份规范中,将DID定义为一种新的全球唯一标识符。这种标识符不仅可以用于人,也可以用于万事万物,包括一辆车、一只动物,甚至是一台机器。下面我们从技术实现和场景描述两个方面介绍DID技术。

3.1 技术实现

3.1.1 概述

DID技术的核心构成要素包括三个:DID、DID文档、可验证凭证和可验证表达。

【区块链 | DID】白话数字身份-LMLPHP

图2 分布式数字身份架构图

3.1.2 DID

DID标识是一个特定格式的字符串,用来代表一个实体的数字身份,这里的实体可以是人、机、物,DID标识的格式为:

【区块链 | DID】白话数字身份-LMLPHP

 图3 DID示例图

(1) Scheme:固定的表述方式,表示这个字符串是一个DID标识字符串。类似URL中的http,https,ftp等协议;

(2) DID Method:DID方法,标识整套DID标识采用的方法,该方法自定义完成后,注册到W3C,供同样采用W3C DID规范的分布式数字身份识别;

(3) DID Method Specific String:DID方法下的唯一标识字符串,整个DID方法命名空间是唯一的。

3.1.3 DID文档

DID文档(DID Document, DID Doc)包含着所有DID标识有关的信息,通过统一资源定位符(Uniform Resource Locator, 简称URL)与DID标识连接,是一个通用数据结构,通常是由DID controller负责数据写入和更改,文件内包含与DID标识验证相关的密钥信息和验证方法,提供一组使DID controller能够证明其对应DID标识控制的机制。DID controller可能是DID标识本人,也有可能是第三方机构,不同DID Method对DID Doc的权限管理有所区别。

【区块链 | DID】白话数字身份-LMLPHP

图4 DID Doc示例图

3.1.4 可验证的凭证

以用户为中心的身份与由公认机构发布的其他标识符的绑定称为可验证的凭证(Verifiable Credentials, VC),DID文档本身无法和用户的真实身份信息相关联,需要VC来实现,关联过程是整个系统的价值所在。VC类似于数字证书,是对用户身份的证明,同样也提供了一套类似于PKI的系统。

【区块链 | DID】白话数字身份-LMLPHP

 图5 分布式数字身份相关方关系图

(1) 发行者(Issuer):拥有用户数据并能开具VC的实体,即身份提供方;

(2) 持有者(Holder):向发行者请求、收到、持有VC的实体,即身份持有方;

(3) 验证者(Verifier):需要验证用户身份的应用,即身份依赖方;

(4) 身份注册机构(Identifier Registry):维护DID数据库的机构,存储DID标识和DID Doc,并可通过DID标识查询到对应的DID Doc。

3.1.5 可验证表达

可验证表达(Verifiable Presentation, VP)是VC持有者向验证者表明自己身份的数据。一般情况下,我们直接出示VC全文即可,但在某些情况下,出于隐私保护需要,并不希望出示完整的VC内容,只希望选择性披露某些属性,或者不披露任何属性,只需要证明某个断言即可。

3.2 场景描述

枯燥的概念让你了解DID的世界,场景描述带你真切感受DID的使用。小明(Holder)是刚毕业的应届毕业生,小明拿着学校(Issuer)颁发的毕业证去公司(Verifier)入职,其中一个环节是公司验证小明身份及小明毕业证,验证通过后,小明入职成功,具体流程如下:

(1) 小明生成身份DID标识和DID Doc:小明要想获得学校颁发的毕业证,必选要有自己的DID标识,通过数字身份相关APP,在手机中生成随机私钥和对应的公钥,并根据相应规范完成DID标识和DID Doc生成;

(2) 学校颁发毕业证给小明:学校本身也有自己的DID标识,学校是教育系统里面颁发的DID标识,所以DID Method和小明作为中国公民的DID Method不一样,所有认证过的高校的DID标识都是由高校认证管理DID创建的,所以这相当于传统的根CA,获得认证的正规学校根据小明的学习情况(入学时间、毕业时间、专业、是否结业等信息)以及小明的DID,为小明颁发毕业证,即VC;

(3) 小明提交学历证明给公司:小明来到新公司入职,入职当天需要提交学历证明给公司,但是小明为了个人隐私不想直接拿毕业证给公司看,于是小明基于生成的毕业证(VC)生成学历证明,即VP;

(4) 公司验证小明学历证明:公司收到小明提交的学历证明(VP)后,首先通过验证学历证明(VP)是小明提交的,且没有篡改,然后验证毕业证(VC)是学校颁发的,最后,验证学校DID是高校认证管理DID颁发的,所有验证通过后,小明成功入职!

3.3 国内情况

国内分布式数字身份方面,CTID(居民身份网络可信凭证)与eID(网络电子身份标识)共存,eID具有在线身份认证、签名验签和线下身份认证等功能。eID偏向于硬方案,CTID更偏向于软方案。

eID 是公安部第三研究所,以国产自主密码技术为基础、以智能安全芯片为载体的身份认证技术,不仅能在不泄露身份信息的前提下在线识别自然人主体,还能用于线下身份认证。目前,已与多家银行等合作发行加载eID的金融IC卡及SIMeID贴膜卡;与三大电信运营商进行技术对接并试点发行加载eID的SIM卡;与多家主流品牌手机厂商合作将eID加载于手机终端,并正在与其他手机厂商进行技术对接。

CTID是公安部第一研究所,对外提供真实身份核验、网证开通和管理、网证认证等三大功能,基于实体身份证、网证、居民身份信息、人像等多种认证因子,形成了从最简单的身份信息比对,到需要实体证件参与的多因子认证等多种身份认证模式。根据中盾安信官网显示,目前,CTID 平台已经形成面向全地域、全行业的互联网可信身份认证基础设施,其并发能力达到每秒2万+,响应时间平均0.5秒,数据数量高达50亿。

4 风险控制

DID从提出到现在已经有四年时间,经过各行业协会、互联网平台、基金会等的推动,W3C于2021年8月3日发布了DID 1.0版本白皮书,提出了更通用的身份标识架构及规范,众多协会、组织及企业基于W3C DID规范提出了众多DID Method,但距离DID技术真正落地应用还存在诸多风险和问题,以下将从DID落地过程的技术风险控制和业务风险控制两方面阐述。

4.1 技术风险控制

(1) 密码算法风险控制:不管是传统数字身份,还是分布式数字身份,其可信度主要依赖于密码算法,由于密钥是密码算法中的最高机密,窃取密钥往往是攻击者的首要目标,任何在密钥使用、保存、协商环节中出现的疏漏,都会使之功亏一篑。同时,密码算法从理论到实现过程存在周期长、复杂性高、性能差等问题;

(2) 身份信息泄漏风险控制:相比传统数字身份,分布式数字身份已经大大提升了身份信息的安全性,但在应用中仍有一定风险,例如当第三方刻意收集分析某个分布式数字身份数据时,存在通过海量数据逆向推理的可能性,从而推导出物理世界中的现实身份,造成身份信息泄露。

4.2 业务风险控制

(1) 合规性要求:传统数字身份发展早期只需通过用户名/密码实现平台身份验证,但为了满足合规性要求,增加了物理世界身份验证,这种方式设计虽然实现可追责、可追溯的网络信任体系,但造成了个人信息泄露。分布式数字身份一定程度上解决了这个问题,但对于分布式数字身份而言,仍存在合规问题,如是否需要通过国家身份基础设施进行实名认证等;

(2) 匿名风险控制:数字身份相比传统身份外的另一重要特征是具备匿名性,当前主流分布式数字身份技术给出的解决方案是:谁持有数字身份,谁就有权享受相关权益。这无疑带来了一定的监管风险和数字身份被盗取后的应用风险。目前有部分分布式数字身份给出的解决思路是通过将DID映射到中心化数据库,实现DID使用时的本人身份确认,但该种方案并不能从根本上解决匿名风险控制,反而给个人信息保护留下漏洞;

(3) 市场化应用风险控制:目前,技术规范已初步成型,但各类身份服务之间需要进一步地实现互联互通,不断提升标准在引导行业发展,促进产业布局方面的作用,实现标准规范行业发展,行业发展推进标准更新迭代的良性循环。

5 参考文献

[1] Decentralized Identifiers(DIDs) v1.0[R/OL].World Wide Web Consortium,2021.https://www.w3.org/TR/did-core/.

[2] 基于可信数字身份的区块链应用服务白皮书(1.0版)[R].可信区块链推进计划,2020.

[3] 袁煜明,黄怀澄,等.区块链数字身份:数字经济时代基础设施[R].火币研究院,2020.

[4] DIDA白皮书[R].分布式数字身份产业联盟,2020.

[5] eID数字身份体系白皮书[R].公安部第三研究所,2018.

[6] 数字身份证引领数字经济新时代[R].西部证券,2022.

[7] 深圳市标准化协会.T/SZAS 37-2021基于互联网的可信数字身份服务技术要求[S].深圳,2021.

[8] Lee G M, Jayasinghe U, Truong N B, et al. Features, Challenges and Technical Issues[C]//The Second Bright ICT Annual Workshop on Bright ICT 2016. 2016.

[9] 王普玉.DID:一种全新的身份标识技术[EB/OL].https://zhuanlan.zhihu.com/p/456469304,2022-01-12

[10] 曾毅.去中心化数字身份DID简介[EB/OL].https://www.cnblogs.com/studyzy/p/14189910.html,2020-12-25

09-27 00:37