The Best Thing to Happen to EOSIO
By Douglas Horn
“Telos is the best thing to happen to EOSIO since the mainnet launch”
They say it’s good to start off with a bold statement…or a joke. Some in the EOS world may see my opening statement as the latter. Let me tell you why it’s absolutely true.
Admittedly, there’s not a lot of competition for, “the best thing to happen since mainnet launch.” In the months since the network launched, it has faced crisis after crisis. Many people are working valiantly to improve the situation, but their efforts are often dragged down by EOS realities that can’t be changed. Now, if a new major DApp were to deploy on EOS, that would probably win the “Best Thing” title handily, but that hasn’t happened. Instead, big DApps like ONO are leaving EOS to build their own chains rather than continue on the mainnet.
Doubling Developer Confidence
One way Telos helps EOS is by doubling the EOSIO network options for DApp developers looking for a third generation blockchain to build on. Since different blockchains have different requirements, libraries, and even programming languages, developers need to make costly decisions about deployments long in advance. Right now, the next wave of DApp developers are discussing whether to build on EOSIO, Ethereum, Tron, NEO, Cardano, QTUM, R-Chain, VeChain, or others. No doubt, the challenges that the EOS mainnet is experiencing are unnerving. No one wants to spend millions building their DApp on a blockchain at risk of implosion. They may decide they are better off rolling the dice on Ethereum, somehow figuring out how to scale, or Cardano ever releasing a public network.
Developers considering EOS with an eye on the bottom line see Telos as a fallback in case EOS doesn’t get its act together. That isn’t conjecture; developers have told me precisely that. Businesses are risk-averse. Telos gives DApp developers confidence in the decision to build their software for EOSIO because in a few months when the DApp is ready to deploy, they are twice as likely to have at least one solid network to deploy to — and if they’re really lucky then they’ll get to choose between two great networks. It is a win for the EOSIO ecosystem, for Telos, and for EOS, because DApps that otherwise might have been built for R-Chain or Tron will instead be choosing between EOS and Telos. It bakes us a much bigger pie to slice up.
Figuring out Forks
Another way that Telos is helping EOS is in forcing issues around future forks and sidechains. While some believe that Telos is just changing the token name and away-we-go, in fact, a ton of development is being done to get the EOSIO software ready to be anything other than EOS. This is something we have to address even before we start creating the new innovations we are adding.
EOS has always been intended to include forks, sister-chains, and sidechains, but there are a lot of holes around implementation. Telos is filling those holes with working code, then testing and leaving good documentation and highly customizable functions. That way, Telos or future code forks can easily update these functions to dial-in many types of new EOSIO blockchains. Because Telos developers are doing all the heavy lifting, you can expect that the vast majority of future EOSIO forks will come from the Telos branch.
Probably the biggest gift Telos is giving EOS is a new set of developers creating entirely new EOSIO innovations. The Telos development team has effectively doubled the amount of core EOSIO programming that is now occurring. Already this is paying dividends in new code and approaches that can benefit everyone in EOSIO. If you haven’t been paying close attention to the Telos Github repos, let me tell you about three of these big innovations that EOS should consider adding right away.
A well known problem on the EOS mainnet is that many voters ignore their ability to vote for several block producers and instead only pick a few. EOS holders can vote for up to 30 block producers and their votes are not diminished by voting for more than one. The intent was to get people informed about block producers and spreading their voices. Voting for a larger number of block producers means that votes aren’t just concentrated around a few leaders. Of course some people do vote the full 30 possible, but far from all. There are two concerning reasons why people only vote for a handful of BPs. The first is that they haven’t taken the time to learn about the BP candidates and are just voting for a few they have heard about. The other is that they are affiliated with BP candidates and want to maximize the impact of their votes. And when you have 20 million votes, that impact can have a big effect. Neither type of voting is the kind we should reward.
BP affiliates who vote for a small number of candidates are gaming the system or “weighting” their votes by only giving them to a few BPs. This is a major contributor to the voter concentration problem on EOS. Telos intends to solve this problem by “inverse-weighting” votes to neutralize this weighting strategy. Essentially, voting for fewer candidates reduces the weight of each vote. The code is parameterized and documented so that blockchains may implement different floors, ceilings, and slopes to dial in voting power exactly as their chain governance prefers.
Inverse-weighted voting is an important part of how Telos will keep voting power best serving the needs of the network and all of its users. This is actually even more important in EOS because of the hyper-concentrated voting power on the EOS mainnet. Inverse-weighted voting would help address real problems around EOS voting and BP selection. Inverse-weighted voting is available on the Telos Github at: https://github.com/Telos-Foundation/telos/blob/master/contracts/eosio.system/voting.cpp#L293-L437
Rotating Block Producers
The EOS network is operated by 21 elected block producers. There are a number of standby BPs, but unless they are elected into a BP position, they never produce blocks. The whole idea behind having standby block producers is to have additional block producers at the ready to produce blocks at a moment’s need. Except that the system does not actually work like this.
First, standby BPs are never tested for their ability to step in and do the BP job. Never.
Standby BPs can run much lower powered computers as their nodes. It’s almost impossible to monitor the guts of another computer from the outside, so as long as the computer is running Nodeos and the producer plugin, it looks like a block producer — but it would struggle — or, more likely, fail — to step in and run the network if necessary. Without regular testing, block producers lower on the list are incentivized to appear ready but not be ready. After all, it costs money to run real enterprise-grade computers and networking, but what really gets a BP paid is votes. So a standby BP’s best move is to maximize their resources towards getting elected, and worrying about how to run the network when that gets close to happening. As a result, there are probably fewer than a dozen standby EOS BPs who could actually step in right now to fill in for an ailing elected BP without a lot of quick upgrades. The majority are façadesput up to look real and with the plan of quickly figuring it out if they are ever actually elected.
Frankly the fact that EOS standbys aren’t readiness-tested hardly matters, though, because even if they were, there is no mechanism for rotating them in to replace an elected BP. This entire system is a network security failure waiting to happen. Already, real crises are emerging on the EOS mainnet around these issues. Again, Telos has a solution to offer.
Telos regularly tests the readiness of standby BPs by rotating them into block production. The 30 Telos standby BPs are rotated into service for 6 hours every 5 days. A side benefit is that BPs get regularly scheduled maintenance windows, which is also good for network health and lowers the cost — and some of the stress — of running a BP. Creating this function was a large project for the Telos development team because it involves changing the way BPs are scheduled and how that schedule is updated. It’s a cool gizmo, and it works. And once you have a system scheduler that can make modifications on the fly, suddenly you have a way to painlessly rotate non-producer BPs out of the schedule for a while so they can make repairs and the standby BPs (who are tested and ready) can slide right in. And none of this has to be a big freaky deal because now the system is actually working the way most of us thought it was supposed to work all along.
Rotating block producers is also ready to go right now. We are still performing tests on the Telos testnet, but everything has been working as planned and now we’re just throwing wrenches to see if it can dodge them. We are in the process of adding functionality to remove non-producing BPs from rotation after 30 minutes. The Telos team encourages EOS, our big sister blockchain, take this. It’s a gift. It will help you be a better network. Rotating block producers is on the Telos Github: https://github.com/Telos-Foundation/telos/blob/master/contracts/eosio.system/voting.cpp#L80-L189
TIP-5 Standard Tokens
Billions of dollars of value have been built on the Ethereum ERC-20 token standard. EOS, itself, was first sold as an ERC-20 token. But EOS has no equivalent standardized token like the ERC-20. The eosio.token contract offers much more limited functionality than the ERC-20 standard and requires a BP multi-sig vote to upgrade. For example, the eosio.token interface offers only “create”, “Issue” and “transfer” functions.
The Telos development team has created a token standard for EOSIO called the TIP-5 (TIP stands for “Telos Improvement Proposal”) which incorporates the expected elements of an ERC-20/ERC-777 token for the unique needs of EOSIO. The current TIP-5 interface includes five additional basic functions (over eosio.token) and four helper functions for a much more robust and useful token standard. The TIP-5 standard has been deployed on the Telos testnet as the Telos Test Token (TTT). It uses the RAM-handling requirements of EOSIO and allows a user to create or destroy their own entries in a table at minimal cost (only the first entry needs to be created for any token at a RAM cost of about 8 bytes per entry) and recoup that RAM, if desired, when no longer storing that token.
This standard will make token creation much easier on the Telos blockchain. It will also aid in DEX (Decentralized Exchanges) operation. We are already speaking with DEXs and trading wallets about the ease of integrating these standardized tokens in the future. Expansions of the TIP-5 token standard currently underway will explore adding Plazma technology and other elements that will serve as important first steps toward DPOS inter-blockchain communication (IBC).
Again, the TIP-5 token standard is ready and available in the Telos Github repository for anyone on EOS to use. We are still finalizing the standard and welcome input. Fortunately, we don’t have to wait for EOS users to adopt this standard as we must with inverse-weighted voting and rotating block producers. We have already started using TIP-5-standard tokens on the EOS blockchain as the DPOS token (DPOS), a valueless token designed to help implement IBC across DPOS chains. The contract name is “dpostokenibc”. Send us a message on the Telos Foundation telegram if you’d like us to send you some https://t.me/hellotelos .
Growing Up and Giving Back
Telos is still young. We won’t even call our first vote on launching our network until September 28th. But we are growing fast and we are excited about the ability to contribute things of real value to EOS and EOSIO. The code is ready and tested on the Telos Github repository. The Telos development team is standing by to answer any questions you may have about implementing these new features. We encourage EOS to take a serious look at how some of these innovations could be a part of the solution to the EOS network’s current challenges. I truly believe that Telos is the best thing to happen to EOS since the launch. If you look at what we are offering in terms of doubling investor confidence, paving the way for future forks and sidechains, and adding important code innovations, maybe you will believe in Telos too.
Join the Telos conversation and get more info!