NeoFS: public distributed decentralized object storage

Introduction

NeoFS is a distributed, decentralized object storage network developed by Neo SPCC. Built with Neo blockchain integration in mind, NeoFS aims to support the shift away from third-party storage providers, providing users with complete control over their data.

Nodes are organized in peer-to-peer network that takes care of storing and distributing user’s data. Any Neo user may participate in NeoFS network and get paid for providing storage resources to other users or store his data in NeoFS and pay a competitive price for it.

The service is designed to work with Neo smart contracts, allowing for truly decentralized applications, and can also be used as a content delivery network. Users can rent out storage in return for Neo GAS tokens or use GAS to store files in the network.

Representing Neo’s commitment to building the future, NeoFS offers unparalleled data storage control to users and developers by bringing together the benefits of decentralization and real-world integration.

NeoFS ensures user data security and mitigates against malignant nodes by ensuring zero-knowledge data validation through a combination of homomorphic cryptography and game theory models.

NeoFS is geared for real-world applications

Unlike many other projects in this area, Neo SPCC is not trying to create a parallel reality in a technological sense. Solving real-world problems requires to use standard protocols and have ability to integrate NeoFS with existing systems. There are protocol adapters, or gateways, that allow accessing NeoFS via standard HTTP or S3 protocols. Users can develop their own gateways to integrate NeoFS with existing systems they are using, such as accounting system, CRM, a corporate backup service etc.

Basic components and network

NeoFS network nodes run the same software and talk the same protocol but may have different roles. There are nodes that store data and process user API requests, they are regular storage nodes and form the Outer Ring. There are nodes that take care of network health, perform service tasks such as data audit and payments settlements and form the Inner Ring. There are not many of them and they use dBFT 2.0 consensus algorithm to coordinate their actions.

Read more

Infinitely scalable due to Network Map and Data Placement

NeoFS is infinitely horizontaly scalable due to its architecture features such as novel Data Audit algorithm, Data Placement and Network Map.

Network Map is a multi-dimensional graph where nodes have attributes and are grouped by those attributes and their values. This allows using a special data placement function to find nodes that would store an object, when putting or getting it to/from NeoFS network without any network requests.

This approach allows not having any centralized meta-data storage keeping object’s locations and not re-balancing data with every joining or leaving storage node.

Designed to work reliably in chaotic environment

The bigger the NeoFS network grows, the more stable it becomes, because the chance of network is changed would affect the particular container is decreasing with the increasing number of nodes in the network. It means, unlike in DHT approach, the amount of needed data migration decreases with the network growth.

NeoFS puts the control over data in users’ hands

Since anyone may participate in NeoFS network, reliable mechanisms to ensure users' data consistency and availability in a chaotic environment are needed.

To achieve this goal, the combination of homomorphic hashing for data integrity checks and game theory models, to create a situation where all nodes behave correctly and the data is stored safely, is used.

A decentralized nature of NeoFS eliminates not only centralized points of failure but also centralized points of control. In NeoFS, only users have full control over their data, where, how it is stored, and who can get access to it.

Where

your data is stored

How

your data is stored

Who

can get access to your data

Integrated with popular protocols such as HTTP and S3

NeoFS is demonstrating NEO’s commitment to practical idealism as well as its vision of an integrated, user-centric Internet of the future.

Through gateways (protocol adapters), users can easily access NeoFS through industry-standard protocols such as HTTP or S3.

Moreover, the open nature of NeoFS enables users to freely write his or her own gates to integrate with third-party system for seamless on and off-chain integration as well as unmatched accessibility.

Zero-knowledge data validation based on homomorphic cryptography

In case of a large number of objects in a distributed network of untrusted nodes with an ever-changing topology, classical approach with comparing objects' hashes with some sample in a central meta-data storage is not efficient. This causes unacceptable overhead.

To solve this problem, NeoFS uses homomorphic hashing. It is a special type of hashing algorithms that allows computing the hash of a composite block from the hashes of individual blocks.

Read more

Directly accessible from smart contract code

This feature becomes available in Neo 3.0 release with introduction of Oracles Protocol. Smart contracts will be able to issue GET and PUT requests for fixed-size objects.

Neo GAS is used for payments

NeoFS uses GAS for all payments. To be able to pay for storage services in NeoFS, the one has to deposit some GAS to NeoFS smart contract address. This event is monitored by Inner Ring nodes and reflected in user's account balance internally in NeoFS.

NeoFS Inner Ring nodes keep track of all NeoFS accounts and use dBFT 2.0 consensus algorithm, the same as in Neo blockchain, agree on users' mutual settlements, reward distribution over node owners and other payment-related procedures.

Read more

Incentive model based on market principles

Incentive model and pricing follow a free market principle. Each node declares how much it wants to receive as a reward for data storage services for the upcoming epoch. Placement function considers the declared price and prefers nodes with better prices. However, since nodes in Network Map declare key-value attributes describing their parameters, such as geographical location, type of storage, capacity and other things also used in Storage Policy, it leaves room for nodes that want higher price, better or unique services to still get into the placement function result.

In short, if node is too greedy, it does not get users and rewards. To have higher prices the node needs to satisfy market demand or provide something unique.

As it is shown on the figure below, node needs to keep price “in the market” to get the highest profit. This should guarantee a competitive price for data storage in NeoFS.

profit

Runs on commodity hardware

NeoFS is designed to work on commodity hardware without any special hardware requirements. This allows users to quickly replace failed system components with what can be bought in a local computer store.