Skip to content

bcasim/bcasim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 日本語

BCASim : Blockchain Attack Simulator

BCASim is open sorce blockchain simulator for attack analysis. The user can freely change the node operation and protocol specifications. For example Double spending attack, Selfish mining, Sybil Attack.


Main Features

  • Customization function of node operation scenario.
  • Reproduction of the blockchain data structure required to reproduce the attack.
  • Addition of consensus building, difficulty adjustment, fork choice rules, etc.
  • Visualization of network structure and blockchain structure.

Quick Start

Prerequisites

  • java (version 1.7+ )
  • Apache Maven (varsion 3.6.3)

commands

$ git clone https://github.com/bcasim/bcasim
$ cd bcasim
$ mvn clean install
$ mvn compile
$ java -cp target/bcasim-0.0.1-SNAPSHOT.jar src/main/java/jp/ac/jaist/bcasim/main/Main.java

For more detail

See the usage document page.
It summarizes how to customize simulation parameters and attack scenarios.

Experimental example

The following is an example of an experiment conducted using a simulator. The solid line in the image plots the theoretical value, and the cross plots the simulation result. The left is an experiment targeting the attack success probability of Double Spending Attack. The right is an experiment targeting the block generation ratio of the Selfish Mining node.

Double Spending Attack Selfish Mining

Demo

This is a demo that visualizes the simulation results of BCASim.

  1. Large Network - gif
  2. Selfish Mining - gif
  3. Double Spending Attack - gif
  4. Sybil Attack - gif

Other BCASim projects

  • BCASim - Open source blockchain simulator for attack analysis
  • BCASim Visualization - Simulation result visualization tool for BCASim

Authors

If you have any questions or comments, please feel free to contact us.

License

BCASim is released under the terms of the Apache License, Version 2.0.
Please refer to the COPYING file.

Releases

No releases published

Packages

No packages published