21财经:香港金管局确认中银香港参与数字人民币跨境支付测试
有关技术测试只限中银香港与获邀银行员工及商户参与。
作者:楼嵩来自致力于「构建区块链互联网络,买通价值孤岛」的BitXHub团队
研究偏向:Web3+
导 读
别以为这是一个诱饵式题目,这篇文章是一篇干货文章,因此取这个题目是有深层次的手艺缘故原由的。
本题目的句式是一个疑问句,仔细看,实在包罗2个问题:
1. 在数字时代若何成为一个有身份的人?
第一个问题谜底是「通俗的数字身份」。在看文章的列位实在都有一个数字身份,要么是微信号,要么是IP地址。
但你是否发现一个问题:这些数字身份并不是你真正拥有的,而是身份提供商分发给你的。IP地址是运营商分发给你的,随时可以被运营商收走。微信号也是腾讯分发给你的,你知道账户密码,然则服务器加倍知道。你选择信托运营商信托服务提供商,信托他们不会随意损坏你的身份,但这没有手艺保障。
2. 若何真正拥有身份?
是否有可能真正把账户掌握在自己手里?
是否有可能登录账户,但不告诉服务器你的密码是多少,却照样能够让服务器验证你确实知道密码,同时其他任何人都无法冒充?
谜底是有。
本文将会举行先容相关手艺以及基于这些手艺构建的Web3时代的数字身份手艺:分布式数字身份(Decentralized Identity,DID)。
首先我们来回首一下身份生长的历程(若是想直接看手艺原理的,跳到第二部门最先)。
身份生长的趋势
在中国古代,身份最早泛起在秦朝,那时商鞅变法,制止外国特工的入侵,发明晰照身帖(如图1-1所示,可看到这个照身贴和我们现代的身份证相当靠近,有头像、姓名、户籍等基本信息)。
之后身份手艺在古代不停生长,我们常在电视剧中看到过的虎符、免死金牌、玉玺、锦衣卫的牙牌,都是古代用于证实身份的手艺。
图1-1
到了现代,我国第一代身份证于1984年宣布,今后不停改进,不停加入防伪手艺。2004年宣布了第二代身份证,而且加入了多重防伪手艺。2013年,融合了住民的生物特征。
我们发现,身份生长有两大的趋势:防伪和互通。
防伪这个趋势很好注释,身份原本就是为了证实“我是我”,防伪降低了“其他人冒充我”和“我冒充其他人”的概率。
而互通的缘故原由是,人们往往同时拥有多个特征及身份,指纹特征、面容特征,既有住民证实又有驾驶证实。
现代的数字身份也有类似的趋势。
随着信息手艺的生长,数字身份最先泛起,并先后涌现了中央化身份、同盟身份(Federated Identity,1999)、用户为中央的身份(User-Centric Identity,2005)、自主权身份(Self-Sovereign Identity,SSI,2016)这四个阶段的身份。
这四个阶段的生长的趋势有3个:去中央化、互通、隐私珍爱。
去中央化:用户小我私家对自己身份的完全掌控,只有自己知道密码,只有自己有权限修改、读取身份信息,身份权无法被任何其他机构剥夺。去中央化可以被明白为是一种最终意义上的防伪。防伪防到从手艺上实现只有“我才气证实是我”。
互通:注册一次数字身份,可以在其他服务商的随便数字服务上登录。
隐私珍爱:用户自己保管数据,从而能够决议数字服务能够挪用哪些数据。
数字身份的生长趋势比身份的生长趋势多了一个隐私珍爱。
由于数字身份对照涉及到数据,而数据、隐私这个话题是现在异常热门的一个话题。2020年10月21日,全国人大法工委就《小我私家信息珍爱法(草案)》公然征求意见,意味着我国首部专门珍爱小我私家信息的执法不远了。
分布式数字身份属于第四个阶段,其希望最终能够提供实现自主权身份SSI的所有手艺。有机构展望分布式数字身份的市场会在2017-2025年增进127倍,从5760万美元到达73亿美元,由此可见分布式数字身份的生长前途无量。
接下去先容下分布式数字身份涉及的手艺。
前面提到过“不告诉服务器你的密码是多少,却照样能够让服务器验证你确实知道密码”的手艺是存在的,这种手艺被称为零知识密码证实(zero knowledge password proof),IEEE P1363.2界说了这种手艺。
若是为零知识密码证实举行分类,它属于非对称加密(public-key cryptography)的一种,而且IEEE以为它也是零知识证实的一种。
限于篇幅和行文目的,我们这里只简朴先容下非对称加密,而不先容零知识密码证实的细节,二者原理是相通的。
非对称加密是现代密码学中异常主要的一个分支。一样平常的非对称加密中用于认证用户的不是密码,而是密钥,可以明白为了一个长度很长的密码(如50个字符)。
密码学主要是用于信息加密的,加密前的内容称为明文,好比“ATTACK AT 6AM”,使用某个加密密钥以及加密算法后,加密后可能变成了“NP7-UB-LDBUUB”,这个叫做密文。
要想从密文获得明文,必须使用解密密钥以及解密算法。若是加密密钥息争密密钥相同,则为对称加密;若是差别,则为非对称加密。
非对称加密的密钥有一对2把,称为公钥和私钥。
公钥加密的内容,用私钥可以解密;反之用私钥加密的内容,公钥可以解密。一样平常私钥私藏,只有用户自己知道;公钥需要宣布给其他人。这样别人想要给用户发送新闻时,使用公钥加密该新闻,加密后的新闻只有拥有用户私钥的自己才气解密,其他拥有公钥的人无法解密。
非对称加密主要是用于信息加密的,那若何用于用户的认证呢?
数字署名。
假设用户A要证实自己是A,首先,组织一条新闻“I AM A”;然后对该新闻哈希函数运算获得哈希值H(I AM A),然后使用私钥Priv对该哈希值举行加密,所获得的密文E(H(I AM A),Priv)即为用户A对新闻“I AM A”的数字署名。
将新闻原文“I AM A”和署名E(H(I AM A),Priv)发给其他人,其他人使用用户的公钥可以解密署名获得H(I AM A);然后也对新闻原文举行哈希盘算获得H(I AM A)’,若是H(I AM A)’== H(I AM A),说明发送“I AM A”新闻的用户简直拥有私钥Priv,证实他就是用户A。
总而言之,私钥实在就相当于是用户的密码,而公钥可以给服务器用来验证用户是否真的持有私钥,验证的方式就是验证数字署名。
有了这个基础,接下去就可以先容分布式数字身份DID了。
分布式数字身份系统是基于非对称加密和数字署名建立起来的。
DID规范
分布式数字身份DID生长至今主要有5个手艺规范:DID标识符(Decentralized Identifier)、DID文档(DID Document)、DID剖析器(DID resolver)、可验证声明(Verifiable Credential)、身份存储库(Identity Hub),这些手艺规范的主要领导组织是W3C(World Wide Web Consortium)和DIF(Decentralized Identity Foundation)。
之所以有这几个规范,实在也和身份系统自己的需求有关:
DID标识符:身份标识符的花样;
DID文档:身份信息的花样;
DID剖析器:身份信息的获取,为身份认证(Authentication)提供了保障;
可验证声明:隐私数据披露的方式,为数据授权(Authorization)提供了保障;
身份存储库:隐私数据的治理;
▲ DID标识符凭据Zcash创始人提出的标识符系统“Zooko三角理论”,标识符无法同时实现实现平安、去中央化、对人类有意义(易影象)三者,W3C DID标识符主要思量了平安、去中央化两者。
此处的ALPHA 和DIGIT的在ABNF(Augmented Backus Normal Form)中有界说,而未在此ABNF中界说的其他语法在RFC3986中有界说,值得一提的是W3C DID标识符是相符W3C URI的规范的。
举个例子:
did:ethr:0xE6Fe788d8ca214A080b0f6aC7F48480b2AEfa9a6
即为一个DID标识,其中ethr是method-name,指明晰身份所在的域(此处ethr所指的域就是以太坊);0xE6Fe788d8ca214A080b0f6aC7F48480b2AEfa9a6是method-specific-id,表明晰这个身份在域中的地址。
DID标识符只是示意一个身份的标识符,不包罗身份的信息。而DID文档就是用于形貌身份详细信息的文档,一个DID标识符关联到一个DID文档。
DID文档一样平常包罗以下内容:
DID标识符(必须); 一个加密质料的聚集,好比公钥; 验证方式聚集; 一个服务端点的聚集; 时间,包罗建立时间和更新时间。DID文档的示例:
DID文档现实花样可以是JSON,也可以是JSON-LD或者YAML、XML等。其存储需要上链,或者至少哈希上链。
▲ DID剖析器剖析器的作用是通过DID标识符来获取DID文档,这样,当DID用户登录某个服务时,该服务提供商挪用剖析器来获取DID文档,从而知道了若何来验证DID用户。
DID剖析器的规范主要是DIF主导的。
DIF Universal Resolver的架构如下图。其先通过DID标识获得该DID标识的method,然后去挪用该method对应的Driver来完成最终的剖析,这些Driver的详细实现不做限制,然则要遵照接口的规范。
DIF Universal Resolver可以以为是一个Driver聚合器。
之所以这么设计架构,是由于差别DID的存储是位于差别区块链上,而且可能也是在差别的智能合约里存储的。用户要使用DID,首先需要完成DID的注册,而DID的注册肯定是和某条区块链(或者其它类型去中央化系统)关联的,好比以太坊。
而且一样平常用户也是使用一些DID Registry服务来完成注册,好比以太坊上有uPort,uPort可以辅助以太坊上的用户完成DID的注册,若是是在其他链上可能有其他提供DID Registry的服务。
因此每个提供DID注册的Registry服务可能是差别的。使用这种聚合器架构能最大限度地兼容所有的DID Registry。
图3-1
▲ 可验证声明接下去先容DID的第四个手艺规范可验证声明,其可能是现在DID生态里最主要的规范。可验证声明Verifiable Credential,简称VC。
VC的目的前面说过,就是数据授权,而且是尽可能细粒度的授权,从而只管降低隐私数据的泄露。
图3-2
对某个器械的证实可以通过披露差别水平的隐私来实现,如图3-2从左到右,隐私泄露水平降低。来看一个例子。
假设你今年24岁,若何证实你大于21岁?若是有三种选择:
出示身份证 出示出生年月日 开一个大于21岁的证实你会选择哪种?
很明显,这三种方案对你小我私家隐私的披露水平是差别的。
第一种对你隐私信息的泄露最大,而第二种其次,而第三种几乎没有泄露任何多余的信息。
图3-3
VC运行需要有一套机制,需要有许多角色。可以看到图3-3里有许多角色,这些角色的功效如下:
刊行者(Issuer):能开具VC(能接见用户数据),如政府、银行、大学等机构和组织。
验证者(Verifier):能验证VC,由此可以提供给出示VC者某种类型的服务,如游戏网站、香烟店。
持有者(Holder):即用户,能向Issuer请求 吸收、持有VC,向Verifier出示VC,开具的VC可以存放在钱包里,利便以后再次证实时使用。
标识符注册机构(Registry):维护DID标识符及密钥(DID文档)的数据库,如区块链、可信数据库、分布式账本等。
VC的数据花样是什么样的呢?其大致会包罗以下字段:
VC的ID(必须); VC的刊行者; 声明的主体内容; 声明的证实。 时间,如刊行时间。一个实例:
在这个VC中,@context字段指明晰这个VC的花样;id字段指明晰VC的id;type字段指明晰VC的类型;issuer字段指明晰VC的刊行者;issuanceDate字段指明晰刊行日期;credentialSubject字段指明晰VC的主体内容;proof字段指明晰VC的证实部门,可以被Verfier验证。这里最主要的内容当然是credentialSubject和proof。▲ 身份存储库
接下去先容DID的第五个手艺规范,Identity Hub。
首先我们要明确身份数据和隐私数据是差别的。身份数据是指公钥这种只和这个账户相关的数据,而隐私数据是和用户自己真实信息相关的数据如性别岁数等。
DID文档里只存储和身份相关的数据;而Identity Hub就是用来存储用户的隐私数据的。Identity Hub,虽然是身份的Hub,然则存储的是数据,可以明白为数据银行。
我们习惯将资产放到银行,为什么?由于平安,银行保证了我们资产的平安。同样地,未来我们将数据存储到数据银行,可以保证数据的平安。
其有如下几个特点:
Identity Hub是去中央化的、链下的小我私家数据存储,可将对小我私家数据的控制权交给用户。 它们允许用户以平安而隐私的方式存储其敏感数据,无用户的显式授权就无法获取用户数据。 Identity Hub现实在哪由用户决议,可以是内陆(手机、PC),也可以是云端;在未来,用户将会把隐私数据存储到Identity Hub,然后当应用服务挪用用户数据时必须请求用户的赞成才气获取这些数据。
来看一个简例。将上面的内容都串起来。
假设小明有一个以太坊上的账户0x96f…3d4,小明想使用DID来登录支持DID的游戏网站A。
1. 小明找一个DID Registry服务(如uPort)帮其在以太坊上注册一个DID :did:eth: 0x96f…3d4;
2. DID Registry服务将与该DID相关的DID 文档(包罗了公钥等信息)存储到以太坊链上;
3. 小明在游戏网站A上使用注册的DID登录(游戏网站A可以通过DID剖析器获得DID 文档,从而知道该DID的验证方式);
4. 小明将其小我私家隐私数据存储在多个身份存储库(Identity Hub),其中住民身份证上的隐私数据存在政府机构G,政府机构G也需要注册好自己的DID身份的;
5. 在游戏网站A上,小明想证实自己岁数 16岁从而获得游戏时间;
6. 小明向政府机构G(Issuer)请求开具一个自己岁数 16岁的可验证声明(Verifiable Credential,VC);
7. 政府机构G通过查询小明的住民相关隐私数据发现小明确实 16岁,因此开出了这个VC(带着G的署名)给小明;
8. 游戏网站A验证这个VC的署名,发现确实是政府机构G开具的选择信托,从而发放游戏时间;
9. 如果某一天,游戏网站A倒闭了。此时小明的DID依旧存在,还可以用于其他应用(如游戏网站B)的登录。
总结一下DID。
DID的提出是为了到达自主权身份。然则现实上是否能够完成其目的呢?
从身份上看确实DID的方案是不错的,将身份存储在区块链上,用非对称加密的密钥保证用户对账户的完全控制。这部门确实DID做的不错。
不外我们也很明显能发现一些问题,主要是在数据存储上。
在VC系统里发放VC的Issuer实在照样掌握用户数据的,因此VC的这个运转架构本质上照样中央化和可控的,用户必须要信赖某些机构来托管隐私数据。但这已经比把这些隐私数据放在服务提供商的服务器上要好太多。
而服务提供商(如4中的游戏网站A)虽然没办法拿到用户的隐私数据,然则用户在服务提供商处发生的数据,好比小明玩游戏发生的装备、皮肤、品级,这些数据似乎照样被游戏网站A牢牢掌控住了。
课后习题1. 凭据本文内容,以下关于“分布式数字身份”的形貌,是错误的?
【A】分布式数字身份基于非对称加密和数字署名手艺
【B】分布式数字身份属于数字身份生长的第三阶段
【C】分布式数字身份是为了实现自主权身份
【D】分布式数字身份可以实现小我私家真正拥有数字身份
2. 以下哪个字符串不相符W3C DID标识符的花样?
【A】did:btc:21tDAKCERh95uGgKbJNHYp
【B】did:btcr:xz35-jznz-q9yu-ply
【C】did:github:gjgd
【D】都相符
3. 以下说法准确的是?
【A】 一个DID文档必须包罗服务端点相关的信息
【B】 非对称加密中使用公钥加密的信息无法用私钥解密
【C】对某个新闻举行数字署名历程是:先对该新闻进哈希,然后使用私钥举行加密
【D】我国第一代身份证于1994年宣布
4. DID剖析器收到did:abc:0x01的剖析请求后,以下说法错误的是?
【A】 会挪用 abc Driver举行剖析
【B】 所挪用的Driver一定是在区块链上举行查询
【C】Driver返回一个DID文档
【D】DID文档可以是JSON、JSON-LD等花样
5. 以下说法不准确的是?
【A】 可验证声明可以最低水平披露用户的隐私
【B】 可验证声明的proof可以被Verifier用于验证此声明的有效性
【C】身份存储库主要是存储用户的隐私数据
【D】身份存储库必须是运行在云上
谜底都藏在文章里哦
本文用图泉源
图1-1 :https://kknews.cc/zh-hk/history/y5jeaon.html
图3-1 :https://medium.com/decentralized-identity/a-universal-resolver-for-self-sovereign-identifiers-48e6b4a5cc3c
图3-2 :https://uniqueid.substack.com/p/verifiable-credentials-your-digital
加入新手交流群:每天早盘分析、币种行情分析
添加助理微信,一对一专业指导:chengqing930520
上一篇:孟岩:产业区块链和DeFi并不矛盾,而是互补关系 | 天下区块链大会·武汉加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520
最新资讯