
BlockSci: A high-performance tool for blockchain science and exploration - randomwalker
https://github.com/citp/BlockSci
======
randomwalker
BlockSci is an academic research project at Princeton, but we're committed to
maintaining it as open-source software, and we hope it's more broadly useful.
If you're interested in using it or contributing to it, here's a list of ideas
that we'd love to see implemented.

1\. Create a Block Explorer. BlockSci would make a good backend for a block
explorer website, because it would benefit from the built-in analysis library,
with features like address clustering and parsing multisignature scripts.

2\. Support more blockchains. BlockSci supports several blockchains, but there
are limitations detailed in the paper [1]. For example, currently we don’t
support any script operations not found in Bitcoin. Supporting more
altcoins/blockchains would make BlockSci more useful.

3\. Identify cold wallets and associated usage patterns. Cold wallet addresses
could be identified by various patterns on the blockchain such as infrequent
large withdrawals. After identifying these addresses, there are many
interesting questions to ask such as studying the rate of deposits vs
withdrawals.

4\. Improve clustering heuristics. BlockSci’s address linking is based on the
two heuristics from the Fistful of Bitcoins paper [2]. These heuristics have
known limitations, leading to false positives and negatives; there’s a lot of
room for improvement here.

5\. Extract hidden messages. There are many messages encoded into the Bitcoin
blockchain ranging from Wikileaks cables to Rickrolls [3]. We can find them if
we can guess how they are encoded. But can we automatically extract and decode
these hidden messages, say, by looking for address strings that look non-
random?

[1]
[https://arxiv.org/pdf/1709.02489.pdf](https://arxiv.org/pdf/1709.02489.pdf)

[2]
[https://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf](https://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf)

[3] [http://www.righto.com/2014/02/ascii-bernanke-wikileaks-
photo...](http://www.righto.com/2014/02/ascii-bernanke-wikileaks-
photographs.html)

~~~
necrodome
Is the underlying data updated in realtime?

~~~
hkalodner
One of the authors here. It can be used for realtime analysis. The data is
updated using a parser program which performs incremental updates. Adding a
single block is extremely rapid. Running this repeatedly (for instance using a
cron job) will keep the data up to date. I'm planning on adding a daemon mode
in the next version to simplify the process of live updates.

------
sandGorgon
Does Blocksci allow one to test out new consensus algorithms as well ?
Especially nuances like proof of work vs proof of stake ?

How much of overlap is there with tools like Jepsen (e.g
[https://github.com/jepsen-
io/tendermint/blob/master/README.m...](https://github.com/jepsen-
io/tendermint/blob/master/README.md))

~~~
hkalodner
BlockSci is purely targeted at providing an easy and efficient method of
asking questions about existing blockchains. BlockSci can certainly be used to
study Bitcoin's testnet as well as blockchains created in Bitcoin's regtest
mode. However BlockSci provides no ability to simulate protocol modifications
since it depends on importing data from existing full node software.

------
TheHideout
At first I thought this was some sort of combo Sci-Hub meets Blockchain, where
journal articles were inserted into the chain as a timestamp of release as
well as circumvention of censorship.

------
brighton36
That sounds like an oxymoron. Signing folders is hardly interesting.

