ElementsProject / ElementsProject/elements

signmessage

Offen
#1,319 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
1.2k
Forks
416
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
15

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit src/util/message.cpp und den Einstiegspunkten signmessage/verifymessage und vergleiche anschließend deren Verhalten mit den Elements/Liquid-Fällen und der Wallet-Zusammenfassung im Issue. Als erledigt gilt die Herbeiführung einer Projektentscheidung zum Nachrichtenpräfix, zum Umgang mit Blinding Keys, zur Unterstützung von Nicht-p2pkh und dazu, ob das Signieren von Nachrichten in Core verbleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
blockchain
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.