ChainSafe Files:构建保护隐私的云存储

这是一篇来自 ChainSafe的文章。

ChainSafe Files能够提供高度保护隐私、高度安全的云存储,让用户对其数据享有完整的主权。我们的产品利用IPFS和Filecoin来为用户提供分布式存储和区块链技术的所有好处。Files项目抽离了这些系统的复杂性,从而提供一个简单、对用户友好的体验。这样,用户可以轻松地使用我们的数据存储解决方案,并得到相较于传统云存储选项更具备隐私性、更具弹性以及更去中心化的好处。 马上体验

ChainSafe Files是一个用于存储、查看和分享文件的在线平台。它看着像传统的云计算平台,但实际并非如此。ChainSafe Files的设计理念是用户自由度和数据隐私

为了实现对更高的用户自主性和更好的隐私保护的愿景,我们提出了两个原则以指导我们的工作: 1) 隐私保护. Files的用户应享有阅读其数据的唯一权利,无需担心其隐私被侵害; 2) 最可依赖的是自己。用户不应该被锁定在我们的app里,即便是在Files平台在极端情况下无法提供服务时,用户都应该能够访问自己的文件。

这篇文章会解读Files架构的最重要的部分,并解析我们是如何努力建造这个将用户视为头等公民的产品。我们将会介绍:

  1. 去中心化登录过程,除了你自己,没有人可以访问Files的用户界面。
  2. 这是如何让你使用 相关工具来加密你所存储的数据的。
  3. 最后,我们会展示IPFS和Filecoin的利用方法,以确保你的数据总是对你是可用的

去中心化登录

当你首次访问一个传统网络应用时,通常需要注册然后登录进去。你将需要输入一个登录名和密码,然后平台的后端服务会验证相关凭证是否与你注册时输入的信息相符,并最终让你访问自己的文件。

这样的平台就是守门人。如果传统的网络应用有一个后门,或者某个管理员心存恶意,那么有人就很容易访问你的数据。这些后门可以是由某个黑客、机构或平台自己植入的。

应用程序用户登录的另一个常见用例是单点登录方案,如谷歌所提供的。因为它们只需要点击一次,所以还是很方便的。它们被用作一个单一的信任来源,像谷歌这样的第三方会保证你的身份,因为你已经登录到它们的平台上了。

应用程序需要做的仅仅是验证这个第三方的签名是真实的(如谷歌的签名)。这样,在我们的例子里,谷歌就是守门人,你必须相信它。如果你的谷歌账号或谷歌自己被黑客入侵了,又或者是其中一个管理员心存恶意,那么 它们可以签署一个签名来让别人冒用你的身份。

在ChainSafe Files里,为了免除对第三方的信任,我们使用了 Torus提供的去中心化登录服务来搭建一个验证流程。我们就此写了一篇文章解释了其工作原理,你可以 点击这里查看。大意就是,你 不再需要信任单个主体,不管是谷歌、Github还是ChainSafe Files的团队。你将需要两个验证因子:

  1. 一个密码。如果你的第一道登录方式被攻破,恶意分子还是无法代替你登录到Files里。

开始体验ChainSafe Files

2. 为了简化用户体验,你的浏览器会被作为第二个登录因子。如果你使用同样的浏览器登录到Files里,你就能通过点击一次来登录进账号。

在这个环节里,我们分析了Files的登录流程,并解释了我们使用去中心化验证系统的方式。得益于这个设计,没有单一的实体会存储用户凭证,你也无需信任单一的实体,不管它是Files的后台服务还是一个第三方平台。既然我们现在已经相信没有单一的实体可以控制你对Files的访问权,那么来看看我们是如何确保你对自己内容的唯一查看权。

除了你自己,没有人可以查看你的文件夹

当你使用上述两个因子登录ChainSafe Files时,在系统的底层其实就是重建了一个只有你自己知道的公私钥对。我们在这篇文章中将其称为主密钥(master key),它只在你的浏览器中活动。每一次你登录Files系统时,它都会重建一次,并在结束浏览器活动时再次删除。我们来看看这在实践中是如何使用的,并探索一下在Files里上传文档时发生的事情。

假设你想在ChainSafe Files里上传一张关于猫的照片。你这么做的时候,Files应用程序会请求一个存储在Files后端的加密密钥。当然了,因为它是存储于你的计算机之外的,所以并不是明文的方式存储。它是使用AES-256加密算法并用你的主密钥来加密的。只有你可以读取这个加密密钥。当你有了这个加密密钥后,你想上传的这张猫图将会在本地的浏览器进行加密,最终会被发送到Files的后端。

我们先来简单看看一个网站的工作原理。从技术上说,在浏览器里访问网站意味着你从互联网上下载这个网站的代码,并在浏览器中执行。在本地环境里,你的浏览器内所发生的事情并不一定会与互联网上的其他服务器分享。任何网站的代码所做的事情都能够被查看和验证。同时,因为 Files是一个开源项目,你不必相信我们所说的,你还可以验证我们在这篇文章里解释的事情!

回到上面这张猫的照片,还记得我们早前说过的吗:你的浏览器本地发生的事情并不一定在互联网上分享。当这张猫照片到达Files的后台,它早就被只有你能访问的密钥加密起来了。纵使这张猫的照片再可爱,也没有其他人能看到它是一张猫图!

就如你可以看到的,我们用内建隐私保护设计的方式构造了Files项目。我们尽力让其具备防止他人冒用你的身份登录的能力,而无需信任单一的第三方,即便是ChainSafe. 另外,得益于强大的加密技术,除了你都没有任何人能阅读你的文件的内容。.

即便Files的界面和基础设施失效,你都可以访问自己的文件

数据取回的能力是构建开放和去中心化平台的一个重要方面。除了你没有人能登录平台和阅读你的文件,这听上去很棒。但万一这个平台倒闭了或控制你的访问呢?这就是IPFS和Filecoin这样的分布式存储网络发挥作用的时候了。有不少读者应该早知道IPFS和Filecoin了,不过对此不熟悉的人还是可以 阅读这个链接的内容来了解更多

简单地说,IPFS是一个由计算机(节点)构成的文件存储网络。一个节点可“pin”住你的文件,意味着它会保留一个副本,在得到请求的时候进行分发。Files的后端是在 ChainSafe Storage之上构建的,而上传到Files的任何文件都是由我们的基础设施里的一个节点pin住的。每一个文件都有一个IPFS内容标识(CID),在操作界面点击“信息”时就可以看到。

ChainSafe Files文件信息

这样,你就可以在脱离Files用户界面的情况下取回自己的文件。就如前面解释的,那些文件是被加密的,你想读取时需要进行解密。 我们创建了一个简单的命令行工具 让你在无需使用Files界面的情况下从IPFS下载并解密自己的文件

从IPFS取回文件时不会产生任何费用,不过节点作为网络的一部分则没有动力去存储文件,因此,可以说没有人能保证你的文件总是能在所需时可用。这就是Filecoin能发挥作用的地方了。Filecoin是IPFS之上的一层激励机制层。简单地说,它意味着你能够给特定的节点付费让其保证妥善保管你的文件。这样的保证是由Filecoin协议执行的,所以你可以确保你在有需要的时候能访问自己的文件。不过,与IPFS不同,你在Filecoin上取回文件并不是免费的。因此,ChainSafe Files将IPFS 用作一个缓存层,在你有需要的时候立刻将你的文件展示给你,不过我们也使用Filecoin来长期、冗余地存储这些文件

以用户为中心的隐私保护思维

总结一下,你是唯一能够登录Files用户界面来取回主密钥的人。你上传的任何文件都是被加密的,只有你能读取。你的文件是存储在一个去中心化网络里,在ChainSafe Files基础设施不再可用时,你也能访问这些文件。你还想要更多特性?可以啊!

一个平台的用户会留下很多元数据,能够用来分析用户的行为。我们拿WhatsApp举例。虽然信息的内容是加密的,但它收集了你的发送对象、频率、每日发信息时段等元数据,蕴藏了很多关于你自己、兴趣、社交圈子等信息。那么,将这些数据与其他信息来源进行结合(如你手机上安装的APP,你可能关联的脸书账号等),就成了被别有用心之人针对的完美信息组合。

任何个人数据的都是敏感的,必须被保护以免落于坏人之手。甚至,它们根本一开始就不应该被收集

ChainSafe Files团队对数据隐私十分重视,旨在通过Files平台提供最佳体验的同时保护我们的用户免受此类威胁。我们的业务并不是收集数据,我们会确保用户使用信息不会与第三方分享,也永远不会将其售卖

我们正进行用户采访!

可以与我们的产品经理Colin Schwarz预约用户采访,以帮助塑造Files的未来。这类采访是15分钟左右的,旨在获取你对我们产品的使用情况,以及我们可以改进的地方!马上加入我们的Files Task Force 电报群预约采访

一起参与

为了帮助我们改进Files,我们依赖于用户反馈,很希望知道你的想法。你喜欢Files的什么?有什么让你心烦的地方吗?在未来你想看到什么样的特性?你可以在 Files power user电报群告诉我们你的想法,或者在 GitHub Twitter Discord等渠道都可以。

想与ChainSafe一起工作吗? 如果有兴趣,马上加入我们! 可以在我们网站的招聘页面查看 开放职位,并通过[email protected]取得联系。

Filecoin是一个开源的云存储市场、协议和加密货币
icon_client
filecoin_request_icon
filecoin_data_icon
filecoin_data_icon_black
icon_miner
icon_miner_other
filecoin_data_icon_black