Hi Sjors,

The Ledger Bitcoin app uses PSBTv2 since version 2.0.0 in 2021 [0], quite
possibly the first adopter - although for somewhat unusual reasons.

Working with embedded devices with just a few kb of RAM, even sending the
entire PSBT is not generally feasible.
Therefore, the client instead sends a 'merkleized' commitment to the entire
PSBT at the beginning of the signing process.
This enables the device to obtain random access to the PSBT by querying the
client (who provides the data - and the Merkle proof - on demand).

In PsbtV0, the unsigned transaction is a binary blob, which was a huge
headache because the device had to parse it while streaming it (and
therefore, no RAM access to the individual transaction fields is possible).
PsbtV2 fixed this by having the transaction already 'parsed' into
individual fields.

The companion client libraries of the Ledger Bitcoin app support both
versions, and PsbtV0 is converted to PsbtV2 on the fly.
Broader support would certainly be useful.

Best,
Salvatore Ingala

[0] https://www.ledger.com/blog/bitcoin-2

-- 
You received this message because you are subscribed to the Google Groups 
"Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/bitcoindev/CAMhCMoGONKFok_SuZkic%2BT%3DyoWZs5eeVxtwJL6Ei%3DyysvA8rrg%40mail.gmail.com.

Reply via email to