• Stars
    star
    1,343
  • Rank 34,982 (Top 0.7 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A high-performance tool for blockchain science and exploration

BlockSci

As of November 2020, we are no longer actively developing or supporting BlockSci. Please be aware that as cryptocurrencies continue to evolve, they may lose compatibility with BlockSci and might break it in unexpected ways.

The Bitcoin blockchain — currently 280 GB and growing — contains a massive amount of data that can give us insights into the Bitcoin ecosystem, including how users, businesses, and miners operate. BlockSci enables fast and expressive analysis of Bitcoin’s and many other blockchains. The accompanying paper explains its design and applications: https://www.usenix.org/system/files/sec20-kalodner.pdf.

Current tools for blockchain analysis depend on general-purpose databases that provide "ACID" guarantees. But that’s unnecessary for blockchain analysis where the data structures are append-only. We take advantage of this observation in the design of our custom in-memory blockchain database as well as an analysis library. BlockSci’s core infrastructure is written in C++ and optimized for speed. (For example, traversing every transaction input and output on the Bitcoin blockchain takes only 1 second on our r5.4xlarge EC2 machine.) To make analysis more convenient, we provide Python bindings and a Jupyter notebook interface.

This repository contains research code that is no longer actively maintained, may contain bugs and errors and may break in unexpected ways. We are an academic team and aren’t able to provide the level of QA and support that you might expect from a commercial project.

Documentation

We provide instructions in our online documentation:

Our FAQ contains additional useful examples and tips.

Latest release (BlockSci v0.7.0)

Version 0.7.0 is based on the development branch v0.6, but requires a full reparse.

Version 0.7.0 comes with a new fluent Python interface for fast and expressive blockchain queries. It contains a number of important bug fixes as well as many smaller improvements. We recommend upgrading to the latest version of BlockSci and no longer use v0.5.

Amazon EC2 AMI

We no longer provide an AMI for BlockSci.

Getting help

Please make sure to check the list of Frequently Asked Questions as well as the issue tracker first. If you've encountered a bug or have a question about using BlockSci not already answered, the best way to get help is to open a GitHub issue. We are an academic team and aren't able to provide the standard of support that you might expect for a commercial project.

Team & contact info

BlockSci was created by Harry Kalodner, Malte Möser, Kevin Lee, Steven Goldfeder, Martin Plattner, Alishah Chator, and Arvind Narayanan at Princeton University. It is supported by NSF grants CNS-1421689 and CNS-1651938, an NSF Graduate Research Fellowship under grant number DGE-1148900 and a grant from the Ripple University Blockchain Research Initiative. We've released a paper describing BlockSci's design and a few applications that illustrate its capabilities (an updated version of the paper has been accepted at Usenix Security and will be available soon). You can contact the team at [email protected].

More Repositories

1

ad-blocking

Prototypes of ad blocking techniques proposed in the "Future of Ad Blocking" paper
JavaScript
254
star
2

privacy-policy-historical

Historical website privacy policies spanning over two decades.
111
star
3

TwoFactorBtcWallet

Java
68
star
4

TheWebNeverForgets

Public code release for The Web Never Forgets paper
Python
66
star
5

mining_simulator

Simulation framework for non-standard mining strategies
C++
54
star
6

email_tracking

Code and data release for our PETS 2018 paper: "I never signed up for this! Privacy implications of email tracking".
Python
46
star
7

ThresholdECDSA

Java
38
star
8

anomalous-tor-keys

Analysis of archived Tor relay RSA public keys
TeX
22
star
9

ott-tracking

Code and data for the CCS'19 paper "Watching You Watch: The Tracking Ecosystem of Over-the-TopTV Streaming Devices"
Jupyter Notebook
10
star
10

namecoin-analysis

Doing analysis of Namecoin blockchain
Python
9
star
11

testchain-generator

Generate synthetic blockchains
Python
8
star
12

news-disinformation-study

A research project on how web users consume, are exposed to, and share news online.
JavaScript
8
star
13

mps-operations

A Go implementation of the protocols for {MPSI, MPSIU, MPSI-Sum, MPSIU-Sum} described in Estimating Incidental Collection in Foreign Intelligence Surveillance: Large-Scale Multiparty Private Set Intersection with Union and Sum.
Go
8
star
14

PrivacyPoliciesOverTime

Jupyter Notebook
7
star
15

fairness_diagnostics

Tool to visualize and diagnose fairness issues in machine learning
JavaScript
5
star
16

openwpm-data-release

Code for data release
Jupyter Notebook
5
star
17

election-emails

Jupyter Notebook
4
star
18

public-verification

Accountability mechanisms for the Apple PSI system described in Public Verification for Private Hash Matching.
Go
2
star
19

privacy-policy-compliance

Compliance detection models and data
Jupyter Notebook
1
star
20

genealogical-triangulation

Identification of anonymous DNA using genealogical triangulation
Python
1
star
21

mistaken-ad-enforcement

Estimating Publication Rates of Non-Election ads by Facebook and Google
R
1
star
22

LongitudinalReviews

Jupyter Notebook
1
star
23

no-boundaries

JavaScript
1
star
24

misinformation-intervention-study-SI

Supporting information for the misinformation interventions field study project
1
star