Hello everyone,
I’m working on a small non-custodial vault system and would like to collect feedback on the safety and correctness of a simple script design, as well as on a question regarding pruned nodes and PSBT workflows.
Vault designThe vault uses two spending paths:
Normal spending path (immediate):
2-of-2 multisig (key A + key B required)
Recovery path (delayed):
After a predefined block height (CLTV), key B alone can spend:
Both paths behave as expected on regtest, including enforcement of the CLTV height.
The goal is a simple inheritance/emergency mechanism:
– before the delay expires → strict 2-of-2
– after the delay → key B alone can recover funds
No custodial component; all spending is done via PSBTs signed on two Ledger devices.
For the client software, I would like to use a remote pruned Bitcoin Core node (for storage and deployment reasons).
The client retrieves UTXOs, fetches the required previous outputs for PSBT construction, and broadcasts the final transaction via RPC.
Is a pruned node fully reliable for such a workflow?
Specifically:
returning all UTXOs belonging to the vault address,
providing scriptPubKey, value, and other fields required in a PSBT input,
validating the timelocked script spend,
broadcasting the final transaction.
Are there any known limitations, edge cases, or risks associated with relying on a pruned node in this context, especially when spending from a script with multiple paths (2-of-2 + CLTV recovery)?
Any comments on the script design itself (safety, best practices, or possible improvements, including Taproot-based approaches) would also be very welcome.
Thanks for your time and insights.
Best regards,
Victor
--
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 bitcoindev+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/82546937-996d-495d-8a4e-66654306447cn%40googlegroups.com.
Hi Antoine,
Thanks a lot for your message and for pointing this out — I completely understand your remark about the terminology. You’re right: using “vault” too loosely contributes to confusion, especially when Bitcoin vaults historically referred to a very specific construction with enforced spending paths and secure delays.
I’ll adjust my wording going forward and be more precise about what the system implements.
The construction I’m working on is indeed essentially a 2-of-2 multisig with a CSV-based recovery path, very similar in spirit to Liana. My goal is mostly educational and exploratory for now: understanding the full lifecycle (descriptor, address generation, UTXO tracking, PSBT building, hardware signing, recovery flow). I’m not trying to innovate or redefine the term “vault”, but rather build a usable multisig recovery system before exploring more advanced designs.
Your point about absolute timelocks (CLTV) is well taken. I switched to CSV for the same reason you mentioned: CLTV introduces an implicit expiration that is difficult to communicate to non-technical users. CSV makes the construction more flexible and avoids descriptor obsolescence.
Regarding node operation:
For the moment I’m running a full Bitcoin Core node (non-pruned) because it simplifies UTXO retrieval during development. I hadn’t implemented pruned-node compatibility yet, but seeing that Liana handles this cleanly with a pruned watch-only wallet + Electrum fallback is extremely helpful context. I’ll definitely study how Liana approaches this architecture before going further.
My intention isn’t to reinvent Liana, but rather to build something minimal for learning, and then expand it into a broader project (inheritance flows, user-friendly recovery logic, analytics, etc.) once the foundations are solid.
Thanks again for taking the time to point me in the right direction — it’s really appreciated.
If you have any recommendations on what pitfalls to avoid or reading material on robust recovery designs, I’d be glad to hear them.
Best regards
Victor
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/CAHyc38kweRwvji1NFPCXn3pXSZHtoT4b8sWLHNJ259H%2BGTKnHg%40mail.gmail.com.