signmessage
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- blockchain
Research direction
Start with src/util/message.cpp and the signmessage/verifymessage entry points, then compare their behavior with the Elements/Liquid cases and wallet summary in the issue. Done means reaching a project decision on the message prefix, blinding-key handling, non-p2pkh support, and whether message signing remains in Core.
Written by the indexing model from the issue text.
Description
There are a few issues/open points with Elements/Liquid signmessage and verifymessage
- Elements Core uses the same prefix as Bitcoin
- 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.
- Dominant language
- C++
- Stars
- 1.2k
- Forks
- 418
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 13
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ElementsProject/elements
-
Difficulty 2/5 1-3 hours Newbie friendliness 58/100
ElementsProject/elements#1555 ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
ElementsProject/elements#1521 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 32/100
ElementsProject/elements#1516 · 5 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
ElementsProject/elements#1502 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 38/100
ElementsProject/elements#1500 · 2 comments ·
All issues in ElementsProject/elements
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ros2/message_filters#338 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
subsurface/subsurface#4984 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
google-ai-edge/LiteRT-LM#3739 ·