Bits Blockchain Visualization
I collaborated on a experiment visualizing the Blockchain. It actually came out of my frustration when waiting for confirmations, I wanted something nice to look at, and added the sound notification for notifications when I am browsing in another tab. I hope some of you find it useful.
Below this another visualization, but this time using the history of the blockchain. It was done by John Ratfcliff.
A 3D Visualization of the Bitcoin Blockchain Over Time
By: John Ratcliff
This is like my very, very, very, first earliest draft effort at making a real-time 3d visualization of the bitcoin blockchain over time. The finished version will be fully interactive with textures, color coding, and lots of other features. The reason I am uploading even this incredibly crude version is that I have had this whole thing “in my head’ for a while but I couldn’t’ really explain to people what I was going for. I’m probably uploading this prematurely, but there are some people from whom I want to get feedback, even at this very early stage. This application only requires DirectX 9 and uses hardware instancing to render hundreds of thousands of boxes at highly interactive framerates. The data set can be highly compressed, so that actual run-time demand in terms of disk space and memory should be relatively modest.
What this shows is the following. The video begins on January 3, 2009 when Satoshi mined the first bitcoin block. As the video moves forward it will grow as each day passes; one column of data for each day. Each box corresponds to exactly *one* unique bitcoin address. Each row corresponds to exactly *one* day. The boxes are exactly to scale! The bigger the box, the larger that addresses bitcoin balance. The smaller the box, the smaller the balance. This application when complete will visualize *all* bitcoin addresses with a balance of one bitcoin or higher throughout the history of the bitcoin blockchain! That’s over 235,000 boxes which will be displayed at high interactive framerates once this application is completed.
The vertical axis stacks up all addresses for that day of that value. It’s important to note that everything is mathematically to scale; this visualization shows *every* single individual address with a balance of more than one bitcoin on that day.
The forward movement in the animation represents time advancing. As new spend transactions are performed on old addresses then that box is correspondingly moved forward on the z-axis of the graph. (Receive transactions do not adjust the time-stamp for an address, since anyone can send value to a bitcoin address, even an old one.)
The finished version of the application will animate new addresses being created, it will animate old addresses going to a zero balance. It will animate when an address moves from an old location to a new location. Every single box will have a unique identifying icon so that you can visually track the same address moving through time.
I may highlight addresses to indicate whether or not they still exist today (that way as it plays back from years ago, you can see like a glaring siren those dead/zombie addresses which have had no activity for years.) I may also add some sound effects to correspond with the size of address balances relative to the ‘days destroyed’.
The finished version of this application will, of course, label everything, and if you hover with the mouse over a particular box it will show you all of the detail about that particular address. If you double click on the box, it will bring up the entire transaction history of that address in the blockchain.info website.
The boxes will be color coded, and I may make a visual distinction for each box based on how many transactions have been performed against it.
This visualization was created using the bitcoin blockchain parser written by John W. Ratcliff to extract the data on a daily basis. I was able to extract the balance of every single bitcoin address for every single day since January 2009, in about 15 minutes on my, arguably, fairly powerful personal computer.