<p>Roasbeef <a href="http://www.erisian.com.au/meetbot/lightning-dev/2019/lightning-dev.2019-08-05-20.03.log.html#l-257" rel="nofollow noreferrer">mentioned</a> on IRC that the Lightning specification allows a client to either assume that the latest co-signed commitment has been received by the counterparty, or that it hasn't. (as far as I understand that linked discussion. If I got it wrong, please edit the question)</p>

<p>For an implementation, what are the consequences of preferring to send the oldest co-signed, or sending the newest co-signed? (both unrevoked)</p>

CC BY-SA 4.0
2019-08-13T18:52:39.940Z
Can you please clarify further what you mean by "preferring to send the oldest co-signed, or sending the newest co-signed?". I'll update my answer after that.
Ugam Kamat
CC BY-SA 4.0
2019-08-13T19:15:55.993Z
When you receive `commitment_signed`, you have the signature for a new commitment transaction. But you havn't revoked the old one yet, so it will still be valid. Therefore, you will have two co-signed commitment transactions. One is older than the other. The counterparty cannot know if you received `commitment_signed` unless you acknowledge it. So if you reconnect and send `channel_reestablish` you can choose the value of `next_commitment_number`. If you send a low value, the counterparty might conclude that you lost data, in which case it could breach the channel without fear of repercussion.
Janus Troelsen
<lightning-network>
What are the pros/cons of preferring sending the latest commitment or the oldest commitment?
Janus Troelsen
# What are the pros/cons of preferring sending the latest commitment or the oldest commitment?

(Asked by: username_0 on 2019-08-13)

Roasbeef [mentioned](http://www.erisian.com.au/meetbot/lightning-dev/2019/lightning-dev.2019-08-05-20.03.log.html#l-257) on IRC that the Lightning specification allows a client to either assume that the latest co-signed commitment has been received by the counterparty, or that it hasn't. (as far as I understand that linked discussion. If I got it wrong, please edit the question)

For an implementation, what are the consequences of preferring to send the oldest co-signed, or sending the newest co-signed? (both unrevoked)

**Tags:** lightning-network

> **Comments:**
> **username_1**: Can you please clarify further what you mean by "preferring to send the oldest co-signed, or sending the newest co-signed?". I'll update my answer after that.  
> **username_0**: When you receive `commitment_signed`, you have the signature for a new commitment transaction. But you havn't revoked the old one yet, so it will still be valid. Therefore, you will have two co-signed commitment transactions. One is older than the other. The counterparty cannot know if you received `commitment_signed` unless you acknowledge it. So if you reconnect and send `channel_reestablish` you can choose the value of `next_commitment_number`. If you send a low value, the counterparty might conclude that you lost data, in which case it could breach the channel without fear of repercussion.  

---

## 0 answers

