Is signature/private-key required to accept payment over Lightning Network?


To (1) create an invoice and (2) accept payment in LN, the node has to be online. But does the node need to sign the creating invoice or the accepting payment?

We don't have to have private key online to receive Bitcoin in on-chain transation. Rather we just need to sign the sending transaction with private key.

It would be nice if LN node doesn't have to have pricate key online for accepting payment.

Yuya Ogawa

Posted 2019-06-06T01:17:25.660

Reputation: 513



Yes invoices are signed according to bolt 11. One reason we do this is to fight dos attacks. If I would not have to sign my invoice I could create an Invoice for any node. That node would not have the preimage for that payment hash and routing of the payment would fail all the time.

While I can imagine other processes that don't require a signature in the invoice we still need the private key / signature to update the payment channel on which the payment is coming in. This is needed to accept the offered htlc and to settle it. Since we certainly need a signature for the htlcs we can use them for invoices as well.

Rene Pickhardt

Posted 2019-06-06T01:17:25.660

Reputation: 8 514