Ethereum Virtual Machine Security Protocols—>
So without writing an entire in depth article that could easily drone on and on like a Harvard Theoretical Computer Science Lecture I have to decided to write a condensed and fairly more easily understandable excerpt on Ethereum Blockchain CyberSecurity Auditing and Implementation to at least guide your research towards the direction it needs to go without having to sift through mountains of irrelevant data that is found on the web.
In order to have effective security procedures in place for Solidity Smart Contracts one must first understand how Solidity is transferred into byte code, memory and storage. Because Solidity is not the only language capable of interacting with the EVM a lot of protocols are relatively new.
Solidity has been developed as an alternative language so that programmers who are familiar with JavaScript can pick it up more easily.
Below is a basic formula of how .sol contracts are interpreted and then stored to the EVM.
Code.sol (Solidity Smart Contact) —> solc compiler —> Code.bin + Code.abi —> EVM virtual machine node via Web3 and client side (D)App.
Furthermore,
EVM is a stack based register
before after–>
stack[0] —-> stack[1]
stack[1] —-> stack[2]
stack[2] —-> stack[3]
stack[3] —-> stack[4]
Pictured below are mathematical calculations used for uint 256 contracts:
For further reading on the advantages and disadvantages of such a system which include gas fees and Wei find out what would be best for your organization by consulting the the EVM Yellow Papers at https://ethereum.github.io/yellowpaper/paper.pdf
Because the EVM is a stack based processor it has access to:
-CallData: Transaction parameters.
-Memory: Temporary data store within a transaction.
-Storage: Persistent storage that part of world state.
-Code: Stores code and static data such as strings.
-Logs: Write-only event log output.
Below are several different packages which can be used to test .sol files for weaknesses.
- Manticore, a symbolic emulator capable of simulating complex multi-contract and multi-transaction attacks against EVM bytecode. https://github.com/trailofbits/manticore
2. Ethersplay, a graphical EVM disassembler capable of method recovery, dynamic jump computation, source code matching, and binary diffing. https://github.com/crytic/ethersplay
3. Slither, a static analyzer that detects common mistakes such as bugs in reentrancy, constructors, method access, and more. https://agroce.github.io/wetseb19.pdf
Echidna, a next-generation smart fuzzer that targets EVM bytecodehttps://github.com/crytic/echidna
The transfer to bytecode is where most vulnerabilities can be found. Hackers and cyber criminals try to exploit any code errors during the transpilation of these contracts in order to redirect to different addresses of deposit and or return addresses to one of their own desire. Below is an illustration of how this works more or less.
Here is an illustration of what your Bytecode will look like once placed onto the Ethereum Virtual Machine.
This article is has been a basic overview of what the current security practices are today as of the date this article was published, but as we find that this technology is in such a stage of infancy there will always be new more secure ways to test and hack transactions.Report this
Published by
Derek Andrews Software, React Native, and Blockchain Engineer. DeFi Dapp Solidity Smart Contract Flash Loan Published • 2d2 articlesI found there was just too much information to sift through on this subject so I’ve decided to make a simpler approach to guide someone’s research towards Blockchain security protocols. Share or like if you find this a little more digestible. Happy hacking. hashtag#cybersecurityhashtag#infosechashtag#hackinghashtag#securityhashtag#privacyhashtag#datasecurityhashtag#cyberattack # hashtag#researchhashtag#blockchainhashtag#informationsecurityhashtag#like




