Skip to content

ChainTrace: Real-time FPGA-based blockchain transaction analysis tool.

Notifications You must be signed in to change notification settings

afinn12/ChainTrace

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChainTrace

Overview

ChainTrace is an innovative tool designed for real-time analysis of blockchain transactions. Utilizing FPGA's computational capabilities, it aims to trace transactions, identify suspicious patterns, and flag potential endpoints in cryptocurrency networks.

Here is a link to our demo video: https://youtu.be/4ns-EX-1Pc4

Features

  • Real-time data ingestion from blockchain APIs
  • Advanced transaction tracing using FPGA
  • Pattern recognition to detect suspicious activities
  • Endpoint detection for potential illicit cash-out points

Running This Project

  1. Download all files in our verilog_code and FPGA_constraints folders. Create a new Vivado project with the Nexys A7 100T as the selected board, and add all the files as design sources, the constraint file as a constraint, and the testbench file as a simulation source. Program the FPGA board by connecting the board to your PC via microUSB-to-USB, Synthesize, Implement, Generating bitstream, and finally, program the device.
  2. Download the python files and add a config.py file. Go to etherscan and generate an API key. Assign the api key value to API_KEY. Then run the project by running the python code and giving an ethereum wallet id as an input.

Code

  1. TRACING ALGORITHM --> Takes in data from ethereum transaction objects and uses the values inside the objects to calculate a confidence score (0-100) of how likely that wallet is to be assoicated with a scam.
  2. UART CONNECTION --> Establishes a connection with the python script in the PC and the algorithm on the fpga board using the UART protocol. Takes in the data using a FIFO and stores the data to be processed by the algorithm. This part of our code was implemented using the code from FPGAdude/Digital-Design/UART and changed to meet the specifications of our project.
  3. PYTHON SCRIPT --> The python code communicates with the Etherscan API to get the transaction data required for the algorithm to work. It then parses this data into a minimized version of itself and starts a serial communication with the port that the FPGA is connected to.

Team

About

ChainTrace: Real-time FPGA-based blockchain transaction analysis tool.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Verilog 45.5%
  • Python 30.6%
  • Tcl 23.9%