# LN 2. Kapitulua: Egoera eguneratzea

## Laburpena

Kapitulu honetan, **LN-Penalty** sistemaren arabera eguneratze-geruza nola funtzionatzen duen azalduko da. Hain zuzen ere, konpromiso-transakzioei buruzko xehetasun gehiago emango dira, eta HTLC-ak nola kokatzen diren ulertzeko oinarriak ezarriko dira etorkizuneko kapituluetarako.

Aurreko kapituluan, Alice eta Bob nola ireki zuten kanal bat ikasi genuen, blockchain-ean argitaratu daitezkeen konpromiso-transakzioak erabiliz, beren funtsak berreskuratzeko. Hala ere, hasierako konpromiso-transakzioak baliogabe bihurtzen dira kanalaren egoera aldatzen denean, hau da, ordainketa bat egiten denean eta kanaleko saldoa desberdin banatzen denean parte-hartzaileen artean. Kapitulu honetan, Alice eta Bob beren funtsen banaketa berrian nola ados daitezkeen ikasiko dugu, hau da, kanaleko saldoa nola banatu desberdin eta aurreko konpromiso-transakzioak baliogabetu.

💡 **LN-Penalty** sistemaren egungo paradigman nola funtzionatzen duen azalduko dugu. Sistemak segurtasun-mekanismo gisa erabiltzen duen zigorraren bidez funtsak babesten ditu aurkari maltzurren aurka. Proposamen berri bat ere badago, **LN-Symmetry** (lehen "eltoo" izenekoa), zeinak mekanismo hori ezabatu eta prozesua sinplifikatzen duen, baina Bitcoin-en adostasun-arauetan aldaketak egitea eskatzen duen.

---

## Asimetria konpromiso-transakzioetan

**LN-Penalty** sisteman, kanaleko parte-hartzaile bakoitzak kanalaren egoera irudikatzen duen konpromiso-transakzio bat du. Parte-hartzaile bakoitzak duen konpromiso-transakzioa apur bat ezberdina da, errua esleitzeko beharrezkoa baita. Zergatik da beharrezkoa errua esleitzea? Argi utzi behar da zein alde den bere konpromiso-transakzioa argitaratu duena eta zein den zigortu behar den egoera baliogabea argitaratzen badu.

---

## Egoera ezartzen

Aurreko kapituluan, Alice-k eta Bob-ek nola trukatu zituzten beren gako publikoak hasierako konpromiso-transakzioak sortzeko azaldu genuen. Orain, konpromiso-transakzio horiek nolakoak diren hurbilagotik aztertuko dugu.

Adibide sinple bat erabiliko dugu: kanaleko saldo osoa 10 BTC da, eta Alice eta Bob bakoitzak 5 BTC ditu. Hasierako konpromiso-transakzioak ezartzeko, parte-hartzaile bakoitzak aldi baterako gako pribatu bat sortzen du: Alice-k **dA1**, eta Bob-ek **dB1**. Ondoren, dagokien gako publikoak kalkulatzen dituzte: **PA1** Alice-rentzat eta **PB1** Bob-entzat. Une honetan, bakoitzak bere konpromiso-transakzioa eraiki dezake.

- Alice-ren konpromiso-transakzioa honelakoa izango da:
  - Finantzaketa-transakzioa gastatuko du.
  - Bi irteera izango ditu (edo gehiago, HTLC-ak erabiltzen badira; hau etorkizunean azalduko dugu).
    1. **to_remote** irteera: Bob-i bere 5 BTC bidaliko dizkio berehala.
    2. **to_local** irteera: konplexuagoa izango da:
        - Alice-k bere buruarentzat 5 BTC bidali ditzake **OP_CSV to_self_delay** baten ondoren.
        - Edo Bob-ek irteera hori gastatu dezake Alice-ren **dA1** aldi baterako gako pribatua frogatu dezakeen kasuan.
        - 
![image](https://github.com/user-attachments/assets/2cb77e10-7dea-4d8c-a4c6-5a967030d93c)

Modu berdinean, Bob-ek Alice-ren konpromiso-transakzioa eraiki dezake eta bere sinadura eman diezaioke Alice-ri. Alice-k transakzio hau edozein unetan sinatu eta sarean argitaratu dezake, Bob desagertzen bada bere funtsak berreskuratzeko segurtasuna emanez.

---

## Egoera zaharra baliogabetzea

Orain, Alice-k Bob-i 1 BTC bidali nahi dio kanala erabiliz. Aurreko urratsean bezala, parte-hartzaile bakoitzak gako pribatu berriak sortzen ditu (**dA2** Alice-rentzat, **dB2** Bob-entzat), eta gako publikoak kalkulatzen eta trukatzen dituzte. Biak konpromiso-transakzio berriak sortzen dituzte kanalaren egoera berria islatzeko (Alice-k 4 BTC ditu, eta Bob-ek 6 BTC).

Arazo bat dago, ordea: Alice-k aurreko egoerako konpromiso-transakzioa oraindik gorde dezake, non 5 BTC zituen, eta horrek etekin handiagoa emango lioke. Egoera zaharra baliogabetu eta egoera berrian konpromisoa hartu duela erakusteko, Alice-k Bob-i bere **dA1** aldi baterako gako pribatua bidali behar dio. Orain, Bob-ek gako hori badu, Alice-ren irteera baliogabea gastatu dezake egoera zaharra argitaratzen badu.
![image](https://github.com/user-attachments/assets/67c38ec2-eb1e-45d6-8bcb-165089f0b3a6)

Bob-ek, halaber, bere **dB1** gako pribatua bidaltzen dio Alice-ri egoera zaharra baliogabetzeko, bere egoera berria ere mesedegarria baita.

---

## Azken berrikuspena

- Egoera eguneratzeko, kanaleko parte-hartzaile bakoitzak gako-pare berriak sortzen ditu eta elkarri gako publikoak bidaltzen dizkiote.
- Egoera baliogabetzeko, parte-hartzaile bakoitzak aurreko egoeraren gako pribatua trukatzen du.

---

## Erreferentziak

- [BOLT 3](https://github.com/lightningnetwork/lightning-rfc/blob/master/03-transactions.md)
- [LN Things Part 2: Updating State](https://example.com/ln-things-part2)
- [eltoo](https://example.com/eltoo)
