Storj新发了白皮书v3,地址是:https://storj.io/storjv3.pdf
这次白皮书一共有90页,看完还真要费不少时间。如果你没有时间看,可以看一下我这篇快速技术解读。
上次Storj发布白皮书v2的时候,是 2016年12月15日;这次v3版白皮书的发布时间,是2018年11月,距离上次发布白皮书时隔2年时间。
这次白皮书V3相对于白皮书v2来说,务实了很多,给我的整体感觉是:解密了不少实现的细节。全篇白皮书在说Storj去中心化存储的架构细节,区块链部分依然提到的很少。
看了Storj的白皮书之后,大致可以明确几点:
- Storj 依然是ERC20通证,它没有将存储数据写入区块链,写入区块链是只有资产,简单地说,就是“钱”。因为白皮书V3很少提到区块链的内容,所以预计Storj的ERC20状态还会持续很久。
- Storj仍然采用中心化记账,每个月“发工资”的形式。工资就是Storj的ERC20的通证。
- 白皮书V2里面的农场主,在白皮书V3全部改成了存储节点。这也能感受到Storj采用了去区块链化的路线,Storj变得更靠近传统古典项目,对标AWS S3。
- 国内不少“矿圈”的人,抱怨在Storj上面种田没有收益,白皮书v3做了揭秘,说明了原因,后面我会详细解释。(Storj上的种田,就类似于FileCoin上挖矿。)
下面我完整地解读一下Storj。
Storj历史
Storj 历史上几个重要的时间点:
2014年7月,Storj项目首次亮相,并且做了第一次通证的众筹,筹集了910个比特币,当时的价值是50万美金。后面经过差不多2年的开发,终于在2016年4月上线了Beta版;2016年底,发布了Storj的第二版白皮书。2017年2月-7月,又发起了一次众筹,这次相当于ICO,这次筹集了价值3000万美金左右。2018年3月,Docker的创始人兼CEO, Ben Golub, 加入了Storj担任新CEO。最后就是在不久前发布了这篇白皮书v3。
Storj设计原则
这次白皮书V3里面,首先提到的就是设计原则。设计原则有以下几个关键词:安全与隐私;去中心化;市场和经济;AWS S3 兼;耐用率, 硬件故障, 和 流失;延迟;带宽;对象大小;拜占庭容错;局部协作。
解读出以下几点重要信息:
1. 可以看出“安全和隐私”是Storj设计的第一原则。其他原则如果与这个原则冲突,都按照这条原则来执行。
基于这个第一原则,数据必须在进入Storj网络之前完成加密,而且加密算法是可插拔的,也就是可以使用不同加密算法加密。
2. 要想办法降低维护成本和带宽消耗。
3. Storj白皮书V3首次提出了 AWS S3的兼容。这样开发者就能快速将之前基于ASW S3编写的程序移植到Storj上。对中国开发者来说,兼容了AWS S3,就兼容了阿里云OSS。
这次Storj支持了AWS S3的7个最核心的API。Bucket(Create, Delete, List), Object(Get, Put, Delete, List)。
-
Storj定义了一系列的Qos,特别关注了延迟。之前在Storj社区有人反馈:把数据存入Storj网络有时需要几个小时。现在看起来,Storj很关注这些反馈意见了。当然,除了延迟外,还定义了一个非常重要的参数:耐用性。耐用性是保证数据不丢失的概率,即使在大量硬件故障或者大量存储节点离线后,数据不丢失的概率。耐用性,一般是用9的数量来衡量的。如99.99%, 就是4个9的耐用性,表示有万分之一的数据可能会丢失。
-
Storj白皮书v3完整讲述了Storj的经济体系。一共设计了4个角色: 终端用户, 存储节点运营商, 需求供应商, 网络运营商(现在是Storj Labs)。
-
定义了Object的大小,最小为4M。如果大小不到4M,会按照4M收费,这样鼓励存入大点的文件。
-
存储节点一般归为3类:
- 拜占庭节点:有主观意愿作恶的节点。
- 利他节点:抛开不可避免的硬件故障,完全遵守规则并且无私地给他人奉献的好节点。
- 理性节点:在遵守规则的前提,追求自己利润最大化的节点。
- 为了达到整体的规模最大,局部协议的最小化协调是Storj非常提倡的。
角色
Storj的系统中有以下这些角色:
- 客户端:在网络中上传和下载数据的用户或应用程序
- 节点的类型:
- 存储节点: 用于存储数据,获得收益
- Uplinks节点:用于实现库libuplink,并希望存储和检索数据的任何应用程序或服务。 预计此类节点不会像其他两类一样保持在线状态,并且相对轻量。
- Libuplink(一个库)
- Gateway(网关)
- Uplink CLI(控制台命令)
- **卫星节点: **用于缓存节点地址,存储对象元数据,维护存储节点信誉,聚合计费数据,支付存储节点,执行审计和修复,以及管理授权和用户帐户。
用户拥有帐户并信任特定的卫星节点。任何用户都可以运行他们自己的卫星节点,Storj希望许多用户选择使用其他卫星节点,避免操作复杂。有了卫星节点,Storj整体架构就非常灵活。