I'm wondering if its possible to design a hardware wallet such that it can be used for a Lightning node that routes payments for their channel partners such that their funds can never be stolen even if their main machine has been kernel hacked.
I'm thinking that this is how it might work:
- The hardware wallet would receive a signed transaction originating from its source channel-partner AND an unsigned transaction (to sign) sending to its destination channel-partner.
- The hardware wallet verifies that the sum of the amounts of both transactions sum to greater than 0 (ie verifying that the node isn't losing funds by signing this transaction), verifies that the inputs are valid (using SPV), verifies that both transactions requires the same hash-secret to unlock, and verifies that its only sending to a multi-sig address that requires its private key to unlock
- The hardware wallet then signs the unsigned requested transaction and gives it back to the Lightning Client to send
It seems like if a hardware wallet did this kind of verification, it would be safe to have a routing Lightning node that interacted with an always-connected hardware wallet with the level of security that a normal hardware wallet has. Is something along these lines possible?