Custom Smart Contract Blockchain Virtual Machine Development

Job ID: 39282197

Budget: ₹600 – ₹1,500 INR

Topic 5: Design and Implementation of a proprietary Blockchain Virtual Machine (BVM)
The Ethereum Virtual Machine (or EVM) is a stack-based computer, responsible for the execution of
smart contract instructions. All EVM instructions take their parameters from the stack, which takes
their parameters from the code. Each instruction has stack inputs, the parameters that they may
need, and stack outputs (their return values).
In this project, you will design your own VM very similar to the EVM we have studied in class. You
can find more information about EVM here. Your EVM should have all the basic components such
as: Program Counter, Stack, Gas Available, Memory, Virtual ROM (for EVM Code), and Account
Storage. The EVM should be able to take a smart contract as input, calculate the gas required to
compile the smart contract, and then generate the equivalent bytecode. Furthermore, the EVM
should record the states of the account in the account storage. This in turn implies that the EVM
which you will design helps in maintaining the state machine of the Ethereum framework.
All implementations of the EVM must adhere to the specification described in the Ethereum Yellow
Paper.
Finally, the developed Blockchain VM should be efficient in the following aspects: Scalability (ability
to handle large volumes of smart contract deployment/creation and calls), latency (store the
transactions in the ledger in minimum amount of time).
At the end of the project, you should be having the following:
1. A Comprehensive report which explains your approach, the overall system design and
architecture. The report should also describe how you progressed step by step in building
the BVM system. Please note that this is a very critical aspect of this project. Teams who are
able to justify and convince their approach and understanding will be given full support. This
is also going to play a major role at the time of grading your project.
2. A source code completely written by you (not copied from any source on the internet, as we
will be doing a lot of plagiarism checks to verify this part). The source code should have
complete documentation of the various classes, objects, functions, and attributes being used.
The source code should be accompanied with an Installation or ReadMe or User Guide
Manual.
References:
A few implementations of the EVM available already are given here:
1. C++ Implementation: https://github.com/ethereum/evmone
2. Python Implementation: https://github.com/ethereum/py-evm
3. Ethereum Yellow Paper: https://ethereum.github.io/yellowpaper/paper.pdf
4. JS Implementation: https://github.com/ethereumjs/ethereumjs-monorepo
Related categories: Python Blockchain Ethereum Solidity Smart Contracts