Table of contents
In my previous article, I have closely examined two of the cryptocurrencies (NAV Coin and Factom) that can revolutionize many aspects of our lives if they become widely adopted. We learned about their use cases, how they work under the hood, and what lies ahead in terms of their upgrades and new features.
Today we are going to use a similar approach, but we are going to focus on a slightly different part of the market — cryptocurrencies that are taking advantage of blockchain’s features and capabilities to improve already existing technologies and solutions.
Sia is a decentralized cloud storage platform competing against giants like Google, Dropbox, and Amazon. Why is it trying to step out into this market if almost all of the biggest tech companies on the planet already have their own competing product up and working? The main reason is they can eliminate most of the major flaws of the existing solutions.
- First of all, when you set up a new account with one of the storage providers, you have to accept their terms and conditions. They can be changed at any time and you are forced to accept the new rules or delete your account. In Sia once a contract is signed by both sides, there is no way of changing or breaking it without mutual consent.
- Big companies always have access to the files that you’re storing on their computers. It automatically forces you to trust that they’re not taking advantage of this situation by e.g. profiling you or analyzing that data. For this reason alone it is not advised to send to the traditional cloud any files that you’re not comfortable being public. Moreover, all of the biggest providers are US-based which means that people from countries like China or Russia may feel even more uneasy while uploading their files. Sia counteracts that by encrypting all files locally and giving possession of the private key only to clients, so nobody else can decrypt them without their permission. That’s why you don’t have to take the country into consideration while picking the hosts of your files.
- Big and centralized data centers are susceptible to power outages which have already happened dozens of times causing some of the biggest websites to stop working. With Sia, it’s impossible because files are stored on personal computers that are dispersed across the world. Hosts are expected to achieve only 95–98% uptime and reliability which is much less than traditional cloud hosts, but yields even better results in file availability.
- Last, and in some cases, the most important, the advantage of Sia over the traditional cloud solutions is the price. Right now you can rent 1TB for ~$10/month. With Sia, you will pay only 50 Siacoins/month (~$1.04 as of the time of writing). That’s almost 10x cheaper.
The process of renting
Sia is marketplace based, which means that hosts advertise their prices and capacities, and clients pick them based on their preferences. There are many different pricing models, e.g. flat fee, per byte downloaded, per byte uploaded, or per byte per month stored. To become a host, you need to put up your offer on the market and deposit some money as collateral to discourage you from breaking the contract and deleting stored files.
After the hosts are chosen, the renter must form a contract with each of them. It sets aside a fixed amount of Siacoins that will be spent on storing and transferring data over a fixed time. They are paid in advance and the unused amount is returned to the renter when the contract expires. Hosts must periodically submit proof that they are still holding client’s data — they are being paid for every valid proof and penalized if they don’t upload it on time. After the agreed-upon period is up, the contract can be renewed directly without a need to re-upload the data thanks to the Sia’s renter-host protocol.
How Sia Works
The Sia blockchain is designed to store two types of data: Siacoin transactions and file contracts. After the contract is formed, the files are sent from the renter to hosts as explained on the official Sia’s wiki page:
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 40MiB. Reed-Solomon erasure coding is then applied on each chunk, expanding them into 30 pieces of 4MiB. 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 40MiB 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.
As stated in the roadmap, there are many improvements coming our way. In the first quarter of 2018 clients should be able to share their files with other Sia users, download only parts of their files and recover them using only their wallet seed. In the medium term, we will be introduced to video streaming and minimum file size will be reduced from 40 MB to ~100 kB. Ultimately clients will be allowed to share their files with anyone.
Golem is an open-source, decentralized supercomputer made on Ethereum blockchain. It is comprised of users’ machines that come in many shapes and sizes — from small PCs up to entire data centers. This system, once completed, will be capable of computing many different tasks — from CGI rendering, through machine learning to scientific computing. It will bring supercomputing to the masses enabling everyone to rent out cycles of other users’ machines and to earn money by sharing their unused resources. The reasons for its existence are very similar to those of Sia: centralized competition’s products are much more expensive while being less advanced technologically. As of the time of writing this article, the first release is still ahead, so let’s first take a look at the roadmap.
The development team at Golem divided the project into four milestones, each one codenamed after a different golem from Dungeons & Dragons as stated in their White Paper:
1. Brass Golem is where we are at the moment with our proof-of-concept, in alpha testing now. This current version of Golem is only focused on rendering in Blender and LuxRender, and although it will be useful to CGI artists, we consider CGI rendering to be a proof of concept primarily, and also a training ground. Brass Golem should be frozen within 6 months after end of crowdfunding period and a full battery of tests. Even though we do not expect that Blender CGI rendering will create enough turnover to justify all the work we have put into the project, this will be the first decentralised compute market.
2. Clay Golem is a big leap from the Brass milestone. Clay milestone introduces the Task API and the Application Registry, which together are going to make Golem a multi-purpose, generalised distributed computation solution. Developers now have the means to integrate with Golem. This advance, however, may come at the cost of compromised stability and security, so this version should be considered an experiment for early adopters and tech enthusiasts. Prototype your new ideas and solutions on Clay.
3. Stone Golem will add more security and stability, but also enhance the functionalities implemented in Clay. An advanced version of the Task API will be introduced. The Application Registry will be complemented by the Certification Mechanism that will create a community-driven trust network for applications. Also, the Transaction Framework will create an environment that will allow Golem to be used in a SaaS model.
4. Iron is a deeply tested Golem that gives more freedom to developers, allowing them to create applications that use an Internet connection or applications that run outside the sandbox. Of course, the decision to accept higher-risk applications will still belong to the providers renting their compute power. Iron Golem should be robust, highly resistant to attacks, stable and scalable. Iron will also introduce various tools for developers that will make application creation far easier. Finally, the Golem Standard Library will be implemented.
How Golem works
It’s best explained in the following pictures:
Golem is a p2p network with a transaction framework built on top of the Ethereum blockchain. That means there is no central server and every user is treated equally. It is also marketplace based, but, unlike in Sia, both clients and renters broadcast their offers to the network. Golem’s transaction system matches providers and requestors based on a number of different factors — price, reputation, and machine performance. When the contract is formed and files are sent, the computation process starts. After the computation is completed, the result is sent back to the requestor’s app. If it passes Golem’s verification process, the provider is paid. If someone tries to cheat, for instance, sends bad results or doesn’t pay, he/she will hurt their reputation and won’t be chosen again for computations.
The verification process depends on a task that has been computed. In the future, users will be able to implement their own verification methods to suit their needs. Right now the system is still in beta, so no default methods are implemented, but the ideas for the future include:
- simple correctness: checking of the result, eg. proof-of-work,
- redundant computation: ie. a few providers compute same part of the task and their results are compared,
- computing small, random part of the task and comparing this part with the result sent by the provider, ie. comparing the colour of few random pixels in rendered picture,
- analysis of output logs.
By closely examining these two cryptocurrencies, we can see that cryptocurrencies and blockchain technology can not only solve problems that have never been solved before but also improve the existing tech applications.
It also becomes clear that Sia and Golem can make current cloud storage and computation solutions obsolete. With their superior technical capabilities and much lower prices, it is only a matter of time and a few major releases before they can become widely used and successful.