Cryptography
secp256k1
Also known as: secp256k1 curve
The elliptic curve used by Bitcoin, Ethereum, and most EVM chains — and the curve LearnCoin uses for every signing key.
secp256k1 is an elliptic curve defined in SEC 2 (Standards for Efficient Cryptography, 2000). It's the curve Bitcoin chose in 2008, Ethereum adopted in 2014, and most EVM-compatible chains use today. The curve parameters are specific enough that "secp256k1" has become shorthand for "Bitcoin / Ethereum signing curve".
For LearnCoin, secp256k1 is the right choice because it aligns with Ethereum's native signing model. LearnCoin's signing worker talks to GCP KMS to sign SHA-256 digests with secp256k1 keys; the resulting (r, s) signature is the same shape Ethereum uses for EIP-1559 transactions. We use the same curve for both credential signing (MerkleProof2019) and on-chain anchoring transactions, which simplifies key management and key rotation.
Each tenant has its own secp256k1 key inside GCP KMS HSM. The DID document declares each key as a verificationMethod with type EcdsaSecp256k1VerificationKey2019, and the publicKeyJwk encodes the curve's x and y coordinates.