# ā°Group Theory

A **group** is a set of elements $Z = \{a, b, c, ...\}$ and one binary operator $+$ that satisfies the following axioms:

**Closure:**for any$a,b ā Z$, the element $a + b$ is in $Z$ .**Associativity:**for any $a,b,c ā Z$, $(a + b) + c = a + (b + c)$.**Identity:**$a + I = a$ , for all $a ā Z$.**Invertibility:**$a + (-a) = I$, for all $a ā Z$.

In addition to the above properties, if a group exhibits the commutative property of $a + b = b + a$, it is called an **abelian group**.

The elliptic curve used in Bitcoin is actually a mathematical group, that is **finite**, **cyclic**, **abelian**, and has a **single-generator** point, defined over the **binary addition operator**. These properties form the bedrock for an efficient signature and verification mechanism in Bitcoin.

A single-generator group contains an element $G ā Z$, called the **generator point**, such that repeated additions of $G$ with itself can generate every element in $Z$.

In fact, in prime order elliptic curves, any point can be a generator point.

$Z = \{G, 2G, 3G, 4G, ...\}$

Additionally, our group is cyclic, which means it has an order $n$, such that $nG = I$.

Let us now represent the generator point $G$in Python, used in Bitcoin.

#### Resources

Last updated