ElementsProject / ElementsProject/elements

signmessage

Open
#1,319 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
1.2k
Forks
416
Avg merge
1d 23h
Merged PRs (30d)
15

Description

There are a few issues/open points with Elements/Liquid `signmessage` and `verifymessage`

* Elements Core uses the [same prefix as Bitcoin](https://github.com/ElementsProject/elements/blob/master/src/util/message.cpp#L22)
* During verification the blinding key is ignored
* Verification only works for `p2pkh`, see https://github.com/ElementsProject/elements/issues/976

Are we ok with all of the above? or do we we want to change something?

Do we still want to support message signing in Core?

Do we want to extend message signing and verification to non-p2pkh? Do we want to do it outside Core?

---

FWIW, here is a summary of what some existing wallets implement

| | | | Core | GDK | Electrum |
| - | - | - | - | - | - |
| **signmessage** | _bitcoin_ | p2pkh | ✅ | ✅ | ✅ |
| **signmessage** | _bitcoin_ | p2sh-p2wpkh | ❌ | ✅ | ✅ |
| **signmessage** | _bitcoin_ | p2wpkh | ❌ | ✅ | ✅ |
|||||||
| **verifymessage** | _bitcoin_ | p2pkh | ✅ | ❌ | ✅ |
| **verifymessage** | _bitcoin_ | p2sh-p2wpkh | ❌ | ❌ | ✅ |
| **verifymessage** | _bitcoin_ | p2wpkh | ❌ | ❌ | ✅ |
|||||||
| **signmessage** | _liquid_ | p2pkh | ✅ | ❌ | ❌ |
| **signmessage** | _liquid_ | p2sh-p2wpkh | ❌ | ❌ | ❌ |
| **signmessage** | _liquid_ | p2wpkh | ❌ | ❌ | ❌ |
|||||||
| **verifymessage** | _liquid_ | p2pkh | ✅ | ❌ | ❌ |
| **verifymessage** | _liquid_ | p2sh-p2wpkh | ❌ | ❌ | ❌ |
| **verifymessage** | _liquid_ | p2wpkh | ❌ | ❌ | ❌ |

Electrum was included in the above table since it was used as a reference to add support for non-p2pkh signing to GDK.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.