Giter VIP home page Giter VIP logo

arbitrageurs-and-oracle-manipulators's Introduction

Countering Arbitrageurs and Resisting Oracle Manipulators in Ethereum Smart Contracts

This repository contains experiments performed for my Bachelor's research project at TU Delft, exploring frontrunning and oracle manipulation vulnerabilities. This project utilises Hardhat to fork Ethereum mainnet and run scripts.

Frontrunning

The test case test/frontrun.spec.ts contains code exemplifying a typical sandwich attack on Uniswap, using frontrunning and backrunning via the PGA mechanism.

Oracle Manipulation

The scripts test/vulnerable-price-oracle.spec.ts and test/resistant-price-oracle.spec.ts contain code demonstrating oracle manipulation attacks on the contracts in the contracts/ directory. contracts/VulnerableLendingProtocol.sol is an example lending protocol that uses Uniswap V2 as a price oracle by calculating reserves, and is vulnerable to an oracle manipulation attack defined in contracts/SimpleOracleAttack.sol.

contracts/ResistantLendingProtocol.sol describes a lending protocol that uses a TWAP price oracle as a countermeasure to oracle manipulation.

Running Experiments

To run the test cases, use the command yarn test.

arbitrageurs-and-oracle-manipulators's People

Contributors

kevincharm avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.