Checking signatures requires keys. Currently, keys must be always given from the outside of Michelson.

Is there any reason why Michelson cannot obtain the already revealed keys of given contracts/addresses?

  • Not allowed from some security reasons?
  • Not required because we can use SOURCE/SENDER based authentication?
  • Maybe useful but none has yet proposed it with convincing use cases?

1 Answer 1


I think we are in the third case:

Maybe useful but none has yet proposed it with convincing use cases?

It is true that the keys must be given from the outside but so are the signatures so if one needs to combine signature checking and address-based authentication it is always possible to replace all occurrences of signature with pair key signature and use the HASH_KEY instruction (possibly followed by IMPLICIT_ACCOUNT and ADDRESS) to check that a given key and a given address match.

What we currently cannot simulate however is the ability to treat revealed accounts differently from not-yet-revealed ones and I don't see a use-case for this.

I don't see how having access the revealed keys could endanger the security. SENDER authentication solves many basic use cases but is not enough for some applications (multi-signature and fee-less transactions in particular) which rely on signature-based authentication instead. Finally note that another authentication feature named Tickets is being developed and might be proposed in a 007 protocol amendment.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.