NeoResearch founder, Igor Coelho, has published a new article in a series on technical changes within NEO3. The most recent work, titled “Behind PR 149: a bright future for NeoVM and Neo 3,” outlines the decoupling of NeoVM from the NEO blockchain.
In April 2019, NEO founder, Erik Zhang, published the initial roadmap for NEO3 development. Among the many improvements slated for the upgraded blockchain was the complete decoupling of the NeoVM from NEO to allow it to become a “pure virtual machine.”
Zhang posited various benefits for this architectural change, including:
- Easy implementation of native contracts.
- Enabling application scenarios for the NeoVM outside the blockchain.
- Smooth integration into any IDE and the ability to easily debug smart contracts without loading blockchain data.
Coelho’s article notes that this decoupling was achieved in pull request 149 on the NEO GitHub. This PR removed the CHECKSIG and CHECKMULTISIG opcodes from NeoVM and moved them to NEO’s interoperability layer, and also removed the “IScriptContainer ScriptContainer” field from the VM execution engine.
“[The “IScriptContainer ScriptContainer” field] was used to implicitly pass current Transaction of Neo Blockchain, which contained the execution script, to the script itself. When verifying a signature, a common pattern is to verify it against the signed hash of Transaction header (also happens on Bitcoin network), but this tightly couples the relation of NeoVM with Neo Blockchain. NeoVM is not meant to be exclusive part of Neo… So, PR 149 brightly fixed this issue[.]”
The article goes on to further explain some of the benefits of the decoupling, including the ability to execute the NeoVM in other blockchains, simplification and efficiency, and the potential to support cryptographic standards beyond SHA256 and ECC secp256r1.
The full article can be read at the below link: