Use of HSM for coinjoin transactions #7271
Locked
uwuforever
started this conversation in
Locked
Replies: 3 comments
|
Imagine this with WabiSabi. |
0 replies
|
The Coldcard MK3 and MK4 have an HSM mode that can be talked to via CLI https://coldcard.com/docs/hsm/protocol |
0 replies
|
This discussion is now locked, as feature/enhancement requests are being moved to the Issues tab for further processing. Please use #9815 for future comments regarding this. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Intro
Wasabi currently requires coins to be stored in a hot wallet in order to be coinjoined. I understand why a traditional hardware wallet like Ledger couldn't be used, but it still makes me nervous having my wallet available on an Internet connected computer. I'm wondering if a HSM like the USB Armory Mk II could be used.
Like a hardware wallet, the wallet private key could be saved on here and it could offer an interface that only allows signing while keeping the private key secret, but unlike a traditional hardware wallet, it runs a full Linux environment so it could be set up to automatically sign valid coinjoin transactions. This HSM will not have Internet connectivity itself but will be plugged in via USB to an internet connected computer running the full Wasabi client. During coinjoins, the Wasabi client passes it an unsigned coinjoin transaction via USB interface, and if the transaction passes sanity checks, it automatically returns a signature. The Wasabi client would never have access to the private key itself, and the HSM will only sign valid coinjoin transactions that include the expected outputs, preventing an attacker who manages to break into my Wasabi client from emptying my wallet.
Proposal
Protocol:
/api/v4/btc/ChaumianCoinJoin/coinjoinAPI endpoint would return both the unsigned Coinjoin transaction, as well as a coordinator signature verifying the authenticity of the coinjoin transaction.The HSM:
To implement:
/coinjoinendpointMaybe offer an option to store the full wallet data/sensitive log data on the HSM memory; it could be a separate section of its memory that allows read/write, which is unlocked with the same PIN used to authenticate on startup. This would eliminate the need for wallet files and further limits the sensitive data that is stored on the Wasabi client itself, so I can maintain the privacy of the wallet even if I cannot easily encrypt the drive the Wasabi client is installed on. If the HSM is locked or removed - there is no trace of the wallet - not even log data or transaction history, only a clean Wasabi install.
All reactions