Hacker News new | ask | show | jobs
by lalaland1125 3064 days ago
See section 9.5 of the lightning whitepaper:

> 9.5 Forgetting to Broadcast the Transaction in Time

> If one does not broadcast a transaction at the correct time, the counterparty may steal funds.

You need to be online all the time (or at least frequently enough) so that you can publish a penalty transaction if your counter party tries to steal coins from you.

3 comments

This can be easily be solved by pre-signing that transaction and having a third party service broadcast that transaction if you're not online.
if you have to trust third parties, whats the point?
you don't. you're not handing over the private keys. you sign the transaction locally, and give them to the third party to broadcast in case you're not online. it can even be multiple third parties so you're not trusting a single one. this provides better reliability than broadcasting it yourself on your home/vps/colo connection.
You are trusting those third parties to react accordingly. They could be paid off or attacked in other ways.
If you're dealing with amounts so large that you can't trust [large number] of independent third parties, you can always fall back to on-chain. but you've got to be pretty paranoid to think that starbucks is going to collude with [large number] of independent third parties to steal your $100 coffee deposit.
I see what you mean. Three thoughts on this:

* The time lock on commitment transactions is typically set to be a few days, so you don't need to be online "constantly." At most you need to check in about once a day.

* As the white paper says, you can delegate this function to a third party, without giving the third party the ability to steal your funds.

* If the other party tries to steal your funds and you catch him, you get to steal all of his funds. So in practice I don't expect this to be a common situation. If the other guy believes there's at least a 90 percent chance that you'll check the blockchain on any given day, then the expected value of broadcasting a revoked transaction is going to be heavily negative.

One interesting comment about the third point is that once a channel gets sufficiently depleted (say down to 10% of the balance on one side), then there is an increased incentive to cheat (because the potential losses are lower). So you will usually have to keep channels at above a certain balance for security reasons.
Sure, but there’s services you can outsource that to. Furthermore, if you only use lightning for sending payments (the majority of us) then publishing an earlier version of the channel benefits you!
Are those services called banks?
You could call them that if you want, but they are significantly different than traditional banks.

These services won't actually hold your money, just a transaction that sends all the money to you if someone tries to cheat. It's more of an escrow service than a bank, but the escrow service again doesn't actually hold anything valuable.

Not exactly banks, but there's a huge chance they will be big corps with a money transmitter license, KYC, AML. What if they refuse your channel or transaction?
I think we are talking about different things. This thread is about services that will watch the blockchain for "cheaters" and will punish them on your behalf so you don't need to be always online.

You are talking about LN nodes, which work a bit differently than you seem to think it does.

For starters, anyone can "refuse" to open a channel with you, but they can't "refuse" to pass along a transaction (well they can, but because of the routing system used, you don't know where a transaction came from, or where it's going to, so they have no reason to refuse it). So if coinbase refuses to open a channel with me, I can still send money using coinbase as a middle "hop", and they would never know.

And KYC/AML laws aren't really applicable at this level in the stack. KYC laws apply regardless of what i'm buying/selling (in most cases). If I'm buying from best buy, they need to know who I am. That has nothing to do with how I'm paying, and the "middle hops" are like routers more than banks. Even if an internet router is sending a financial transaction, that doesn't mean they need to follow KYC laws. It's the same with LN, if your node is acting as a "hop" for a transaction, you don't know who or where the tx is coming from, or who or where it's going to, and it's counterparty risk free. It's more like an internet router than any kind of financial institution, so KYC laws don't apply.