Wallet - 身份

Updated
May 15, 2018
Author
Ashu Chan

人,总以某身分出现。

一个女人,在家以「母亲」的身分出现,在公司以「员工」身分出现,在爱情关系中以「情人」身分出现,在政治共同体中以「公民」身分出现。

我们所说的「身分」并不是错别字,在 1978年以前出版的《新华字典》与《国语辞典》仅有「身分」,没有「身份」,后续随着身份证的流行,「身份」才慢慢被接受,关于这两个词如何演进,我们暂不讨论,但它们背后的意义值得深思。

「身分」中的「分」,包含「名分」的意思,也就是出身、阶层、职业等,「身分」可被译为 status,即「地位、状态」。而我们日常生活中,衣食住行,使用频繁的却是「身份」,也就是 identity,即「同一性」。

通常身份证中包含唯一的证件号码,以及相关的属性(姓名、籍贯、出生日期等)。当你出示身份证时,并不是证明我就是我,这是不证自明的,而是证明我就是「我」,「我」代表政府档案中的数据,也就是证明我与政府档案中的数据之间的关联关系,该关系是恒等不变的,如同 A = B,也就是我们提及的「同一性」。

所以当你丢失身份证的时候,你还是你,不过丢失一段你与政府档案数据的关系。

总的来说,身分与身份的区别,前者强调实体属性,动态变化,后者则强调实体与属性的关联关系,恒等不变。

理解「身分」与「身份」之间微妙差异,以及厘清「身份」概念含义,以便于我们后续谈论「区块链上的自主身份」奠定基础。

互联网上的数字身份,主要解决两个问题:验证(Authenticate) 与 授权(Authorization),也就是你可以做什么?你拥有什么?

但互联网发展至今,依然存在一些无法解决的问题,分别两点:管理碎片化,用户需要不断重复注册帐号或账户,依赖第三方服务商的能力与自律,诸如 CSDN 曾经密码明文存储,Fackbook 用户数据泄漏等。

用户所拥有的身份数据,需重复证明,也不属于自己,这是一件怪诞但现实的事情。造成这些问题的原因,可以归咎于服务商与服务商之间的封闭,以及用户无法通过常规手段保护自己的身份隐私。

时至今日,基于区块链与非对称加密的基础,让自主身份成为可能,用户不必重复注册帐号或账户,也可以通过自身保管身份数据。

何谓「区块链上的自主身份」?借助非对称加密,私钥拥有者可以推导出相应的地址,作为身份的唯一标识符,进而将身份属性通过智能合约进行关联。用户可以选择性公开自身身份数据,也可对第三方进行授权使用,同时因为区块链去中心化的特性,服务商之间不必维护用户身份存储,统一从区块链中公开或授权的方式获得相关信息即可。

目前以太坊(Ethereum)社区关于身份(identity)的方案分为两个方向,身份管理与身份应用。身份管理方案以 EIP 725 提案 与 Uport 为主,通过智能合约进行身份管理。身份应用方案则以 imToken 为主,通过钱包作为载体进行身份应用。

EIP 725 的提案作者 Fabian Vogelsteller 在接受采访时,曾提到:

If you are who you say you are, then why must you prove it over and over again?

这也是 EIP 725 提案的核心关键,通过智能合约进行身份管理,避免重复的身份证明。EIP 725 提案主要分为三个智能合约进行实现,分别为 Keys、Execution、Claims 合约:

  • Keys 合约:负责公钥管理,可映射多种身份,如会员、员工等等。
  • Execution 合约:负责代理,对转账、授权进行操作。
  • Claims 合约:负责身份属性管理,以及权威的第三方机构的身份属性注册。

示例:

过往我们参与众筹前,需要进行 KYC 认证,作为参与者参与不同众筹时,需重复登记同样的 KYC 信息。

借助 EIP 725 提案,将你的 KYC 信息注册在智能合约当中,当你的地址向众筹的智能合约发起调用时,合约可以调用 Claims 合约进行检查,如果检查无误,则可以参与众筹,避免重复性的 KYC 信息登记。

image

Uport 的方案与 EIP 725 类似,具体细节不表,稍具特色的地方在于身份恢复。Uport 提供 Controller 合约,维护一个 Recovery Network 登记可信任的地址列表。当你丢失私钥时,可通过 Recovery Network 进行授权,恢复身份。

该方案可以解决私钥意外丢失,导致资产损失的问题,可惜目前智能合约存在治理与技术上的问题,该方案尚未成熟。

image

了解智能合约如何进行身份管理之后,我们看下 imToken 作为钱包如何进行身份应用。

当你使用 imToken 2.0 时,你会在初始页看到身份创建与恢复。引入身份概念,对于用户会产生暂时的疑惑,但对于 imToken,这是一次前瞻性的选择。以下,我会讲解 imToken 如何通过助记词推导多链钱包以及衍生相关身份所需信息。

希望作为用户的你,共同感受 imToken 对于区块链产品设计的思考与诚意。

一份助记词,推导多链钱包

通过助记词作为随机数的熵值,根据非对称加密以及多链钱包的地址特性,进行相关的算法推导,产生多链钱包。用户将来仅需管理一份助记词,无需面对繁琐的备份管理。注:助记词需谨慎备份

image

身份信息衍生

借鉴 Automatic Encrypted Wallet Backups (BIP DRAFT) ,为用户自动生成唯一身份标识符与授权、加密、备份的公私钥,减少暴露主私钥,让相应的公私钥各司其职。满足「自主身份」在区块链场景的应用,诸如 JWT 验证、数据加密、分布式存储等。

image

最后 imToken 希望做好身份的工作,并隐于无形。

给用户提供简单易用的产品,但不失丰富功能与安全。

参考: