# 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, every point is 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.# Generator point of the abelian group used in Bitcoin

G = Point(

x=0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,

y=0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8,

curve=secp256k1

)

# Order of the group generated by G, such that nG = I

N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141

Last modified 3yr ago