as announced, one of the mission of EOS Germany is to analyse and question different topics
in and around the EOS Blockchain. This article covers in particularly the potential strengths, weaknesses, opportunities and possible threats (SWOT style) from our perspective.
In the end, every serious Block Producer Candidate should ask himself the same questions - along with an "What, if" strategy.
In summary, we see a great potential of EOS but we do not want to ignore the weaknesses or threats.
Lets start with our analysis.
Block Creation Time
The on chain transaction processing capacity of a blockchain network is limited by the average block creation time (Bitcoin = 10 minutes) and the block size limit. These jointly constrain the network's throughput. For Bitcoin this means that the transaction processing capacity maximum is estimated between 3.3 and 7 transactions per second. For Ethereum block creation time is ~15 seconds.
EOS on the other hand, has a block creation time of 0.5 second. That is 1200 times faster than Bitcoin, and about 30 times faster than Ethereum.
BitCoin has a variable maximum block size, which depends on the transaction payload. It is commonly accepted that Bitcoin in practice has a 1MB block size limit.
Ethereum has a small block size, of about 89kB.
EOS has no hard limit of the block size, and in practice it will be limited to available network bandwidth and peering agreements between the Block Producers. Details of block propagation is difficult to understand, but as far as we can tell, each block produced needs to be propagated to not only the 20 peers, but the 100 or so validators and stand-by candidates. Even with 1 Gbps connectivity, it is unlikely that EOS can perform much better than 1MB per block. This is still about one magnitude better than Ethereum and not worse than Bitcoin.
Sidechains will play a major role in EOS and it will happen rather quickly. As we understand sidechains, it is a separate EOS blockchain, running at its full speed, which periodically (say once every 1 second) "folds" summary transactions into the main network. That means that if EOS can handle 1000 transactions per second, then 1000 sidechains will peak at 1million transactions per second.
The community is predicting that sidechains will be created align with certain industries, say travel, real estate, corporate law, as well as larger corporations and popular websites, for instance social media. Details on sidechains are still very sporadic, but it is not unique to EOS. Both Ethereum and Bitcoin communities have been discussing this, but it seems that no consensus can be formed.
The raw processing speed of EOS is at least 2-3 magnitudes higher than Bitcoin and Ethereum. With sidechains, EOS should be able to scale linearly to any size, as sidechains could have their own sidechains on them.
Lack of Fees
Unlike most blockchain technologies, EOS has removed transaction fees, smart contract fees and so on. Instead, the block producers (miners), get paid through inflation occurring on a daily basis, amounting to 0% to 1% per year.
To execute smart contracts, the owner needs to hold and allocate EOS tokens to this smart contract. It is similar to office space for companies. And like office space, it is possible that there will rise a market for renting the EOS tokens needed, instead of buying them outright, which could be a better alternative for early stage startups and individuals.
Once the tokens are staked into the smart contract, they are no longer available for the owner to sell to someone else. All types of resources needed for the smart contract needs to the staked, such as CPU, Bandwidth and Storage. EOS mentions that the staked tokens can be unstaked, but it is not 100% clear what happens to the smart contract. In the last release, RAM was changed from being a staked resource to be a tradeable resource. This means that one can buy and sell RAM at market prices, which opens up the door for speculators (see Threats - RAM Trading).
To summarize, there will be no transaction fees and no fees for running smart contracts, but one needs to own a stake in the overall infrastructure for contracts to be executed. Such ownership will drive up the price of EOS, benefiting block producers with higher inflation remuneration and an incentive to build out of more capacity. More capacity should lower the price per resource, and a stable equilibrium should eventually arise.
The EOS programming model for EOS applications (known as dApps) is quite remarkable.
Ethereum spearheaded the Smart Contracts, by creating the Ethereum Virtual Machine and designed a relatively simple, but brand new language for to be used by developers. This allows for good control on what the smart contracts are allowed to do.
EOS took this one step further, and executes WebAssembly code as smart contracts. Not only does EOS allow any WebAssembly capable language and toolchain to be used, but it allows arbitrarily complex applications, which is quite challenging to create with Solidity, the language on Ethereum. The programmers will use their favorite IDEs, toolchains and frameworks (provided they compatible with the restrictions, see Security below).
An important feature of the programming model is that not only can the smart contract be triggered when an interaction with it occurs, it may also be triggered at regular intervals, allowing smart contracts to keep doing things over long periods of times, such as dealing with expiry dates, regular checks of conditions still being valid and much more.
Security is a non-negotiable aspect for any asset related software. EOS follows the tried and tested path of Bitcoin and Ethereum. Additional to the accounts and transactions being immutable and secured through the cryptographically hashed chains, EOS faces the challenge to secure the smart contract execution to withstand malicious attacks.
A few constraints on smart contracts are in place to secure the blockchain environment from attackers.
1.No O/S level system calls. EOS hosts will provide limited APIs to replace system calls, including storage access, networking and threading.
2.All WebAssemblies run in the same process for performance reasons. To ensure memory integrity across WebAssemblies, each WebAssembly has a 32bit limited memory space, and a full 32bit memory segment is allocated to the WebAssembly, even though it only uses a fraction of that. IF the WebAssembly tries to access memory outside its allocated memory, there is no risk that another WebAssembly's memory is hit, and instead a memory segfault will be caught, the blockchain host will throw away the allocated memory, disable the smart contract and register the fault/trap. This means that process integrity can be guaranteed, even in the face of rogue applications.
3.Smart Contracts are only allowed a short execution time. Currently set at some milliseconds.
EOS community is large, diverse and very active. BitCoin Cash and Ethereum are possibly still larger communities, but we estimate that many developers will move from Ethereum to EOS because of the programming model mentioned above. EOS will be the preferred choice of developers, and we expect that alone is enough to make the EOS eco system the most flourishing out there.
block.one - Capital Raised
block.one has received a lot of money in exchange for the Ethereum-based ERC20 token, with a public promise that those tokens will be converted into tokens on the EOS blockchain. block.one has reportedly received >$1billion in the sales of a useless Ethereum token, and everyone who is buying into that is believing in Dan Larimer's promise that the money will be used to strengthen the EOS eco system, primarily buy providing this war chest to VCs to fund (and take equity stake) EOS-based start-ups.
$1billion is a lot of money, and VCs are likely going to multiply that by a factor of 2-5 from other investors who wants to be in on the EOS dApps creation, which would put the EOS VC market on par with the fiat currency VC tech market. Once there are a few killer applications, it is not unreasonable to think that there might be a independent dotcom-type craze over EOS startups, and out of that will come both incredible successes and spectacular failures.
block.one is wise to not try to be a VC, the arbiter of projects, but to engage companies that specializes in this.
Lack of Decentralization
It is said that you can only have one of Security, Performance and Decentralization, and EOS has chosen Security (non-negotiable) and Performance, i.e. selected to not worry about Decentralization. Many people, including Ethereum's front man Vitalik Buterin, are openly criticizing this choice, and claiming that it is not acceptable to trade away Decentralization. The claim is that 100+ block producers are not enough to withstand an attack by governments, and that EOS will be shutdown if governments decide this. Unlike Bitcoin and Ethereum, which is claimed to be able to withstand government intervention (also see Threats - Government Intervention)
Considering Dan Larimer's "anarchy-capitalist" stand point, this choice is quite remarkable, as one would expect him to mostly worry about government intervention, and then figure out how to solve it. Perhaps the thinking is that the block producer candidate pool can grow slowly, especially in other parts of the world, as the Internet bandwidth and capacity grows.
block.one - Influence
block.one has special rights in EOS, without peer participation. block.one says that they are not going to operate (or be part of operating) the EOS blockchain. They claim that it is up to the community to do so, and so far the community has stepped up the task, and it seems that EOS Canada is leading the way for a mainnet launch in early June, without block.one.
block.one demands to retain 10% of the EOS tokens, giving them a unique position in voting, and ability to utilize the resources that Block Producers make available.
American citizens have been prevented to participate in the EOS trading, largely due to the uncertainty of Ethereum's status as a security, investigated by the SEC at the moment. Many American individuals is indicating that they are still going to participate in the EOS launch and running of the EOS blockchain. At that time, the ruling on Ethereum's ICO is moot for EOS community, and possibly the "murky" way that EOS is set up (see Threats - Scam) is simply block.one's attempt to avoid SEC investigations and spare EOS the pain that may come from that.
In the list of block producer candidates, there are relatively few European actors (<20%), and part of the situation there is likely similar to the SEC situation in USA, it is unclear what the governments will do and few people are willing to risk getting into the cross-hair of regulators.
Although China government are typically more draconian when they strike, Chinese entrepreneurs are plentiful and willing to risk everything. This may in part be to the potential upside for block producers outweighing their evaluation of risk, compared to more risk averse Western cultures. Chinese dominance of EOS will not be good for the EOS eco system as a whole. Not only are Chinese operators more likely to take profit rather than giving back to build the community stronger, but the "giving back" will be solely to other Chinese entrepreneurs, mainly due to language and culture. Not to criticize the Chinese alone for this, it is very likely that Western operators are more likely to strengthen Western entrepreneurs in the same fashion.
It is important that a good balance is found, with a geographically diverse set of block producers, to both build communities around the world instead of a few places, and to better withstand any attacks from governments (see Threats - Government Intervention)
block.one - VC
block.one has publicly committed to funding EOS startups in the tune of $1billion. IF we assume that this is mostly in smaller and early startups, we are talking 100s of new applications to get a better chance in succeeding. EOS will take equity stakes (possibly quite large stakes) in dozens, or more likely in hundreds of small companies, some of them with potential to grow enormous. block.one is set to grow its capital even further than it has, and if nothing goes wrong one of the largest non-listed private companies in the world.
Being a block producer pays out in EOS, and even with the new 1% limit, which is shared among all candidates, the reward is in our eyes quite generous. IF EOS retain the $15billion market cap, the block producers are receiving $150mil per year, divided unevenly among 100-150 block producer candidates. If EOS succeeds to launch dApps, the price of EOS will go up, possibly 10x and that will provide block producers the capital to not only expand the infrastructure, but also fund development of the EOS eco system at different levels. Block Producers that optimize for profits only, are likely to receive less votes and hence less funding.
Thanks to the performance of smart contracts, possibly only 10-30% performance hit over C/C++, it is likely that many entrepreneurs will create decentralized versions of successful centralized applications, such as Twitter, Facebook, Instagram, Reddit and so on. Entrepreneurs will experiment with financial services, travel, logistics, IoT, real estate, car and other capital goods sales, auction systems like eBay, eCommerce sites like Amazon and Alibaba. In essence, it is not out of the question that every single popular website today, are under the threat of becoming obsolete very quickly.
The success and timescale will depend largely on development of consumer grade EOS wallets and other clients, fiat/EOS gateways and other support systems in the eco-system, all new fields for entrepreneurs to explore and develop.
block.one - Scam
The block.one sales agreement of the EOS token sales is a remarkable read. Paraphrased; We us your money, and we will give you a cryptographic number with absolutely no present or future value, and doesn't give you any rights whatsoever for anything. block.one will spend the money you gave us in any way we want."
IF this is a scam, the defense for block.one would be "We told people it is a scam, and they still wanted to give us the money". And this is glaringly obvious and should make everyone in the community nervous to the bone.
The public promises from Dan Larimer and other block.one officers doesn't hold up for anything, and the community simply has to take their word for it.
Now, not only has block.one raised an enormous amount of Ethereum (Bitcoin?) and possibly liquidated a significant portion of that to cash, but block.one also DEMANDS 10% of the EOS coins of the EOS blockchain, without having to pay for it. In essence, they get paid TWICE for effectively NOTHING. The community could decide to not honor block.one's 10% on the EOS blockchain, and that would probably lead to block.one not investing in EOS dApps companies, IF they indeed expect to do so.
It has been quite a long time since block.one announced VC partnerships constituting many 100s of millions of dollars, but we can't find a single announcement of any of these VCs are funding any startup. It should be in block.one's interest to have multiple dApps ready to be launched on the EOS blockchain as soon as possible, and one would have expect that at least a handful, and more prudently dozens, of startups to have been funded by now. This is a massive red flag.
The community, i.e. the EOS token holders, decide what the inflation rate should be. This rate is anywhere between 0% and 5%. The Block Producers wants a higher inflation rate as the inflation is paid to the Block Producers, active or standby ones at different rates. The Dawn 4.0 release of EOS in May, there was a change to limit the pay out to Block Producers et al, to 1% and any inflation higher than that would be "savings", with a note of "to be allocated by future worker proposal system". Researching this, we find that the community can make proposals (posted on the blockchain) and the token holders can vote for up to 20 proposals. And the surplus inflation (award) above the 1% is distributed, pro-rated among the worker proposals, but with limits so that maximum 100 proposals are rewarded on any given day.
We are not entirely sure what this is for, but it sounds like block.one is trying to get a large share of the inflation, without being a Block Producer, which they have publicly claimed to not become. And with their 10% voting power, it seems that they can guarantee themselves more than 10% of the inflation above 1%.
The 1% must finance both the maintenance of existing infrastructure as well as the build out of more infrastructure to support more dApps. This means that inflation must carry on forever, and is not tied to expansion of the overall economy. This sounds to us non-sustainable in the long-run, similar to Keynesian expansion of government spending. Eventually, it could be that the compounded rates will catch up with reality, and all available inflation is not enough to maintain the system, let alone expand it. Progress in computing hardware performance and pricing are hard to predict, and it could be that this is simply not true in the foreseeable future.
Furthermore, the pure investors has no interest in inflation, as without inflation the tokens will get increasingly more expensive which benefits them. And IF inflation hits 0%, then the Block Producers will eventually shut down resources, creating havoc on the EOS network. Since voting on inflation is an on-going matter, investors could even try to manipulate inflation in the short term to maximize profits, and this would be unknown territory when it comes to volatility.
Finally, block.one argues that as more and more dApps gets on EOS, the token price will increase, incentivizing (and providing the funds to) the block producers to expand capacity. But this implies that dApps demand will also drop as EOS token price goes up, and there will be a time lag between rise in demand and rise in capacity occurs. Whether such dynamic system will be able to function and find working equilibriums and stability remains to be seen, especially since fate of block producers are also in the hands of day-trading speculators of EOS.
In our estimations, it would have been better to tie the inflation directly to dApps demands on the blockchain, but we recognize that both the bootstrap process and the mechanics would have been much harder to solve.
EOS runs WebAssembly applications on the servers of the network. WebAssembly is a relatively new technology, similar to the Java Virtual Machine. Part of WebAssembly is measures to counter security threats, similar principle to the sand-boxed Java Virtual Machine. It must resist attempts of applications to make operations that may harm the system on which it is running. The problem with new technology is that the security threats are relatively unknown and it is difficult to anticipate what could go wrong, where its strengths are and what the weaknesses of it are. EOS will inherit all the problems and risk of WebAssembly. Furthermore, WebAssembly was initially created for web browsers, with a different set of attack vectors, so the EOS system must also cover additional threat vectors that may not be present in a web browser, for instance things that the browser already protects against.
Has the block.one team invested enough resources into analyzing and countering these threats for EOS? It is difficult to know for sure, and even if substantial resources has been allocated, it is impossible to know if it has been good enough, and that hackers won't be able to disrupt, penetrate or destroy EOS.
Block Producers will need to not only invest in monitoring strange activities, but also have reserve man-power that can step in and fix/upgrade the EOS software with very short notice. A cost that might be under-estimated by many block producers.
RAM Trading Market
The latest release of EOS, version Dawn 4.0, introduced the concept of RAM Trading, rather than staking, for smart contracts. This opens the door for speculators to buy RAM early and cheap, hold it for memory prices to go up and sell later. This may create a highly volatile environment for dApps developers as they compete with the speculators for said RAM. Absent a Futures or Options market, where dApps developers can trade away some of that risk, we think that the RAM Trading is a threat to dApps developers and may hamper dApps growth in the long run. The counter argument is that RAM trading is going to have a 1% transaction fee, which will be used to fill the inflation requirements, meaning that if too frequent RAM trading is occurring, funds are slowly siphoned from speculators to block producers and worker proposals, eventually making RAM trading a poor investment. As this is a completely new concept as well, only time will tell whether the predictions of market behavior long-term will come true.
There is currently no hard block size limit. And potentially this could result in a breakdown in the entire EOS block production, as some block producers may accept a larger block size than others. Initially, this is unlikely to be a problem, since everyone runs the same code and it will be difficult for the users to saturate the capacity. But it could linger as an undetected threat, a time bomb, which could create a meltdown if not fully investigated and attended to.
Block Producer Collusion
Even Satoshi Nakamoto didn't anticipated the rise of mining pools and ASIC miners, the first effectively being a method of collusion and the latter creating very large miners. This threatens the entire network if a small number of participants collude to take control of the network.
On Ethereum, 2-3 mining pools control more than 50%, and less than 10 controls >95% of the hash rate.
On Bitcoin, the situation is a little bit better, where about 4 actors control 50% and the top 10 has control over about 80-85% of the hashrate.
EOS doesn't try to decentralize the block production (mining) and instead gives the token holders the voting power to kick bad actors out of the network. However, there doesn't seem to be any prevention that a group of Block Producers collude to outperform the official block producers, and if clients are not fully aware of the tug-of-war that could ensue, the malevolent actors probably could take control of the EOS blockchain and even remove the voting mechanism altogether. This would of course create a massive crisis and possible collapse of EOS. The argument against this is that Block Producers not only have a large investment in EOS infrastructure and direct, recurring financial benefit derived from the success of EOS. However, one can not exclude the possibility of hostile attacks on these networks by forces that wants to disrupt successful block chains. This is one possible attack vector.
Governments have enormous incentives to retain the monopoly of currency supply. If any crypto-currency threatens that monopoly, it is extremely likely that governments will use their other monopoly violence to strike down on such competing system.
Some EOS block producers have argued that this threat is the reason why block producers need to remain largely anonymous, or at least their location to be unknown, and that the communication between block producers should also be unknown except between each peering pair. Other EOS block producers are keen on working with the governments, be regulated and get the blessing to avoid violent actions from the government.
Both of these views seem reasonable positions to have, but the question still remains; Will governments allow EOS to be ultimately successful, or will they intervene before that happens? Impossible to know. If governments around the world collude to strike down on EOS together, it is unlikely that EOS will be able to withstand this, due to the relatively small number of block producer candidates and their public identities. But a single government is unlikely to be able to affect EOS significantly and even with a large participation rate from China, we think that the disruption to EOS will be minimal, if China government decides to intervene in China.
Criminal attacks comes in many shapes and forms. But the big influence that block.one will have on EOS it seems that they are a particular big target of criminals, ranging from cyber-attacks, kidnappings, infiltration and espionage. Even if an attack is not gaining any direct access to block.one's power in EOS, the markets are likely to react negatively, and ultimately it depends on how resilient EOS community and markets are to bad incidents in general.
EOS is highly dependent on good Internet connectivity. There has been black swan events in the past, that if happened today, would bring down EOS at least temporarily. 10-15 years ago, Asia was almost completely disconnected from the rest of the world, only a few % of bandwidth available, and often many seconds ping time for the packets that made it through. Many other under sea cables have been cut for different reasons, mostly due to earth quakes.
A major breakage of deep sea cables could limit connectivity to the point where EOS will not function properly, due to its dependency on bandwidth and latency. China is also a special case. Its government have a on/off switch for the entire Internet which it is not afraid to use, in full or selectively. Previous serious Internet interruptions in China includes the CCP Congress and celebration of the CCP creation. Sept/Oct in 2019 is likely to have interruptions to some degree, due to 70 years anniversary of the formation of People's Republic. Hence the importance of not too many block producers in China.