A Tour of Web3 Data Solutions Part 1: Data Storage & Sharing

The Ionian Network
6 min readSep 23, 2022

--

The world of Web3 data solutions is growing rapidly. As the development of Web3 applications grows, so does the demand for these applications to store and retrieve data in a decentralized way. The question becomes not what data solutions are better or worse at, but which one provides the best resources for your application’s needs.

Web3 data solutions may differ in how it answers them, but there are some fundamentals questions each one must answer about its solution design:

  • How to prove that a node has stored data?
  • How to incentivize data sharing across multiple nodes?
  • How to ensure that files are replicated and can be retrieved across the nodes?
  • How to make sure the data is available over time?

We will look at three different solutions: Arweave, Filecoin, and Ionian on how they approach these topics. In this article, we will focus on data storage & sharing across the network. Let’s look at a quick overview of each of these solutions first:

Architecture Overview

Before we go into more detail about how these networks store and share data, let’s look at the different architectures of each of them:

Arweave

The design of the Arweave protocol is around the concept of a ‘blockweave’. The blockweave is a data structure that acts like a blockchain to store data permanently whether that is a website, dApp, or an array of data. It offers a basic HTTP API to make it simple and familiar for developers to use the protocol in their applications.

Source: https://mirror.xyz/msfew.eth/FB2ls0jlkCV2ROOenM3ecC2zFua393fg0rYpFDikxtg

Filecoin

The Filecoin protocol uses a blockchain to connect a network of independent storage providers to users willing to pay to store their data. Users place requests on a storage market to connect and pay Storage Miners for storage space. Users then use the Retrieval Market to connect with Retrieval Miners when they need data retrieved.

Source: https://medium.com/bleevin/filecoin-whitepaper-q-a-518ecfab9e30

Ionian

Ionian provides a different approach to providing permanent data storage and retrieval. Instead of building a separate blockchain to perform data operations, it uses smart contracts on existing blockchains to do this. This creates an infrastructure that separates the process of data creation, distributing rewards to miners, and managing token circulation. Operating on a host blockchain also adds a level of composability as the Ionian tokens (ION) can be transferred without any need to involve a Layer-2 ledger that other solutions use.

The different architectures of each of these solutions also shape how each of them provides data storage and sharing:

Proof of Data — How to prove that a node has stored data?

To provide decentralized data hosting, nodes have to prove that they are actually hosting the data they say they are. Without this proof, the network has no value and the reward incentive for hosting data can be used against the network. Let’s look at the different approaches to this question:

Arweave

Arweave uses a consensus algorithm called Proof-of-Access(PoA) to verify that a miner has access to the data. Unlike a traditional blockchain that operates with a ledger as a list, Arweave’s chain works with a graph structure. This structure links a block to two different past blocks and not only the previous block before it. The first block is the previous block like other blockchains and the second block is called the “recall block”.

Source: arweave.org

The consensus mechanism takes the hash and the height of the previous block to determine what is the recall block.To mine a new block, the miner has to have access to the new block’s recall block. The data of the recall block is included in the hash so a miner needs to continue to access random mined blocks so it has this information to mine new blocks and receive mining rewards.

Filecoin

Filecoin uses a consensus algorithm called Proof-of-Storage (PoS) to determine if a miner is actually storing the data it says it is. Proof-of-Storage has two concepts under it: Proof-of-Replication and Proof-of-Spacetime. Miners use Proof-of-replication to prove that data has been stored in some sort of physical storage. Physical storage is necessary to show that the miner has not stored multiple copies of the same data to take advantage of rewards.

Miners participate in the Storage Market that connects users willing to pay for their data to be stored. After a match has been created, the user sends the data to the Storage Miner and the order is submitted to the market. Miners then generate the proofs of storage which gets verified by the network in order to receive their mining rewards.

Ionian

Working through smart contracts rather than a separate blockchain has an influence on the way that Ionian handles proof of data. Ionian uses a mechanism called Proof of Random Access (PoRA) for storage proofs. PoRA creates challenge queries to archived data chunks. In order for a miner to provide data to these queries, it needs access to have continued to store the archived data. These queries are unique to each miner as they are connected to the miner’s address, timestamp, and nonce.

To receive the mining reward, the miner needs to call the Ionian contract with the storage proofs. Once the contract verifies these proofs, it distributes the connected rewards to the miner. Miners are rewarded for both storing the data with the base reward and also storing data over time with the storage reward.

Data Sharing — How to incentivize data sharing across multiple nodes?

Incentivized sharing of data is important to be able to provide scalability to the network. If data is not shared, it can create performance and availability issues for users. Let’s look at how each solution approaches these topics:

Arweave

The PoA algorithm of Arweave provides proof of data storage and incentivizes miners to store rare blocks of data. Miners with access to rarer blocks have less competition when receiving mining rewards. While access to these blocks is requested less, the miners still receive more rewards over time in comparison to storing blocks that have been replicated more times. This incentive mechanism ensures that miners store and share copies of data that are stored less than other miners.

Filecoin

Filecoin uses a different approach to verifying that data is stored across multiple nodes. Storage Miners provide an amount of storage space that is dedicated to the entire network.

The network utilizes Retrieval Miners who are responsible for retrieving the data of a specific request for users. These Retrieval Miners connect with users on the Retrieval Market to accept orders, retrieve the data and send it to the user.

Ionian

Built into Ionian is a royalty mechanism that incentivizes data sharing. Storage nodes receive dividends on the data that they share with other nodes. Rewards are only granted after the data has been shared which ensures that the data is also shared over time. If data was not shared, then the data request and the mining reward attached to it would not be completed.

The royalty process starts when a data requester sends a request to the Ionian contract to create a royalty record. Data providers can view this request and decide whether to send the data to the requester or not. Once the requester submits the mining proof, the Ionian contract checks for any royalty records and distributes the storage reward to the data provider.

Wrapping Up

In this article, we covered how 3 different Web3 storage solutions offer unique approaches to data storage and sharing across the network. As you can see, each solution has its own unique architecture and design for these elements. Ionian provides the most composable and scalable solution as it does not require its own blockchain to operate.

In the next part of this series, we will explore how these solutions offer the ability for the data to be retrieved and available over time. The value of any solution is not only storing data but providing a scalable and decentralized way for users to get their data when they need it.

--

--