Eric Rykwalder Oct 19, at Here, he gives an overview of the mathematical foundations of the bitcoin protocol.
Tutorials focusing on Linux, programming, and open-source
One reason bitcoin can be confusing for beginners is that the technology behind it redefines the concept of ownership. To own something in the traditional sense, be it a house or a sum of money, means either having personal custody of the thing or granting custody to a trusted entity such as a bank.
With bitcoin the case is different. Bitcoins themselves are not stored either centrally or locally and so no one entity is their custodian. They exist as records on a distributed ledger called the block chain, copies of which are shared by a volunteer network of connected computers. To “own” a bitcoin simply means having the ability to transfer control of it to someone else by creating a record of the transfer in the block chain.
What grants this ability? What does that mean and how does that secure bitcoin? Let’s have a look under the hood. With bitcoin, the data that is signed is the transaction that transfers ownership.
ECDSA has separate procedures for signing and verification. Each procedure is an algorithm composed of a few arithmetic operations. The signing algorithm makes use of the private key, and the verification process makes use of the public key.
We will show an example of this later. But first, a crash course on elliptic curves and finite fields. Elliptic curves An elliptic curve is represented algebraically as an equation of the form: Elliptic curves have useful properties. For example, a non-vertical line intersecting two non-tangent points on the curve will always intersect a third point on the curve. A further property is that a non-vertical line tangent to the curve at one point will intersect precisely one other point on the curve.
We can use these properties to define two operations: It’s easiest to understand this using a diagram: Here’s an example of what that would look like: Finite fields A finite field, in the context of ECDSA, can be thought of as a predefined range of positive numbers within which every calculation must fall. Any number outside this range “wraps around” so as to fall within the range.
The simplest way to think about this is calculating remainders, as represented by the modulus mod operator. Putting it together ECDSA uses elliptic curves in the context of a finite field, which greatly changes their appearance but not their underlying equations or special properties.