Skip to content

Latest commit

 

History

History
114 lines (94 loc) · 2.45 KB

README.md

File metadata and controls

114 lines (94 loc) · 2.45 KB

Detecting and Classifying Fraudulent Ethereum Accounts Using Machine Learning

Overview

This project implements a comprehensive system for detecting fraudulent accounts on the Ethereum blockchain using both supervised and unsupervised machine learning approaches. It analyzes transaction patterns, account behaviors, and network relationships to identify potential fraud with high accuracy.

Features

  • Transaction pattern analysis
  • Account behavior profiling
  • Network relationship mapping
  • Hybrid ML approach (supervised + unsupervised)
  • Real-time detection capabilities
  • Performance analytics dashboard

Technology Stack

  • Programming Language: Python 3.8+
  • ML Libraries:
    • scikit-learn
    • TensorFlow
    • XGBoost
  • Blockchain Integration:
    • Web3.py
    • Etherscan API
  • Data Processing:
    • Pandas
    • NumPy
  • Visualization:
    • Matplotlib
    • Seaborn

Installation

  1. Clone the repository
git clone https://github.com/sabare12/ethereum-fraud-detection.git
cd ethereum-fraud-detection
  1. Set up virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Configure environment variables
cp .env.example .env
# Edit .env with your API keys and configurations

Project Structure

├── data/               # Data storage
├── models/            # Trained models
├── notebooks/         # Jupyter notebooks
├── src/              # Source code
├── tests/            # Unit tests
└── docs/             # Documentation

Usage

  1. Data Collection
python src/data/collect_data.py
  1. Preprocessing
python src/data/preprocess.py
  1. Training Models
python src/models/train.py
  1. Running Detection
python src/models/detect.py

Model Performance

  • Accuracy: 85%+
  • False Positive Rate: <5%
  • Detection Speed: <2s per transaction

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit changes
  4. Push to the branch
  5. Open a Pull Request

License

MIT License

Author

Victor Oketch Sabare
SCT213-C002-0061/2021
Jomo Kenyatta University of Agriculture and Technology

Acknowledgments

  • Professor Isaac Kega (Project Supervisor)
  • JKUAT School of Computing and Information Technology
  • Ethereum Developer Community

Contact