In this article, part 1 of a series, we introduce the Nervos CKB-Virtual Machine (CKB-VM), a RISC-V instruction set based VM for executing smart contracts and written in Rust.
We considered the features that the CKB-VM will require during virtual machine (VM) selection for our layer 1 blockchain Nervos CKB.
For a VM to be used on a blockchain, it must meet two mandatory conditions:
- Certainty: For a fixed program and input, the VM must always return the same output result. The result must not be dependant on external conditions such as time or the running environment.
- Security: The VM must not affect the operation of its host.