科普 | 可信身份模型初探

Ajian   |     |   1752 次阅读

编者注:本文为 Jim McDonald 介绍身份系统的文章。在这篇文章中他由浅入深地介绍了身份系统中的不同角色和不同的身份系统方案,一步一步迈向更理想的解决方案。虽然这仍然不是终极解决,但至少是一个不错的开端。

本人 Medium 不再更新,想浏览本文最新版本的读者请移步https://www.wealdtech.com/articles/trusting-identities/

密码学货币世界里很难建立信用体系:身份创建和销毁的过分便捷,令交易中的任何一方都不再可信。也因此,诸如借贷、保管、授权等操作的去中心化尝试都难以展开。

本文旨在引介身份(identity)和断言(claim)的概念,阐释如何通过可信第三方使没有信任基础的两方达成交易,并对现实世界中声明系统的实现提出基础框架。

实体,断言以及身份

实体(entity)是需要信息进行描述的东西。人是最常见的一种实体,除此之外电脑程序(包括智能合约)、有形资产(房屋、艺术品)、逻辑资产(迷恋猫、股权证明、产品原型)、法人实体(公司、信托)等等都是实体。

断言是为一个或多个实体提供信息的陈述。举例来说,以下是和 Iris 有关的一些断言:

  • Iris 的生日是 1970 年 1 月 1 号
  • Iris 是美国公民
  • John 和 Iris 结婚了
  • Iris 喜欢摇滚乐队 “Kings of Leon”

在此处需要留意,断言不会提供关于实体(换言之断言发起人)发出断言这一过程的信息,它也无法自证本身的真实性。

与某个实体相关的一系列断言集合可以视作它们的身份。举例来说,Iris 的身份可能包括她的名字、生日、国籍、雇佣状态、家庭信息、个人表现等等。

-图 1:Iris 的身份-

伪造身份不费吹灰之力(任何实体都能发出和自身有关的断言,进而创造身份),但只有由可信的断言所组成的身份才有用。毫无疑问,信任是个棘手的问题,下文我们将详细讨论。

请求者

想要获取身份信息的实体可以视作请求者(requester)。赋予这些信息价值的诉求大相径庭,可能是兴趣的邀约(“我有一张多的 Kings of Leon 演唱会的门票,有哪个熟人想一起去吗”),也可能是严格的限制(“如果你是美国公民,我不能让你购买代币”)。

获取信息最简单的方法是直接提问。如果 Rob (作为请求者)想要得知 Iris(一个身份)的年龄,他可以遵循以下简单流程:

  1. Rob 向 Iris 询问她的年龄
  2. Iris 生成一个断言,并向 Rob 回复

下图刻画了这一个过程:

-图 2:直接获取断言-

在 Rob 相信 Iris 或者即使 Iris 撒谎了也不会有严重后果的情况下,这样的简单流程是没问题的。但很多情况下,Rob 不应该信任 Iris 关于自身信息的回复,举例来说,如果 Rob 正在向 Iris 售卖一张音乐会门票,而她所需要支付的费用正和她的年龄有关,这时显然不应该直接信任 Iris 的回复。

那么在 Rob 不相信 Iris 的情况下,他如何相信 Iris 的信息呢?为了解决这个问题,我们得引入一个概念:“权威”。

所谓 “权威” 就是生成断言的实体。任何实体都能通过生成断言从而成为权威,并且绝大多数的实体都是对自身断言的权威。

在需要评估断言准确性的场景中,权威至关重要。还是以 Iris 出生日期的断言为例,来自她本人和来自她的家庭、雇主以及政府机构的断言,会根据信息被采用的场景而被赋予不同的权重。不止一个实体会生成 Iris 生日的断言,比如亲属、雇主、社交网站以及政府部门等等。如果该断言被用于核验 Iris 是否有资格进入酒吧,那酒吧老板应该采信政府部门的断言;而如果该断言仅用于领取餐厅里的免费生日蛋糕,餐厅老板从社交媒体、Iris 家人,甚至是 Iris 本人处获得断言就足够了。

至此,Rob 的信息获取有了新选择:他可以信任某个权威,确切来说是某个权威发布的凭证(比如由政府发行的,包含 Iris 生日信息的身份证)。这一流程表述如下:

  1. 权威(本例中的政府取名为 “Grace” )向 Iris 发行一种包含她出生日期的凭证
  2. Rob 询问 Iris 的年龄
  3. Iris 使用政府发行的凭证进行回复

-图 3:基于权威的 Iris 相关信息验证过程-

当前绝大多数现实-电子身份信息核验过程就是采用了上述流程或者基于此流程的改进方案。然而其中存在的问题远不止一星半点。

首当其冲的是信息泄露问题。以采用政府发行的身份证为例,身份证上所包含出生日期之外的,诸如家庭住址、签名等等信息,都无差别地暴露在 Rob 的视线下。此外,Rob 其实只需要确认 Iris 的年龄,但他却获得了 Iris 的出生日期,凭证提供的信息超过了请求者的需要。上述信息被 Rob 取得后,可能会被非法保存、重用甚至出售。

传统信息核验流程的另一大缺陷是必须存在信任链。还是上文这个例子中,Grace(或者它的代理人)可能是不可信的,某些情况下它可能会提供含有错误信息的凭证。此外,Iris 本人也不可信,她可以修改该凭证、提供虚假信息,或者同时持有包含不同信息的多个凭证(可能通过非法途径取得),然后根据场景需要而提供对自己最有利的那一份。

上述核验流程中的第三个缺陷是 Iris 需要物理或者电子上持有该凭证。凭证的效用带来了凭证的价值,可同时吸引了窃贼的目光。倘若凭证被窃取或遗失,Iris 在拿到新凭证之前都不能证明自己的年龄了。

最后一个缺陷在于 Rob 可能没有能力识别 Iris 所提供的凭证文件是真实的,比如 Rob 不熟悉发布该凭证的政府,以至无法确定能否在当前场景下采信该凭证。

权威本身不能解决上述问题,他们的出路是成为提供者。

提供者

愿意直接和请求者交互的权威可以被视作提供者(provider)。他们保有身份信息,并将其作为断言向请求者提供服务。

需要留意虽然某些情况下断言和信息(information)一模一样,但通常来说断言是从信息导出来的。比如说,提供者可能保有某个身份的出生日期,根据信息指向性的降序排列,可以导出如下断言:

  • 某个身份的出生日期
  • 某个身份的年龄
  • 某个身份是否大于某个给定的年龄

断言越具体,就越难重用到其他场景下。回到刚才那个例子,如果售票方愿意给小于21岁的年轻人优惠,并收到了上述断言中的一种,那他能进行如下信息重用操作:

  1. 如果断言包括了身份的出生日期,那售票方就获得了和该身份年龄有关的全部信息。
  2. 如果该断言包含了身份的年龄,售票方仅获取了能在未来重用的部分年龄信息(如果买票时提交的年龄为 18 岁,那么一年后是 19 岁,两年后是 20 岁等等)。
  3. 如果断言仅仅判定了该身份在 21 岁以下,售票方掌握的重用信息最少(他们只能确定 21 年后这个身份大于 21 岁)。

在满足请求者需求的同时,需要保障身份所属人的利益,提供者应该产生指向性尽可能强的断言以减少潜在的信息泄露和重用。通过引入提供者,请求者可以获取到可信信息。当前售票场景下,存在某些保有 Iris 年龄信息的提供者,同时也有 Rob 信任的一些可信提供者。因此,Rob 和 Iris 可以从两者的交集中选出一个提供者作为第三方,以保证 Rob 能收到可信的回答。

-图 4:寻找合适的提供者(以黄色表示)-

基本的流程描述如下:

  1. Rob 向 Iris 询问有哪些提供者知道她的年龄
  2. Iris 发送确知自己年龄的提供者列表给 Rob
  3. Rob 向列表其中之一的提供者(本例中为 “Peter” )询问 Iris 的年龄
  4. Peter 向 Rob 回复 Iris 的年龄

流程图表示如下:

-图 5:获取可信信息-

Iris 不再需要携带凭证,Rob 也可以在不相信 Iris 的前提下,获取 Iris 年龄的可信信息。

革命尚未成功

上述流程仍然存在一定问题,最重要的是由谁来提供交易费用(谁为这套服务买单?)、信息主权(Rob 能否在 Iris 不同意的情况下获取她的年龄信息?)、信息所有权(由谁来阻止 Rob 售卖从 Peter 那里获取到的信息)?以后我将就上述问题撰文,详细讨论,寻求解决方案,并提出一种完整的身份系统。


原文链接: https://medium.com/@jgm.orinoco/trusting-identities-980c91241f56
作者: Jim McDonald
翻译&校对: 安仔 Clint & 阿剑

本文由作者授权 EthFans 翻译及再出版。


你可能还会喜欢:

干货 | 理解去中心化身份
观点 | 理解 Web 3 —— 用户控制的互联网
观点 | 关于 ProgPoW:来自一名芯片工程师的观点

 
0 人喜欢