An Improbable Start

This web log or blog, to the use parlance of our times, is a place for me to discuss and explains problems or research ideas that I am working on or just find interesting. The emphasis will be on words over equations, with the aim of trying to give an intuitive explanation for mathematical concepts encountered in applied probability.

Much of my work involves the use of random simulations, which are also called stochastic or Monte Carlo simulations, so I will often be posting on ideas illustrated with simulations. Most of my experience is using MATLAB, so that will be my default programming language, but I also have experience in the statistics-focused language R, which arguably has the best spatial statistics package spatstat going around. I also use Python coupled with appropriate libraries such as NumPy, especially for machine learning work.

I am considering learning other languages to do random simulation work. A possible candidate here is the relatively new Julia language, although nothing seems to compete against MATLAB in terms of user friendliness.

Feel free to contact me for questions or to point out mistakes. I do appreciate it. I may even reply.

Block arrivals in the Bitcoin blockchain

My collaborators and I recently uploaded a preprint:

  • Bowden, Keeler, Krzesinski, Taylor, Block arrivals in the Bitcoin blockchain, 2018.

The hint is in the title. In this work we study the arrivals of blocks in the Bitcoin blockchain by using both empirical (statistical) methods and mathematical (stochastic) models. To do this, we set up Bitcoin nodes around the world and collected blockchain mining data.

One of the main observations is that, according to standard tests, Bitcoin blocks do not arrive according to a Poisson stochastic process. The Poisson assumption, which seems very reasonable, appeared in the original white paper by the pseudonymous Satoshi Nakamoto:

  • Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, 2008.

Going back to our newly uploaded work, here’s the abstract giving some more details:

Bitcoin is a electronic payment system where payment transactions are verified and stored in a data structure called the blockchain. Bitcoin miners work individually to solve a computationally intensive problem, and with each solution a Bitcoin block is generated, resulting in a new arrival to the blockchain. The difficulty of the computational problem is updated every 2,016 blocks in order to control the rate at which blocks are generated. In the original Bitcoin paper, it was suggested that the blockchain arrivals occur according to a homogeneous Poisson process. Based on blockchain block arrival data and stochastic analysis of the block arrival process, we demonstrate that this is not the case. We present a refined mathematical model for block arrivals, focusing on both the block arrivals during a period of constant difficulty and how the difficulty level evolves over time.

This new work is a spiritual sequel to a paper that some of us published a couple of years ago:

  • Göbel, Keeler, Krzesinski, Taylor, Bitcoin Blockchain Dynamics: the Selfish-Mine Strategy in the Presence of Propagation Delay, 2016.

A preprint of this paper can be found here.