6 votes

What does TLV stand for?

TLV stands for type-length-value. It's an encoding scheme used when protocols allow for optional elements in their messages. The type is a label telling you what field you're looking at, the length ...
user avatar
  • 63.4k
2 votes

Broadcasting fake Lightning channels

I think you answered your own question in the first part: Gossip at no-cost on a broadcast network is a potential Denial-of-Service attack vector. Since there is nothing stopping Sybil from creating ...
user avatar
  • 3,220
2 votes

What is "Link-Level Multiplexing"?

It means that one peer can decide what is the best way of reaching another when forwarding a HTLC. Let Alice and Bob having 2 channels between then, each one with 0.5 on each side, so looks like this: ...
user avatar
2 votes
Accepted

Is there an absolute limit the payment request expiry?

I think it is not explicitly specified. But c-lightning uses for example an unsigned int 64. Overall the expiry is obviously created to allow nodes to not store payment preimages for requested ...
user avatar
2 votes

Can you do P2WSH / P2SH on Lightning Network (LN)?

As you realized the point of Lightning is to reduce latency. At the same time coordinating signatures from various parties in order to move forward the state seems rather impractical. Thus as far as I ...
user avatar
1 vote

Virtual Lightning channels for high availability

There are currently ideas being discussed to have Gossip v2 which would be a bit more private. The reason why I mention this is that currently every channel is bound to a UTXO to prevent spam. In ...
user avatar
1 vote
Accepted

Can you do P2WSH / P2SH on Lightning Network (LN)?

I understand that a channel is a 2 of 2 multisig. Right, a channel according to the current Lightning protocol must be a 2-of-2 multisig. As far as the blockchain is concerned any funds moved from ...
user avatar
1 vote
Accepted

How can i get the payee public key from the payment request

Here is the solution I ended up using: // var invoice *lnrpc.Invoice inva, err := zpay32.Decode(invoice.PaymentRequest, &chaincfg.MainNetParams) if err != nil { return err } fmt.Sprintf(&...
user avatar

Only top scored, non community-wiki answers of a minimum length are eligible