I had a sort of zen minimalist moment yesterday. We have a new specification for Sia, and it's really really simple. Even simpler than Bitcoin, because we simplified the way the scripting system works.
It's pretty much the most minimal possible protocol that allows decentralized storage to happen. There are hosts that announce they have storage, and there are files that hosts agree to store, and the hosts submit proof-of-storage on the files to get paid. If they don't submit proof-of-storage, then the uploader gets refunded automatically.
And that's pretty much it, happening on a blockchain. It's so simple that we should have an alpha ready to go within a few weeks, maybe 4 to 6. I'm actually really excited about this new protocol, because it's simple enough to implement quickly and powerful enough to allow a full structure of decentralized storage.
We do sacrifice a few things:
1. There is no global network price. Hosts set their own price.
2. There is no automatic file repair. Clients will need to manage file repairs themselves. This means they need to be online to make the repairs, but that means running 'repair' every few months instead of needing to be online all the time.
3. There is no 'sublinear consensus'. Sia is a single blockchain and will need to deal with blockchain bloat in all of the same ways that apply to other altcoins. This shouldn't be a problem until we have multiple millions of users.
That's basically it. We slimmed things down to the very core requirements: decentralized storage that doesn't require you to be online all the time. Turns out you can do this with only a few simple changes to the Bitcoin protocol. We should still be completely compatible with enterprise customers, which I think is where the majority of our users will eventually come from. Without sublinear consensus, I'm having troubles imagining that we'll be useful for files below 10GB in size, but that's a problem for the future. Enterprise customers are unlikely to need files less than 1TB in size (replace file with 'cloud disk' --> 'file' is a misleading term). A 2.0 down the line will probably address this (requiring either a hardfork or a different cryptocurrency). We want to delay sublinear consensus because right now there are no good solutions to decentralized storage. We can change this without decentralized storage and we think it's more valuable to release something simple now than something complex and potentially insecure after we spend 3-6 more months planning it out.
We're planning on releasing a whitepaper alongside a beta implementation. The beta implementation will be fully usable, but we're going to premine 99% of the coins on the beta, as sort of a "NOT FINISHED YET" red flag. After a few months of beta, we'll decide how much needs to change for a 1.0, and we'll release a 1.0 that has sianotes and no premining.
Luke and I are ecstatic. Wanted to share my enthusiasm. I know it's been a roller coaster, but that seems to be the expectation for startups and early stage investing.
Good to hear, looking forward to updated whitepaper.