https://github.com/shaunazzopardi/ethereuem-runtime-verification
An attempt at runtime verification of Ethereum smart contracts.
https://github.com/shaunazzopardi/ethereuem-runtime-verification
ethereum ethereum-blockchain ethereum-contract formal-verification monitoring monitoring-engine runtime-verification smart-contracts sol solidity solidity-contracts
Last synced: 5 months ago
JSON representation
An attempt at runtime verification of Ethereum smart contracts.
- Host: GitHub
- URL: https://github.com/shaunazzopardi/ethereuem-runtime-verification
- Owner: shaunazzopardi
- Created: 2018-01-06T20:41:18.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-04T15:04:52.000Z (over 7 years ago)
- Last Synced: 2025-03-01T19:13:27.207Z (12 months ago)
- Topics: ethereum, ethereum-blockchain, ethereum-contract, formal-verification, monitoring, monitoring-engine, runtime-verification, smart-contracts, sol, solidity, solidity-contracts
- Language: Haskell
- Size: 40 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ethereuem-runtime-verification
Dynamic runtime verification of Ethereum smart contracts as separate smart contracts.
[1] introduces a monitor specification language for Solidity smart contracts, and a monitoring technique that instruments smart contracts which checks inlined in the monitored smart contract. This only works for smart contracts that have not yet been implemented. Here we take a different approach, where we create a separate monitor smart contract to which existing smart contracts can register to, and send events to. This assumes a smart contract comes with generic instrumentation that allows it to call any monitor smart contract.
Current limitations:
1. Instrumentation in original smart contract must be done manually (i.e. calls or delegatecalls to the respective event trigger method in the monitor smart contract).
2. Event trigger methods in the monitor smart contract have untyped parameters that need to be manually typed.
[1] https://github.com/gordonpace/contractLarva