Back in the days of the DAO, its heist and the subsequent analysis of what happened, I spent a lot of time understanding Ethereum and its concepts. I read the white and the yellow papers (I really did!), crawled through stack exchange, devoured anything there was about Ethereum on reddit and still many concepts of how it worked were really hard to figure out. Don’t get me wrong, there is no doubt that Ethereum is well defined, but the problem was that the information was not always available in a format that allowed me to comprehensively understand the concept I was interested in.

Since I love the idea of the Semantic Web and have a background in creating formal models, my natural approach is to describe Ethereum as an ontology.

These are some of the benefits that come for free with EthOn:

with EthOn dumb data turns into smart data — if a dataset references EthOn terms, it becomes self-explanatory

EthOn provides an automatically generated extensive glossary of Ethereum terms

by providing unambiguous terms, EthOn is a means to improve communication among developers, technical and non-technical people

EthOn is a learning resource for understanding how Ethereum works and for reading the yellow paper

EthOn provides a way to formally describe Ethereum artifacts in a machine readable format

EthOn provides the ability to semantically annotate content provided by Ethereum based tools and dApps (e.g. block explorers, analysis tools, markets, IPFS, …)

semantic reasoning about partially described ethereum artifacts to infer new knowledge

… use it for YOUR project!

What is an ontology?

Ontologies are formal and schematic descriptions of an area of knowledge. The concepts of the domain are collected into a curated vocabulary and then organized. It can be explicitly defined how concepts relate to each other and what rules there are for their existence and the relations between them. The conclusiveness of concepts and their relations is a function of the desired area of application of the ontology.

Why should there be an ontology for Ethereum?

Ethereum is an ideal field of application for ontologies because a consensus about the semantics of the involved concepts is a prerequisite for reaching consensus about the state of the network. Any deviation from this consensus results in a fork. An Ethereum ontology may serve as a semantic specification of its concepts that complements its technical specification. It is also a learning resource for those trying to understand the yellow paper and a foundation for semantic annotation of Ethereum artifacts.

As an example, in Ethereum there is the concept of a Block. All Blocks must have a parent and child Block. This is true with the exception of the very first block, which only has a child and the newest Block for which the child has not yet been found. Also, a Block contains a list of Transactions (which may be empty). Blocks have an associated miner, who receives the Block reward.

In an ontology these domain concepts are formalized in an ontology language (e.g. OWL) so that they can be referenced, queried and used for inference. Referencing an ontology can be useful in many scenarios. An Ethereum block explorer could, for example, reference the Block concept of the ontology to state that the term Block used in its user interface is identical to the one defined in the ontology. An API, be it from an Ethereum client or a wallet service, can reference ontological concepts to state compliance with a standard. Then, the ontology can be used to verify that the API actually complies to it. Querying an ontology can be useful to retrieve definitions of technical terms, in order to create a glossary. If a piece of data is retrieved from an API that identifies it as a Block the ontology can be queried to find out about its structure, ranges of values and relations to other concepts. An ontology can also be used to infer knowledge. If a Block doesn’t have a parent it can be concluded that it must be the first Block of a blockchain.

A very short example

This example shows how EthOn can be used to describe Ethereum artifacts. Besides this, there are many other uses for EthOn.

This is how EthOn models an Ethereum Block:

EthOn block model (look here for more illustrations and the chart key)

According to the above model, a Block can now be described as Linked Data using the Turtle notation:

Only some aspects of a Block are described in this example

The Future of EthOn

EthOn is released using CC BY 4.0. Contributions are very much appreciated! Please have a look at the contribution guidelines.

When Ethereum changes, e.g. to Proof of Stake, this will be reflected in EthOn. If the ontology changes in an incompatible way, the version number will be increased.

EthOn could in future reuse or reference concepts from a project called BLONDiE, a more general blockchain ontology.

Further resources

These links may be useful if you want to learn more about EthOn:

EthOn GitHub repository:

EthOn Specification

Illustrations of EthOn concepts

An automatically generated Ethereum Glossary

Explain video for the Semantic Web:

This is an interview with Tim Berners-Lee who explains his vision of the Semantic Web

Explain video for Ontologies:

This is actually a lecture of the Hasso Plattner Institute, Potsdam, Germany, but I think it is a very good summary

Acknowledgements

I would like to thank the following people for their contributions to EthOn:

Alex Beregszaszi

Casey Detrio

Herman Junge

Joseph Chow

Maurycy Pietrzak

Marian Oancea

Niran Babalola

Shahan Khatchadourian

Stefano Bertolo

Disclaimer:

The author is a member of ConsenSys. The views expressed by the author above do not necessarily represent the views of Consensus Systems LLC DBA ConsenSys. ConsenSys is a decentralized community with ConsenSys Media being a platform for members to freely express their diverse ideas and perspectives. To learn more about ConsenSys and Ethereum, please visit our website.