Bitcoin
$5,566.72
-7.16
Ethereum
$173.21
-1.47
Litecoin
$41.08
-1.16
DigitalCash
$131.45
-5.79
Monero
$88.15
-1.86
Nxt
$0.05
0
Ethereum Classic
$7.21
-0.26
Dogecoin
$0.00
-0

7 Things to Know About EOS

EOS has been on everyone’s radar for quite some time…and for good reason!

It is potentially immensely promising and has one of the best teams in the world. They are aiming to be a decentralized operating system which can support industrial-scale decentralized applications. In this guide, we are going to show you 7 things that you need to know about EOS. However, before we do that, we are going to tell you a bit about Block.One (the team behind EOS) and the properties that EOS requires from smart contract platforms.

Block.One: The Team Behind EOS

One of the biggest selling points of EOS is the team behind it. As has been mentioned already, the core team behind EOS is “Block.one”, which is based in the Cayman Islands.

Brendon Blumer, the CEO, has been involved in blockchain since 2014. He has previously been involved in companies which dealt with currency exchanges in MMORPGs and in the real estate.

Dan Larimer (CTO) is the face of EOS and for good reason. He really is the superstar of the blockchain space and his contributions have been astounding. His biggest and most well-known projects prior to EOS were BitShares and Steem. He is credited with the conceptualization of delegated proof-of-stake and decentralized autonomous organizations. In fact, one of the primary reason behind the huge interest in EOS is the fact that it is Larimer’s baby.

Brock Pierce used to be a child actor renowned for his roles in The Mighty Ducks franchise and First Kid. Recently he has gained recognition as a Cryptocurrency entrepreneur. In a February 2018 issue of Forbes magazine Pierce was named in the “top 20 wealthiest people in crypto” with an estimated net worth between 700 million and 1.1 Billion

Ian Grigg has been involved in the financial cryptography space since 1995 and has garnered legendary status because of his two most notable achievements:

  • Inventing the Ricardian Contract. A Ricardian Contract is a method by which a legally valid and digitally connected document could be registered to an object or a value.
  • Inventing triple entry accounting. Triple Entry Accounting combines Double Entry Accounting with an innovation from financial cryptography called “digitally signed receipts.”This creation was so significant that writer and futurist Daniel Jeffries, has called it “the most important invention in the last 500 years.” In fact, it has been noted that Ian’s paper on Triple Entry Accounting must have influenced all the main players, leading up to the creation of Bitcoin.

Ian did his BSc Honors in Computer Science from the University of New South Wales from 1979 to 1983. Between 1994 and 1996 he earned his MBA from the prestigious London Business School.

Requirements of a Dapp Platform

There is a reason why there is a mad dash to produce the best and the most effective Dapp platform out there. Every blockchain developer worth their salt knows that Dapps are the future. If the future is indeed going to be decentralized, then Dapps are going to be the front and center of it.

So, what are the requirements that high-functioning Dapps require from their platforms? Let’s take a look.

#1 Scalability

If a Dapp is planning to introduce an industry disrupting service and be a hit with many people, then it would require the smart contract platform to provide the necessary features. This is the reason why the smart contract platform should be scalable enough to accommodate for these Dapps.

#2 Negligible Latency

Have you ever taken part in an online multiplayer game?

If you have, then tell us the worst thing that you experience while playing it. That’s right…LAG.

Nothing’s worse than having a bad lag to ruin your gaming experience right then and there. Now imagine if instead of a game, it was a Dapp, and let’s say its a medical service related Dapp which requires quick communication.

Can you see why it can be important for a Dapp platform to have near negligible latency?

#3 Free to Use

This is another important note to take care of. If you are building a dapp on a platform then you must make sure that the platform is free to use.

Why?

Well, do you really want your users to pay for the platform just to gain the benefits of your Dapp?

#4 Provides Seamless Upgradation

One of the biggest things that most Dapp developers will need is a platform that will allow them to upgrade or counterattack bugs with ease. Think about it, if a developer has to deal with a bug, then how problematic will it be if it somehow freezes up the entire platform as a result?

#5 Parallel Performance

An ideal platform should allow Dapps to parallelize their tasks and distribute workload in an efficient and speedy manner. As we have already talked about, scalability and low latency are both important traits, and one way to achieve them is by having a platform that helps in parallelizing your tasks.

#6 Sequential Performance

Having said that, not all functions of a Dapp should be parallelized. Think of a simple transaction. There are a lot of functions there that need to be executed in a sequence. Eg. Alice can’t send her coins to Bob unless Alice has properly verified her identity. This is why Dapp platforms should also provide optimal sequential performance capability.

Alright so now we know what exactly was required from EOS. Now let’s look at the 7 features that EOS has which can position it as THE premier smart contract platform. So, here are 7 things to know about EOS.

#1 It is Scalable

If you are involved in cryptocurrencies then there is absolutely no way that you have not heard of the “scalability problem.” It has been described, by many, as the holy grail of cryptocurrencies, and for good reason. If we want to see the widespread mainstream adoption of cryptocurrencies, then this has to be addressed as fast as possible. In order to get to know more about this problem, let’s turn back the clocks a bit.

An unknown programmer(s) who refers to himself/herself/themselves as “Satoshi Nakamoto” was creating, what would eventually become, bitcoin. They were facing a problem. The blockchain is made of many individual blocks and originally, Nakamoto didn’t want to put any size limit. However, they realized that people may just fill up the blocks with spam transactions and clog up the blockchain. That’s why a 1mb blocksize limit was imposed on the Bitcoin blockchain.

However, something happened soon after, which brought the “blocksize debate” to front and center. More and more people began to use bitcoins and got into the crazy world of cryptocurrencies.

The graph above shows the increasing number of Bitcoin transactions over the last decade. Now, this is where we hit a stumbling block. In Bitcoin, transactions go through only when miners put the transactions inside the block themselves. However, with the increasing amount of transactions, it just becomes tougher for the miners to keep up. As a result, most of the transactions take a lot of time to go through. Also remember that in Bitcoin, a block gets mined every 10 mins, which means, that more often than not, people had to wait for new blocks to be mined before their transaction went through. This led to insanely long waiting times:

The graph above shows the median confirmation time of Bitcoin transactions. People have had to wait as much as 30 mins to wait for their transactions to go through and Bitcoin could only manage 7 transactions per second.

Now let’s look at the other major cryptocurrency, Ethereum. Ethereum doesn’t have a “defined” block size and a new block gets mined every 15 seconds. So it must be doing pretty well right? Unfortunately, that doesn’t seem to be the case.

Each and every block in Ethereum is limited by a gas limit of 6,700,000 and each transaction costs 21,000 gas, you can see that there is a limit here as well. Ethereum manages 25 transactions per second. If you consider that Paypal does 193 transactions per second and Visa manages 1667 transactions per second, you can see how dismal that is.

So, one debate that has raged on in Bitcoin is, why not simply raise the block size?

This single question has pretty much ripped the Bitcoin community apart. There is one group that feels that increasing the block size without looking at proper innovations is a folly while there is another group that feels that increasing the bitcoin block size is the correct way to go forward. However, even if you just increase the block size 2X or 4X or 10X, the increase in the number of transactions is only going to be linear and not exponential. Meaning, a 10X block size increase will increase the transaction number 10 times, which in bitcoin’s case will be ~70 transactions per second, which is still not good enough.

Let’s take the example of Bitcoin Cash, which forked from the original Bitcoin protocol and increased the block size to 8 MB which is an 8X increase. Bitcoin cash can handle ~62 transactions/ second which is roughly 8X that of Bitcoin.

To see how abysmal this really is, it is only fair to compare them with other payment services and see how they fair. So, consider this, Visa manages 1667 transactions per second while Paypal manages 193 transactions per second.

You see how badly Ethereum and Bitcoin are faring in comparison? Having said that, there is a reason why these groups of cryptocurrencies can’t really compute any faster than that. It has to do with their inherent architecture. You see, in Ethereum and Bitcoin, each and every node of the network must come to a consensus about a particular decision. As the network grows, the consensus time goes up even higher.

So, keeping all this in mind, when EOS declared that they can potentially scale upto millions of transactions per second, a lot of heads were justifiably turned. The way that they plan to do it is by utilizing the DPOS or Delegated Proof of Stake consensus mechanism.

So, how does it work? Before that let’s understand how proof-of-stake works

What is Proof of Stake?

 Proof of stake (POS) makes entire mining process virtual and replace miners with validators.

The main draw of POS is that it makes mining a purely virtual process. Now, there are many different kinds of proof-of-stake execution, however, the general idea goes like this.

  • POS uses “validators” instead of miners.
  • Validators lock up a certain amount of Ether as stake.
  • Once they find a block which they think can be added to the chain, they place bets on it.
  • If the block gets appended, they receive a reward which is proportionate to their bets.

Since no hardware or extensive computation is needed, the process is not wasteful and it should ideally be faster than traditional proof-of-work.

EOS plans to do one better than POS with DPOS.

Delegated Proof of Stake

Anyone who holds EOS tokens can take part in the consensus mechanism. Firstly, token holders select “block producers” through a continuous voting protocol. 21 producers will be selected in total and they will get the opportunity to produce blocks proportionate to the total number of votes their receive.

To summarize the entire process:

  • Blocks are produced in the rounds of 21.
  • At the start of every round, 21 block producers are chosen. Top 20 are automatically chosen while the 21st one is chosen proportional to the number of their votes relative to the other producers.
  • These block producers are then randomly shuffled around so that it is infeasible to know which producer is going to produce a block at what time.
  • DPOS also has a punishment mechanism to make sure that all the block producers are working properly to keep the block time at 3 seconds. If the producers don’t participate regularly, they are removed from consideration of block production. Each producer must produce at least one block every 24 hours.

How is a Transaction Confirmed on DPOS?

Because of the punishment mechanism, DPOS typically has 100% block producer participation. A transaction is usually confirmed within 1.5 seconds from the time of broadcast. For a transaction to be valid, only 15/21 producers will need to come to a consensus, which is a 2/3rd majority. This is where the DPOS gains speed over traditional consensus mechanisms like POW and POS. In the traditional systems, one needs to get approval from 2/3rd of the entire network as opposed to just 21.

So, how does this system make itself secure from continuous forks?

Before we get into that, let’s understand what forking actually means. Suppose there exists a group of miners in the Bitcoin blockchain who are not happy with the current protocol. If they wish, they can simply choose to not mine on top of the main blockchain. Now if this group happens to have the majority of the hash power in the system, then this new chain will end up becoming the new main chain.

As you can imagine, this property can be extremely dangerous in the wrong hands. Bitcoin’s Proof-of-work protocol makes sure that random fork operations are so expensive that no one will have the economic incentive to go through it.

Similarly, in Ethereum’s proof-of-stake protocol aka Casper, anyone who tries to fork the blockchain will have their stake slashed away by the protocol.

So, there are real economic penalties to fork in those protocols, what happens in EOS? The EOS blockchain has been coded so that a fork simply doesn’t occur unless the blocks haven’t been finalized by 15/21 producers. Simple as that.

What is TAPOS?

There is another interesting feature that you should know about.

Every transaction in the EOS system must have the hash of the most recent block header which has been approved by 15/21 of the block producers. This is mainly done so that:

  • Transaction replay is prevented.
  • To signal to the network that a user and their stake in on a particular fork.

This property is called TAPOS or Transaction As Proof Of Stake.

#2 Rewarding Block Producers

So far we have told you quite a bit about the block producers, and we hope that we have impressed upon you the need and importance of their work.

You might be asking, why should they care? Why should the block producers waste so much time making sure that they are always available when they are required?

Turns out that the EOS system has a rewarding mechanism in place to make sure that the block producers are adequately compensated for their work.

Unlike Bitcoin and Ethereum adding a block to the blockchain doesn’t automatically generate new tokens in the system. Instead, EOS has a built-in token inflation mechanism wherein the overall supply inflates by 5% every year. The surplus tokens produced as a result are used for rewarding and other purposes.

This is pretty unique and it may turn off people from being part of the EOS network because this design has not been created for “instant payoff” purposes. Block.one feels that this method is the best way to go forward for the long-term development of the project.

How the Distribution Works

Dan Larimer showed the following flowchart to explain how the rewarding will work in his article:

Alright, so let’s a take a closer look at what’s going on here. There is a 5% surplus of the total EOS supply, which gets divided into two batches of 1% and 4%. The 4% goes into a “worker proposal system which will be covered a little later.

Right now, we are going to focus on the 1% (and no, this isn’t some call-to-action for Occupy Wall Street).

That 1% goes into rewarding block producers and other participants. The main logic in the distribution algorithm is this:

  • The main block producers should be paid sufficiently.
  • The reward should be enough to cover all costs. Basically, taking part in the EOS ecosystem shouldn’t be detrimental to you financially.
  • In order to make sure that “wealthy individuals who have no intention of producing blocks don’t attempt to earn interest on their producer candidate by voting on themselves,” everyone who qualifies must get a minimum per day payment.

As we have explained before, there are 21 active block producers. However, along with them, there are a number of standby producers as well who have received votes during the block producer election. These standby producers must also get paid in proportion to the number of votes that they have received. So, the 1% of the surplus gets subdivided into further two categories:

  • 0.25%
  • 0.75%

All the 21 block producers are entitled to the 0.25% block reward in proportion to the number of blocks they discover.

The rest of the 0.75% though gets distributed among the 21 producers and the standby producers, based solely on the number of votes that they have received. However, this where they must meet some conditions:

  • The vote rewards are given out at most once per day.
  • The reward is distributed in accordance with the number of votes the candidates have received.
  • The producers must qualify for at least 100 tokens in order to get their slice of the pie.

So, what is the reasoning behind giving this 0.75% of the tokens away as reward? It helps in making sure that the producers have enough incentive to bring in more value into the system. Consider this example, there are two competing producers, Alice and Bob. Suppose Alice brings in a lot of value to the EOS network. If the network acknowledges this, then she will get rewarded more for her efforts. This will incentivize Bob to work harder and bring in more value to the ecosystem.

 So, What Happens to the Remaining 4%?

Did you think we forgot about the remaining 4% of the inflation? Now, 4% is a LOT of money. 4% is basically 40 million EOS tokens which, on current valuation, stands at a whopping $400 million USD! So, it makes sense to know exactly where that money is going right?

Well, turns out that they go “Worker Proposal System”? What exactly does that mean? To keep it simple, the EOS community can vote on whatever they want to use that money on.

Here are some of the ideas that are circulating in the community. Most of the funds will be used for research and development on the EOS blockchain but there are also proposals of keeping some of the tokens for charitable and relief purposes.

There is another interesting proposal that one should take note of. Since the supply of the tokens go up drastically, there is a very real danger that it may greatly decrease the overall token value. So, one of the proposals could be to simply burn the excess unneeded tokens and keep the value in check.

A Well Thought Out Rewards System?

On paper, EOS’s reward mechanism seems pretty well-thought out. However, people have raised concerns about the 5% inflation rate. They think that it is a little too much and the excess tokens may devalue EOS. It looks like the token burning mechanism is an absolute must and it remains to be seen if the supply can be kept in check properly or not. However, the idea of worker proposal system is really interesting. It will be exciting to see the kind of projects that will come out of it.

#3 Vote Decay

So, as we have already made it pretty clear that voting is an integral part of the EOS ecosystem. This is why we believe that EOS’s voter decay system is one of the most revolutionary mechanisms out there. In fact, not only does this concept have the potential of revolutionizing voting in the blockchain space. But, we believe that it can change the way voting has been conducted so far, period.

Importance of Voting in EOS

The importance of the block producers within the EOS ecosystem simply can’t be understated. Just look at the two most important functions that they serve in the ecosystem:

  • Consensus duties
  • Overall network health

Now, we have already covered the first part earlier, right now we are going to focus on the second part.

In EOS, when you stake your tokens, you get access to a corresponding amount of EOS.IO’s resources like RAM, Network Bandwidth, and CPU Bandwidth. So, we all know that token price can fluctuate pretty wildly. So, what happens if the EOS token price increases drastically? Then does it mean that the resources that you got after staking a particular amount of tokens will decrease correspondingly? Imagine if that did happen, how badly is that going to affect your Dapp?

In situations like these, the Block producers must handle this extremely delicate relationship between network resources and tokens. So, if the price of one token goes up, the BP must work on bringing the cost per unit of resource down to a reasonable range.

This has to be the most important task that the BP (block producers) take care of and this is why voting in EOS is extremely important. The right actors should be voted for such an important role.


Voting Apathy and The Free Rider

Voting is the lifeblood of all democratic governments. After all, for a government that is for the people and by the people, that is exactly how they get their voice.

Having said that, voting falls victim to the free-rider problem. In simple terms, the “free-rider problem” is a game theory concept where “those who benefit from resources, public goods, or services do not pay for them, which results in an underprovision of those goods or services.”

The free-rider problem is applicable in areas such as public services, which are:

  • Non-Excludable: People can’t be prevented from using these goods.
  • Non-Rivalrous: One person’s use doesn’t diminish the ability of another person to use the same good.

An everyday example where we can see this is national defense.

Think about it, everyone needs to pay taxes so that the government can help finance public goods and public service departments like the army. However, what happens when an individual doesn’t pay taxes? Does the army single them out and not protect them during a national crisis?

No. They will get their service regardless.

So, even if you don’t pay your taxes, you will still be under army protection, in other words, you will become a “free-rider.” The real problem with this happens when more and more free-riders enter the market. Imagine if the majority of the country’s population doesn’t pay their taxes. If that does happen, the government will not be able to sustain the army, which can have disastrous implications.

So, what does that have to do with voting?

We think that the Clinton vs Trump election is the perfect example of voter’s apathy. What does that mean? How many times did you come across someone who said, “What’s the matter if I vote or not?” or “My vote will not change anything.” The rationale behind this thinking is that since so many people are going to be voting, one single vote is not going to sway the election in any direction.

Now, what happens when more and more people start thinking like this? What if more and more people start thinking that their vote doesn’t matter. You end up with elections with historically low turnouts, like the Clinton-Trump elections.

Look at this graph over here. Only 56.9% of the eligible population bothered to turn up and give their votes during the election.

Image Credit: Statista

If this is the attitude of the voters in EOS, there could be trouble brewing in the future. In order to make sure that the community takes the election seriously, EOS needed to do something, to make sure that each and every vote actually matters.

This is the reason why EOS creator Dan Larimer introduced the concept of “Vote Decay.”

What is Vote Decay?

We believe that the idea of “Vote Decay” could be potentially revolutionary. Basically, the power of each and every vote that has been cast halves every year. In order to re-assert the power of their vote, a voter must re-cast their vote on a weekly basis. So, what are the advantages of following this system?

  • How many times have you seen a political leader completely go back on their words just months after being elected to office? How many times have people lost faith in the electoral system after seeing their votes wasted on an undeserving candidate? The decay system will keep the producers on their toes because it allows the voters to reconsider their vote every week if they so desire.
  • Secondly, people and their ideologies can simply change over time. Whatever beliefs that you had a year ago must be completely different from the beliefs that you hold dear now. The vote decay will allow you to vote for a person whose beliefs are more congruent to yours.

Like we already mentioned, the power of each vote cast halves every year. SpringRole CEO, Kartik Mandaville, showed how this will work on his Medium article:

“The base time for the calculation of weight is Jan 1st, 2000.

Now instead of rewriting the weighted vote to the blockchain every time, Dan came up with the idea of increasing the weight of the future votes. eg Jan 1st, 2019 is 2¹⁹ and Jan 1st, 2018 is 2¹⁸ — this makes the vote on Jan 1st, 2019 twice as powerful as Jan 1st, 2018.”

A Potential Problem?

The vote decay is one of the most interesting innovations that EOS is using. However, people may try to game the system by using bots to vote for the same person time and again. Since this doesn’t take human thought into consideration at all, this could be a potential problem. Dan Larimer addressed this issue by saying:

“We recommend that the (EOS) constitution contain language forbidding the use of automated voting bots as the purpose of vote-decay was to ensure that voters re-evaluate their decisions rather than “set-it and forget it”. While it is not possible to prove the use of bots, it will be possible to prove that people do not use smart contracts to auto-vote.”

Speaking of the EOS constitution…

#4 EOS Constitution

Governance is the process by which people in a community:

  • Reach consensus on subjective matters (i.e. something that cannot be captured by software algorithms and requires a human touch) of collective action
  • Carry out whatever decision that they have collectively agreed in  the decisions they reach
  • Have the power to initiate Constitutional amendments if required

Governance is extremely important in a decentralized network like EOS. In an environment which has no central authority to keep the governance in check, it becomes doubly important to lay down some rules of the land and adhere strictly to the code. In EOS order is maintained via a legally binding constitution. Every single transaction in EOS must include the hash of the constitution to the signature. By doing this, each and every participant becomes bound to the constitution.

So, a constitution should be open to amendments and protocol changes if and when required. The amendment can be done by the following process:

  • The change is proposed by the block producer who obtains a 15/21 approval rate
  • The 15/21 approval must be maintained for 30 straight days.
  • All users are required to sign off their transaction using the hash of the new constitution.
  • Block producers adopt changes to the source code to reflect the change in the constitution and propose it to the blockchain using the hash of a git commit.
  • Block producers again need to maintain 15/21 approval for 30 consecutive days.
  • After that, full nodes are given one whole week to adapt to the new changes.
  • Any node that doesn’t follow the new protocol is automatically shut down.
  • If a software update is needed for an emergency fix (like a security exploit) then the block producers can accelerate the process to fix the issue.

Freezing Accounts aka How EOS Would Deal With a DAO-Like Situation

Remember the DAO incident on Ethereum? Long story short, the DAO was one of the most promising projects ever and raised $150 million in their ICO. However, their code had a problem and as a result, a hacker was able to make way with $50 million. One of the major problems of this incident was that Ethereum wasn’t able to deal with properly because it requires a majority of its nodes to come to a consensus.

So, what happens if something like this does occur in EOS? Suppose a smart contract behaves erratically or an application has a security exploit (like the DAO). During these situations, the block producers have the power to rectify such situations. They have the power to freeze the account, allowing developers to deal with the situation without stalling the entire network as a result.  The freezing goes through once 15/21 block producers agree to carry out the freezing process. If the producers abuse their powers then they are voted out and accounts unfrozen.

Controversy

EOS is, as of writing, facing a constitutional crisis. It looks like they may completely scrap the constitution and write a new one.

Block.one have turned over the code over to their users claiming that the rules governing behavior on the platform be scrapped and replaced with a “v2.0.” Basically, a constitution v2.0.

The problem happened just 2 days after the EOS mainnet launch. Apparently, a bug in the network was preventing transactions from going through, and the main culprits were 7 EOS accounts which were subjected to a phishing scam. The EOS Core Arbitration Forum (ECAF), a body meant to settle disputes among participants, called upon the block producers to freeze the accounts. This caused a furore among the community because this was going over the constitution’s rules. After much debate and deliberation, it looks like Dan Larimer has had enough.

He stated that his intentions were to bring a complete change to the existing constitution, something that he made clear when a Telegram user explicitly asked him:

“Am I correct in understanding you’re proposing the removal of the entire current constitution, and replacing it with one that only refers to arbs [arbitrators] being able to rule on code VS intent and code vulnerabilities / hacks like DAO?”

Larimer responded with one word: “yes.”

Block.one also stated that they are firmly behind their CTO and this protocol and constitution change has the company’s full endorsement. The main critics of this decision believe that this goes against the principle of “code is law”. Meaning, even if there is any “fault” in the code, people should work around it, instead of retconning everything and acting like it doesn’t exist. However, in response to that, Block.one stated that “code is law” is a nice ideal to aspire to, however, it fails to take into account all the bugs and extraordinary events that an application will invariably go through.

The community is likely to vote on the new constitution soon, though a number of questions and concerns need to be addressed. These range from the risk of potential vote-buying to the way Block.one will allocate its votes, as well as the technical capacity to hold a referendum (which may not yet be fully in place).

#5 EOS Transactions are Free

The problem with smart contract platforms is that developers must keep making micro-payments in order to run and execute their DApps. So, if the price increases, it becomes even more and more expensive for them to maintain their operations. In fact, let’s look at what is happening with Ethereum right now.

The increased gas prices is becoming exceedingly difficult for new developers. In order to execute a smart contract, each and every instruction within the contract requires a particular amount of gas to operate. So, for large-scale DApps with lots of instructions will require a lot of gas usage. As you can imagine, it becomes impossibly difficult for developers to keep pace with escalating costs.

The main problem, as to why development on Ethereum is so difficult, is because Ethereum works on a renting mechanism. If Ethereum is a super computer, then as a developer you can rent out the resources and work on your DApps. On the contrary, EOS works on an ownership model whereby users own and are entitled to use resources proportional to their stake, rather than having to pay for every transaction. So, in essence, if you hold N tokens of EOS then you are entitled to N*k transactions. This in essence eliminates transaction fees.

So, if you own 1/1000th of the stake in EOS then you will have ownership of 1/1000th of the total computational power and resources in EOS. So, how is this going to help the developers? It will help them make more predictable costs for their DApp execution. This exact thing is going to do wonders to the EOS token valuation.

Think about this.

Making accurate predictive costs is going to be a huge pull for developers. As more and more developers enter the ecosystem, the EOS network is going to grow exponentially as more and more projects get developed on top of it.

This is where Metcalfe’s law will come into play.

Metcalfe’s Law is a theory of network effect. According to Wikipedia, “Metcalfe’s law states the effect of a telecommunications network is proportional to the square of the number of connected users of the system (n^2).”

It was formulated by Bob Metcalfe, the inventor of Ethernet and co-founder of 3Com.

Image Credit: Andrew Chen

Ok so what does this actually mean and why is this valuable? In simple terms, Metcalfe’s Law states that more the people involved in a network, the more valuable it will be.

A classic example of this is Facebook.

The following graph by TechCrunch shows Facebook’s growth over the last decade:

Facebook has ballooned upto 2.19 billion monthly active users. That’s ~30% of the Earth;’s population! At the same time, thanks to the Metcalfe’s Law, Facebook’s valuation has grown exponentially as well.

Just to reiterate, when you stake EOS tokens, you own the resources which are provided by EOSIO. So you basically get a corresponding amount of Network Bandwidth, CPU Bandwidth, and RAM in exchange of your EOS tokens. If you have no interest in using your resources, then you can simply rent out your resources to the developers who may need it.

Speaking of resource allocation

#6 RAM Marketplace

Unlike other cryptocurrencies, EOS doesn’t actually want you to hold on to their tokens for a long time. In fact, Block.one has explicitly mentioned in the constitution that EOS members who don’t use their tokens at all for a period of 3 years will have their accounts terminated.

Why do they do that?

Well, as we have mentioned, you get resources when you stake your EOS tokens, and resources are extremely rare. This is especially true for RAM. You see, RAM is unlike all the other resources that are offered by EOS because:

  • It is extremely high in demand
  • It is extremely rare

As we have already mentioned before, scalability and power are the flavors of the day. More and more developers are looking to make their Dapps more powerful and efficient. This is the reason why RAM in such high demand. More RAM means more power. Simple as that.

Earlier in EOS, the RAM resource was utilized the same way as the other resources. Meaning, you stake your tokens, you get the resources, and then when you want to give back your resources, you get your tokens returned back to you. This was originally implemented because EOS wanted to remove speculation from their resources.

However, this principle doesn’t hold for a resource like RAM. Let us explain why.

The graph that you see above you is something that everyone who is interested in Economics is aware of. The good old “supply-demand” graph. The mechanism behind it is extremely straightforward.

When there is a lot of demand for a particular asset, its price will go up. But, if there is a huge supply of that asset left, its price will go down. It is that simple.

Now, think about it from the point of view of RAM. As we have mentioned before, RAM is a rare resource, so the supply will be low and hence its price should go up. Similarly, since it is a rare resource, RAM’s supply will invariably be low and hence the price should again go up.

 

Remember, like we said, EOS holders can’t simply hold on to their tokens. They will need to sell it off before 3 years (if they are not using any of the resources). This is the reason why the original model of people simply getting back what they have staked is not fair when it comes to RAM. Simply put, they have no economic incentive to sell their RAM. It is like buying something for cheap, say $1, and then when its price goes up to $10, you are still getting $1 when you sell it.

This is when Larimer and Block.one came up with the ingenious idea of a “RAM Marketplace.”

The RAM Marketplace

The Ram marketplace which is being utilized by EOS uses Bancor’s algorithm. This has the potential to efficiently align RAM in accordance with its supply and demand. Let’s look at how this will work.

When someone buys or sells RAM, a 0.5% fee is applied on both the buyer’s and the seller’s side, so a 1% fee overall. So, how does this help?

Well, now users actually have an economic incentive to sell their RAM and it also discourages speculative marketing as the fees collected are promptly burnt and removed from the ecosystem. Another great function that the marketplace will serve is the ready liquidity of RAM. Since RAM is such a rare resource, it is extremely important for it to be available for users at all times. Plus, the block producers can manually inject some RAM directly into the marketplace if:

  • The supply of RAM goes really low
  • The price of RAM goes really high

RAM on Sidechains

The EOS developers are also looking into scaling up RAM usage and for every good reason. The value of a network like EOS will only go up when it has extremely valuable projects running on top of it. As we have already told you about the Metcalfe’s law, the same principle is at work here as well. The value of all the resources will go up as more and more nodes join the network. Dan Larimer believes that block producers should be able to upgrade to 4TB or even 16TB of RAM. This increase in supply will decrease the price of RAM in the marketplace which will bring in more developers into the network.

An interesting approach that developers are using to increase the RAM usage is side chains usage with independent memory regions. Each side chain will have >1 TB of its own RAM and will be able to communicate with each other. The block producers, once elected on the main chain, will be able to get access to the side chains and run them. The side chains can also perform cross-chain communication to interact with the main blockchain.

So, this whole “side chain angle” opens up two really intriguing possibilities:

  • The side chains can compete with each other because the price of RAM varies from side chain to side chain. A Dapp developer can choose to operate on side chain where they are getting the best price. This kinda healthy competition will be great overall for the entire ecosystem.
  • Dapps can buy the unused RAM from different side chains for their execution. Because of this, Block.one believes that “many applications will prefer the many-chain approach to scaling as it will lower overall costs and scale faster.”

How Much Will Developing on EOS Cost?

Here is an extremely useful tool created by “EOS New York.” The tool is called EOS Resource Planner which will help developers make speculative estimates on the price of their Dapp execution.

The Planner gives you two handy tools.

  • The first one will help you calculate how much RAM, Network Bandwidth, and CPU bandwidth you can afford according to how much EOS you are staking
  • The second tool will work in the reverse order. Basically, input how much of each resource you need, and the tool will tell you how much EOS you need to stake

Let’s look at an example of each.

Tool #1

If you want to buy 400 EOS worth each of RAM, Network Bandwidth, and CPU bandwidth, you will get:

  • 2316587.9917 bytes of RAM
  • 766352342.4637 bytes/day of network bandwidth
  • 20681977.8796 us/day of CPU bandwidth

So, for these resources, you spent 400*3 = 1200 EOS which comes to around $12,000 USD.

Tool #2

Ok, so suppose now you are making a Dapp which needs the following amount of resources:

  • 500 Mb RAM
  • 30000000 bytes/day Network Bandwidth
  • 45000000 us/day CPU Bandwidth.

According to the tool, you will need to pay up:

90527.62 + 15.65 + 870.32 = 91413.59 EOS total

At current valuation, that stands at ~$914135.90 USD

RAM Functions in the Backend

So, let’s get a little technical here. We now know how the marketplace works, so let’s take a look behind the scenes and see how RAM functions work in the EOS contract. There are two participants in this transaction:

  • payer: Someone who pays tokens to get RAM.
  • receiver: Someone who sells RAM and receives tokens.

Without any further ado, here are the functions that deal with the buying and selling of RAM.

#1 buyram()

void eosiosystem::system_contract::buyram (

account_name payer,

account_name receiver,

asset quant

)

The first method that we are going to look into is buyram().

Based on the number of EOS tokens that have been provided, this method increases the payer’s RAM quota. The following happens on method execution:

  • The payer transfers a certain quantity of EOS tokens (quant) to the system contract. The payer can later reclaim these tokens via sellram(), which will be covered in a bit
  • Payer pays for the storage facility of the database records needed for this action.
  • Since RAM is a scarce resource, it is defined by the global “max_ram_size” property (more on this later).
  • RAM is also governed by the bancor algorithm such that it has a price-per-byte with a constant reserve ratio of 100:1.

#2 buyrambytes()

void eosiosystem::system_contract::buyrambytes (

account_name payer,

account_name receiver,

uint32_t bytes

)

In this method, they are computing the exact amount of RAM that the payer will get and also bill them in accordance with the current marketplace price.

#3 sellram()

void eosiosystem::system_contract::sellram (

account_name account,

int64_t bytes

)

This method is pretty straightforward. Reduce the receiver’s RAM quota and transfer the required number of tokens to their wallet.

#4 setram()

void eosiosystem::system_contract::setram (

uint64_t max_ram_size

)

Remember how we earlier said that the “max_ram_size” will determine the amount of RAM available for sale? This is the method which contains that variable.

Bonus

There is one more RAM related code that you should know. One of the most important features of EOS-based projects is airdrops. To keep it simple, anyone who creates a Dapp on top of the EOS ecosystem can give away their native tokens to any EOS holder.

Alright, so think about this.

The developer is giving away tokens to every single person who is holding on to EOS tokens. An operation of this scale is bound to cost a lot of RAM. EOS is all about making developing as friendly as possible. Apparently, once people claim the airdropped native tokens, the project creator can claim back their RAM thanks to this piece of code:

if( from.balance.amount == value.amount ) {

from_acnts.erase( from ); // <<< IMPORTANT LINE

} else {

from_acnts.modify( from, owner, [&]( auto& a ) { // <<< IMPORTANT LINE

a.balance -= value;

});

}

So, once the token owners move their airdropped tokens, they will become the RAM payers. Because of that, the project creator will recover the initial investment that they made on the RAM.

How Much Will Cryptokitties Cost on EOS?

A good estimation of how EOS will workout for developers is to calculate how much an existing Dapp would cost on its platform. Let’s take the example of one of the most infamous Dapps of all, “Cryptokitties.”

Cryptokitties is one of the most popular and widely used Dapps ever made, however, it did expose some glaring scalability flaws in Ethereum. Cryptokitties completely jammed up the network, in fact, it was so bad that a couple of ICOs, SophiaTX being one of them, had to postpone their crowdsale.

So, how much would running a Dapp of that scale would cost on EOS? For that, you need to keep in mind two things:

  • Like we have said before, holding EOS tokens allows you to have free transactions
  • As of right now, EOS manages 600 transactions per second in real life scenarios.

Till date, Cryptokitties has had ~393,000 sales in a ~7 month period. Let’s simplify that and round it off from 393,000 to 390,000. This means that they were able to do 393000/7 = 55714 transactions per month, which in turn is 668568 (55714*12) transactions per year.

Keep this number in mind, we will get back to it in a bit.

Let’s look at EOS in its current state right now. Like we said, it can do 600 transactions per second, which is 18,921,600,000 transactions per year. Also, keep in mind that EOS currently has 900 million EOS tokens in circulation.

So, this means that each EOS token, as of right now is going to produce (18,921,600,000/900,000,000 = ) 21 transactions per EOS per year.

Keep in mind that this rate is obviously going to go down because of the 5% inflation. But, to counter this the fact remains that EOS is planning to scale up and will eventually do much better than 600 tps. Also, like we have said before, the block producers are going to manually add resources to the ecosystem making the overall network perform much more efficiently. This should, in essence. circumvent the inflation effect.

So, let’s back to our previous calculation. Like we found out, Cryptokitties managed to do 668,568 transactions per year. In EOS, to do that many transactions developers will need 31,837 ( 668568/21) EOS tokens.

At current valuation, that roughly comes around $318,370.

#7 DPOS Last Irreversible Block Algorithm

The last irreversible block (LIB) is the most recent block which has been acknowledged by 2/3 of the network. In order to fully understand how it will work in EOS, there is one important concept that you should know about first, Finality.

Finality simply means that once an operation has been executed, it can’t be taken back. This is an extremely important concept in any field where any sort of asset exchange is involved. Consider this example.

Suppose you just spent a million dollars on buying a new house. There should absolutely be no way that just because of a glitch or a bug in the system, you will have to revert the ownership of that property. Once you have bought the property, it should be yours, no matter what. Can you see why finality is extremely important in scenarios like these?

So, how does this work in a blockchain?

When you want to classify blockchain consensus algorithm programs in terms of finality, they usually have to fall under the following two categories:

  • Given a defined set of validators, they produce 100% unambiguous finality.
  • Those that do not provide 100% finality but rely on the high possibility of finality.

The first generation of blockchain consensus algorithms such as Proof of Work (POW), traditional Proof of Stake (POS) provides finality without  100% guarantee. Bitcoin is the perfect example of this. Bitcoin is a POW coin which follows the “rule of the longest chain”. So, even if the blockchain branches out into normal chains, the longest chain will be considered the main blockchain.

Normally, in Bitcoin, the process of mining on a new chain and highjacking the entire blockchain is so expensive that it will extremely impractical for one to do so. However, the possibility still remains that a rogue institute can high jack the blockchain. Because of this, bitcoin does not really have 100% finality. Since the chain can be highjacked anytime, the blocks are not really irreversible.

EOS, as we have already discussed uses Delegated Proof of Stake aka DPOS. In a DPOS blockchain, there is usually a 100% block producer participation with a 99.9% transaction confirmation within 1.5 seconds from the time of broadcast with a 99.9% certainty. As we have said, the time is less because a node only needs to wait for >2/3rd of the 21 block producers to consent for a transaction to go through.

Anyway, so in the event of a malicious fork, what happens in a DPOS blockchain?

  • If a node misses 2 consecutive blocks there is a 95% chance that they in a minority fork.
  • If a node misses 3 blocks, then there is a 99% chance of them being on a minority chain.

That is a pretty amazing concept, however, further assurance needed to be given to make sure that finality is even more robust. Enter DPOS 2.0.

DPOS 2.0

DPOS 2.0 took things to a whole new level by starting the concept of the “last irreversible block” (LIB). The LIB is the latest block which has signed off by >2/3rd of the block producers. Since the majority of the producers have signed off on it, the finality of the block is pretty much assured.

As robust as this is, there is still an attack scenario. Let’s examine:

  • The DPOS network splits into two
  • Normally, this would cause one or both the chains to halt until one of the chains gain approval from 2/3+1 producers.
  • However, what 2 subsets of validators simultaneously switch forks which results in both the forks reaching 2/3+1 on 2 different blocks.
  • Because of this, there is a possibility of 2 different LIBs which kills finality.

As improbable as this scenario maybe, there is still a chance. So, to tighten the ship, even more, DPOS 3.0 was introduced.

DPOS 3.0

DPOS 3.0 came along with the concept of Inter-Blockchain Communication or IBC. IBC will allow one chain to prove to another the finality of its transactions. The idea is to slightly modify the LIB algorithm with DPOS 3.0 and Byzantine Fault Tolerance to ensure secure IBC despite all conditions. Just because of this slight change one can indefinitely prove that two nodes need to be in agreement about the LIB and 2 LIBs simply can’t exist.

In DPOS each and every block that gets created is essentially a stamp of approval for a previously mined block. So, that simply means if 70% of the producers have built on a particular block, then that block gets >2/3rd approval and hence achieves finality.

In order to know that let’s consider an attack scenario and see how both DPOS 2.0 and DPOS 3.0 will deal with this scenario.

The scenario plays out like this:

  • Consider a network with 3 producers: A, B, and C.
  • Suppose there is a loss of communication between producers A and B and they both end up making Block N at Time T (for A) and Time T+1 for B.
  • Now C creates block N+1 at time T+2 on top of B’s Block N.
  • A realizing this creates Block N+2 on top of C’s Block N+1 which completely contradicts his previously mined Block N.

Hmmm… that sounds interesting. Now let’s see how both DPOS 2.0 and DPOS 3.0 will work around this scenario.

Under DPOS 2.0

So, according to our problem, there are 3 block producers in this fictional network. So in order to achieve super majority in this network, you will need >2/3rd majority which is (2/3*3+1 =) 3 block producers. This means that for block N to get finalized in this network, all three producers need to mine on top of it.

Under DPOS 3.0

Ok, so how will this pan out under DPOS 3.0? Remember some of the key points from what we discussed earlier?

  • A and B discovered block N.
  • B’s block N got built upon and A’ block was ignored.
  • In fact, A also built on B’s block.

Under DPOS 3.0 however, the following will happen:

  • A will confirm the production of an alternative block N.
  • Following this disclosure, the network will simply not count block N+2 produced by A
  • Since this leaves B’s block N with only 2 votes instead of 3, it makes the block non-irreversible and it doesn’t gain finality.

Anyway, so how is all this going to be implemented?

  • Each producer includes the highest block number (H) that they have previously confirmed on any fork in their block’s header. So the highest block number is also included in block N
  • Only the blocks in the range H+1 to N is considered for irreversibility once block N is applied.
  • Now that the range has been defined, anyone who plans to corrupt the system by signing off on a block with a different range is considered Byzantine and is labeled accordingly in the network.
  • For two different blocks at the same block height to achieve 2/3+1 votes, the group needs to be divided threeway into 1/3, 1/3, and 1/3. One group of 1/3 produces one block, the other group produces another block while a malicious group of 1/3 signs for both the blocks.

There are only two ways that there could two blocks irreversible in this situation:

  • The >2/3rd majority sign two blocks with the same block number directly or indirectly
  • The >2/3rd majority sign two blocks with the same block time

Quite like DPOS, newer consensus protocols like Hashgraph, Casper, and Tendermint manage to gain proper finality as long as 2/3rd of the participants are non-Byzantine. The abstract blueprint for all these protocols involves:

  • Block proposal
  • Pre-commitment on the block must be issued by all the participants
  • All the participants when >2/3 acknowledge the pre-commitments
  • When >2/3 commitments are reached, block achieves finality
  • Finality agreement on the network is reached unless >1/3rd are Byzantine and the evidence of such malicious behavior is evident.

Trouble in Paradise?

There have been two serious issues that have plagued the EOS network.

Issue #1

Just 6 days before the EOS mainnet launch, a potential bombshell has been dropped on all the EOS holders. Qihoo 360, a Chinese internet and cybersecurity research firm, discovered a series of high-risk vulnerabilities on the EOS blockchain. In fact, some of these vulnerabilities can enable an attacker to control and take over all the nodes running on EOS remotely.

As 360 explains in their blog post:

“To compromise EOS, attackers craft and release smart contract containing malicious code. EOS BP(block producer) will executes the malicious contract that compromise the BP. Attackers then abuse the BP to pack malicious contract into new block, which causes the compromise of the control of the whole network.

Because the whole system is compromised, attackers can do whatever they want. For example, stealing the private key of EOS BP; controlling the transaction; accessing the financial and privacy data of any nodes in EOS network. (Digital currencies, user private keys in wallet, critical user information, privacy information and many more.)

Attackers can even turn the nodes within the EOS system to Botnet members, commanding them to form DDoS attack or mining for attackers’ sake.”

To summarize things, if an attacker does get remote control over EOS then they can:

  • Steal private keys and user data.
  • Control all the transactions.
  • Become a “free miner” and mine all the EOS tokens.

Issue #2

Vitalik Buterin, the man behind Ethereum, pointed out some possible vulnerabilities in the EOS consensus mechanism. He said:

“This does not seem to actually be safe. Consider a case with four validators, so we are allowed one byzantine. Suppose before time T the commonly agreed head is Z; then, at times (T, T+1, T+2, T+3), validators (A, B, C, D) make blocks extending a chain from Z. A now has votes from B, C and D and so is finalized. Now, before timeslot T+3 ends, D also (byzantine-ly) makes a block (call it D’) on top of Z. Then, at times (T+4 … T+11), (A, B, C, D, A, B, C, D) make blocks on top of D’ (this is ok because each validator is making a block at a height one higher than the block they previously made). The second A block in this chain has three votes and so is also finalized. Hence, two conflicting blocks got finalized.

In general, it’s not possible to achieve BFT safety on a block without at least two messages from most nodes that directly or indirectly reference that block; this algo tries to do it in one round and it’s likely impossible to actually do that safely. If you want an intuitive and good way of doing this, I recommend just using the algorithm in our Casper FFG paper.”

You can read the whole exchange between Vitalik and Dan Larimer right here.

Conclusion

EOS, for both positive and negative reasons, have garnered a lot of hype in the crypto space. The need for scalability has never been higher. However, this is an extremely competitive field. More and more exciting projects, like Cardano and Ziliqa, are coming into this space. Side fact, Dan Larimer and Cardano founder Charles Hoskins have been engaged in a war of words of sorts.

According to Larimer, the Cardano consensus algorithm, Ouroborous is a copy of DPOS. He said:

“I recently had an opportunity to review Cardano’s Ouroboros consensus algorithm as presented in a youtube presentation. The original paper can be found here. The marketing behind Cardano and Ouroboros is that it is the first “peer reviewed”, “provably secure” proof of stake consensus algorithm. Upon reading their paper it becomes clear to those familiar with BitShares 1.0, Graphene, Steem, and EOS that Ouroboros is a copy of Delegated Proof of Stake (DPoS) with a few counter-productive modifications. In fact, their paper refers to the term “πDPoS” 17 times without mentioning or recognizing any of my prior work.”

Hoskinson responded by saying, “There is no fight with EOS. Its EOS directly attacking us and having mobs of muppets spam our channels. I don’t care about Dan’s idiocy or his followers. I just can’t let him lie about our protocols and academic integrity.”

Plus, let’s not forget that Ethereum is incorporating sharding, plasma, and raiden network which is definitely going to scale them up exponentially. Given the strength of their community and positioning, they will invariably remain tough competition for EOS.

Having said that. EOS has a brilliant team and has been endorsed by some highly credible businessmen like Peter Thiel. It will be extremely interesting to see how their future is going to pan out. EOS is going to have a huge impact on the future of cryptocurrencies and blockchain-based projects.

1 Comment
  1. […] by /u/Yudonomi [link] […]

Leave A Reply

Your email address will not be published.