EOS - An Introduction: Ian Grigg
EOS - An Introduction: Ian Grigg
EOS - An Introduction
Ian Grigg
Abstract—Current technologies for blockchain fall short of blockchain trade infrastructure. First, we summarise the Con-
providing what developers and end-users need in order to text of today’s market for DLTs. Then, we look at a Vision of
contract together and to build large scale businesses. We propose the end-user’s needs, and how to meet them. Then, we review
EOS, a performance-based and self-governing blockchain that an Architecture to meet the market demands.
provides an operating system for building large-scale consumer- Finally a quick Comparison with known systems and Con-
facing distributed applications. This paper outlines the context,
cluding remarks. For more technical details on the EOS.IO
vision and software architecture underlying EOS, which we are
building to serve a broad and diverse group of users with smart software, readers are referred to “EOS.IO Technical White
business. Paper” (Larimer 2017).
Keywords—EOS, blockchain, smart contract.
II. C ONTEXT
The Market. The market is competitive for all products and
I. I NTRODUCTION DLTs or blockchains are no exception. What are the market
offerings? Bitcoin might be seen as the chain of security, yet
The notions of digital cash and smart contracting have been a strong chain is only as valuable as the business it is attached
known for a long time, yet only in recent times have strides to. Perhaps recognising this, Ethereum touted the worldwide
been taken with respect to implementation. unstoppable Turing computer, a goal that might appeal to
This paper introduces the EOS.IO software underlying EOS computer scientists but has seemed elusive to other disciplines.
as a new platform for general value and contracting. EOS R3 built Corda to serve the needs of the financial institution,
is presented against a backdrop of three existing champions which is a large market but also an expensive and exclusive
because (a) they represent a broad range of opinions as to the one.
Distributed Ledger Technologies (DLT) space, (b) are large This section examines those prior systems from the per-
enough to matter, and (c) are familiar to the author. spective of major architectural features or necessities, which
Bitcoin (Nakamoto 2008) seemed to be the word on a suggests benchmarks or assumed starting points that industry
blockchain that promised the inspirations of both digital cash looks to.
and smart contracts. Although it captured the attention of the Consensus. With blockchains, we come to consensus over
cypherpunks, media and hodlers, it failed to make a mark on a block of transactions, such that no transaction conflicts with
business. Ethereum (Woods 2014) attempted to fulfill the smart any other, neither in this block nor prior blocks. Also known as
contract promise with an “unstoppable world computer” while the Two Generals Problem, there is a rich history in bringing
Bitshares (Larimer et al 2014) strove to open up the market for remote actors to agreement such that “I know that what you
tradeable assets. Hundreds of alternative Bitcoin blockchains see is what I see.” See Figure 1.
or altcoins strove to make a small difference seem louder. Bitcoin established proof of work or the Nakamoto signature
Corda (Brown et al 2016) backed away from blockchain as the way to bring an open entry community together over a
entirely and explored party to party workflow solutions. shared or distributed ledger in which all parties hold a complete
We are tantalisingly close but no prize has yet been awarded copy. This mechanism runs a lottery amongst many miners to
- by the end-users. It is timely to then take a fresh look at what determine who mines each block. Tickets in the lottery are
the demand is for, from their perspective, and lay down the competed for by a SHA2 puzzle, and as this requires energy
basis and a vision towards creating a practical and performant to produce, the winner of the lottery is rewarded with a fixed
amount of Bitcoin. In effect, anyone can be a General, and
Ian Grigg is a financial cryptographer and partner at block.one. iang the one that wins the lottery is the one that sets this moment’s
at block.one (see http://iang.org/). This work is licensed under Creative
Commons Attribution 4.0 International License (CC BY). Caveats: plan of battle. Following Generals can choose to accept that
(i) This paper is primarily about the EOS.IO software that permits a plan or block, or reject if invalid.
community to stand up an EOS blockchain. As the software is open source The fully shared ledger and the cost of proof of work,
and a community is free of any controls beyond their own Constitution, this running at 4% for Bitcoin and 11% for Ethereum at the time of
paper may be indicative but cannot be authoritative on any particular EOS this paper’s writing, have offended many. Permissioned ledgers
blockchain that a community might wish to stand up.
(ii) I have endeavoured to make this paper as independent as possible, (Swanson 2015) were proposed to not only block those we
but biases are ever-present and are what make life special. For the record, want to exclude from enjoying the benefits of our ledger, but
confidential information known to the author has been excluded, and would also to bring us back to the computer science roots of efficient
likely change some criticisms if included, for better or worse. consensus - practical but centralised designs well known in
(iii) This present version is a DRAFT for which I solicit broad feedback!
Nothing written herein is especially fixed for the EOS.IO software, and database science. Also proposed from time to time are proof of
changes are to be expected. stake, exotic cryptography and secure enclaves. Corda (Brown
et al 2016) established that consensus could be a user choice
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
Page 2
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
capable of most of what is required, but with enforcement of contracting and money has been excluded to the wider Internet.
rights limited by what can be automated in code. Sometimes Bitcoin is too unsafe, and its smart contracts opaque. Ethereum
labelled trustlessness, this regime draws a stark line between is too scary, too hard, too geeky. Corda is ‘big corporate.’ Other
that which is technical and strong as a chain, and that which systems have their weaknesses, all of them are restricted to the
is at the user’s discretion and therefore more dangerous. As elite coder, and everyone has a different view.
time goes on, institutional approaches such as improvement What is needed is smart business for the everyday person.
proposals and centres of power such as foundations or teams An everyday distributed application needs to live in a global
arise to deal with some of the dangers to users, to a greater blockchain that handles the open entry treasured by the Bitcoin
or lesser degree and success (Gupta 2014). Caveat emptor is discovery, has enough performance to build big business, is
typical of Bitcoin and Ethereum. connected enough to bring people together and is safe and
In contrast, in the permissioned network or walled garden secure enough that Wall Street’s Gordon Gecko can trade
approach, only those permitted can enter and act. In this alongside Africa’s Mama Biashara. Without drama, without
scenario, parties open an account, are onboarded by an agent fear, without missing out.
and can trade with a presumption of good behaviour. Implicitly The Target. The vision before us is a single global con-
or explicitly, enforcement of good behaviour is typically seen tracting blockchain that can scale up to handle a long-tail of
as out of scope at the technical level, although dentity typically businesses negotiating contracts for mutual advantage in a safe
plays an unclear part. The downside is that the wall around and secure environment.
the garden can be expensive to erect and maintain, and every In more practical terms, while there is much of value on the
year the gatekeeper charges more. This approach is commonly Internet, we focus on what is mediated by the web, and leave
assumed within heavily regulated markets such as banks and aside mobile and applications for now. What does a builder
the like, and is used by Corda. of a web application want? We assume that the target user is
Neither of these world states are user friendly - users lose the web entrepreneur, and therefore let’s work backwards from
too much money through caveat emptor, and systems that start that position.
from ‘permission’ become systems that discriminate, either at Principal Features. Our design predicts a blockchain to
the competitive level or the societal level. Users are routinely handle thousands of transactions per second for business
skeptical of either. contracts that are captured in easy to use and easy to secure
languages. The major features include:
III. V ISION • High performance messaging using event sourcing
End-state Goals. What is it that our user needs? In the • Delegated Proof of Stake
abstract, she wants to: • Contracts as negotiation and intent - messaging at its
heart
• Know her friends, business partners, and customers. • Usability from the user to contract writer to developer
• Communicate with them. to entrepreneur
• Be able to contract with them: • Governance for business and chain maintenance
◦ in the small, make peer to peer agreements, and The following section explores in more depth.
◦ in the large, build a sophisticated business to be
able to serve the market.
IV. T HE A RCHITECTURE
• Be able to retain and direct her value (pay bills, etc) as
a necessary component of business. The Philosophy. In large part the practical approach of the
◦ Then, all has to be done safely and securely. software underlying EOS is to extend the large-scale high-
performance blockchain experience in Bitshares and Steem
• Be able to invest in a predictable business. This is a to support end-user business. Most of the elements have
complex issue, but appears to require three components. been proven to a lesser or greater extent, this architecture
◦ Know that the ecosystem is advancing, and not at re-assembles them for a new purpose - to build distributed
undue risk of failing. applications.
◦ Pay for development effort up front with reason- This section describes some important architectural differ-
able payback in the future. ences that the software underlying EOS proposes against prior
◦ Because she knows that things - contracts, assets, practice. For more technical details, readers are referred to the
transactions, intents - go wrong, she wants to be EOS.IO Technical White Paper (Larimer 2017).
able to fix her difficulties. Including, with her The Message is the Medium. The EOS.IO software design
friends, her business, and her assets, and quickly, switches from the more popular consensus over state to the
cheaply and without undue escalation. less familiar consensus over events (Grigg, 2017-1). This
One caveat of arrogance: we assume her wants and her approach marries the event sourcing pattern (Fowler, 2005)
needs are synonymous. More precisely, we are making an to a blockchain made of events rather than state.
entrepreneurial judgement call over what we believe the user In computer science, a deterministic state machine is built
needs, and she’ll want it when she learns about it. as a machine of code, state (memory), and events, both in and
The Big Idea. It has become abundantly clear that for out. Every time something happens which causes a change,
one reason or another, the promise of universal peer to peer a practical machine saves intermediates to memory, and on
Page 3
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
Page 4
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
Fig. 5. Concepts in code automation and prose contracts will evolve (Clack1’s
Fig. 4. Tensions between stakeholders in a blockchain Figure 5)
Page 5
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
As we are aiming for 100 times that level, the team switched only and read-write code, each having different potentials for
to WebAssembly (WASM) which is a new intermediate lan- optimisation. To eliminate re-entrant issues, outgoing messages
guage designed to do the job that Javascript currently does will be stacked until completion, or dropped on failure. We
within browsers. WASM’s first unoptimised trial within the intend to add a SQL-like table structure to significantly ease
EOS framework delivered about 50,000 TPS for a currency adoption by those who are familiar with databases. Crypto will
contract. be external and mostly invisible.
Yet, WASM switches the challenge from the operators to As with the entire space for DLT, the competition continues
the parties - there are now 3 tangible views over any contract: internally. Wren is small and tight. WASM is only just out of
legal prose, source code initially in C and intermediate code standardisation. WASM’s early tools target C and C++ which
in WASM. are popular but are more costly to write code in, in comparison
Thus it is a reasonable question to ask - what or where is to high level late-generation languages such as Wren. These
the contract that the parties agreed to? I would like to face that challenges should not be insurmountable in the longer run as
question head on. In the two decades or so that I have seen the WASM project is intended to work with most languages,
contracts issued on the net, as Ricardian or otherwise, and and the bulk of the code in any DApp is outside the handlers, in
the hundreds of issues that have arisen from these contracts, the websites. The ability to accept many popular languages is
I have yet to see a dispute, or even a confusion where what enticing, an advantage available to Corda’s JVM but not easily
the contract said or meant was key to the dispute. Even with reachable by Bitcoin or Ethereum without a holistic approach
The DAO, that ill-fated $150 million lesson in how not to to the developer cycle.
issue a contract, the proximate cause was (in) security, and In conclusion, there are dramatic compromises in the choice
regardless of which side of the fence one fell in identifying of language and toolkits for the developer that go beyond
the contractual significance of the hack, the response was to mere codability. We would like an easy to read and reason
arbitrarily change whatever needed to be changed to get the scripting language that could speak in full contractual terms,
money back. There was no organised, formal or even a vestige be securable and be scaleable. But at the current state of the
of an attempt to resolve the dispute over interpretation of art, compromises have to be made.
the facts, the meaning and the rights. It is an open question Governance. Let us now turn to the environment. It is a
what proportion of disputes in court are over meanings and reality that things go wrong with automated processing of
confusions, and what percentage are simply power plays and contracts, to the distress of all. It is our hope to reduce both
bullying, but I am not optimistic. the frequency and the cost of those errors, but they cannot be
In the face of The DAO and other experiences, I suggest eliminated entirely, and our approach is to build in remedial
that the rule of one contract (Grigg 2004) looks dogmatic methods for when they do occur.
and overly constricting. Instead, at least for the unregulated A blockchain based on EOS.IO software assumes that all
part of the DLT space, there is opportunity to free up the who use the blockchain are members under a short Constitution
components of the contract to achieve better performance, even (Larimer 2017-2) (Grigg 2017-3) and by agreeing to which,
at the expense of a little misalignment. Meanwhile, we should all members form a Community subject to the Constitution.
focus on governance, and making dispute resolution available The Constitution sets down some basic rules for the benefit
and comfortable to the parties. of the community. The Constitution empowers three arms of
As of the time of writing, the set of languages available governance: arbitration for resolving disputes, block producers
to the contract developer is a work in progress. Whether for choosing blocks, and referenda for community voice.
WASM or Wren or another, we will still need to structure the Arranged in an interlocking triangle of governance, these three
language for performance and usability. Each named message arms support and counterbalance each other. Referenda are
handler will need to identify sections for each of static, read- used by the community to vote in the producers and arbitrators,
Page 6
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
as well as changes to code and constitution. Arbitrators can of major stakeholders to recognise the need for governance.
deliver legally binding rulings to resolve disputes, and also As an emergent business proposition, use of Ethereum has
for extraordinary changes such as hard forks. Block producers been dominated by raising funds for projects mostly aimed at
are at technical liberty to censor bad transactions or introduce finishing Ethereum as a platform, or competing with it. Few
remedial ones - but are mindful of community reaction. Ar- novel use cases have made their mark, suggesting that there
bitrators publish rulings, which producers might enforce, or is more work to do before the Ethereum concept of smart
users might seek external enforcement. contracts bears fruit.
This counterbalanced arrangement ensures that no party Corda. The primary distinguishing factor of Corda is that
or group has total power. Even founders or developers have it is not a blockchain but a framework for party to party
only limited ability to affect the rights of the community workflow. Instead of posting contracts and actions to a block-
members. Hard forks and other upgrades have a defined path, chain, parties exchange messages and come to consensus via
and individual disputes are channelled to a place where we can notaries. It achieves confidentiality for parties, high perfor-
resolve and get back to business. A further benefit is that most mance unconstrained by chain coordination, and the ability
of the above governance can be handled transparently, that is for parties to control the contracts as they succeed and fail.
by writing contract handlers to accept and manage disputes, Yet workflow works best with small numbers of parties, not
handle referenda and the like. large, and hence it is weaker on issuance of assets, especially
To make these institutions work, users have to agree to the cash and cash-denominated trading. Another weakness is that
Constitution, which empowers the producers to choose blocks, Corda’s walled garden approach for regulatory business stops
and reserves all disputes into the forum of arbitration. As it being an attractive mass market for small players.
well, the Constitution creates the legal rights expressed in the
blockchain by stating that each member receives those rights VI. C ONCLUSION
properly accounted for, and in return each member supports User experience. The direct users of a blockchain such as
the accounted rights of others. This trade of your rights for the EOS are the entrepreneurs and developers who write contracts
rights of others becomes the cornerstone of the community, in to implement distributed applications or DApps. Their users are
that the community is defined by both the usage of the platform the routine customers in retail, finance, logistics, media. Those
and the agreement to the Constitution. latter customers do not need to know what a blockchain is.
And thus we have preserved open entry even as the Com- Hence the goal is to give the developers a platform that allows
munity governs itself internally. Even as a user transacts, extensive business logic to be built, but the mechanisms of
all transactions from the first entry to the latest refer to the communication are hidden.
Constitution by hash, as a Ricardian Contract (Grigg 2004). The DApp developer is given a fully capable accounts,
As an explicit governance mechanism, the constitution creates permissioning and messaging platform in which to express the
more of a fenced field than a walled garden, and the gatekeeper system. The user interface matches what users are familiar
is automated as a transaction or signpost at all points. with - a webkit for building websites and of course access to
the blockchain. This approach is expressed as “an operating
V. C OMPARISONS system for blockchain.”
Bitcoin. As the platform that launched the first and most The fact that there is a blockchain can be hidden from the
successful cryptocurrency, Bitcoin is a baseline. Yet, as the user, as exemplified by Steem, being just another blogging
‘first’ its flaws shine as bright as its success: The UTXO platform that happens to be distributed on a blockchain.
verification model means that complex smart business has Use cases. An EOS blockchain is intended for high-
to be mediated through external code. The state is nicely performance messaging with business logic. Popular use
locked on chain, but the hard work of negotiation is done cases will include supply chain, resource management, user-
by the applications. It has no good framework for assets, messaging such as social media, asset issuance and trading,
especially as each transaction includes BTC, and is thus an accounting for remittances, and gaming.
affront to Gresham’s apocryphal warning against commingling A typical use case might be Uber. Ride-sharing is based
of assets, good money drives out bad. Its lack of a thoughtful on setting standards of behaviour for the driver and for the
governance layer results that upgrades are very difficult, and passenger. If drivers and passengers were part of the same
the community is at war with itself. For example, the artificial community, there would be an immediate benefit - the base
limit of 3 TPS that kills its scalability is because of the absence of liability and standards of behaviour would be covered
of governance. under community constitution and dispute resolution, and their
Ethereum. To rectify Bitcoin’s weaknesses, Ethereum es- contracts could be bilateral rather than intermediated, thus
tablishes a Turing-complete virtual machine capability on a minimising any regulatory difficulties.
world-wide computer. It has several major shortfalls. Firstly, it Then, as the contracts can be bilateral, the business flow
has a dramatically restricting requirement to find consensus on could be split up: tracking passengers in the market, tracking
state over thousands of program executions, leading to resource cars available, finding a match, negotiating a contract, perfor-
congestion at around 15 TPS. Secondly, the decision to go-it- mance, settlement, pricing, and social tracking could all be
alone on languages, VMs, toolkits and the like has caused a built as separate DApps that interact.
drag on developer capabilities. Thirdly, it suffers from the ad- Community. To support business, we need to solve prob-
hocracy of the Foundation that has emerged despite the refusal lems. And to scale the solving of problems, it has to be done
Page 7
EOS - An Introduction 05 July 2017 - v0.4 - DRAFT
R EFERENCES
[1] Richard Brown, James Carlyle, Ian Grigg, Mike Hearn, “Corda: an
Introduction” 2016
[2] David Chaum, “Blind Signatures for Untraceable Payments”, 1982 UC
Santa Barbara
http://blog.koehntopp.de/uploads/Chaum.BlindSigForPayment.1982.PDF
[3] Christopher D. Clack (1), Vikram A. Bakshi, Lee Braine “Smart
Contract Templates: foundations, design landscape and research
directions”, 2016
[4] Christopher D. Clack (2), Vikram A. Bakshi, Lee Braine “Smart
Contract Templates: essential requirements and design options”, 2016
[5] Martin Fowler, “Event Sourcing”, 2005
https://martinfowler.com/eaaDev/EventSourcing.html
[6] Ian Grigg, “The Ricardian Contract,” 2004
[7] Ian Grigg, “Triple Entry Accounting,” 2005
[8] Ian Grigg, “The Sum of All Chains - Let’s Converge,” 2015
[9] Ian Grigg, blog post “The Message is the Medium,” 2017-1
[10] Ian Grigg, blog post “Seeking Consensus on Consensus,” 2017-2
[11] Ian Grigg, blog post “A Principled Approach to Blockchain
Governance” 2017-3
[12] Vinay Gupta, interview “Bitcoin Cannot be divorced from pre-existing
political theory,” 2014
[13] Daniel Larimer, “Delegated Proof-of-Stake (DPOS)” 2014.
[14] Daniel Larimer, Charles Hoskinson, Stan Larimer, “A Peer-to-Peer
Polymorphic Digital Asset Exchange” 2014.
Fig. 8. The point is Smart Business [15] Dan Larimer, “EOS.IO Technical White Paper” block.one 2017
https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md
[16] Dan Larimer, block post “Implementing a Hypothetical Currency
by the community itself, which means it has to be in the Application on EOS,” 2017-1
architecture. To advance community, we must preserve open https://steemit.com/eos/@eosio/implementing-a-hypothetical-currency-
entry, but on entry provide the tools that users find useful for application-on-eos
governance. Users want to determine their risks and obligations [17] Dan Larimer, blog post “What could a blockchain Constitution look
to their counterparties. like?” 2017-2
When bound together as a community under a Constitution, [18] Satoshi Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System ”
2008
users will know that the rights, liabilities and obligations of
[19] Tim Swanson, “Consensus-as-a-Service” 2015
their counterparties are at least to a basic standard, as expressed http://www.ofnumbers.com/wp-content/uploads/2015/04/Permissioned-
in a constitution and as enforced in dispute resolution. In distributed-ledgers.pdf
addition reliable names and a web of trust can reduce the [20] Nick Szabo, “Smart Contracts”, 1994
anonymity of the Internet and give people a sense of belonging [21] Nick Szabo, “Formalizing and Securing Relationships on Public
to something important. Networks”, 1997
[22] Gavin Woods, “Ethereum: A Secure Decentralised Generalised
ACKNOWLEDGMENT Transaction Ledger”, 2014
Page 8