x: private key
X: public key
m: message to sign
n: nonce extra
q = hash(x|m|n)
Q = q·G
k = q + hash(Q|m|n)
R = k·G
e = hash(R|X|m)
s = k + x·e
Q, s
R = Q + hash(Q|m|n)·G
R, s
e = hash(R|X|m)
s·G ?= R + e·X
x: private key
X: public key
m: message to sign
n: nonce extra
q = hash(x|m|n)
Q = q·G
k = q + hash(Q|m|n)
R = k·G
e = hash(R|X|m)
s = k + x·e
Q, s
R = Q + hash(Q|m|n)·G
R, s
e = hash(R|X|m)
s·G ?= R + e·X