区块链上的自主身份
来源:    发布时间: 2023-11-14 15:28   51 次浏览   大小:  16px  14px  12px
一个女人,在家以「母亲」的身分出现,在公司以「员工」身分出现,在爱情关系中以「情人」身分出现,在政治共同体中以「公民」身分出现。

人,总以某身分出现。


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


我们所说的「身分」并不是错别字,在 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 信息登记。


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


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


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


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


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


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


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


2. 身份信息衍生


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


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


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


参考:


1. 採用「身分 」、「身份」 的取捨


2. 論「身分」與「身份」:現代國家的人口治理


3. 双重论证结构下现代公民身份的起源


4. ERC-725 Identity


5. Uport:一个自主身份识别平台


6. Automatic Encrypted Wallet Backups