ElementsProject / ElementsProject/elements

pset: PartiallySignedTransaction::GetUnsignedTx does not work correctly when issuance assets have null values

Offen
#1,126 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

According to the consensus validation rules, we must supple Null values for issunace/reissuance instead of explicit zero. However, the current code for tries does something else:
https://github.com/ElementsProject/elements/blob/c80e926d6e29d5a9524182767967884091665405/src/psbt.cpp#L126-L132

Fix would be to have
1) two separate if else statements for issunace/re-issuance.
2) force_unblinded is always used. There is no way to do explicit issuances in the current pset workflow.

This calculation causes `walletprocesspsbt` to create signatures that do not validate because the sighash is calculated incorrectly.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Untersuche src/psbt.cpp in den Zeilen 126–132 und verfolge PartiallySignedTransaction::GetUnsignedTx hinsichtlich der Asset-Werte bei Issuance und Reissuance. Vergleiche die resultierende unsignierte Transaktion und den sighash mit den Konsensvalidierungsregeln und teste anschließend den walletprocesspsbt-Ablauf. Erledigt ist die Aufgabe, wenn generierte Signaturen für Issuance-Fälle mit Nullwerten validiert werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
blockchain
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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