- Only you can sign, but anyone can verify.
- Operations of the API for Digi Sign:
1. (sk,pk) := generateKeys(keysize)
sk: Secret Signing Key
pk: Public Verification Key
2. sig := sign(sk, message)
3. isValid := verify(pk, message, sig)Requirements for Signatures
“valid signatures verify”
verify(pk, message, sign(sk, message)) == true“can’t forge signatures”
adversary who:
knows pk
gets to see signatures on messages of his choice
can't produce a verifiable signature on another messageBitcoin uses Elliptic Curve Digital Signature Algorithm (ECDSA) — Good randomness is essential
Public Keys As Identities (Decentralization)
-
Each pair of Public and Secret Key (pk, sk) is considered as an Identity/Address.
-
Anybody can make as many identities as they want, no central point of coordination.
Privacy
- Addresses are not connected to the real word identity
- But observer can link together an address’s activity over time, making inferences.