This is an old revision of the document!
Sia uses encryption and erasure coding to ensure that files are private and remain available even if hosts go offline.
The uploading process is as follows. First, the file is striped into chunks of 40MB. Reed-Solomon erasure coding is then applied on each chunk, expanding them into 30 pieces of 4MB. Erasure coding is like an M-of-N multisig protocol, but for data: out of N total pieces, only M are needed to recover the full 40MB chunk. This ensures a high level of redundancy, much greater than traditional replication.
Each piece is then encrypted with the Twofish algorithm. It was one of the five finalists of the Advanced Encryption Standard contest, but it was not selected for standardization. Nonetheless, this algorithm is considered very secure.
Finally the pieces are sent to hosts to be stored. Currently, no host receives more than one piece of any given chunk. For example, host 1 might contain the first piece of chunk 1, chunk 2, chunk 3, etc., and host 2 might contain the second piece of the same chunks. This ensures that if host 1 is offline, you can still download pieces from every chunk. Even if host 1 is not offline, but merely slow, this scheme prevents you from being bottlenecked by the slow host.