Reading the bottom of page 2 of the Musig Paper we can find that a Schnorr Signature for a cyclic Group G of prime order p with generator g is a tuple (R,s) where

  • R = gr for a random secret r and
  • s=r+cx where c = H(X,R,m) for a message m, some Hashfunction H and the public key X = gx corresponding to the private key x.

It is further stated that such a signature (R,s) can be verified using the equation gs = RXc

I would like to know why that last equation proves the validity of the signature?

1 Answer 1


To prove the validity of the signature, we must see that the tuple (R,s) actually came from the private key x. In particular that s was derived as s=r+cx. Obviously, we should not possess the private key x (which is the reason why we need this verification equation) so

  1. Looking at gs = RXc, we realize that we know (R,s), X and c (since c = H(X,R,m) and the public key X is known). As the generator g is also known, we can actually compute both sides of the equation.
  2. Since s=r+cx, we know that gs = gr+cx
  3. Since we do these calculations in a cyclic group of prime order we can apply the following rules: ga + b = gagb and gab = (ga)b (As far as I understand, this is the reason why the group needs to be cyclic and of prime order.)
  4. Thus, gs = gr+cx = grgcx
  5. Recalling R = gr and entering it into the equation from 4. we get gs = Rgcx
  6. Recalling the other rule from 3. we have gs = Rgcx = R(gx)c = RXc

This is exactly the equation that was supposed to be shown.

Note the interesting fact that as mentioned in 1. all data needed to verify the equation is known but producing the data can only work if x and r are known. That is why the owner of x can produce the signature and others can verify it.

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.