Groups are a foundational algebraic concept used across many different branches of both pure and applied mathematics. In particular, the ECDSA and newer Schnorr digital signature algorithms used by Bitcoin are based on group theory. I will go over a small amount of the theory here, including the parts that are relevant for the signature algorithms.

Simple examples of groups include the real (or, rational, integer, complex, etc) numbers under the operation of addition, or the nonzero real (or rational, or complex) numbers under multiplication. Generally, a group is a set *G* together with a binary operator, which I will denote by ‘·’,

G × G → G, |

(a, b) ↦ a · b. |

For elements *a,b* of the group, the value *a*·*b* is referred to as their product or group product and, for brevity, it is also often written as *ab*. There are certain algebraic properties or axioms that are required in order for *G* to be a group. The first is *associativity*,

(a · b) · c = a · (b · c), |
(1) |

which must hold for all *a,b,c* in *G*. Continue reading “Group Theory”