2021年10月14日,在第一期 BeWater Live 上,光载互联技术负责人、IPFS技术专家李骁宇,在腾讯会议直播间,为大家带来了《数字身份与分布式存储的现状与未来》的分享。
这场深度且系统的分享,引发了全场人的思考,核心内容:
1、去中心化数字身份:
· 去中心化数字身份的背景;
· 我们为什么需要去中心化数字身份;
· 去中心化数字身份在行业内有哪些标准;
· 数字身份和数字钱包的关系;
2、分布式存储项目简析:
Arweave、IPFS、Filecoin、Swarm;
3、数字身份与分布式存储结合的落地应用
大家好,我是李骁宇,来自光载互联,目前 base 北京,2016 年开始接触区块链,目前主要关注的领域:个人数字身份,分布式存储,以及下一步的隐私保护。今天我跟大家分享的题目是,数字身份与分布式存储的现状与未来。
1、互联网身份背景
随着互联网的发展,我们每个人在互联网上的数据不断累积,这其中有很大一部分关联了我们的数字身份标识。从全球互联网的发展历史来看,可以简单地通过用户对身份控制权的掌控力度,分成四种身份类型:分别是中心化身份、联盟身份、以用户为中心的身份,还有现在倡导的自主身份。
中心化身份,就像身份证:是由政府这样一个特定的权威机构,为我们每个人的身份编号,同时关联我们的姓名,生日,性别等,这种个人的身份属性信息是中心化身份。
联盟身份,在早期企业场景中应用较多,当一家公司收购另外一家公司时,他们的用户需要进行打通,早期由于大家都用账号,密码登陆,所以会出现一段时间,在一个平台需要有两个或多个联盟参与方,进行用户身份的管理和控制,以实现这两个公司用户的合并。
用户为中心的身份,用中国网民的数字身份画像举例,最常见的身份不外乎这么几种:一个是账号密码、一种是用 email 或者手机号作为账号,然后设置一串密码登录、还有一种情况,不申请账号密码,直接用微信扫一扫登录,这样能避免我在不同平台密码总是记不住的问题。
2、为什么需要去中心化身份?
身份垄断问题
用户绑定的身份越来越多,可能会造成身份垄断的情况。我如果没了微信,可能什么平台都上不去,另外,微信扫码背后的机制,是一种叫做 OAuth2.0 的登录方式,他的机制中有一个很明显的漏洞:如果微信平台方的系统遭到了破坏或攻击,他能模拟我的身份登录我的知乎,B 站等,我不想在微信公开的数据,很有可能被微信通过这种方式获取,这就造成了一种数据过于集中的风险。
身份垄断解决方案
关于身份垄断的讨论非常多。互联网的创始人他提出一个概念,希望为每个平台提供一个身份登录的方式:他希望每个人,每个用户或者几个用户之间,可以自己搭建一个类似微信这样的身份提供商,来解决我们身份被大厂控制的场景。他倡导的这个项目就叫 Solid ,像 Solid 还有一些特定的身份提供商,他们的商业模式叫 ID as a service 就是 IDAAS。
这种场景的客户群体偏向企业用户,在互联网场景下,还没有太好的解决办法。一方面,通常一个平台会提供 3 种社交登录方式,可以想象一下,如果上面的按钮有几十种或者上百种,选择登录操作的用户体验是不好的;
另外一方面,对于第三方平台,尤其内容平台,他其实并不关心用户的数据安全,换句话说,他们可能更在乎用户流量,可能会忽略我们的身份安全。
不同于原来我们账号密码的登录体系,去中心化身份是一种基于公私钥对的登陆方式,用数字签名证明我是用户本人,或我是控制用户身份的一个实体。由于我们的密钥对可能会忘记,需要定期做更换,这时候可以用区块链中的智能合约,来进行账号管理。
更进一步的去中心化身份通过智能合约的方式,除了可以把我们的身份控制权拿回来外,还向给我们提供服务、存有图片数据的社交平台,要回更多数据。比如我在某年某月发表的一篇文章,我在直播的这次讨论,未来可以通过去中心化身份从平台索取回来,同时记录在我们自己的存储系统中。这样进一步避免我们对中心平台的过度依赖。
去中心化身份的存在价值:
3、去中心化身份标准-DID
随着区块链技术的推广,越来越多人认为我们需要一个去中心化的钱包或公私钥对,管理登录权限,需要用智能合约管理私钥的更换。
慢慢大家形成共识,就出现了两个在国际上比较有影响力的组织,分别是 W3C(万维网的一个联盟),以及 DIF(去中心化身份的一个基金会)。他们分别从制定互联网标准和工程驱动不同的维度,共同推动 DID 去中心化身份的标准化。
在 DIF 中,我们可以看到像微软还有国内比较有名的公司,比如微众银行,中国信通院,以及在区块链应用上比较有影响力和前瞻性的组织。W3C DID 标准也是一个开放的标准,从2017年到现在,已经有 114 个 DID 标识符在 DID 标准申请并被认可通过,DID 正在成为去中心化身份的全球标准。
简单介绍一下 DID 标准。DID 标准的形成是一个逐步成熟的过程,2019 年提出了 0.3 版本的数据模型,目前 1.0 版本的 DID 标准已经进入了draft 的阶段。
DID 标识符总共包含 4 部分:DID 标识符,DID 文档,DID 方法,还有 DID 的解析规则。
简单说是我们对去中心化身份的一段标识。对标识做了一个数据结构的定义,分为三部分。
第一部分是上图中蓝色的 did,要按照 DID 为打头的前缀来识别。
第二部分是我们前面提到的的有 114 个组织申请了这套体系,他们给自己起个名字,比如微软叫 Identity OverlayNetwork,简称 ION,就是 DID : ION 。
最后一个字段是 DID 对每个用户有一个身份的唯一标识,有的项目是以比特币的地址为身份标识,有的项目是以太坊的地址,或者是以太坊的一个智能合约作为身份标识。
是 DID 组织的一个通用性的文档,上面记录了关于我这个身份的一些属性的信息,是一个标准文档。
在区块链上,通过智能合约来管理密钥轮转。包括创建身份,修改身份,查询身份,消除身份等函数或者方法,都会记录在这个 DID 方法里。
我们的每个 DID 记录在不同的链上。不同的链之间,或不同的智能合约间,都有从 DID 角度识别用户身份的函数:我们如何调用链上智能合约,如何调用它相应的接口…把这些链上的信息汇总集合成一个文档的规则,就是规则解析的内容。
DID 标准对用户使用场景,用户的操作行为,分成 5 大部分,一共 13 个功能,诸如:
像区块链的钱包一样,有一个全球唯一的账号。
DID账号是跨区域的,不受特定的司法管辖区所控制。
由于区块链并没有一个所谓的管理员,所以 DID 不会被管理员进行修改。
不需要依赖一个特定的身份提供商,所有行为都发生在链上,证明和被验证都不需要第三方提供商。
……
DID 的特点有很多,符合 DID 特点的项目,才能成为 DID 标准里的被注册的协议。总的来说,DID 是相对开放的,他并没有要求一个协议里包含有以上所有功能,但他有一套相对严谨的审核机制。
4、去中心化身份和数字钱包的关系
有的人会问,DID 跟数字钱包是什么关系?
我们认为钱包是我们数字身份的一个入口,钱包用来管理公私钥,常见的小狐狸钱包,imtoken 钱包。在目前阶段,很重要的一个作用是将我的密钥和资产安全备份。但是对身份来说,我的身份通常需要有可恢复的功能,像以太坊上有一个叫 ENS 的系统,它能把我们的身份跟类似 www.baidu.com 这样的一个域名系统关联。
这些功能在区块链上目前是由智能合约来实现,我们的用户跟智能合约的交互,往往需要通过一个去中心化的 APP,我们把它叫做 DAPP。
因此,身份在目前这个阶段既包含数字钱包的概念,也包含我们跟智能合约交互的的 DAPP。
5、区块链的启发
前段时间BMAN给大家介绍的 loot,其实就是一个在智能合约上的一些文字的系统。loot 的智能合约,可以由一个非官方的用户,或者非官方的组织就能在上面做二次开发,这是一个区块链给我们来带来的一个最大的启示。
那我们未来的微信,是不是也能够实现我们作为用户,和朋友之间的连接都是我们身份的连接,而不用记录在一个第三方那里。我们微信上的聊天记录是不是可以在不同的APP之间进行转移或者迁移。
这样的一个愿景是很好,但是我们是否需要把所有数据都放在一个去中心化的环境里面?
这也就引出了我们今天要讨论的第二个话题:分布式存储。我们希望把一些特定能够作为信任的根的信息,放在区块链上,更多的个人数据,比如互动的数据,可能不要求这么严格的安全性,就把它放在另外一个相对安全的分布式存储环境里面。接下来就跟大家详细介绍一下。
二、分布式存储项目
分布式存储不是传统意义上类似于在封闭环境上的存储,而是要在一个开放的存储环境存储。比如我们今天上传一个网站,并没有上传到自己的服务器,要上传在一个不认识的人的服务器。我们需要在获取这个网站的链接、数据的时候,确定这个人不会在中间对我的数据进行篡改,同时很稳定地为我提供服务。这些是分布式存储领域现在面临的主要的挑战。
我们看到像 Arweave 还有 IPFS , Filecoin,Swarm 这样的项目,都在或多或少从不同的角度为我们的分布式存储的实现做了一些积累和铺垫,那我这里给大家逐个去介绍我对这些项目的一些理解。
1、Arweave
Arweave 本质上是一个区块链,我把它放在第一个来讲,并不是因为他上线时间最早,而是想表达一下他的设计哲学:随着区块链账本的体积,数据量越来越大时,能够真正完整的存储区块链全节点账本的节点数量会下降。一个原本是去中心化的区块链网络,有可能会因为成本和收益之间的取舍,最终慢慢的形成少数几个节点拥有全部账本,其他人只是一个轻节点的模式,变成越来越中心化的状态。
Arweave 基于这样的基本概念提出,如果在账本存储这件事情上也给用户一定的激励,那是否能够像比特币这样,在区块越来越大的情况下,全网仍然能够实现更好的对全节点的数据保存?
我们知道比特币挖矿有一套 POW 算法,本质上就是通过每个节点有多少算力机,或者说他能够在单位时间内算出多少次哈希的速率,来决定他获得区块奖励的概率。Arweave 在 POW 基础之上,除了要求哈希算率以外,还要求这个节点能在短时间内获取到对应某一个文件的原始数据,他要求通过一个随机原始数据的读取,来证明在这个节点不仅是算得最快的,还拥有完整数据的一个记录,进而来保证我们这个账本会是有越来越多的节点。通过区块链协议层的激励,来实现数据永久存储这样的一个目标。
我觉得这样的一个设计是非常创新的,而且直觉来说,他把原来区块链把数据直接上链这件事情从不可行变成逐渐可行。现在 Arweave 全网区块的大小总共只有20个TB,在这样的一个模式下,因为存储的文件越接近于全部文件,出块概率会更高,所以基本上只要参与挖矿的节点,都会尽可能的去下载全部的数据并同步。
在这个区块越来越大的情况下,如果它存储的成本已经超过了计算哈希的成本,就可能出现有的节点只存储一部分数据的情况。如果越来越多的节点做了这样的取舍,那最终可能会有一种比较极端的情况出现,可能存上去的文件有一定的概率被所有的矿工放弃了,也就意味着数据就没有真正实现数据永久存储。
2、IPFS
更早的时候,大家可能在做去中心化应用的时候更加涉及的一个项目叫做 IPFS,全称叫做星际文件系统。这套系统目标是为了取代现在我们网站访问所用的 HTTP 协议,它的设计精髓在于它用哈希算法为每一个文件做了标签。
我们在这个网络中去检索文件,不再需要通过某一个 HTTP url 的形式去检索,而是要在点对点的网络中去申请这个文件的哈希值,就是这个 Qm 开头的标签。整个网络当中只要有一个人存储了这个数据,就可以从他那里把这个数据通过点对点的传输协议取到本地,从而实现了文件从一个地方到另外一个地方的读取。
内容寻址:在找寻文件的时候,不去找对应的IP地址上的某台服务器上的一个位置,而是通过文件标签来寻找文件。
防篡改:在数据传输过程当中,或者是数据源的传输的过程中,通过哈希算法来比对你给我传出的这个文件是否是我要找的这个文件信息,从而具备防篡改的功能。在早期DAPP开发的时候,会把IPFS作为区块链的一个延伸来对待,因为它的防篡改机制跟区块链上的永久存储和不可篡改的性质其实是相互兼容的。
去重:还有一个功能是去重,对于本地节点来说,如果存储了两个文件只是文件名不同,在 IPFS 系统上,他只会存储一份文件信息,这样可以避免存储空间在本地被浪费,从而得达到节约存储空间的目的。
我们说 IPFS 有这么多文件系统的好处,但是 IPFS 还有一件事情是没有做的,就是如何保证这个网络节点当中其他节点会为数据做永久保存,在 IPFS 协议里原生是没有这样的要求的。有可能某文件在IPFS的网络当中上传了,但是过了一段时间找不到了。
3、Filecoin
IPFS 背后的组织在2017年又发起了一个叫做 Filecoin 的项目。到明天正好是他主网上线一周年,Filecoin 这个项目实际上是作为 IPFS 的中间的一个激励层,兼容 IPFS的协议。
他的解决思路,是通过一套比较严谨的算法,要求我们建立一个存储市场。它要求提供存储服务的人为别人存储数据,存储市场要求我对这个数据进行保存,我作为这个帮别人保存这样的服务提供商,要定时的去上传一个叫做时空证明的信息。
他在中间也做了很复杂的设计。现在 Filecoin 的文件存储都需要进行一个加密的过程,然后再存储到这个矿工节点上面。不管是文件的加密还是解密,在现在最性能最强的机器上面都至少需要两个小时以上的时间才能够把数据读取出来,导致Filecoin的应用发展的比较缓慢。
对于 IPFS 比较有信仰的人,提出一个框架来实现用户基本功能的使用。通过把 Filecoin,也就是客户端,看成是一个冷数据存储,然后把 IPFS 这样传统的点对点网络,当作一个热数据存储的环节。Filecoin 每次的存取都需要至少两个小时以上的时间,只能用来作为不需要及时读取的数据保存。而我们需要快速存取的文件,就把它缓存在 IPFS 这样的网络上面,就形成了热数据和冷数据两个部分。
举个例子,我们还是要找刚刚指定的这个文件,首先就可以去 IPFS 网络当中去进行搜索,如果 IPFS 网络中没有的话,再到 Filecoin 上去进行数据检索,要求我要把这个数据取回。可能不能立即拿到,但是一段时间后这个数据会缓存在 IPFS 网络里面。当我第二次去读取的时候,就可以直接从 IPFS 节点上把数据读回来,这样也能够解决一部分的应用需求。
4、Swarm
Swarm 本质上是做去中心化网络的。它对数据读取或者存储的一个双向网络都有相应的激励,但是它网络的检索又不像正常的思维。它的设计里面先排除了地理位置的因素,同时也排除了网络带宽的因素,它直接完全假设所有节点之间是一个平等的关系,就用一个逻辑的距离,即我的节点 ID 做排序。
我在检索的过程当中要求设定一些规则,比如距离越远的节点提供服务,对应的收益就会越高,这样设计是希望不管是在数据存储还是数据读取的过程中,网络上的数据都尽可能的均衡。这样的设计如果叠加了前面考虑的网络地理位置,存储成本,带宽成本这一系列因素,很难想象会构成一个什么样的模型。
最后我们看到,swarm 这个很好的设计并没有真正在去中心化网络起到它应有的效果。但是不排除我们对 swarm 这样的一些项目的继续观察,还有很多做的比 swarm 更好的一些后来者,我们也会持续的关注这些项目。
5、小结
小结一下,我们把分布式存储当作区块链的一个存储能力的拓展。因为相对简单,大部分项目发力的重点就是做数据存储,现阶段我们看到很多存储的激励模型。在检索上也有一些项目在做尝试,但是这个模型过于复杂,效果一直都不是太好。
现阶段作为应用开发者来说,其实看到的选择并不是很多。一种方式,我们就直接用IPFS协议,加上我们一个特定的节点,一个信任的节点网关,就可以实现数据在IPFS协议上至少有一到两份的备份,这样在网络的任何位置,都可以去把我存在这个网关节点当中的这个数据拉取回来,实现我的数据在一个网络当中永不丢失的目标。
另外一种就是用像 Arweave 这样一种致力于永久存储的网络,他虽然暂时还没有经过大量存储的验证,但我们觉得不管是 POC,还是一些早期的数据量有限的服务,我们也可以使用 Arweave 来做去中心化存储。
1、应用场景
社交网络,以及由社交网络带来的身份属性,不管是我们发表的文章还是好友之间的点赞,都会慢慢累积成一个叫做系声誉系统的一套信息。这套东西很适合于像区块链这样的一个公开网络。
我们的教育场景当中,学校会发毕业证书,通过考试会发放一个考试的证书。传统的纸质证书,都是一个接收方管理的凭证。随着数字化推广,未来我们的这些数字凭证也有可能像我们原来的纸质凭证一样被我们自己管理。我们身上所带的钱包可能就不像现在一样只有数字货币,里面还会有很多卡片,很多证书。这样的场景,我也认为是值得研究的一个方向。
在公民治理方面,有政府治理的公民身份标识,还有在医疗行业里的电子处方,智能合约执行的遗嘱等实践。在法律方面,我们也看到智能合约是一个很好的法律执行器,就像我们的去中心化的一个DAO这样的组织,他的所有约定没有写在法律上,但是有法律同等的约束力,这些我们都认为是去中心化身份和存储的一个很有效的场景。
2、应用案例
Mirror 是一个内容分发平台。大家可以把想象成就是一个去中心化的博客或者知乎,任何人都可以在他这个平台上发表自己对某件事情的一段评论或者文章。这个平台会把我们上传的文件,打包放到去中心化存储。我在这个平台上注册并不需要去申请他的账号密码,也不需要用到微信,其他第三方登录。可以直接用以太坊小狐狸钱包在这个平台上注册,然后管理好这些发布的内容。
上线之后,平台在早期并没有太多的经济激励,但目前官方已经推出了像众筹,拍卖,还有像每篇文章会合成一个 NFT 等玩法。
我们也相信这种去中心化的内容发布平台,除了官方给这个平台赋予的一些价值以外,未来完全有可能看到有一些自发的组织,可能是一些 DAO,去实现一些代码,然后在现有内容平台基础之上去提升平台的可玩性。
微软做的 ION 引入了 Sidetree 的这个设计。Sidetree 的核心精神,就是把它的去中心化身份的记录,记录在比特币账本上。
我们都知道,比特币的转账其实成本是很高的,尤其它对存储空间要求都非常高,Sidetree 就是把这些多笔的交易,尤其是跟身份相关的操作,用一个统一的规范去约束,然后把每一个操作都记录在 IPFS 的网络上面,最终通过多笔交易,在一笔比特币的交易里面融合了很多增删改查的操作。
同时在可信的网络当中,又把信任的根记录在了现在最安全的比特币的账本上,通过这样的设计来实现了去中心化身份,这也是微软在去中心化领域非常大的贡献。
最后,给大家分享一个我本人参与过的一个政务区块链的应用。我们在一个县级的行政单位跟政府沟通需求,我们发现随着现在政务对这个数字化的改革、转型、改造,政府这些机关单位是有越来越多的公民数据在他的系统当中去记录下来,但是由于现在的法律,并没有很完全的契合同步。
他们在开出这种跨政府机构之间的证明的时候,更愿意走线下的渠道给你盖个公章,做个签字,因为一旦超出了他们现在的这个规章制度,他们很多事情就会变得举步维艰。
所以我们在当地给他提出的一个思路就是,我们为每个居民给他发行一个可恢复的数字身份,然后记在区块链上,对于这些职能单位给用户的凭证。我们就把它看作是我们这个数字证书里面的一个可携带的数字凭证,上面包含有这些机构对用户的签名。
比如说我是当地的一个居民,我要去卖掉我的一个房产,房产局会要求我到银行去给我开出一个房贷已经完全付清的证明。在这样一个场景当中,我们就可以实现由银行对用户的身份的确认,然后告诉他这个用户已经还清的事实记录在我们的 IPFS 上面。同时它的存储数据,是经过用户的公钥进行加密的,只有用户私钥能够把这个字符串解开,然后在用户的授权的情况下转移给我们的房产局,证明这个房屋是已经解抵押的房产。
在政府的单位当中,还有很多各式各样的这种需求,我们给他发行了一个可恢复的身份,同时我们把用户的这些数据,通过政府认证把它存储在用户自己的这个数据空间里面,真正实现了我的数据我做主的场景。
总结来看,不管是我们现在已经实现的应用,还是我们现在正在关注的应用,我们越来越相信自主身份,去中心化身份会是数字身份场景的最终的形态。分布式存储技术我们看到很多优势,同时仍然有很多技术层面和非技术层面的挑战还没有真正的去解决。现实当中,诸如隐私保护等问题都是我们今天聊的这个自主身份和分布式存储所不擅长的。
未来会有更擅长的技术来解决这个问题,所以我们相信,分布式存储和数字身份,是一个由应用驱动的技术,它也会跟着我们一起走向更好的 web 3.0的这样一个世界,我们对它充满信心。
好,我今天的这个分享就到这里,谢谢。
历史文章:
2、路印 CTO Steve Guo | 真实的二层网络真实的未来?
3、Jolestar | 智能合约编程语⾔,还可能有哪些创新点?
5、3Box Joel | 去中心化数字身份与数据,未来在何方?
6、以太坊核心开发者 Austin | 如何在以太坊上构建应用程序?(实操分享)
9、BeWater 大会纪实|属于开发者的下一个十年,因为相信,所以看见
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。