Storj ,一个去中心化的内容存储和分发网络
原文作者:wenchuan
原文来源:Buidler DAO
文章速览👀
01/ Storj 简介
02/ 业务介绍
03/ 业务特点
04/ 业务现状
05/ 代币经济
06/ 总结
Stroj 是一个去中心化的内容存储和分发网络,旨在提供快速、安全、低成本的 P2P 云存储服务, 主要针对企业级客户,对标 Amazon Web Services (AWS) S3。
Storj 于2014年成立,2017年上线,Storj 目前运行的版本名为 Storj Next,于2023年2月启动,该版本引入了永久存储功能和代币存储奖励。
去中心化存储服务,简单来说就是用户将需要存储的文件上传到网络,文件被分散存储到世界各地愿意贡献出存储空间的电脑中(存储节点),当用户需要使用文件时,再从网络中检索文件的位置,然后下载到本地电脑中。
不同于其他的去中心化存储网络,Storj 网络中不仅有用户和存储节点,还加入了卫星作为第三种角色,三者间形成了一种独立运作,又相互依存的关系。
网络中的三类参与者,资料来源:Storj 白皮书
在用户、卫星、存储节点之间,Storj 的技术架构主要围绕数据存储、数据检索、数据修复来进行,为了维护系统的正常运营,还设计了数据审核以及对卫星和存储节点的声誉管理。
数据存储
针对存储数据,目前主要有两种方法:存储完整文件和使用纠删码。
Storj 采取了纠删码,在擦除编码中,数据被分解成固定大小的片段,每个片段都被扩展并用冗余数据编码, 保存到每个片段中的冗余数据使得只需要片段的一个子集就能重建原始文件。
这意味着在 Storj 网络中,当一个文件被传输时,它不是一次性传输的,而是将文件分解成段、条带等更小的数据单位结构,逐一验证传输。这样拆分传输确保了存储节点因不能离线以避免接收和存储完整的文件。
以下是 Storj 对数据分片而定义的数据单位:
Bucket(桶),由路径标识的文件集合,每个文件在每个桶中都有唯一的路径。
Segmenet(分段),表示单个字节数组,介于0和用户可配置的最大段大小之间。
Strips(条带),条带是分段的进一步细分,条带是固定数量的字节,用作加密和纠删编码边界大小。纠删编码单独发生在条带,条带也是执行审计的单位。
Erasure Share(纠删片段),当一个条带被擦除编码时,就产生了多个称为擦除份额的片段。只需要一个擦除份额的子集来恢复原始条带。每个纠删片段都有一个索引标识它是哪个纠删片段。
Piece(分片),同一个段的具有相同索引的擦除份额被串联在一起,这个串联的擦除份额组被称为一个片。
Pointer(指针),指针是一个数据结构,它可能包含内联段数据,可能追踪存储远程段的片的存储节点。
文件存储结构,资料来源:Storj 白皮书
数据检索
在使用擦除代码将存储数据分片存储到不同的存储节点上后,需要跟踪存储的数据,以便在需要的时候能够快速定位。
在 Storj 网络中,使用卫星来管理和跟踪数据存储的位置。数据在擦除代码后,会形成一个指针,Storj 网络的其他单个组件主要与指针数据库进行通信,按路径存储和检索指针,以执行行动。指针是元数据存储系统中主要存储内容,而元数据则是存储在卫星之中。
数据审计
Storj 是一个无信任的系统,验证存储节点是否准确地存储了数据以及其他方面的行为是否符合预期,对于系统的平稳运行至关重要。
在证明数据的存储方式时,每个网络都采用自己独特的方法,而审计就是确认存储节点拥有数据的一种方式。
在 Storj 中,卫星负责审计,卫星会向存储节点发送请求以证明它实际存储了预期的数据,并期待一个有效的响应,有足够多的存储节点返回正确的信息时,任何有问题或缺失的响应都可以很容易地被识别出来。
对比其他的系统多使用的可检索证明(如 Merkle树),审计的优势是可以在没有预先生成挑战的情况下任意运行,预先生成的挑战会导致存储节点存在欺诈行为,不存储所有请求的数据,只保存挑战验证中需要的数据。
数据修复
在任何分布式存储系统中,数据丢失都是一个永远存在的风险。虽然文件丢失有许多潜在的原因,但与其他原因相比,Storj 认为存储节点流失将是其网络中数据丢失的主要原因。
因为审计已经验证过节点是否正确存储了数据,接下来就是检测存储节点离开网络或错误地存储数据的时间点,然后将它的数据修复到新的节点。为了修复数据,我们通过编码擦除从剩余的片中恢复原始数据,然后重新生成丢失的数据片,并将其存储到网络中新的存储节点里。
声誉管理
卫星作为系统中的协调者,越需要接受来自存储节点的审查。新的卫星加入时,存储节点需要通过时间去建立对它信任,针对不信任的卫星,存储节点能针对来自该卫星的数据设置最大存储量限制。此外,Storj Labs 会建立一个推荐卫星名单,该名单的卫星会被要求遵守一套严格的质量控制和支付服务水平协议(SLA),并与 Storj 实验室签署一份商业协议。
而针对存储节点的声誉管理由四部分组成:
Storj是一个无信任的系统,本质上而言,就是一个基于声誉的去中心化存储网络。
定价及支付
在用户、卫星、存储节点之间,用户通过 Uplink 支付费用给卫星,卫星负责向存储节点支付存储及带宽费用,存储节点负责提供存储和检索要求。
对存储节点而言,其收费标准由 Storj 设定,由卫星以 Storj 代币的形式支付。存储费为$1.5/TB/月,输出带宽$20/TB,数据审计和修复的带宽费用$10/TB。
对用户而言,使用 Storj 的成本由存储费和带宽费组成,用户可以选择以 Storj 代币或法币支付。用户可以在 Storj 获得150GB/月的免费存储和带宽服务;或选择付费账户,存储费$4/TB/月,带宽费$7/TB/月。
但是用户的成本和存储节点的收入并不等同。
作为一个公共网络,存储节点可以自行选择离开或留下,为了让节点保持长期活跃,且提供更高的带宽,Storj 扣留了一定的收入,扣留的部分随节点在网络中活跃的时长逐步下降。
第1-3个月:75%的收入被扣留,25%被支付给节点运营商
第4-6个月:50%的收入被扣留,50%被支付给节点运营商
第7-9个月:25%的收入被扣留,75%支付给节点运营商
第10-15个月:存储节点收入的100%支付给节点运营商
15个月以后,退回前期预扣款的50%;当存储节点要永久的离开网络时,可以要求退回另50%预扣款。
兼容AWS S3
目前,部署最广泛的公共云是 AWS S3,其生态服务系统完备,且具备先发优势。作为 S3 的对标业务,Storj 的设计兼容 S3,支持 S3 的7个核心 API,这种兼容性为 Storj 用户极大地降低了转移成本。
为了吸引更多的用户,Storj 允许之前不兼容 S3 的产品通过 Storj 以最小的摩擦成本兼容 S3;同时,这也增加了对 Storj 性能和耐久性的要求。
最小S3 API,资料来源:Storj 白皮书
纠删码技术及优势
纠删码技术
因为存储节点存在永久离线的可能性,为了确保数据的耐用性(出现故障时仍旧可以访问数据),目前去中心化存储服务产品多选择数据复制(存储完整文件)来解决该问题,但这会在带宽使用上极大地增加数据存储的总成本。
相比数据复制,纠删码允许以低扩展因子实现数据的高耐久性,并且在带宽有限的情况下,大幅度降低带宽占用率,是一种提更有效的存储方式,
Storj 网络使用了 Reed-Solomon 纠删码,Storj 为每个存储对象选择4个数字,k,m,o,n,使得它们之间的关系为 k≤m≤o≤n:
其中,K 和N 是纠删码中的标准模板;M 值,如果卫星监测到冗余片数小于 M 值,则会触发数据修复,以确保足够的冗余。
k,m,o,n 的关系,资料来源:Storj 白皮书
纠删码的优势
纠删码的使用在将为存储网络带来各种优势:
其一,针对视频、音频等流媒体的传输,因为纠删码将数据分片,流媒体可以通过每次对小部分数据进行编码来添加,而不是对一整个文件进行一次性编码。
其二,纠删码能够有效避免长尾响应。
长尾响应发生在这样的情况下:由于各种不可预测的因素汇合在一起,需要的服务器有一个不合理的缓慢操作时间。长尾响应之所以被称为长尾响应,是因为它们的平均发生率很少,但具有高度的可变性,在概率密度图中看起来像一个 "长尾",长尾响应是分布式系统设计中的一个大问题。
在实际的应用中,上传一个文件,文件被编码成比所需的耐久性保证更高的(K,N)比率,完成 O 片上传后,剩余的(N-O)片就能被取消上传,这意味着,整个上传速度是以一组节点中速度最快的节点为准,而不需要等待使用速度较慢的节点。
对于 Storj 主要面对的企业级客户,这满足了其对高稳定性的需求,每个请求都可以由参与节点中的速度最快的节点来满足,这也是分布式存储网络的潜力所在。
上传与下载的不同结果,资料来源:Storj 白皮书
用户多为 Web2 公司
在 Storj Next 版本中,Storj 增加了永久存储、代币激励等更加迎合 Web3 社区的功能,但实际上,其客户仍旧以 Web2 为主,这也是 Storj 有别于其他去中心化存储服务的地方。
存储市场巨大,而其中的用例需求也各有不同,Storj想要成为 Web2 与 Web3 之间的桥梁。
存储节点数据
截至2023年3月初,Storj 有6个稳定运行的卫星,22600个活跃节点,34000+个注册账户。
Storj 存储节点数据,数据来源https://storjstats.info/
Storj 卫星数据,数据来源:https://storjstats.info/
数据储存量
根据 Messari 的数据可以看到,在2022年底,Storj 的存储利用率最高,为38%;其可用存储空间及已用存储空间相较2021年分别增长70%、176%,增长率可观。
Storj 2022年数据,数据来源:Messari
截至2023年3月,Storj 上累计可用存储空间30.3PB,累计已用存储空间18.4PB,累计存储利用率为61%。
Storj 累计存储数据量,数据来源:https://storjstats.info/d/storj/storj-network-statistics?orgId=1
网络费用
Storj 的30天直接网络费用位于各 Web3 基础设施层的首位,远远超过存储赛道龙头之一的 Arweave,这也说明相较于其他同类产品,Storj 的商业落地能力强。
注:Filecoin 目前正处于补贴存储成本阶段,其存储费用几乎为零,未被 Web3 Index 收纳。
Storj 收入,数据来源 :https://web3index.org/
代币分配
STORJ 是基于以太坊网络的代币,其总供应量是固定的,共4.25亿个。截至2022年底,4.25亿个 STORJ 中,有2.617亿个是公开流通的,1.633亿个由 Storj Lab 托管。
Storj 代币数据,数据来源 :https://www.storj.io/blog/storj-token-balances-and-flows-report-q4-2022
作为去中心化存储服务网络,Storj 希望存储节点运营商能长期运营,卫星运营商能建立长期业务,在这之间,作为支付媒介的 STORJ 代币是至关重要的,而建立可预测的 STORJ 代币流动性对维护网络的长期运营更是重中之重。
2017年销售了7500万个代币后,Storj Labs 持有2.45亿个代币,Storj 对这些代币设置了一个长期滚动锁定计划。2.45亿个代币均分为8个批次,每批3062.5万个,每季度解锁一批,连续八个季度,若没被转为运营储备,代币将重复锁定。如果锁定时间有所改变,或 Storj Lab 想要将锁定的代币转为运营储备,Storj 承诺提前45天宣告(原本为90天,随着市场波动逐步调整为45天)。
Storj代币锁定计划,数据来源 :https://www.storj.io/blog/using-timelocked-tokens-to-support-long-term-sustainability
Storj 想通过上述锁定计划,让不同的生态参与者对 STORJ 代币持有长期信心,以此实现 Storj 网络的潜力。
代币价值捕获
STORJ 代币主要用来支付存储和带宽费,此外,Storj Labs 员工的部分薪资也是以 STORJ 代币支付。
在 Storj Lab 的愿景中,不计划让 STORJ 代币成为数字货币、证券、商品或任何其他种类的金融工具,故 STORJ 主打支付功能的机制难以激励生态用户长期持有代币,无疑这影响了代币的价值累积。
近期,Storj 宣布网络参与者可以通过存入 STORJ 获得奖励,在一定程度上,这更加贴合了 Web3 客户的使用习惯,增强了用户的代币持有意愿。
Storj 是一个着重 SLAs 级服务的去中心化存储服务,相比 Filecoin 的去中心化、Arweave 具备的 Smartweave 智能合约系统,Storj 没有利用区块链技术,且在中心化上有妥协,但这也让它在商用落地上领先于其他同类项目。
在各种去中心化存储方案中,没有任何一种方案是绝对占优势的,都只是项目方针对其目标用例在产品设计上进行的权衡取舍。
就 Storj 本身的目标 —— 在规模和性能上取代 AWS3 —— 以及其对视频存储与管理的性能的提升和与 Web3 社区更好地结合,Storj 有极大的潜力成为最具商业竞争力的企业级去中心化存储服务商。