李斯然
摘 要:集中式計算在一定程度上限制了用户个人对数据的掌控,同时用户还面临着数据被泄露的危险。这些在SoLiD中都不再是问题,SoLiD是基于分布式的一种让用户掌控自己的数据的技术,同时围绕用户数据提供诸如PoD,WebID的服务。同时基于分布式的情况下,SoLiD也将空闲的CPU充分利用起来,为整个系统提供算力。本文就SoLiD的原理、面临的挑战及应用的远景作出介绍。
关键词:SoLiD PoD,分布式,集中式,去中心化,弱中心化
1.背景
互联网的发展带动了社交网络的发展。社交网络一方面虽然拉近了人与人之间的距离,拓宽了人们的视野;但另一方面,社交网络中个人的隐私数据泄露的丑闻却频频发生在诸如Facebook,Google Plus等大公司。万维网的缔造者Tim Berners-Lee 曾发表文章指出万维网面临的三大挑战,他表明我们已经失去了对自己个人数据的主权,这些数据被一些巨头公司所掌控,而这样的局面明显与他发明万维网时的初心相违背,因此他提倡我们夺回我们数据的主权。
在这样的背景下,Tim Berners-Lee 在麻省理工学院启动了Solid项目。此项目致力于在本质上改变web应用程序的中心化态势。本文就Solid项目中SoLiD技术的概念,原理,它所带来的改革以及它的应用做介绍
2.SoLiD介绍
万维网的主要载体是web,web给予了每个人建立自己博客以及网站的自由,正是由于web的自由性和无门槛性,才促进了全球的创新。每个人都可以通过web将自己的想法告诉世界上的每个人。
SoLiD(Social Linked Data社交链接数据),它是一组协议和工具,主要用于打造基于关联数据的分布式社交应用。Solid是可扩展的,它的可扩展性源自于它的模块化,它尽可能地依赖于现有的w3c标准和协议。
Solid通过将数据与应用程序分离来为我们提供真正的数据所有权;它模块化的设计能够让应用程序在各个应用之间无缝切换而且不会丢失任何数据或社交关系;对于开发者,在创建新应用是,可以复用现有的数据,也可以在得到用户许可的情况下使用其他程序的数据。
3.SoLiD所带来的改变
前面提到Solid 将用户的数据存储到了PoD中,也就是说用户作为一个本体(Ontonogy),它的所有属性及其对应的值都存储到PoD中,而外部的程序需要展示数据的时候,就需要请求该用户的授权,这在一方面提高了用户对自己数据的掌控权,另一方面也降低了不同应用程序之间数据不可共享的强耦合传给程度。
此外用户还可以决定自己生产的数据存放在哪里。举个例子来说,对于博客类的文章应用,用户A的文章被用户B点赞了,而这个点赞的数据会被存储到A,B双方的PoD中。
Solid带来了真正的用户的数据主权,使数据可以重复利用,在一个应用程序上生产的数据也可以在另一个应用程序上使用,这就让数据在应用之间流动起来,能够让用户驻留更多时间的不再是某类应用所对某类数据的垄断,而是哪个应用能提供更好的服务以及更好的数据保护。
4.面临的问题及解决对策
前面提到Solid要通过弱中心化进而实现去中心化的理想目标。而在弱中心化这一步就会出现许多问题,主要体现在下面两个方面:
1. 与集中式中心计算相比,单个节点不仅要解决更难的问题,其所占有的资源也更少。
2. 分布式下,弱中心化数据处理比集中式中心的需要更多的算力和更大的网络带宽。
此外现在很多数据处理算法并未为弱中心化将产生的数据处理需求做好准备。当面临众多需要查询的数据集或者当数据在越来越多的节点上传播时,就会遇到带宽使用和查询速度的问题。
为了解决这些问题,通过多方协作最大化性能的方案[3]被提出。因为每个单独的个人数据存储以及每个客户端都会使用自己的CPU,而这些CPU在集中式环境下往往没有得到完全的利用。如果在最接近节点的地方执行计算工作,就可以解决由弱中心化而产生的算法复杂度的提升。这种理念计划被用于数据搜集的阶段,当节点A要搜集有关数据时,节点B可以帮助节点A搜集;反过来节点A也可以帮助节点B搜集节点B需要的数据,而这则需要依赖于一种信任机制来实现。这样就可以将更大的子查询并行地委托给10个或者20个节点,这样就可以达到通过网络动态地分配查询。
关于节点间的信任机制,通过分布式账本来描述。当一个节点为另一个节点的查询贡献带宽时(成为激励),节点之间可能产生不诚信的问题。在弱中心化网络中则需要建立一种共识来避免这样的问题。而分布式账本则是解决这种问题的一种方式,分布式账本可以跟踪目前所进行的工作,从而获得他人的帮助。一种分布式账本是区块链,需要信任过后才具有账本的写权限。一种较新的区块链项目比如Filecoin,所执行的计算较比特币而言就更加有意义,同时也提供了更加安全的存储和检索。
5.应用前景
Solid在本质上提出介于节点和去中心化的语义化数据网络之间的服务市场,这一点就超过了数据市场的想法。所有基于Solid的应用程序都依赖于客户端CPU处于空闲的时间,也就是说,当我们的CPU空闲时,可以将其借给他人使用,而当我们使用CPU来执行计算任务时,也可以将任务委托给其他人使用。
5.1 身份提供商
身份是一个从计算机存在以来就存在的问题,目前在工业上的应用也比较广泛,但是目前多数应用的身份都没有一个统一的标准,尽管某些在某些巨头公司的生态下,产生了属于该生态的身份协议,但是就整个互联网来看并没有一个比较统一的规范,没有统一的规范,就导致身份在应用中混乱。而Solid就是以身份为基础的,在Solid中一切都围绕身份展开:身份是本体具体表达,链接数据将身份链接成网。
5.2 个人数据管理平台
Solid下的数据都存储在PoD中,因此应该有一个集中化的软件来对所有结构化数据和非结构化数据的进行管控。这种软件被称为模块化的生产力软件,其最重要的一个特点是:用文档来表示所有信息。世界上大部分软件内部的信息组成都是文档,文档有着非常丰富的语义。当这类软件成熟后,将可以用来管理SoLiD中所有的个人数据。
6.结论
在这篇文章中,我们就SoLiD的概念,原理,所带来的改变,面临的挑战及问题做了介绍。总的来说,SoLiD是一种使得用户能够管控自己数据,同时提供高效查询、计算数据的分布式技术。应当指出,SoLiD目前还是一种比较新的技术,相关协议和文档也还有待完善,因此它具有的其他一些功能本文暂时没有提及,但随着分布式、云计算的发展,SoLiD的应用前景会更加广阔,同时SoLiD所带来的全新的开发范式,也会在某些程度上会激发出全球的创新能力。
参考文献
[1] Nakamoto,S.(2008),“Bitcoin:A Peer-to-Peer Electronic Cash System
[2] Filecoin:A Decentralized Storage Network,Whitepaper.(2017),Protocol Labs