The Generator Point
In ECC, everyone agrees on a starting point called , the generator point.
This is just a specific point on the curve that’s been standardized. For Bitcoin’s secp256k1 curve, is a fixed point that everyone uses.
Multiplying a Point by a Number
What does mean?
It means: add to itself 1000 times.
This is called scalar multiplication. The scalar (1000) tells us how many times to add.
The Naive Way
To compute :
- Start with
- Add :
- Add :
- … repeat …
- Add :
This takes 999 additions. Too slow for cryptography.
The Smart Way: Double-and-Add
There’s a much faster method using doubling.
How Double-and-Add Works
Instead of adding one at a time, use doubling to jump ahead.
- (one double)
- (one double)
- (one double)
- … keep doubling …
Each doubling gets you twice as far. By combining doubles and adds cleverly, you can reach any number in roughly steps.
For : only ~14 operations instead of 999!
Why This Matters
For a 256-bit scalar (like in Bitcoin):
| Method | Operations |
|---|---|
| Naive | additions (impossible) |
| Double-and-add | ~256 operations (instant) |
The double-and-add algorithm makes ECC practical.
The One-Way Property
Here’s what makes ECC secure:
Easy direction:
Given and , computing is fast (using double-and-add).
Hard direction:
Given and , finding is practically impossible.
This is the Elliptic Curve Discrete Logarithm Problem (ECDLP).
You can multiply forward easily, but you can’t divide backward.