Yes, EOS is a blockchain

We at the EOS Alliance are delighted to get poked, prodded and challenged because we are, to use Nassim Taleb’s term, “antifragile”. As a community, technology, and a platform EOS gets stronger from such stimulation. And we have just been stimulated by a provocative paper released by Whiteblock last week.

A humble suggestion

Whiteblock collected an impressive list of Ethereum resources to help with the paper. But they only recruited Ethereum folks for the project. That now looks like a mistake.

The researchers not only didn’t collaborate with anyone who is deeply intimate with the EOS code base, they also didn’t vet their preliminary findings with anyone with the knowledge to point out mistakes.

As a result, their paper contains numerous errors, some quite basic (they define an EOS “epoch” as 126 blocks; it’s been 252 since before launch), making the paper confusing for readers who might not be familiar with the intricacies of blockchain technologies.

While the EOS community fully digests and evaluates the Whiteblock paper (link), there are a few misunderstandings that we can immediately clear up so that we can have a more thoughtful discussion and analysis.

Throughput numbers

Whiteblock is convinced that EOS, based on their lab tests and assumptions, “transaction throughput in the system does not exceed 250 TPS”, and asserted that in “tests with real world conditions … performance dropped below 50 TPS”.

Much like the mythical aerodynamics expert who ‘proved’ that bumblebees cannot fly, the Whiteblock researchers might want to heed the advice given to every budding scientist: “When the facts contradict your theory, you need a new theory.” You see, EOS and other Graphene based blockchains routinely show performance approaching 4,000 TPS in actual daily production operations. (I humbly submit that ‘the real world’ must be considered more real than ‘tests with real world conditions’.)

Check out this blocktivity.info report (Last data update 2018–11–05 / 03:30:01). Notice where Bitcoin is (no. 5). Notice where Ethereum is (no. 6). This is a list of actual users of blockchains, not just people talking about the blockchain or pitching the blockchain or hyping it. Using it.

The number 1, 2, 3, and 4 most used (and arguably most currently useful) blockchains have in common:

  1. They all share the same Graphene code. №2 is EOS and №1 is a fork of EOS. They all are forks of Graphene and thus all the direct or indirect creations of EOS architect Dan Larimer.
  2. They all have real business use cases, staying power, and now traction.
  3. None of them are from a Fortune 1000 company or a government.

Is EOS a blockchain? Yes, just as much as Bitcoin is

The authors claim that EOS “is not a blockchain” and justified that statement by conflating the general definition of a blockchain with some specific features of Ethereum. EOS core developer wanderingbort, responding to the claim “All of these actions operate in an environment that lacks cryptographic validation of the contracts and transactions,called that statement:

“…misleading, the only defensible aspect is that EOSIO does not commit to the materialized persisted state through something like a Patricia merkle tree.
“This is true, we commit to that implied state in a different way. It is worth noting that the UXTO [Unspent Transaction Output] is not explicitly committed to in Bitcoin either, it is a materialized view of the state deterministically implied by the chain. If you search for UXTO commitments you can see that they are an addition to the core protocol that gives extra properties. Not validity or safety. EOSIO [is the] same with its state. So, if that is the defensible definition, then Bitcoin is also not using cryptography to validate transactions and results.”

What wanderingbort is saying is, Ethereum differs in how it commits transactions to the “implicit state” that is the current reality of the data on the chain. Neither Bitcoin nor EOS do it the way Ethereum does it. (I would be curious how many projects that aren’t Ethereum clones use the Ethereum approach to committing transactions to the materialized persisted state of the chain.) And Whiteblock wants to use this difference to claim that “EOS is not a blockchain” — by their private definition.

If Whiteblock would like to stake out the claim that Ethereum is a blockchain, while neither Bitcoin nor EOS are, well, we welcome that dialog. If not, then Whiteblock might want to admit publicly that EOS is indeed a blockchain, for any meaningful definition of the term.

I suggest that if a distributed ledger meets these criteria, it deserves to be called a blockchain:

  1. A growing list of records, grouped into blocks
  2. Blocks are linked using cryptography
  3. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data
  4. Transactions and blocks are validated by multiple independent devices who reach agreement via a consensus mechanism

If I’m missing a criterion, please challenge me. If I agree I’ll update this article and give you credit.

Are transactions only validated by 21 nodes?

The authors also appear to claim that EOS transactions are confirmed only by 21 block producers. They seem unaware of the function and implication of Transactions as Proof-of-Stake (TaPOS), a core feature of the EOS software. As explained by user Fuzzy:

The EOS.IO software requires every transaction to include part of the hash of a recent block header. This hash serves two purposes:
* prevents a replay of a transaction on forks that do not include the referenced block; and
* signals the network that a particular user and their stake are on a specific fork.
Over time all users end up directly confirming the blockchain which makes it [impossible to “replay” their transactions] to forge counterfeit chains as the counterfeit would not be able to migrate transactions from the legitimate chain.
This is because of transactions as proof of stake (tapos)
And it makes it so every client helps validate the blocks

In other words, each user transaction cryptographically includes the hash of a recent irreversible block, as identified by their local node. This is the block that the local node agrees is valid (every local node independently validates every transaction). Thus the transaction (A) cannot be used in a replay attack on a fork that doesn’t include the irreversible block, and (B) indicates that the referenced block is in fact valid and irreversible from the perspective of that local node. This is only possible because the local node validates each block as it’s added to the local chain, and those local validations are then incorporated into the chain via future transactions’ TAPOS.

This neatly disproves another of the authors’ claims, that users can only access the EOS mainnet through one of the top 21 block producers. In reality users can access through any connected API or peering node, BP or not.

Let’s filter out further folly

Now that we’ve made our point and refuted some claims, we offer the following as a filter for folly.

The EOS Alliance is focused on maximizing legitimacy. As EOS fan Alex Lightman often says, legitimacy is generated by doing three things:

  1. Seek the truth
  2. Speak the truth
  3. Practice what you preach.

We have included below dozens of links to facilitate taking step 1, seeking the truth.

So that future critics can better take step 2, speak the truth, we invite you to show to me and other members of the EOS community a draft of your next critique and to let us point out mistakes before you potentially embarrass yourself in public. We’ll give our comments within 72 hours, and you can even quote us in your finished published piece.

The EOS resources are below. Welcome to the greater EOS community.

Respectfully,

Thomas Cox
Interim Executive Director
EOS Alliance

PS: I’m continuing to edit the list below, as more links are brought to my attention. Please continue to do so.


EOS General

EOS General Chat (English): https://t.me/EOSproject

Non-English General Channels

EOS Arabia: https://t.me/EOS_Arabia

KOREOS: https://t.me/koreosio

EOS Korea: https://t.me/EOSIOKorea

EOS China: https://t.me/EOSCN

EOS Romania: https://t.me/eosro

EOS Russian: https://t.me/EOS_RU

EOS Russian Trading: https://t.me/eostraderu

EOS Italia: https://t.me/EosITA

EOS Spain: https://t.me/eosEs

EOS Suomi (Finland): https://t.me/eossuomi

EOS Test Networks

EOS Jungle Test Network: https://t.me/jungletestnet

EOS CryptoKylin Test Network: https://t.me/cryptokylin1en

EOS Community Test Network: https://t.me/CommunityTestnet

EOS Scholar Test Network: https://t.me/ScholarTestnet

EOS Developers

EOS Index (List of current EOS projects): https://t.me/eosindex

EOS Developers: https://t.me/joinchat/EgOVjkPktgfUS3kt14FStw

EOS Game Developers: https://t.me/EosGameDevelopers

EOSDocs.IO (EOS Documentation): https://t.me/eosdocs

EOS Non-Fungible Token (NFT) Standard: https://t.me/eosionft

LetsBuildEOS: https://t.me/letsbuildeos

EOS Wallet Development: https://t.me/eoswalletdev

EOS Education: https://t.me/EOSEDU

EOS Spanish language developers https://t.me/eosDevEs

EOS Developer Tools and Tutorials

https://developers.eos.io/

https://www.eosdocs.io/

EOS Block Explorers, network monitors, and other publicly available data

Bloks monitor https://www.bloks.io/

EOS Tracker https://eostracker.io/

EOS Titan https://voters.eostitan.com/labs

Monitor https://eosnetworkmonitor.io/

EOS Flare https://eosflare.io/

EOSQ https://eosq.app/

My EOS Kit https://www.myeoskit.com/

Node Monitor https://eosnode.tools/monitor

EOSPark https://eospark.com/

EOS Go https://www.eosgo.io/

EOS Topic Specific Channels:

EOS Block Producers: https://t.me/EOSPros

EOS Opportunities: https://t.me/eos_opportunities

EOS Design: https://t.me/EOSdesign

EOS Marketing: https://t.me/EOSmarketing

EOS BP Startups: https://t.me/bpstartupbusiness

EOS Jobs: https://t.me/eos_jobs

EOS BP Infrastructure: https://t.me/BPInfrastructure

EOS 911: https://t.me/EOS911

CPUEmergency: https://t.me/CPU911

EOS News

EOS Go Announcements: https://t.me/eosgo_announcements

EOS Airdrops: https://t.me/EOS_Airdrop

Dan Larimer Bot: https://t.me/daneos

EOS Airdrops #2: https://t.me/airdropsforeos

EOS Announcements — The Wire: https://t.me/eosLAUNCHbyTHEwire

BP Ratings: https://t.me/bpratings

EOS Apps: https://t.me/eosapps

EOS Wallet Channels

imToken EOS: https://t.me/imTokenEOS_English

EOS Lynx: https://t.me/eoslynx

EOSNOVA.IO: https://t.me/eosnovaio

Block Producer Channels

AcroEOS: https://t.me/AcroEOS

AntPool EOS International: https://t.me/AntPoolEOSUS

Attic Labs: https://t.me/atticlabeosb

Barcelona BP: https://t.me/eosbarcelona

Bitfinex: https://t.me/bfxtelegram

Cryptolions: https://t.me/CryptoLions_io

Cypherglass: https://t.me/cypherglass

DutchEOS: https://t.me/DutchEOS

EOS Amsterdam https://t.me/joinchat/IBmAXw1pJBXmwiA8WFSvfQ

EOS Asia: https://t.me/EOSAsia

EOS Authority: https://t.me/eosauthority

Blockchained: https://t.me/@blckchnd_EOS

EOS Canada: https://t.me/EOSCanada

EOS Cannon: https://t.me/eos_cannon

EOS DAC: https://t.me/eosdacio

EOS Dallas: https://t.me/eosdfw

EOS Detroit: https://t.me/eos_detroit

EOS Dublin: https://t.me/eosdublin

EOS FlytoMars: https://t.me/flytomarseos

EOS Germany http://t.me/EOSde

EOS Hong Kong: https://t.me/EOSHongKong

EOS Israel: http://t.me/EOSIsrael

EOS Lao Mao: https://t.me/eoslaomaochannel

EOS 42: https://t.me/EOSLondon

EOS Metal: https://t.me/EOSMetal

EOS Nairobi: https://t.me/eosnairobi

EOS Nation: https://t.me/EOSNation

EOS New York: https://t.me/eosnewyorkchat

EOS Rio: https://t.me/eosrio

EOS SEA: https://t.me/eossea

EOSeoul: https://t.me/eoseoul

EOS Shenzhen: https://t.me/eoshenzhen

EOS Silicon Valley: https://t.me/eossv

EOS Singapore: https://t.me/eoscommunitysingapore

EOS Tribe: https://t.me/EOSTribe

EOS Union: https://t.me/EOS_Union

EOS Venezuala: https://t.me/eosvenezuela

EOS ZB: https://t.me/ZBEOS

EOS.fish Chinese: https://t.me/eosfish_zh

EOS.fish English: https://t.me/eosfish_en

EOSio.SG: https://t.me/eosiosg

EOSphere: https://t.me/eosphere_io

EOSYS Korean: https://t.me/eosysiokr

EOSYS: https://t.me/EOSYSIO

GenerEOS: https://t.me/generEOS

Greymass: https://t.me/eoswalletgreymass

Hello EOS: https://t.me/helloeos123

JEDA: https://t.me/eosjapan

LibertyBlock: https://t.me/eoslibertyblock

Liquid EOS: https://t.me/BPLiquidEOS

Meet.One English: https://t.me/MeetOneEnglish

Meet.One: https://t.me/MeetOne

ONO China: https://t.me/ONOCN

ONO US: https://t.me/ONOUS

Oraclechain English: https://t.me/OracleChainChat

shEOS: http://t.me/sheos_org