Can someone ELI5 why you need a blockchain for this? Another startup could make a non-blockchain version of this that uses similar syncing technology to GDrive / Dropbox file sync that just syncs other people's stuff instead of yours and pays you monthly.
Founder here. The blockchain gets you a couple of things.
The key thing in our blockchain is the storage contract, which is something like a blockchain-SLA. The host has an obligation to store some data, and the host also puts up money out of pocket as a promise that the data will be stored faithfully. The blockchain will occasionally challenge the host, and if the host cannot create a proof that the data is still being stored, the host's collateral is forfeit.
The renter also puts money into the file contract, this money is used to pay the host if the host is honest/keeps the data, and the money is destroyed if the host is dishonest or loses the data. The money gets destroyed so that the renter has no reason to interfere with the host, nothing to gain from seeing the host fail or working to make the host fail.
Thanks to the blockchain, the host has a guaranteed payment if they store the data, regardless of whether the renter sticks around for the duration of the contract or not. And also thanks to the blockchain, the renter knows that the host will not get paid until the end of the contract, and that they will actually lose some of their own money if they lose the data.
There's another great benefit though to cryptocurrency, which is that payments are super low friction. Every time you upload data to the Sia network or download data from the Sia network, you make hundreds to thousands of tiny payments to the various parties over state channels. This wouldn't be feasible using more traditional payment systems, we'd have to track everything in a centralized database, and that actually doesn't scale very well.
Sia is both low cost and high speed, but these are side benefits over the primary goal of uncompromising decentralization. Storage just happens to be an application where the decentralized version is actually highly competitive to the centralized versions.
I'm glossing over a fair amount here, if there's anything that doesn't make sense or seems off feel free to ask, I'm happy to clarify.
How do renewals work? With S3 I upload something and then pay for it + bandwidth until I delete it. Would I need to know how long I need storage for ahead of time? Estimated bandwidth?
I run a video rendering service that currently uploads previews (call it 5-10mb) to S3 for ~3 days and then deletes them. Finished renders (~50-200mb) are stored for 2 weeks. I upload 500-1000 new files a day.
Amazon just bills me for this once a month. Would I need to load up a wallet and prepay each of these contracts individually? How would I send out a download link or play a video in a browser?
You give Sia a budget and it does a pay-as-you-go with the budget. You can set how long you want the contracts to last, by default it's 3 months. That means you budget for 3 months of storage, and then you don't need to pay into Sia again for 3 months.
Anything that you paid for but didn't use will be refunded in full at the end of the 3 months.
Right now Sia does not support filesharing of any kind, however that's in the mid-term (6-12 months) roadmap.
There are a lot of details such as finding servers with available space, paying for storage, posting bonds, collecting bonds with fraud proofs, and doing all of that in a decentralized way. You pretty much need a blockchain for the decentralization.
> that just syncs other people's stuff instead of yours and pays you monthly.
with VC money? with a fickle settlement system that requires 5 layers of financial institutions before you get a REST API? where you probably still need 50+ money services licenses and compliance department anyway? where any of those financial institutions can still cut you off for any reason? to maintain operations in a single country?
why do all that when you can just print money, or more accurately create a scarce digital asset of value to the market you create, available internationally on day one
you don't have to agree with it, but the pendulum has swung waaay in this other direction and thats the answer for "why" before you even get into the implementation that the founder wrote.
So exhausting watching people argue that trust is no longer necessary when they're simply pushing the trust around. You have to trust someone at the end of the day, and it's more practical to use the law to trust them (and enforce that trust) than cryptography.
If I want to decentralize my storage, I would replicate data between multiple cloud object stores (Backblaze, S3, Wasabi, etc, a library to abstract PUTs and GETs) and pay them for their service. I trust them, but can verify each is holding up their end of their commercial agreement (similar to RAID block scans, but with object hash verifications). They aren't randomly going to yank their storage node of the network like a home NAS device or other consumer level storage device, because it's their business to be available.
A superior solution has yet to present itself.
Sidenote: The blog post is holding cloud provider data egress fees up as an example of exorbitant bandwidth pricing; this is true, but only from cloud providers. You can get bandwidth extremely cheap from non-cloud providers or through other means[1].
They're definitely less costly. I could host over 10x the amount on Sia for what I pay for B2 at the moment, B2 is already one of the cheapest providers, plus that's just in storage, ignoring all bandwidth costs. I'm really curious what the numbers will look like in terms of reliability here. Theoretically you can figure out how often storage contracts try to retrieve and fail and the host has to pay a fee by looking at the block chain, anyone done the analysis on this yet?
But do you have the same level of durability and availability of your data? Do you trust the storage nodes to not be making copies of your data? Can you pay with dollars instead of bitcoin?
I'm paying for trust, and it is a hard sell that a distributed storage system spanning worldwide jurisdictions is inherently more trustworthy (although it is possible that it can be as durable and reliable as traditional storage systems, but the proof is in the data).
> Do you trust the storage nodes to not be making copies of your data?
No, I trust the cryptography to, I sure as hell wouldn't trust Backblaze, let alone Amazon not to do that either. I use Restic when using such services to encrypt before sending anything to them.
> durability and availability
This is IMO the only real question. I want to see some numbers and I think their blockchain should actually be able to provide values for this theoretically.
Okay, so after some reading: Sia uses Reed-Solomon coding in a 10 of 30 configuration. This means that as long as any 10 out of the 30 hosts you upload to are available you can download your files. There's a quite high failure rate for contracts at the moment as it's not very profitable, around 9%. In order for this to be a problem, over 20 contracts would need to fail. If my math is correct we're talking about that should achieve approximately "20 9s" of reliability. Now there's one major catch with that, which is that your hosts must be chosen in a properly random way, but there's some cool tooling for Sia to help with that available like Decentralizer.
Overall, given this, while I'm not 100% confident in their software and cryptocurrency yet, given time I think this could prove to offer an even higher guarantee of reliability than traditional cloud storage services at much lower prices.
Depends largely on your bandwidth usage if that's beneficial, for me personally I'm talking home/small business backups where the additional reliability of B2 is great and the price actually works out better than putting that system in RAID1.
Of course, I'm talking about using the system to host personal and small business backups like I do with B2. I backup all the important content off my home RAID nightly. Definitely a good warning to put out there though.
You're not necessarily wrong but it's not so one-sided. In Sia you are definitely paying, the storage is automatically verified, and the storage providers don't get paid if they go down.
I think its great that most of the questions here are getting answered, but I'm still a little confused as to who this is for, and why adding bitcoins great great grand child to the project helps.
It doesn't look like its built for large data sets, since the capacity of the network is fairly low, and the providers fairly small. So if I want to store ~5TB of data, this isn't much of a fit and if I want to store ~5GB of data well there are tons of options and if I want it replicated, I'll replicate it.
Seriously though, I don't want to play game theory games with a list of storage providers, especially for tiny sums of data, I just want it to be there.
This also cuts both ways. Your business needs a file but your customer can't connect to that node because of some political blocking of internet connections. Who can you rely on? What central service can you call to get this fixed asap?
The idea with Sia is you upload to not one, but several people, you pick the level of redundancy you want and if you can't get the file you want from any given one of them, they pay the price and you get it from someone else.
It's kinda designed to expect that; you end up paying for more redundancy over more hosts, which is a win. Yes some will / may be down, but a) they're penalized financially, b) you can (by default do) have redundancy