“许可IPFS存储网络”对IPFS增加了文件权限管理功能,开发者可调用轻节点的接口完成文件管理。
“许可IPFS存储网络”使用独特的文件头加密技术,在不减少文件加密安全性的前提下,极大地降低了加密操作的运算量。同时我们使用了基于秘密分享的文件备份策略,低于门限数量的存储中心无法获取文件的任何内容。
此外,文件权限管理功能还具有如下属性:
- 文件的读取权限只允许授予,不允许撤回。因为曾经拥有权限的用户随时可以通过区块历史数据获取对称密钥解密,所以撤回权限是没有意义的。
- 当文件从授权访问改为完全公开时,文件所有者需要公布解密密码(不推荐的操作)或上传未加密的文件头,需要注意的是,这一操作是不可逆的。
- 对于获取部分文件分片即会造成内容泄露的情况,将对全文件做压缩处理或加密后再做文件切片处理。
- 重节点在响应文件的获取请求时,会先在区块链上检查请求者是否拥有访问权限,拥有访问权限的才会发送文件片。
具体的技术细节和实现方案请详见后续发布的《海峡链白皮书-IPFS篇》。
三、网络架构和实现
由于开放共识链和开放许可链的应用场景有所不同,安全设定和需求差异较大,因此需要采用不同的IPFS网络策略。
IPFS开放共识网络是由海峡链直接构建的,可使用单一网络对所有开放共识链提供服务,是公共资源,存储服务提供商可参与网络建设;IPFS开放许可网络,可根据具体的许可链使用方的需求搭建,支持本地化部署,属于专属网络。下面着重介绍一下IPFS开放共识网络:
3.1 IPFS开放共识网络
IPFS开放共识网络旨在构建一个人人可提供服务,购买服务的长期稳定、健康运行的存储资源共享平台。重节点存储网络是开放共建的,拥有存储资源的服务提供商均可申请加,而DApp开发者可以通过自建或公共的轻节点来购买和使用服务。
3.1.1 核心特征
- 所有开放共识链共用同一个IPFS网络;
- 该网络与IPFS公共网络互通;
- 重节点由专业的存储服务提供商提供服务,提供商在申请加入并投票通过后成为重节点;
- 重节点的行为受激励策略调控,重节点被鼓励在一定范围内尽量多存储文件片。
3.1.2 文件存储成本
IPFS开放共识网络的存储服务将对文件进行永久存储,我们将根据摩尔定理和kryder定律制定一个合理的存储单价。

存储费用计算公式为:
存储费用 = 存储量 * 存储单价
其中存储量为10MB的倍数,不足10MB部分将按10MB标准收费。例如一个文件大小为32MB,则它占用的存储量为4。
3.1.3 重节点的激励方案
3.1.3.1 目标
海峡链通过激励方案鼓励重节点存储尽可能多的有效文件片,引导整个网络进入健康可持续发展的方运行状态 。激励方案符合如下目标:
- 激励方案应该公平公开、可验证且去中心化,减少各环节作弊的可能;
- 鼓励IPFS节点尽量多存储数据,存储的文件越多,获得的激励越多;
- 鼓励重节点主动存储有效文件的同时避免存储资源的过度浪费。
3.1.3.2 可能的作弊行为
激励方案的设计应避免发生如下的作弊行为:
- 重节点只存储CID,不存储文件片内容;
- 重节点在抽奖结束后临时拉取文件片领奖;
- 重节点存储使用多个身份进行多次领奖,即多个重节点共享存储池;
- 可能影响随机数生成的行为。
3.1.3.3 激励流程

激励活动中有三个参与者:
- 运行于区块链上的激励服务智能合约,简称激励合约。激励合约通过代码方式明确了激励规则,所有参与激励活动的节点均需遵守此规则;
- 提供存储服务并尝试获取激励的重节点们;
- 海峡链上运行的可信重节点,该重节点不会尝试获取激励,但是会参与部分存储证明的验证工作。该节点是公正可信的,其地址会被写入激励合约。