2021 年 9 月 4 日,在 BeWater DevCon 2021 全球开发者大会上,Dimension &
Mask Network CTO 刘怿斯,关于 自主权身份和社交网络,以 Mask Network 为例进行了分享。
本文摘要:
大家好,我是 Dimension & Mask CTO,我们成立于2019 年 2 月,到现在有两年半。今天我要讲的内容,是我们一直很关心和研究了很久的一件事情,就是身份。
我个人不是特别喜欢 decentralize 这个词,我在 2019 年的时候做过一些分享,那时候我还在鼓吹 decentralize,但后来发现我真正想要的东西根本不是去中心化身份,而是更加符合我想法的词,叫做自主权身份。
今天我的分享题目叫做「自主权身份和社交网络」,其实也一直是 Mask 项目所在做的事情,我也会简单介绍一些 Mask 的功能,或者说我们的一些想法。
首先我们需要探讨的是身份本身。
今天我是分享者或演讲者的身份来跟大家交流,当我离开后,比如回到办公室,我是公司的同事;回到家里面,我是父母的小孩,在不同的地方,我有不同的身份。
那我到底是谁呢?如图,可以有几个不同的定义:
在不同的平台,不同的社交媒体,不同的服务里,我都是不同的身份;但即使是不同的身份,在 Facebook上的我 跟 推特上的我是一样的。
所以在 Mask 的产品里面,并没有用其他网站上用的词,而是选用了 “Persona”,因为每个人在不同的社交媒体或者平台,都是不同的人格,他们都是你自己。
Identity
1)在传统 Web 2.0 时代,我们用的 Identity 是一对一映射的,即一个账号对应一个网站上的身份。比如我在 Facebook 上是 A 账号,在推特上是 B 账号,在不同的账号里是不一样的,这个也可以叫 Identity。
这要讲到身份的管理。因为大家去各种网站或者服务里,有多个身份其实是非常麻烦的,所以会用到密码管理类 APP,比较出名的有 1Password 或者 KeePass,还有 Apple 的 Key chain,只需同一个密码,就可以管理所有不同的密码,但这些身份是散落着的,他们相互之间是没有关系的,只是用了一个 Password 管理了 N 个 Password。
2)第二种为 1 Mapping,同微信授权登录。指的是一个身份可以登陆到不同的网站,登录到不同的服务里面,只要用微信,就可以登陆到各种不同的小程序里面,不需要管理 N 个账户,Google 也是如此。
3)最后一种是 Mask 比较认可的方式 — — Many to Many Mappin。最简单的实现就是去中心化身份或者自主权身份。我们可以用一个 Key 去管理多个,或者用同一个身份去管理多个账号;也可以用多个账号或者用多个 Persona 去管理同一个账号。
比如我在推特的受众面是不一样的,有的是工作推特,有的是轻松一点的推特(如音乐类),在传统意义上,我需要注册多个账户来区分,但如果是 Many to Many,就不需注册多账户,用户可在 Mask 里面,用不同的身份面向不同受众的推特即可。
OpenID
接下来我们聊一下 OpenID,即一对多映射的问题。在 2005 年 OpenID 被发明出来的时候,确实解决了很多问题,但由此影响,所有的身份及数据信息,都被大公司或者第三方拥有。
比如说用 Google ID 登录了不同的服务平台,Google 就知道了该用户的所有活动,相当于用户身份的一些信誉完全基于 Google 或第三方平台授信来的,若有一天Google 或者第三方崩塌了,我们的社交媒体,甚至在赛博世界里面所有的信用都会崩塌。
综上, 在使用 OpenID 的情况下,我们的隐私及数据都被某一个中心化组织所控制,若他们崩塌的话,我们所拥有的一切都将崩塌。
SSI
接下来我们探讨下 SSI 。我们是 2019 年开始 Mask 项目的,起因是 Facebook 剑桥门的事件,该事件影响了几千万的用户,他们被一家剑桥分析的公司控制了,从而影响了美国总统大选,以及英国脱欧,还有墨西哥的某次中期选举。
他是如何控制用户的呢?因为他们获得了用户的所有数据,形成了用户画像,基于用户画像,给用户推一些比较特定的广告和特定的内容,从而影响到用户的政治选择,这几千万人就是数据被泄露后受害者。
我们做 Mask 的目的就在于此,保护用户的隐私、用户的数据、主权。
如何真正保护用户数据主权呢?我们现在做的是中间件,安全的可信计算,用户的数据源是从中心化的服务商提供出来。
虽然我们可以把所有的推特用户数据,交给一个做可信计算的公司去做大数据分析,且保证这些公司都不会触碰到用户的数据,但问题是,我们的数据还是存在推特或者 Facebook 这些公司的服务器里,你还是没有拥有数据。
Mask 做的事情是什么呢?Mask 做的是加密,在用户发出一条推文,或者说创造一条数据的时候,Mask 帮用户把数据加密在一起,只有用户本人可选择谁可看到,谁可处理数据,而非由三方决定。这也是 Mask 项目比较独特的地方之一。
Mask 从数据源开始,就把用户的数据保存保护起来。在未来,当用户量足够大的时候,我们会邀请用户来决定是否要将自己的数据交给其他公司做处理。
接下来解说下对自主权身份的定义:
1)用户可以创建任意多的身份。
我们活在赛博世界,已经摆脱了现实生活中的束缚,创建一个身份不应该被第三方监管及控制,比如说某些账户限制最多只能申请 6 个,并要求绑定手机号或银行卡的方式来限制。
2)用户拥有自己的数据,其他人不能拥有它。
这也是 Mask 在努力做的,用户拥有自己的数据,可以自主决定在什么时候分享给谁,而非被三方控制。
3)用户有权选择退出。
有太多新的数据或者隐私法案出来后,部分公司也做了相关产品改造,支持退出个性化推荐。
以上其实是我对 SSI 的理解。
Mask 的目标,让用户在保持所有习惯的同时,还可维护自身的隐私和数据主权。
作为用户来说,不会离开最擅长的社交软件,或者说即时通信软件。比如有人说(sido)很好,你的所有隐私都可得到保护,但是用户不会用它,因为其90%的社交关系在微信上面,所以 Mask 所做的,就是在不离开最喜欢的社交平台的前提下,还可以保护数据隐私。
1)如何加密?
其实这很简单,首先要有一对称密钥,有一个 AESK 先加密好,再把对称的 AESK 分享给想要分享的人,但还是需要对方的公钥。
我们会创建出一个 Persona ,然后把这个公钥塞进用户每次发的密文里,能看到密文的用户就能看到公钥,从而让用户更简单的把自己的公钥给分享出去。
我们看个案例。比如我选了 Mask 这个账号,上面是推特,下面是公钥,我们需要在数据库里先找到它,即我们需要一个社区关系和公钥的绑定。
2)为何要做社区关系和公钥的绑定?
大家用过 ENS 的话,可在 ENS 里面加上 Facebook,加上你的邮箱,就会显示出来所有的 NFT,所有做的这些东西,都是基于你的社交关系跟你的身份所绑定。
这个绑定,之前做的最好的是 Teams,我们做的产品借鉴了他们的设计,在未来我们也希望能做出来一套去中心化的 Teams,能够给大家来使用。
没有用过 Teams 的可以看一下,Teams 是把所有的社交关系做了一个聚合,通过查询服务就可以知道一个人的社交关系和其他身份之间的关系。
同时,有个这种绑定关系后,如果有一天我在推特上看到你的推文,或者我想跟你说一些悄悄话,可很简单的通过这套服务查出来对于的公钥是什么,就可以给对方发加密聊天,甚至是打钱。因为上面绑了以太坊公钥,就可以通过推特的账号给对方打钱了。
这是我们的 Logo 和我们的邮箱,欢迎有志同道合的朋友加入。
问答
提问:SSI里面有一条,我们可以向其他人授予访问数据的权限,这个东西在技术上通过传递加密密钥实现的吗?
刘怿斯:可以。如果用户在社交平台上发一条推,就不能改它;如果要改的话就需要删了重新用密钥加密,这是比较麻烦的地方,但是在技术上还是可行的,可以做的。
提问:传递的过程中,是否高效和安全?
刘怿斯:我们用了高 GB 的数据库,相当于 ECDH,把加密好的密文通过一个渠道分享给应该收到的人。即使有人获得了原始数据,也无法解密出来里面的真实东西。
历史文章:
2、路印 CTO Steve Guo | 真实的二层网络真实的未来?
3、Jolestar | 智能合约编程语⾔,还可能有哪些创新点?
5、3Box Joel | 去中心化数字身份与数据,未来在何方?
6、以太坊核心开发者 Austin | 如何在以太坊上构建应用程序?(实操分享)
9、BeWater 大会纪实|属于开发者的下一个十年,因为相信,所以看见
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。