Field elements (fe) and group elements (ge) are defined in the ref10 folder. They're also used in computations in crypto-ops-data.c.

I'm trying to understand how Monero works by reading the code, but I don't understand the math in the Cryptonote whitepaper.

1 Answer 1


The ref10 folder contains code for operations on curve25519. This code comes from NaCL, and is not specific to monero. Reading material on ECC will be more helpful in understanding this code than the monero whitepaper.

The group refers to the finite set of points that are solutions to the equation defined by curve25519. Each point has an x and y coordinate integer value, and each value is in the finite set of integers defined by the field. These points are the "public" keys used within monero. The public keys are "found" by repeatedly adding the curve25519 base point to itself. The number of times the base point is added to itself is determined by the randomly generated private key (a large integer value).

The tricky part is understanding that the addition operations are defined in terms of the points on the curve itself, and not on integers. But solving for points on the curve is done with integers, but only those defined by the field.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.