Skip to content

walletprocesspsbt produces invalid signatures, finalizepsbt doesn't finalize tx with valid signatures #968

Description

@stepansnigirev

Trying to create and sign psbt with elements produces an invalid transaction.

The flow is:

  • create psbt with walletcreatefundedpsbt (bip32deriv is true)
  • blind it with blindpsbt
  • sign it with the wallet using walletprocesspsbt
  • finalize the transaction with finalizepsbt
  • check that transaction will be accepted by the mempool with testmempoolaccept - signatures are invalid.

As I figured out the walletprocesspsbt is using a raw unblinded transaction from the global scope of the psbt, so in the digest unblinded values and assets of the outputs are used. If I manually sign the transaction with asset and value commitments available in the output scope of the PSBT I can create a valid signature, but then finalizepsbt rpc call refuses to finalize the transaction because it is also checking the signatures without taking into account the commitments.

I am using elements-0.18.1.9 from the releases.

Currently I am using my own script to sign and finalize the transaction, but it's not very convenient... Would be nice to fix this.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions