零知识和同态哈希

在拓扑结构不断变化的不可信节点的分布式网络中,如果存在大量对象,则将对象哈希值与中央元数据存储中的样本进行比较的传统方法无效。从而导致不可接受的开销。

为解决该问题,NeoFS使用了同态哈希。这是一种特殊类型的哈希算法,它可根据单个数据块的哈希来计算复合块的哈希。

为进行完整性检查,NeoFS计算了受控组中所有对象的复合同态哈希,并将其放入一个称为存储组的结构中。进行完整性检查期间,NeoFS节点可以确保存储对象的哈希均正确无误,且还可以确保最初创建的复合哈希的一部分。此操作无需在网络上移动对象数据,且无论存储组中有多少个对象,哈希大小均相同。

数据审计

NeoFS如何确保数据不会丢失或损坏?每个时期,内环节点均会执行数据审计。就博弈论角度而言,这是一个两阶段的博弈。第一个阶段,节点要求所选包容器中的节点共同重构一个同态哈希表,该列表将形成存储于存储群组中的复合哈希。通过此操作,节点可表明其拥有所有对象,且能够提供该等对象的哈希。此类哈希列表可被验证,然而在此阶段,若某些节点说谎,则它是未知的。

audit

第二阶段,请务必确保节点真实,且不会伪造审计结果。内环节点可计算一组存储相同对象的节点对,同时,它要求每个节点提供该对象的同态哈希。而其范围选择的方式是,从一个节点请求的范围哈希将是该节点对中另一个节点请求的范围的复合哈希。然而,节点无法预测审计将选择的对象或范围。它们甚至都无法预测游戏的配对节点。由于每个节点均为多个包容器和存储组提供服务,并参与众多数据审计会话,因此,本阶段可以快速发现恶意节点。当恶意节点被拆穿,本阶段内它将不会得到任何回报。因此,伪造检查和风险的代价太高,而就节点而言,保证真实且行为得当更容易也更便宜。

当节点能够重建存储组的复合哈希与节点诚实行为的事实相结合,系统便可以认为数据已安全存储,无损坏且可用的概率较高。