Lightning Hardware Wallet

Hello,

Thank you for bringing the subject, I am also interested in hardware wallet development and usage for the new bitcoin layers.

I am jumping on this thread to talk to you about our lord and savior Vanadium. Joke aside, this is again one very smart idea from Salvatore Ingala and Ledger engineers.

States, policies, every information can be stored client side and verified by commitment of Merkle Tree roots and hardware wallet signatures. Actually with the current bitcoin ledger app, miniscript descriptors are not stored in device memory but uploaded by the client on request with a hmac. Vanadium (previously app-streaming) concept goes way further by abstracting the whole computing part into a RISC VM that could run any application by making usage of the client memory.

There are also a lot of “background” operations happening all the time that require signatures (on-the-fly splicing, commitment fee updates, etc). You’ll need to implement a lot of the lightning channel state machine logic inside the hardware device to properly analyze and authorize those without user input. You may end up re-writing a whole lightning implementation inside the hardware wallet, which is a tedious and complex task.

Rust-Lightning SDK could be a good help here, and rust tooling is better every day. Once compiled in RISC-V, your application could be use by any hardware wallet running the vanadium VM. (It also allows you to use rust std lib, memory being not a limit anymore).

2 Likes