Deep Dive: Tezos vs EOS14.01.20 | Asher Fishman [SSB]
Tezos vs EOS
EOS’s year-long ICO was launched on June 1st, 2017 and by June 1st, 2018, the coins from the ICO were worth the equivalent of $4B USD. In the first 5 days of the ICO they raised $170M USD. It released it’s product June 10th 2018.
Tezo’s ICO was launched around the same time, on July 1st, 2017, and lasted for eleven days. $232M later, they had the most legendary and biggest ICO of all time. After overcoming a huge war with its former foundation board president Johann Gevers, who controlled the raised funds and tried to scheme millions of dollars from both the founders and the project, they released a beta-net on July 1st, 2018. At this point, the ICO worth had gotten to $1B. The official protocol was released September 17th, 2018.
The Current Supply
Currently, EOS’s circulating supply is around 906.2 million.
Tezos is at 607.4 Million.
But interesting fact: as mentioned before, EOS’s blockchain was launched June 10th, 2018. Tezos’s was officially launched mid-September 17th. This means in half the time of a released platform, Tezos accumulated ⅓ less of EOS’s worth, in half the time.
The Programming Language of the Protocol
EOS’s uses C++. A very popular language in the space.
C++ is an object-oriented language that gives complete control over CPU and memory usage to its users. In terms of running programs, it is able one of the main challenges of the blockchain programming is the integration of tasks that parallelize well and the tasks that don’t parallelize. An example of non-parallel tasks, are transactions because transactions have to be done one at a time so there are no double spends. An example of a task that can be parallel is digital signatures, which is when the receiver verifies that the transaction indeed came from the sender, by matching the sender’s public address to his private key.
Parallel processing occurs many times in a blockchain because there are multiple computers that are working with one node, and if each computer is working on something else on the node, and tasks are crossing each other, there’s a big possibility that something goes wrong. It’s kind of like a huge intersection with all cars going to different directions, sometimes there will be an accident or you might make the wrong turn. C++ is able to handle the cars and make sure they connect to their correct turn. In other words, it is able to make the difference between what is a parallel task (verifying) and what isn’t (transactions).
C++ is an object-oriented language that has a large number of libraries (which are collections of code which you want to make available to a program or group of programs) for data structures and data processing.
From a safety standpoint, C++’s core dumps for null pointers and memory leaks makes it easier to hack or take advantage of the system. A null pointer is when a program just stops and crashes by itself. A memory leak is when ram (memory power) that is supposed to be only used for a program that is opened, is still being used after the program is closed and thus slows down the system because it is still using some of its limited power for something that doesn’t exist, when it can be using it on a new task. When either of these happen, because C++ is very complex and holds tight control over its memory and CPU, it makes it very hard to debug if something goes wrong. So essentially the language is very good for efficiency, but can run into some serious security problems and breaches.
Tezos’s weapon of choice is Ocaml.
Most people think it is a functional language. But in fact, it’s a lightweight functional language which means it’s a not 100% object-oriented nor is it fully functional, because it’s a hybrid of both. This makes sense because, in Tezos, there is a huge stress on the complete separation of objects and their types from the class system.
Ocaml has a powerful Custom Data Type System, which means you define your own data types and is very flexible, so there aren’t many limitations that come with the data type system. Part of the reason this is so is because it relies heavily on ‘recursion’ which means it’s easier to work with in some cases. The reason being is that the way recursion works is that if someone creates one function of a program, the system will re-use this function in the future without the coder having to re-type it every time.
And one of the biggest priorities for Tezos is security.
Decentralization and Proof of Stake
Both EOS and Tezos are Delegated Proof of Stake Projects. This means that as opposed to normal PoS, where block producers are chosen in a pseudo-random way (aka really based on the amount of their stake in the project), in DPoS, users vote to elect a number of block producers. The exception here is that they are known as “delegates” or “witnesses” and users can “delegate” their coins to block producers in order to overlook and solve transactions on the blockchain. DPoS is also much faster due to the smaller number of users verifying transactions and creating blocks compared to a system like Bitcoin where everyone fights to mine one block. This organized system by default makes the protocol more scalable.
In EOS there are 21 main delegates who receive 1% from the yearly inflation rate for producing blocks (there can be more, but after 21, the rest are back up and sit on the bench). The system and order in which it is decided who will produce what block and when is by 15 or more block producers. But 21 is a small number, especially for a “Decentralised Platform”. This means that these 21 block producers hold most of the power and get all the inflation reward money for themselves. And although this method might be quick and efficient there are a number of problems with this.
How do we know the parties won’t collaborate and cause destruction on the blockchain?? How do we know that these parties won’t start paying people to keep them voted in? With such a small amount of main block producers, there is A LOT of competition to stay in the top 21
And this is exactly what happened just a couple months ago in the EOS Scandal.
Additionally, all 21 block producers are able to produce blocks without having to have a certain amount of stake. And then on top of it, 0.25% of the 1% inflation goes to the top block producers and the other 0.75 is split depending on your stake AKA how many coins you own). Even though this may seem fair, in reality, it gives the 21 core BPs (block producers) A LOT of power and causes major competition as well as possible collusion.
And did we mention that in order to vote or have any say, you must delegate? In EOS you must stake your tokens, in order to vote for a delegate. Without delegates, the protocol cannot confirm transactions. This gives the block producers even more power because they are essentially dictating to you when you can and can’t vote.
Another downside part about this: if one commits injustice, there is no automatic punishment for them. They are left to the hands of the community, and well, if corrupt enough, will have paid off voters to stay in the 21. Because with a system like that, and if EOS gets huge, who can you really trust?
And although EOS explains that the block producers’ rewards are so great, that they have an incentive not to get caught scamming, they still have to actually get caught. And as stated above, they have a lot of options to prevent getting caught (as stated above).
There is also the fear that because the system is more centralized than decentralized if the protocol fails since the first layer is centralized, it will fall back to fiat. Because the first layer of the project is centralized and not decentralized like other projects, you won’t have any other option but to go back to physical currency which defeats the whole purpose of decentralization.
Another thing that is problematic in the system is withdrawal.
Delegators cannot withdraw their funds from delegates whenever they so choose. That means if something goes wrong, and the delegate is caught in a scandal, or if the delegate votes against what you as a coin holder want, and you want to un-delegate, it will take you 72 hours for your tokens to be transferable again. A LOT can happen in 72 hours.
Tezos has its own version of Delegate Proof of Stake, called Liquid Proof of Stake.
With Tezos, delegates are called “bakers”. Unlike EOS where a person must be voted in to become a block producer, one automatically has the ability to become a baker when they own 8,000 tezzies, but it is completely optional. Becoming a baker does not rely on if a group of people will vote you in, giving everyone a fair chance to become a baker. Small token owners can benefit rewards by delegating to bakers who are large token holders, but large token holders do not have to become delegates and can just delegate themselves too. There is also no limit to the number of bakers or main block producers that the protocol can have which means collusion, lies, and direct competition to stay in power are not a thing. In fact, there are 93 bakers in existence today.
If you choose to become a baker, congratulations!
You are now just as powerful as everyone else (if not less).
The only difference between Bakers and Delegators is that Tezos incentivizes every baker to be honest with both good and bad incentives. Tezos rewards bakers with 5.5% of the number of tezzies they baked annually as well as fees for the transaction. But, if the baker commits any dishonest doings, for instance, double block producing, they lose their deposit as well as block rewards. Not to mention if the delegators find out, they will be very quick to withdraw their funds from your bakery, at very little cost. Users also very often withdraw for unfair fees and if a delegator is not happy with the decisions of the Baker.
Tezos also incentivizes honest baking by requiring the baker to deposit 8.25% of the total amount of tezzies delegated (i.e if 1M tezzies are delegated, the baker must deposit 80,250 tezzies), not in circulation. The Baker is given a few weeks heads up in order to prepare for the deposit. If the baker cannot afford to put up the deposit, he must forfeit his cycle in advance. This gives the bakers incentive to get as many delegates as possible in order to be able to afford high deposits. And what is a good way to incentivize delegation? Being honest and fair. This is the only kind of competition within Tezos, rewarding delegators.
There are also incentives for people to delegate. Bakeries give rewards back to the delegators for delegating (the amount depends on the bakery).
Similar to EOS, voting is done by the ones with the most stake, which in many cases are the block producers. But here, unlike EOS, the difference in Liquid Proof of Stake is that you don’t have to delegate if you choose not to. In other words, if a person reaches 10,000 tezzies, he can vote without being a baker. In this case, we are closer to everyone who owns tokens having a say on what the updates of the protocol should be, and not just a small group of block producers.
In terms of voting, your amount of stake is counted in terms of rolls and rolls is what determines how many votes you get.
The Democratic Voting System: 1 Roll = 1 Vote
If a user is unsatisfied with a baker’s decision he can withdraw his tokens right away without waiting 3 days.
And while on the topic of voting, let’s move on to our next category:
Hard Forks and Self Amending Government
Tezos, also nicknamed the “Self-Amending Blockchain”, avoids the need for a hard-fork. It does this by its democratic system of everyone having a vote, regardless of being a baker or a non-baker, as long as you hold at least 10,000 tezzies. This is yet another reason to add to the list of reasons why it is so decentralized. Any proposal is voted on by everyone and if passed is applied to the protocol. Even the voting system is subjected to re-evaluation and voting.
EOS already had some hard forks due to some of the issues listed above.
Tezos’s new native OCaml library to allow for the addition of the latest iteration of Zcash’s highly efficient zk-SNARKs algorithm, known as Sapling, into the protocol. This will help owners of major transactions whether private or for enterprises assume full privacy over their dealings.
EOS does not have this feature.
Scalability & Speed
According to EOS this centralization will also create better scalability.
It allows Dapps to run parallel to each other and by this the network will avoid traffic and overload better.
The cornerstone of EOS’s scalability solution is its parallel processing technology. This design enables dapps to operate and transactions to be processed simultaneously without doubling the load on the network. This is made possible by vertical scaling (adding processing power) and horizontal scaling (adding machines to the resource pool).
This means not everyone has to mine everything.
The way it works is that blocks separate into strings, and these strings then get connected. This, in turn, means things can be split up and won’t collide and interfere with one another necessarily.
EOS claims to be able to do millions of transactions per second, but although they claim to be able to do this, their network is currently doing 3000. This is because the network is having trouble sustaining that many transactions and maintain speed at the same time.
In fact, according to https://bloks.io/ out of the 3000 transactions per second that the network can currently handle: the amount of transactions that are being done per second is fluctuating barely near 100.
Tezos, on the other hand, does 40 transactions per second, which leaves it far behind EOS in terms of speed because it focuses more on decentralization and security.
But this is where the Self-Amendment part comes in. Until now, there has not been a need for anything faster. But, if a Dapp comes in and needs it, the protocol can be updated as needed.
Tezos uses Michelson for its smart contracts. Michelson is a programming language that allows for a process known as, formal verification. Formal verification mathematically proves the correctness of the code governing transactions. This means that users can proof the properties of their contract and thus significantly increases the security of sensitive or financial smart contracts. Another benefit of Michelson is that it can easily be read by humans which will help in building the correctness proofs and help avoid bugs. In conclusion, it helps developers program better quality smart contracts, thus, making them more secure.
Michelson — check auditing smart contracts.
EOS Uses C++ for its smart contracts as well, and hence, the same problems occur, especially those of complexity.
Tezos has been a very-overlooked blockchain protocol in the race for a long-time. But as more and more companies adopt the technology, it’s time the world take a look at why and what makes it so great.