THE MATHEMATICS OF BITCOIN A Thesis Presented to The Department of Mathematics EMPORIA STATE UNIVERSITY In Partial Fulfillment of the Requirements for the Degree Master of Science by Sophia Lillian Muse Crossen May ii. Finally, I have a clear understanding of how math is used to make Bitcoin and blockchain such a powerful, disruptive technology. Math is used to verify transactions (mining), make transactions, and to create wallet addresses to which transactions are sent. You could make yourself very rich—bitcoin mining and security keys rely on hard-to-solve, easy-to-check NP problems. Quantum computers, which are based on different mathematics than classical.
Math bitcoinBitcoin: What’s the Math?
The security of the algorithm relies on these values being large, and therefore impractical to brute force or reverse engineer. Who chose these numbers, and why? A great deal of research , and a fair amount of intrigue , surrounds the selection of appropriate parameters.
After all, a large, seemingly random number could hide a backdoor method of reconstructing the private key. In brief, this particular realization goes by the name of secpk1 and is part of a family of elliptic curve solutions over finite fields proposed for use in cryptography. With these formalities out of the way, we are now in a position to understand private and public keys and how they are related.
The public key is derived from the private key by scalar multiplication of the base point a number of times equal to the value of the private key. Expressed as an equation:. This shows that the maximum possible number of private keys and thus bitcoin addresses is equal to the order. In a continuous field we could plot the tangent line and pinpoint the public key on the graph, but there are some equations that accomplish the same thing in the context of finite fields.
In practice, computation of the public key is broken down into a number of point doubling and point addition operations starting from the base point. The parameters we will use are:. The calculation looks like this:. Here we have to pause for a bit of sleight-of-hand: how do we perform division in the context of a finite field, where the result must always be an integer? We have to multiply by the inverse, which space does not permit us to define here we refer you to here and here if interested.
In the case at hand, you will have to trust us for the moment that:. As with the private key, the public key is normally represented by a hexadecimal string. But wait, how do we get from a point on a plane, described by two numbers, to a single number? From this partial information we can recover both coordinates.
The data can be of any length. The usual first step is to hash the data to generate a number containing the same number of bits as the order of the curve. The recipe for signing is as follows:. As a reminder, in step 4, if the numbers result in a fraction which in real life they almost always will , the numerator should be multiplied by the inverse of the denominator.
In step 1, it is important that k not be repeated in different signatures and that it not be guessable by a third party. That is, k should either be random or generated by deterministic means that are kept secret from third parties. Otherwise it would be possible to extract the private key from step 4, since s , z , r , k and n are all known.
OK you got us, but it will make our example simpler! Note that above we were able to divide by 3 since the result was an integer. In real-life cases we would use the inverse of k like before, we have hidden some gory details by computing it elsewhere :.
As with the private and public keys, this signature is normally represented by a hexadecimal string. We now have some data and a signature for that data. A third party who has our public key can receive our data and signature, and verify that we are the senders. With Q being the public key and the other variables defined as before, the steps for verifying a signature are as follows:. Why do these steps work? We are skipping the proof, but you can read the details here. Our variables, once again:.
Sit back for a moment to appreciate that by using the grouping trick we reduce 75 successive addition operations to just six operations of point doubling and two operations of point addition. These tricks will come in handy when the numbers get really large. We have developed some intuition about the deep mathematical relationship that exists between public and private keys.
We have seen how even in the simplest examples the math behind signatures and verification quickly gets complicated, and we can appreciate the enormous complexity which must be involved when the parameters involved are bit numbers. And we have newfound confidence in the robustness of the system, provided that we carefully safeguard the knowledge of our private keys.
This article has been republished here with permission from the author. The author gives s pecial thanks to Steven Phelps for help with this article. Eric Rykwalder is a software engineer and one of Chain. The Math Behind the Bitcoin Protocol. Bitcoin Protocol With bitcoin the case is different. But first, a crash course on elliptic curves and finite fields. We can use these properties to define two operations: point addition and point doubling.
Please follow me on Twitter and feel free to drop me a line if you would like to work together. Here at NewsBTC, we are dedicated to enlightening everyone about bitcoin and other cryptocurrencies. We cover BTC news related to bitcoin exchanges, bitcoin mining and price forecasts for various cryptocurrencies. All Rights Reserved. Advertise Submit a Press Release. Home Technical analysis BTC. Reading Time: 3min read. Reloads and free spins available every day, for every player, in mBitcasino Crypto Autumn Bonanza!