Table of Contents
Fetching ...

Coin selection by Random Draw according to the Boltzmann distribution

Jan Lennart Bönsel, Michael Maurer, Silvio Petriconi, Andrea Tundis, Marc Winstel

TL;DR

The Boltzmann Draw is proposed, a probabilistic algorithm inspired by the principles of statistical physics that relies on drawing tokens according to the Boltzmann distribution, serving as an extension and improvement of the Random Draw method.

Abstract

Coin selection refers to the problem of choosing a set of tokens to fund a transaction in token-based payment systems such as, e.g., cryptocurrencies or central bank digital currencies (CBDCs). In this paper, we propose the Boltzmann Draw that is a probabilistic algorithm inspired by the principles of statistical physics. The algorithm relies on drawing tokens according to the Boltzmann distribution, serving as an extension and improvement of the Random Draw method. Numerical results demonstrate the effectiveness of our method in bounding the number of selected input tokens as well as reducing dust generation and limiting the token pool size in the wallet. Moreover, the probabilistic algorithm can be implemented efficiently, improves performance and respects privacy requirements - properties of significant relevance for current token-based technologies. We compare the Boltzmann draw to both the standard Random Draw and the Greedy algorithm. We argue that the former is superior to the latter in the sense of the above objectives. Our findings are relevant for token-based technologies, and are also of interest for CBDCs, which as a legal tender possibly needs to handle large transaction volumes at a high frequency.

Coin selection by Random Draw according to the Boltzmann distribution

TL;DR

The Boltzmann Draw is proposed, a probabilistic algorithm inspired by the principles of statistical physics that relies on drawing tokens according to the Boltzmann distribution, serving as an extension and improvement of the Random Draw method.

Abstract

Coin selection refers to the problem of choosing a set of tokens to fund a transaction in token-based payment systems such as, e.g., cryptocurrencies or central bank digital currencies (CBDCs). In this paper, we propose the Boltzmann Draw that is a probabilistic algorithm inspired by the principles of statistical physics. The algorithm relies on drawing tokens according to the Boltzmann distribution, serving as an extension and improvement of the Random Draw method. Numerical results demonstrate the effectiveness of our method in bounding the number of selected input tokens as well as reducing dust generation and limiting the token pool size in the wallet. Moreover, the probabilistic algorithm can be implemented efficiently, improves performance and respects privacy requirements - properties of significant relevance for current token-based technologies. We compare the Boltzmann draw to both the standard Random Draw and the Greedy algorithm. We argue that the former is superior to the latter in the sense of the above objectives. Our findings are relevant for token-based technologies, and are also of interest for CBDCs, which as a legal tender possibly needs to handle large transaction volumes at a high frequency.
Paper Structure (18 sections, 11 equations, 8 figures, 1 table, 1 algorithm)

This paper contains 18 sections, 11 equations, 8 figures, 1 table, 1 algorithm.

Figures (8)

  • Figure 1: General idea of the BD selection probability $p(u_i^v)$ of a coin $u_i$ with value $u_i^v$ illustrated on an example wallet with $n=4$ tokens.
  • Figure 2: Representation of transaction values under (a) Normal, (b) Poisson, and (c) Dirichlet distributions.
  • Figure 3: Comparison of one single simulation run with 10000 iterations of the first scenario between RD, BD and Greedy.
  • Figure 4: Comparison of the average pool size of 100 simulation runs between RD, BD, and Greedy, conducted on the three testing scenarios. The shaded area depicts the standard deviation.
  • Figure 5: Comparison of the token distributions obtained with the RD, the proposed BD, and the Greedy algorithm. The data includes the final token counts from multiple simulation runs. Thereby, the data for the first and second scenario stems from 100 simulation runs consisting of 100000 iterations each. For the third scenario, the data is obtained from 10000 simulations runs with 1000 iterations each to obtain more statistics because of the small token pool size in a single simulation (see \ref{['Fig_avg_pool_size_evolution']}). In each subfigure, $200$ bins are used. Note that the vertical axis is plotted on a logarithmic scale.
  • ...and 3 more figures