之前读到 solid project 关于数据自有的理念时,一直感觉这个应该是互联网的未来。简单地说,就是假如我想要发布一个微博,我会先在本地或者自己的服务器上发布,然后再授权 weibo,twitter,facebook 等来我的服务器上读取,这样我们的数据不会因为互联网公司而消失。
现实中已经有的类似理念的去中心化的产品是 mastodon,以及 matrix 等,但是它们在迁移账户上面会有些问题,因此我想和大家讨论一下这些问题和看看能不能找到解决方案。
mastodon 将 id@domain 的形式作为唯一 id,这个 id 是不可以更改的,其他服务器在交互中引用的也是这个 id。在现有的方案里,人们可以考虑在新建 id 之后,将原先的 id 做一个重定向。这样的话会存在一些问题,例如如果切换了服务器,旧数据的正常工作需要依赖旧服务器正常工作,但是谁能保证旧的维护者会一直运行下去呢?我认为这样其实并没有实现数据自有的优势。而且最理想的情况是,每个人搭一个服务器,但这样的话,为了维持重定向,我们也一样必须保证域名的可访问,相当于一直要为服务器和域名续费。
我认为为了解决迁移的问题,应该有一套独立的 id,称作 uid 吧,然后维护一个 uid->mastodon id 的映射。然而这个 uid 的维护,似乎必须要是中心化的,相当于现在的 dns 系统。然后这个 uid 需要保持有效,在不同服务器里作为引用。
假如我们要设计这么一套 uid,我认为最简单的方式就是用邮箱地址,因为邮箱地址本身对个人用户是几乎不需要成本就能一直持有的。假如我们要做这个中心化服务器,我希望的设计是,服务器不存储任何密码,每当用户要更改他的映射,只需要在邮箱里确认邮件,这样看起来是最容易被接受的,因为不会涉及到很多用户隐私。
大家怎么看?