What is EOS?
EOS is a smart contract platform, I will not go into depth about what smart contracts are other than to say that they are like programmable bank accounts. Some people think that smart contract technology has the ability to change the world, others think it is just hype. Whatever you think, the fact is that it is a totally new way of programming and it seems to have a lot of promise but it is still early days.
There are other smart contract platforms, Ethereum is probably the most well known.
So what is different about EOS?
Each payment, or interaction with a contract requires a computer (or many computers) to be trusted to sign the transaction to prove that it was not forged. Each technology uses a slightly different way to do this but the problem is the same. How can we trust these people not to cheat?
Bitcoin makes them prove that they are not cheating by proving that they have done a lot of computational work. This is why we see huge mining farms in countries where electricity is cheap.
Ethereum uses a different method which uses less electricity and requires cheaper machines but the principle is the same.
To earn trust, many different (independent) computers will agree on the status of the blockchain. This is why you have to wait for a certain number of confirmations before you can trust that a transaction has been processed.
All of this takes time. In the case of Bitcoin, around 30 minutes. Ethereum can take over 10 minutes. Both of these networks are experiencing high load and therefore transactions can sometimes take much longer.
EOS approaches the problem from a different perspective. 21 block producers will be voted by token holders. They will process each transaction in 500ms (half a second) and various other people will check the results. If the block producers cheat then they will be voted out and their cheating block will be rewritten. Block producers stand to earn money by being honest so they are incentivised not to cheat.
Receiver pays model
One of the major differences is how we will pay for this computing power. It costs money and skill to run these machines so they have to be paid - there is no way around that.
Bitcoin and Ethereum both use a sender pays model where the person sending the money or calling a smart contract function have to pay the gas. Ethereum will charge the fee depending on how much computing work was required to process a transaction. This can be very confusing for new users especially if they are buying a fixed amount of ETH for a single transaction.
If you have ever sent any sort of complicated Ethereum transaction you will have seen “out of gas” errors. Even if the transaction fails, you still pay the transaction fee so a lot of errors can be expensive. The more complicated the transaction, the more it will cost and the higher the chance of you wasting money.
EOS pays the block producers by generating new tokens which they give to them. This is essentially the same as quantitive easing which is a technique that Governments use all the time. This is what it is, debate about if this will work or the pros / cons are not for this article.
The amount that is created to pay the producers is a maximum of 5% of the existing supply. This is a maximum and as the price of the EOS token rises, the percentage they need to pay for the server costs will drop. I am not clear exactly how it will work but block producers will be able to specify how much they want to receive.
In real terms what this means is that an application developer can create a service using a smart contract and their users will not have to buy virtual currency in order to use it.
Smart contracts are a great technology but they are similar to a database which can be programmed. They can only store data and do some basic calculations or talk to other smart contracts.
In addition to the database and computation we also need a user interface so that people can work with the data.
The problem comes when we get a bit bigger. Then we have to start creating multiple machines and make them look like one website, we have to worry about security. Unless you are a very large site, you will be running on a single machine (or more likely part of a single machine). This means that we have to resort to desperate calls to VC’s when we need to buy huge server farms and pay to staff them to prop up our business models which don’t quite make any sense yet (Think Facebook or Twitter).
With EOS, we can also host our websites using the infrastructure provided by the block producers, they will all keep a copy of our file and serve it up however we like. This can be HTML files which make up a website, images or videos.
The great part is that once we upload a file we can guarantee that nobody has tampered with it. This means that when we load a file over EOS we can be sure it is exactly what we intended.
What are the tokens?
The EOS tokens are a virtual currency on the EOS chain, they can be traded and used to reserve storage or computing power.
The EOS chain hasn’t been built yet but block.one want to make sure that when the chain does launch there will be a wide distribution of token holders in the genesis block (this is just a file detailing the initial allocation of tokens).
To do this they needed to use Ethereum to create an ERC-20 token, this is the token that is being sold in the token distribution.
When the token distribution is over (June 2018), the ERC-20 token will be frozen forever. This means that you will not be able to trade the token any more. Nothing can stop this, it is coded into the Ethereum contract.
Each ERC-20 token will then be converted into an EOS token when the EOS chain is launched. You will always keep the ERC-20 token in your Ethereum wallet but you will not be able to do anything with it.
Buy not rent
Once application developers reserve computing power and storage for their application they do not have to pay a monthly cost other than the cost of depreciation of the tokens. Advances in technology and storage capacity means that the extra capacity they receive over time will likely outstrip token inflation.
Because we have “buy not rent” we can fund a service which will not be profit making using tokens given by the block producers to community projects. It will not be a constant drain on the system and if it is successful then it will get votes which will mean it gets more tokens. Think of it as like the Government providing community services like a library or park.
But I am a normal person, what does it mean for me?
One of the main problems that we are trying to solve with blockchain is how can we create a trusted system when people are untrusted (techies call it byzantine fault tolerance) and how can we stop people trying to game any system we create. We design great systems in our heads like email but then in the real world people abuse them with spam.
Blockchain technologies solve the trust problem as part of the package (thats why we love it). Tokens are a tool built on top of the blockchain which we can use to create sophisticated new business models where we can sculpt motivation within our systems so that we can reward people for behaviour which helps the system as a whole.
Sounds great but what can I see now?
You are looking at it!
Steemit is based on a blockchain technology which is also written by Daniel Larimer. I am by no means an expert in Steemit but a lot of the concepts in EOS are derived from it.
In this particular business model, they need to motivate people to produce quality content. They do this by generating STEEM tokens and then give you some voting power by lending you some of their STEEM. You can register on this site and you will be lent a small number of STEEM tokens. You now have voting power in this blockchain.
You can now cast your vote for articles and the author of the article will receive some STEEM tokens. This is a fully tradable token and it can be exchanged for real money or other virtual currencies.
Think about it. You can give me money for writing this article without paying anything. Steem will not take your user data and make you a data point in their analytics. On the current web the saying is “If the product is free then you are the product” but this is not the case any more. We can have our cake and eat it.
Seriously, I will only continue to write these articles if enough people vote for them. I plan to write more in-depth articles including explaining the Ethereum smart contracts relating to EOS, as well as regular updates on the status of the EOS.IO software, if you have any questions please add a comment and I will try to answer.
If you prefer to donate with ETH or ERC-20 tokens because you make so much money based on my explanation them please send anything you like to this address.
DISCLAIMER : I am not an expert on EOS nor am I an employee of block.one or associated with them in any way. I do own EOS tokens. Anything here is just my interpretation based on my reading of white papers, the source code for eos, the Solidity token sale contract and conversations in public chat rooms. I have been a developer for >20 years but I do not focus on C++ or blockchain in my day job. Some of the things that I say may not be technically accurate but I think that the general ideas are correct, if there are any material errors please comment and I will fix them