Ontology implements the NeoVM virtual machine, written in Go, which is used for executing smart contracts as well as for intelligent control logic of the application layer framework. The NeoVM is highly scalable and employs a “deterministic call tree” technology that allows for dynamic sharding. Additionally, Ontology uses a shared data contract model that separates data and business logic, where dapps can share data with each other using generic protocols.