Prototip Cardano Leios je odpravil časovni napad v objavah Endorser Block

Razvijalci Cardano so odpravili časovno napako v prototipu Leios, ki bi lahko povzročila, da se poštena vozlišča med seboj odklopijo. Težava je vplivala na prototipno logiko objav Endorser Block in nikoli ni bila del trenutnega protokola glavnega omrežja Cardano.

By SongMarketCap

Cardano News - Prototip Cardano Leios je odpravil časovni napad v objavah Endorser Block

Prototip Leios za Cardano je prejel popravek omrežja potem ko so razvijalci prepoznali časovni napad, povezan z objavami Endorser Block. V določenih pogojih je lahko staking sklad z veljavnimi operativnimi poverilnicami poslal natančno časovno usklajeno objavo, ki je povzročila, da se je pošteno vozlišče odklopilo od drugega poštenega vrstnika, katerega pogled na verigo je bil nekoliko zadaj.

Popravek je bil 18. avgusta združen v vejo leios-prototype projekta Ouroboros Consensus, 25. avgusta pa ga je izpostavila ekipa Consensus pri Intersect. Blink Labs je nato v Dingo uvedel ustrezno zaščito.

Časovna razlika v Leios lahko odklopi poštene vrstnike

Ouroboros Leios je načrtovana razširitvena arhitektura za Cardano, zasnovana za povečanje prepustnosti transakcij ob ohranjanju varnostnih lastnosti osnovnega konsenznega protokola.

Del zasnove uporablja Endorser Blocks, ki prenašajo dodatne transakcijske podatke poleg blokov za razvrščanje v omrežju Cardano. Vozlišča lahko objavijo Endorser Block, preden prispejo celotni podatki bloka, kar pomaga, da se informacije po omrežju širijo učinkoviteje.

Identificirana težava je vključevala številko izdaje operativnega certifikata oziroma OCIN, ki je priložena tem objavam.

Dve pošteni vozlišči lahko začasno imata različna nespremenljiva vrhova verige. Bolj napredovalo vozlišče lahko starejši OCIN že šteje za preklican, medtem ko ga zgornji vrstnik, ki še ni dosegel iste nespremenljive točke, še vedno upravičeno obravnava kot veljavnega.

Prejšnja prototipna logika je lahko objavo s tem starejšim OCIN razumela kot neveljavno vedenje in odklopila zgornjega vrstnika.

Izvirna zadeva na GitHub opisuje, kako bi napadalni staking sklad lahko izkoristil to časovno razliko tako, da bi poslal objavo tik pred tem, ko bi njegov OCIN postal nespremenljiv. Ker bi lahko sklad ob dodajanju nove glave v verigo povečal svoj OCIN, bi se zaporedje lahko uporabilo za sprožanje odklopov med poštenimi vozlišči.

V zadevi je bilo zapisano, da je treba to vedenje odpraviti, preden bi lahko logiko objav šteli za primerno za glavno omrežje.

Nova logika Leios prepreči odklop

Združeni popravek spreminja, kako vozlišče Leios reagira, ko prejme objavo z OCIN, ki ga njegov lastni nespremenljivi vrh že šteje za preklicanega.

Namesto da bi prekinilo povezavo z vrstnikom, vozlišče sporočilo sprejme na ravni omrežnega protokola. Ker sprejemno vozlišče že ve, da je OCIN zastarel, je objava prezrta in se ne obdela niti ne posreduje naprej.

Sprememba omogoča, da pošteni vrstnik začasno zaostaja, ne da bi bil označen kot zlonameren.

Razvijalci so dokumentirali tudi ožji preostali primer, ki vključuje razkrite zgodovinske ključe KES. Razkrit ključ bi se lahko po preklicu še vedno uporabil za pošiljanje majhnega števila dodatnih lažnih objav Endorser Block neposrednim spodnjim vrstnikom.

Te objave ne sprožijo odklopov in se ne razširjajo naprej. Razprava v razvoju opisuje dodaten strošek obdelave kot minimalen, preostalo vedenje pa kot nezaželeno, vendar ne kot oviro za trenutni prototip.

Ni primarnih dokazov, da je ta napadalni vektor vplival na glavno omrežje Cardano. Prizadeti mehanizem objav spada v prototip Leios, popravek pa je bil združen v njegovo namensko razvojno vejo in ne v proizvodno vejo konsenza.

Dingo prevzame enako zaščito Leios

Blink Labs je model ravnanja z zastarelim OCIN uporabil tudi v Dingo, svoji neodvisni implementaciji vozlišča za Cardano.

Zadeva za Dingo je bila odprta 26. avgusta potem ko so razvijalci ugotovili, da bi se pravilno podpisana, a zastarela objava še vedno lahko shranila in posredovala. Zahteva za združitev #3563 je bila združena 27. avgusta.

V posodobljeni implementaciji so objave zastarelega ali neznanega izdajatelja sprejete brez zapiranja povezave z vrstnikom, vendar se ne shranijo, ne obdelajo niti ne posredujejo. Sveže objave gredo skozi običajno obdelavo, pri čemer regresijski testi pokrivajo več stanj OCIN.

Avgustska razvojna posodobitev pri Intersect je poročala tudi o razširjeni podpori db-analyser za verige Leios. Orodje lahko zdaj ponovno predvaja podatke verige Leios in meri potrjene transakcije Endorser Block, njihovo velikost ter čas, potreben za njihovo branje in uporabo. To razširja testiranje onkraj prepustnosti na stroške obdelave v knjigi in vedenje virov.

Popravek za zastarele objave zdaj zajema dve implementaciji. Ouroboros Consensus je 18. avgusta spremenil vedenje v izvirnem prototipu Leios, medtem ko je Dingo svojo ustrezno implementacijo prevzel devet dni pozneje, s čimer sta obe kodni osnovi uskladili ravnanje z istim robnim primerom v omrežju, še preden Leios doseže produkcijsko uvedbo.