An Ethereum ontology that is closely aligned with the Ethereum yellow paper.
An ontology is a formalization of concepts and relations within a domain. EthOn is written in RDF and OWL.
EthOn is currently under heavy development. It is not complete, nor ever will be, probably. The goal is to model Ethereum as a State Transition System.
EthOn is not canonical (i.e. "official"). However, it might be submitted as an EIP at some point in the future.
For information on contributing, versioning and usage, please have a look at the wiki.
- as a glossary of Ethereum terms
- as a learning ressource for understanding Ethereum and the yellow paper
- as a means to improve communication (among developers, among technical and non-technical people, ...)
- for checking the consistency of modeled aspects of blockchain data via reasoning
- to semantically annotate content provided by Ethereum based tools and dApps (e.g. block explorers, analysis tools, markets, ...)
- Blockchain and State Transition concepts: Blocks, Accounts, Transactions, Contract Messages, Block-, Transaction-, Message- and World-State, State Transition
- Network concepts: Blockchain, Node, Protocol Variant, Fork, Network
- EVM states and EVM execution
- Relation to other blockchain implementations, e.g. Bitcoin
Find more illustrations here: EthOn illustrations
Visualize the ontology using WebVOWL. It should be enough to click this link. WebVOWL is also developed on GitHub: https://github.com/VisualDataWeb/WebVOWL
You can look at the automatically generated EthOn specification.
There is another more fancy specification generator available: http://hacks.michelepasin.org/ontospy/. The GitHub project page can be found here: https://github.com/lambdamusic/OntospyWeb.
Download Protégé and open the ontology file to browse around and view all assertions.
Among other things, EthOn can be used to formally describe Ethereum artefacts. The following Turtle snippet is a description of the Genesis Block of the current Ethereum main net.
@prefix ethon: <http://ethon.consensys.net/>
@prefix ethereum: <http://ethereumrdf.consensys.net/>
ethereum:Account0000000000000000000000000000000000000000
a ethon:Account ;
rdfs:label "Genesis Address" ;
ethon:address "0000000000000000000000000000000000000000"^^xsd:hexBinary ;
ethon:hasState ethereum:AccountState0 ;
[...]
rdfs:seeAlso <https://etherscan.io/address/0x0000000000000000000000000000000000000000> .
ethereum:AccountState0
ethon:accountBalance 0 ;
[...]
ethon:accountNonce 0 .
ethereum:Block0
a ethon:Block ;
rdfs:label "Genesis Block" ;
rdfs:comment "This is the block with block number 0. It is the Genesis Block of the Ethereum blockchain." ;
ethon:number 0 ;
ethon:blockBeneficary ethereum:Account0000000000000000000000000000000000000000 ;
ethon:blockReward 5000000000000000000 ;
ethon:gasLimit 5000 ;
ethon:blockNonce "0000000000000042"^^xsd:hexBinary ;
[...]
rdfs:seeAlso <https://etherscan.io/block/0> .
Ethon is in Greek, Latin and Indian mythology the name of one of the horses that pull the sun across the sky.