I'm looking at the multisignature scheme provided by MRL005 Section 4.4, and some things are unclear to me. I've attached a picture below of the expression for which I'm seeking some clarification.

Monero Multisignature Snippet

Above, we have:

  1. A generated key image (Ij)
  2. A hash function (H)
  3. A shared public key (Pe)
  4. And a signer-specific public key (Pj)

No ambiguity there.

The actual operations required to calculate a given key image are the core of my questions.

Question 1: For the term (Pe | Pj)

  • Am I correct to interpret this as an inner product of the shared, and signer-specific public keys?

Question 2: For the term (Pe | Pj)

  • How would one actually calculate this value, given the two public keys? A detailed example would be preferred here.

Question 3: For the term H()

  • Which hash function is used here? Sha512, as in EdDSA? Keccak? Or something else?
  • Keep in mind MRL0005 is out of date. You can find more current resources on multisig in MRL0009 and Zero to Monero 2 ch. 9.
    – koe
    Commented Aug 19, 2020 at 1:40

1 Answer 1


1 & 2 - Pe | Pj is concatenation of the keys.

3 - Keccak, although as @knaccc comments, H() is not simply a hash function, it's hash-to-point, so should read Hp().

  • 1
    I think that there is a typo in MRL005, and that H() is actually Hp(). Otherwise the result of multiplication would not result in an EC point key image. I failed to figure out the nature of their entire multisig scheme from their brief description.
    – knaccc
    Commented Aug 19, 2020 at 1:00
  • @knaccc indeed, it should read Hp() not H(). The MRL005 note (which is all it seems to be) is quite different to much of the multisig code.
    – jtgrassie
    Commented Aug 19, 2020 at 1:08
  • This makes a lot more sense now. Thanks to you both. I don't have enough rep to upvote Commented Aug 19, 2020 at 3:39

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.