One of the First Decentralized Cloud Storage Platforms: Sia

Caleb Tuttle
OpSci
Published in
5 min readDec 19, 2021
Photo by Shubham Dhage

This article is part of an on-going series on decentralized file storage for science introduced in Rich in Data, Poor in Wisdom: Science Needs a Decentralized Data Commons.

Sia is a blockchain-based decentralized data storage marketplace created by Skynet Labs, and with a whitepaper published in late 2014, it might be the first of its kind. Its blockchain has a cryptocurrency called Siacoin. The actors in the Sia network are renters (or clients), hosts, and miners. Renters pay hosts to store data, while miners create blocks and verify transactions, proofs of storage, and new blocks. New blocks are validated by Proof of Work. Here we cover transactions and file contracts on Sia, possible issues with Sia’s on-chain incentive system, ways to mitigate these issues, and Sia’s economics.

Transactions and File Contracts

Sia transactions can be used to transfer Siacoin, create file contracts, record storage proofs, and they even have a field for arbitrary data. “A file contract is an agreement between a storage provider and their client” (source). A contract specifies the:

  1. agreement’s duration,
  2. frequency at which the host must provide storage proofs (i.e., the challenge frequency),
  3. address that receives funds if a proof succeeds,
  4. address that receives funds if a proof fails,
  5. amount of funds that get distributed when a proof succeeds or fails,
  6. number of allowed failed proofs, and
  7. edit conditions.

The parameters of a file contract can be updated if its edit conditions are met. The challenge frequency also includes challenge windows that specify the time windows during which proofs must be submitted, allowing for the possibility that a challenge or proof might not be routed immediately.

File contracts would be useless without storage proofs. In Sia, the storage proof for a file is simply a Merkle proof, “a [random] segment of the original file and a list of hashes from the file’s Merkle tree.” When a file contract is created, the file is split into same-size pieces and hashed to create a Merkle tree. The contract stores the Merkle root and the size of the file. To verify a storage proof, the file segment and hashes from the proof are hashed together and compared to the Merkle root in the file contract. If they match, the proof succeeds.

Issues with Incentive System-And Their Remedies

The incentive system that emerges from this design fails to fully address a few important cases. The authors of the Sia whitepaper name two such cases: closed window attacks and what we might call data withholding attacks. A closed window attack occurs when miners “exclude storage proofs from blocks.” By excluding proofs from certain hosts, miners can ensure those hosts are penalized for failing to provide proofs within a challenge window. Closed window attacks, however, are only feasible for a miner or group of miners who control a large percentage of the network. Hosts can reduce the likelihood of this attack by only accepting contracts that have large challenge windows.

A more feasible attack is a data withholding attack. On Sia, hosts have no incentive to stay online more than required for providing proofs and, in some cases, no incentive to return client’s data. We can imagine a host that remains offline as much as possible, only coming online to submit storage proofs. Such a host would be paid the full amount of the contract, even if they never returned the renter’s data. There is no mechanism inherent to Sia that incentivizes the return of renter data. If, however, the renter stores multiple copies of the same file with different hosts, the renter can create an incentive for the renters to return their data. The renter can offer a reward to the host who returns the data the quickest, creating a market in which hosts compete with each other to transfer the renter’s data. Prudent renters will store the same file with multiple hosts to avoid data withholding attacks.

Sia’s Economics

Sia’s economics include two noteworthy points: Siacoin is permanently inflationary, and the Sia blockchain includes a second cryptocurrency, called siafunds. 30,000 siacoins are created with every block. Sia developers chose an inflationary — rather than deflationary — design so that miners always have an incentive to mine. Siafunds are the primary mechanism by which Sia’s creator, Skynet Labs, earns revenue. “When a contract is created, 3.9% of the contract fund is removed and distributed to holders of siafunds.” Members of Skynet Labs own the majority of siafunds.

Skynet

Skynet Labs created a platform on top of Sia called Skynet, which simplifies interaction with the Sia network. Skynet simplifies user experience with what it calls portals. A Skynet portal allows users to upload data to the Sia network without thinking about the underlying mechanisms. The portal operator handles the details of establishing file contracts with storage nodes and maintaining enough funds to pay for storage. The most popular portals offer free storage.

Links and Resources to Sia Ecosystem

Conclusion

Sia is an intuitively designed decentralized storage marketplace constituted by clients, hosts, and miners who interact on the Sia blockchain. Transactions on the blockchain can include file contracts, in which hosts agree to store data for clients, and storage proofs, in which hosts prove they are storing client data. Sia’s incentive system doesn’t inherently address closed window attacks or data withholding attacks, so actors must take precautions to prevent these. In addition to its primary cryptocurrency, Sia has siafunds which extract revenue from the network for siafund holders. Skynet Labs also built Skynet, a platform which makes using the Sia marketplace easier. Sia and Skynet are worthy competitors in the decentralized storage sector for anyone wanting to build fully decentralized apps.

Join the Decentralized Open Science Movement

Does the idea of a free, open, internet of science ring a resonant chord with you? Consider joining the Opscientia community to learn, connect, and collaborate with others building a commons for co-discovery.

References

Mining on Sia — Sia Support Docs. (n.d.). Sia. Retrieved November 11, 2021, from About mining on Sia — Sia Support Docs

Prahalad, B. (2018, January 7). Merkle proofs Explained. Retrieved December 2, 2021, from Merkle proofs Explained.. This article explains how to obtain and… | by Belavadi Prahalad | Crypto-0-nite | Medium

Skynet Basics — Skynet Guide. (n.d.). Skynet. Retrieved December 11, 2021, from Skynet Basics — Skynet Guide

Vorick, D., & Champine, L. (2014, November 29). Sia: Simple Decentralized Storage. Retrieved December 11, 2021, from https://sia.tech/sia.pdf

Originally published at https://hack.opsci.io on December 19, 2021.

--

--