本文为万向区块链蜂巢学院线上公开课第20期内容。在本期公开课中,MYKEY研究部负责人姚翔分享了他对区块链数字身份的观点。
大家好,我是MYKEY的姚翔。感谢万向区块链蜂巢学院的邀请,今天可以有机会和大家交流我关于数字身份的思考。
最近发生了一件令人非常震惊的事情,包括亿万富翁比尔·盖茨、马斯克、奥巴马在内的一些特账户遭到黑客攻击,黑客欺诈用户Bitcoin。漏洞很快被修复,但该地址收到了超过12个Bitcoin。虽然其中可能有黑客自导自演,当托的行为,但可以相信有一些用户上了当,丢失了资产。
损失不仅仅包括用户的经济损失,还包括巨大的信任损失。虽然事情的真相尚不清楚,但这件事严重影响了人们对推特的信任,甚至是对互联网的信任。
其实,说“震惊”,但并不意外。因为作为从业者来说,类似的事情可以说是层出不穷,只是影响大小不同罢了。我们需要反思,是否是目前互联网的架构存在缺陷,以至于这类安全事件几乎一定会发生?
譬如说,我们看到这些账户上都打了勾,这代表这些账户受过验证,可以和真实世界的人对应起来,但他们的每次发言是否都代表了他们的意图?互联网账号作为人映射的一个身份,是否足够可信呢?那我们今天就来讨论一下,数字身份和区块链,能否重塑数字世界的信任呢?
威廉·吉布森有一句话,经常被广泛引用,我也很喜欢,“Thefutureisalreadyhere-it'sjustnotevenlydistributed”。如今的互联网面临着什么样的问题,与信任互联网还有多少距离,数字身份、自主权身份、分布式身份又是什么,它们是如何帮助互联网重构信任的,又有哪些挑战呢?让我们先从互联网面临的一些问题说起。
现在大家在使用互联网的时候,我想或多或少会遇到以下的这样一些问题。
第一,账户分散导致不便。大家使用互联网的时候,需要注册不同的账号服务,记录在不同网站的密码真的是难事。很多人选择在不同的网站使用相同的密码,这带来了额外的风险,只要一个网站保存不当,所谓“拖库”,那用户使用相同密码的网站的账户都受到安全威胁。而如果使用不同的密码,则很容易忘记,因此经常会点击重试密码,浪费了很多宝贵的时间。
第二,个人隐私数据泄露。2018年3月17日,《纽约时报》《卫报》和《观察者报》,报道了剑桥分析公司及其关联公司SCL窃取并私自保留了5000万Facebook用户数据的消息。在丑闻曝光一周后,扎克伯格于3月26日在《华盛顿邮报》《纽约时报》《华尔街日报》和6家英国报纸上刊登了一整页广告,就数据泄露丑闻道歉。致歉信以简单的白纸黑字开始:“我们有责任保护您的信息。如果我们做不到,就不配为您服务。”最终事情达成了和解,Facebook同意成立一个独立的隐私委员会。Facebook首席执行官马克·扎克伯格将被要求证明该公司的行为,与此同时Facebook必须在其平台上实行更多的隐私保护措施。此外,Facebook还被罚款50亿美元。但是,隐私数据泄露的根本原因仍然还在那里。
第三,身份冒用引发信任危机。去年有一段时间,我的微博账户总是莫名其妙给一些营销账户点赞,主要是娱乐新闻、微商、减肥、代购等信息,点赞数都在几千以上,但大都只有零星评论。我修改了密码,也清理了登录的设备,都无法解决。最终,我发现这些行为总是在我连接某一个宽带之后出现,通过配置固定的DNS我解决了问题。做活动前,我查询了一下事情后续。根据“隐私护卫队”自媒体的报道,2018年,浙江绍兴就曾破获一起黑产利用运营商管理漏洞劫持流量的案件,包括微博在内的96家互联网公司用户数据被窃取,微博是其中之一。
据了解,该犯罪团伙将自主编写的恶意程序放在运营商内部的服务器上,当用户的流量经过运营商的服务器时,该程序就自动运行,从中清洗、采集出用户cookie等关键数据。下游公司就会利用已泄露的数据操控用户账号在微博等社交平台上点赞、关注等。
所以你看到的行为未必是真的,因此如果你的伴侣问你为什么要给某些内容点赞,你也可以找到一个好的借口。
这些问题应该怎么去解决呢?技术上总是有办法。有一些比较直观的想法,技术手段帮忙解决。
第一个问题,不够便利。可以把账户统一,一个账户去访问多个账户或者一个账户去管理多个密码。
第二个问题,隐私的问题。可以把数据加密,一方面是要提高企业的能力,比如说facebook要把数据加密保存,可以第三方使用的时候去控制数据的内容和边界,并且有相应的法律在背后去保护。最终,终极的方案是数据在本地加密,这个密钥由个人去管理。
第三个问题,这件事情是不是你做的。比如说你发一个微博或者说给一个人点赞,怎么来验证是不是用户的真实企图呢?可以用数字签名这样一种手段来识别用户的意图,任何人是没有办法伪造用户的意图。同时,也可以用可验证凭证的方式来验证用户符合某些条件,而不是要把原始的数据披露出来。
举个例子来说明。譬如去酒吧,酒吧需要查看身份证件,以确认用户是否达到合法年龄,但这会泄露用户的信息。通过电子证书的方式,可以让酒吧只去验证用户的证件是否由合法的机构颁发,并且年龄达到标准。
传统的解决方案也非常成型,大家应该都很熟悉了,比如:
技术手段1:使用OpenID的方式,运用一个社交媒体账户去登录多个网站,这个大家应该都熟悉,国内可能微信登录或者说微博登录,这也是流行的一个手段。
技术手段2:数据加密,像PGP,是一种加密的方式。PGP的意思就是PrettyGoodPrivacy,就是“超赞的隐私”。用本地加密的方式,中间传的都是密文数据,当然是没有办法泄露隐私。
技术手段3:数字证书,这也是比较常见的技术手段。
虽然这些方式尚未完全流行,但已经慢慢在普及了,但似乎总是很割裂,也没有解决根本问题。譬如,OpenID仍然依赖这些应用提供商的可信,PGP如何实现密钥和人的对应,数字证书又是如何和人联系起来,怎样用一个普适、易用的方式解决问题呢?
这就回到今天的主题“数字身份”,我们先看“身份”是什么?在现实社会中,身份的主体可以是人、组织、物理设备,以人为例,身份既是生物信息的总和,也是包括身份证件、驾驶证、结婚证的证件所给予的社会认同,也包含了社会关系。那么数字身份又是什么呢?
我们来看这张图,首先是实体,实体可以对应很多身份,就像我今天在这里用真名姚翔,在微信上大家都喊我沙漏。根据?ISO/IEC24760-1身份是与一个实体相关的属性集合,数字身份则是实体的数字化展现,包含个人身份信息和辅助信息。
自主权身份稍有不同,是从身份的最终控制权上说的。自主权身份由用户完全自主掌控的身份数据和标识符,不会被任何权力机构撤销。身份持有者可以完全控制自己的凭证,而不需向中介机构或中央主管部门申请许可,并可以控制个人数据的共享和使用方式。
自主身份可以是一个分布式身份,也可以是来自社交媒体账户的数据、电子商务网站上的交易记录或朋友或同事的证明。
分布式身份则是从身份的注册上说的,我们看到DID的时候,可能指的是两种东西,分布式身份/分布式标识符。全球唯一的持久性标识符,不需要中心化的注册机构批准,因为它是通过密码学方式生成和注册的。
有关数字身份、自主权身份、分布式身份的关系如图所示,这个图是我自己整理的,如有问题还请指出。
分布式身份到底长什么样子呢?右边这个图是W3C的一个规范文档。我们看图片中间,DID包含了哪些内容,这里只列了一些主要的,首先它是有一个自描述的标记符,是全局唯一的标识符"id":"did:example:21tDAKCERh95uGgKbJNHYp"
它包含了一些密钥,比如说你要去指定这个身份包含哪一个或者哪一组公钥,以及认证方式,怎么去认证身份的行为。比如说这个密钥是用来签名的,这个密钥是用来加密的,这个密钥是用来访问专门的账户,这叫认证方式的集合。同时,密钥本身就包含了所采用的签名算法。
还有一个叫服务端点,这其实是一个去定义身份本身,它会包含着一些服务,比如说指定一个URL,说这个身份上的所有证件都可以在这个网址里找到,就可以通过访问这个网址来找到证件。此外还包括时间戳和签名。
DID和其他各个组件之间又是什么关系呢?先看subject,就是上面提到的主体,DID就是用来标记和识别subject。
还要注意DID和上面的可验证数据注册表,这是什么关系呢?DID是基于上面的。什么叫可验证的数据注册表?这个卖个关子,一会再说。
同时,DID和一些文档的关系。首先要注意,根据现在的数据指引,DID本身是不能包含标志符、密钥,是不能包含个人信息的,比如说证件号或者名字是不能出现在这里,这些信息是要通过一个附加的文档来进行处理,通过一个解释器去指向文档。其他的内容,详细的大家可以去看这个文档,我就不展开了。
刚才卖了一个小关子,说可验证的注册器是什么。大家也会想到今天的题目,数字身份和区块链又是什么关系呢?其实,区块链就是一个无需许可的、可验证的、持久化的分布式的身份注册器,也就说我们把这些DID去注册在区块链上。
无需许可指的是任何人都可以去注册这个身份,可能是一个公钥,也可以是一个智能合约;可验证,任何对用户身份的改动都需要相应的授权,是没有办法伪造的,注册一个身份后其他人是没有办法去伪造或者修改身份当中的信息;持久化,这个身份一旦注册就可以长期存在,因为区块链上的信息具有持久性。
数字身份会为区块链引入更多与现实世界的连接。现在区块链上本身既不能去保存个人信息,但又需要和外界连接,只有和外界、现实社会,和真实的社会生活、生产发生关系,区块链的价值才能被进一步的丰富,数字身份就是很好的切入点。通过上面规定的这套协议,可以增加真实世界的资产信息,与区块链上的身份或者账户产生关联。
现有的区块链以及相应的基础设施有助于数字身份的推广和落地。如果说从头再来推广数字身份,那相关的一些应用,比如说浏览器的支持,比如说和其他应用的兼容性,很多东西是要从头开始做的。
刚才说到在自主权身份里有一部分是其他人给颁发的信息,是属于自主权身份的一部分,或者说DID相关的文档。这些信息和数字身份到底又是什么关系呢?
这里看到,为了保证这个文档本身的可信度,必须要提供相应的签名,所以叫它是可验证凭证,简称叫VC。这个的标准定义是说现实生活中的证书能表达什么信息,就可以用数字化的方式去表达等价信息。
比如说你有一张驾驶证,驾驶证上可能有你的名字,证件是哪天颁发的、有效期、什么样的车。数字化证件里就包含了相应的信息,以及可信的机构,在我们国家可能就是局、交管对应的签名,这就是一个可验证凭证。
签发者:对应签发这些证书的人就叫做签发者,可以是任何身份,包括政府、公司和个人,但签发者签发的证书是否有意义,取决于他和现实生活中的关联。
验证者:就是使用这些凭证的人,回到刚才的例子,比如说你要去酒吧,要检查,如果有驾照自然是大于18岁的,至少在我们国家应该是这样。就可以使用凭证当中所携带的信息开展业务。
持有者:就是这个身份的主体,这个凭证是颁发给谁的,对应着现实身份的主体。
这些信息的流转就是由签发者发给持有人,然后由验证者去验证这个凭证是不是符合某些信息,而所有关于这些信息的登记,都是在可验证注册表上。再与区块链结合,就是在区块链上做的。这个是可以看W3C的关于可验证凭证数据模型的文档。
那我们看看数字身份在现实中可以有哪些应用呢?我举几个例子。
应用1:健康信息的管理
现在疫情流行,出行可能不便,大家也有体会,为了控制病传播,在乘坐交通工具或者住酒店的时候要出示相关的健康证明,但现在这种模式有几个问题:1、容易伪造;2、有可能会造成隐私泄露,现在做了很多手段、很多保护,但还是会有这样的可能性;3、互认标准的问题,到不同的城市都要去申请相应的凭证,这里是有一个数据互认的问题。
covidcreds这个网站大概有一百多个全球机构去尝试在用数字身份作为基础,去解决这样一个问题。就采用刚才那套数据模型来实现对个人健康信息的管理和认证。
应用2:网络应用登录
这个很好理解,比如说有个区块链账户,就可以有它来登录传统的应用。如果我是一个应用开发者,也可以去选择允许一个区块链账户来登录,这个账户是不需要再注册的,具体项目在这里就不展开了。
应用3:赋能电子政务
比如说出国去办签证,可能要提交很多资料,非常麻烦。其实现在欧盟已经提供了相应的电子化流程,在后面会相应展开。
应用4:隐私数据保护
这里提到一个项目叫Maskbook,大家可能听说过,它可以让你在传统的社交网络上去公开加密过的信息。比如说我在微博上发一条消息,是加密的,别人是看不到或者看不懂的,看到一串乱码,但是我选择分享的人,因为拥有解开这个消息的密钥,就可以解开这个信息,通过这种方式来保护隐私。
与此同时,数字身份也面临着很多挑战:
挑战1:技术层面。如何实现信息的有限披露?这个在技术上是比较难的点,也有很多相关密码学的研究。密钥代表你是这个身份的主人,怎么去存储它呢?万一丢了怎么办,这一系列的问题有很多解决方案在探讨。
挑战2:基础设施层面。首先,相关的标准现在还没有建立。其次,目前的区块链设施,不管是公有链也好,还是联盟链也好,尚不能去承载大规模的应用。同时,比如说有不同的链,链与链之间数据交换的标准也需要去讨论。
挑战3:法律政策层面。刚才也说到欧盟在电子政务领域的尝试,如果没有相应的法规,没有相应的对数字身份和可验证凭证的一些定义,以及给予它相应法律的支持,那这些应用也是很难推广。
最后给大家介绍一些行业内领先的机构和全球化的组织,包含标准化组织和技术及产业联盟。
标准化组织
第一,是eiDAS,欧洲电子签名及信任,这个是欧盟实施跨境身份互认和开展数字信任服务,推进数字单一市场的关键支柱,现在已经有6个国家,包括德国、意大利、爱桑尼亚、西班牙、克罗地亚、卢森堡。可以用这个国家eID来访问。欧盟其他的会员国也必须是承认相应的eID,在一些政务领域就必须要提供原来的那些纸质证件。
第二,就是刚才提到的W3C的WG,在之前它还是一个社区工作组,现在已经是正式的工作组了。这个是刚刚下午截的图,是两天前才更新的,大家一直在讨论DID应该包含哪些内容、数据的格式是怎么样的。这里有很多的区块链公司,也在贡献自己的一些思考。
技术及产业联盟
第一,更像社区形式组织的,叫DIF,这是一个开放社区,里面有很多机构,现在应该有七八十家吧,MYKEY也是最近几个月前加入了。它有几个工作组,包括存储、隐私、认证等等,这些工作组中大家会去讨论技术规范以及可供参考的实践方式,讨论产业之间的生态伙伴怎么去协作。这里包含了一些像微软、IBM这样的科技巨头,也有很多区块链公司,也有像万事达这样的金融公司,所以大家中间会产生很多新的想法。
第二,HyperledgerIndy,超级账本。超级账本的一个子项目,它是一个分布式身份管理的技术平台,会提供一些相应的工具、样板库以及模块化组件,去帮助其他项目来构建自主权身份系统。
第三,分布式数字身份产业联盟,大概是两周前成立的,是国内17家单位联合发起的,包括百度等等。这些企业联合起来会促进数字身份的行业应用,搭建中国的数字身份网络。它们有一个白皮书,预计在今年的三季度发表,到时候大家可以去关注。
最后对今天的分享做总结:
第一,数字身份是重塑数字世界信任的重要基础设施,能提高使用互联网的便利,也可以更好的保护用户隐私。
第二,目前全球各国、重要行业组织、公司都重视数字身份的发展。
第三,区块链有助于数字身份的持久化的登记和验证。
第四,数字钱包作为数字身份的载体,有助于数字身份的推广和应用。
第五,目前数字身份仍然面临着技术、基础设施以及法律法规的诸多挑战。
也欢迎大家参与到其中讨论,与我们共同去打造更好的互联网,重塑互联网的信任。最后谢谢大家,这是我今天的分享。
互动问答
Q:数字身份真的需要区块链吗?
姚翔:刚才说到数字身份需要有一个注册器,就说身份得注册在一个地方,目前来看区块链是一个比较好的注册平台,因为如果没有这样一个地方去注册,只能依赖一个中心组织去注册身份,同时要去查询身份对应的信息。
有这样一个组织当然是好,但目前来看,这可能还会存在一些问题。比如说像推特黑客攻击事件,虽然有身份,但是没有在一个地方登记,其他人并不知道你这个身份的存在,就没有办法去和你沟通,这是我觉得区块链存在的意义。
反过来说,数字身份对区块链有什么意义?我觉得这个也是非常重要的。我举个例子,比如说在区块链上要去持有股票,实际上是要有相应资质的,不可能说任何一个人都可以去持有。那这些资质怎么在区块链上进行认定呢?必须要有相应的身份标准,必须要有数据的检查标准,一个是身份,一个是可验证凭证。可能就需要有一个可信的机构,给这个身份颁发一个可持有股票的凭证,有这个凭证以后就可以在区块链上持有对应的资产。
Q:数字身份的发展经历了哪几个阶段?DID现在其实也有很多科技巨头已经在布局,可以谈一下您的看法吗?
姚翔:我觉得现在还是在业态非常早期的时间,我可能没有办法去给出一个很准确的定义。其实今天我引用的很多定义都是由权威组织给出的,我想谈一些自己的看法。
回想最开始上互联网,可能去使用论坛,非常简单,只需要输入一个用户名、密码就可以完成注册,如果忘记了那没有办法,因为根本就没有办法来鉴别你是“你”,这是最简陋的阶段。
后来发现可以有邮件、手机号,可以和名称去绑定,如果密码忘记了可以找回。一直到现在可以用微信账户去登录各个论坛、应用,但这些都不是自主权身份,你的身份都是由相应的应用来管理,它随时可以撤销你对这个服务的访问。
只有当进入到一个大家都拥有自己的密钥,对身份的认证都是基于对用户是否拥有公钥所对应私钥的认证,方法也就是通过数字签名来鉴别,这可能会迈向第二阶段。
第二个阶段我认为就是自主权身份的阶段,现在才刚刚开始。当这个做到很好的时候,可能每个人都有自己的密钥,这样之后我们会需要解决更多的数据误操作性等问题。比如说不同的区块链之间怎么互相访问,也不一定是区块链,比如自己的密钥,但是在一个中心化的机构登记,这也没有问题,但它怎么去和其他的系统之间产生互认,如果是不同的密码体系,这中间怎么去处理,这是接下来长期内的一些挑战。
关于DID的布局,我们也看到像微软、IBM,也包括一些金融机构,大家开始在这个领域去发力。大家都看到了,在互联网的前面一个阶段,账户系统变成了非常重要的事情,因为账户是用户进入互联网非常重要的入口,这个入口可以带来非常多的想象空间。比如说这些巨头,不管是微信也好,还是谷歌、facebook也好,拥有了账户就拥有了流量,拥有了流量就拥有了无限的可能性。
为什么别人会接受微信登录,而不会接受一个很小的论坛去登录,就是因为它这边天生有非常多的用户,就有很多业务上的议价权。
在接下来这个阶段,即使是分布式身份或者自主权身份,仍然会有这样一些访问下一代互联网设施的用户端产品,这些产品可能是新商业模式的入口点,所以我觉得很多机构在这方面表示重视,可能是出于这方面的原因。但其中会有很多变化,因为原来那套认证用户的模式可能会发生变化。
Q:数字身份和传统身份,您觉得本质区别是什么?
姚翔:传统身份和数字身份我觉得在数字世界里,首先是完全对传统社会的映射,在数字世界里有这个人。比如说我在这里是用这个ID和大家沟通,我也有我的微信,这其实是有个映射的过程。但它会有一个问题,这个映射怎么保证是准确的?比如说像推特黑客攻击事件,他发了个消息,你会觉得就是他发的,因为你没有办法去认证,但如果他是公布了自己的公钥,就所有人都可以去检查这个消息是不是他发的,因为可以通过验证签名,即使攻击者有办法去攻击到中心化的账户,但因为这个消息是没有签名的,所以是没有办法伪造。
当然这不是说数字身份和传统身份的本质区别,我们要做自主权数字身份的目标,我们要把真实的意图去表达出来,不要有伪造、隐私的泄露,其实我们是更好的去还原现实中的场景。但同时又有一些不一样的地方,比如现实生活中去签个名,这总体来说还是比较好伪造的,不太好鉴别。但在数字世界里这件事情变得比较简单,很难去伪造,或者说就是不可能去伪造。在传统世界可以去临摹笔迹,当然可能会有专家来检查,但对普通人来说是没有办法分辨的。在数字世界里这个就变得很简单,可以很直接的去判断,这个行为是不是由真实的人做出的,而不是别人冒用。
Q:您认为数字身份最适合应用在什么领域?
姚翔:其实数字身份会和很多东西都相关,因为现实生活中身份就是自己,和世界万物发生交互,什么时候要检查你是“你”,这时候身份就会有用。在互联网里面,我觉得什么应用是最需要去不停验证用户身份的,可能比如说社交网络、金融系统,都是非常需要去检查用户是不是他的真实行为。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。