An Ethereum ontology (https://github.com/ethereum/yellowpaper).
An ontology is a formalization of concepts and relations within a domain. EthOn is written in RDF and OWL.
Status of the specification build:
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 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, ...)
- much more
- Blockchain and State Transition concepts: Blocks, Accounts, Transactions, Contract Messages, States, State Transitions
- Network concepts: Blockchain, Node, Protocol Variant, forking, 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.
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://ethereum.ethstats.io/>
ethereum:Account_0x0x0000000000000000000000000000000000000000
a ethon:Account ;
rdfs:label "Genesis Address" ;
rdfs:label "Coinbase" ;
ethon:address "0x0000000000000000000000000000000000000000"^^xsd:hexBinary ;
[...]
rdfs:seeAlso <https://etherscan.io/address/0x0000000000000000000000000000000000000000> .
ethereum:AccountState0
ethon:accountBalance 0 ;
[...]
ethon:accountNonce 0 .
ethereum:Block_0
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:authorBeneficary ethereum:Account_0x0x0000000000000000000000000000000000000000 ;
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.