Leios prototip za Cardano otklanja vremenski napad u najavama Endorser Block

Razvijatelji za Cardano su ispravili vremensku grešku u Leios prototipu koja je mogla uzrokovati da pošteni čvorovi prekinu međusobnu vezu. Problem je utjecao na prototipnu logiku najava za Endorser Block i nikada nije bio dio trenutačnog Cardano mainnet protokola.

By SongMarketCap

Cardano News - Leios prototip za Cardano otklanja vremenski napad u najavama Endorser Block

Leios prototip za Cardano dobio je mrežnu ispravku nakon što su razvijatelji identificirali vremenski napad povezan s najavama za Endorser Block. Pod određenim uvjetima, stake pool s valjanim operativnim vjerodajnicama mogao je poslati pomno tempiranu najavu koja je uzrokovala da se pošteni čvor odspoji od drugog poštenog peera čiji je pogled na lanac bio malo zaostao.

Ispravka je spojena u granu leios-prototype projekta Ouroboros Consensus 18. kolovoza i istaknuta od strane Consensus tima u Intersect 25. kolovoza. Blink Labs je potom implementirao odgovarajuću zaštitu u Dingo.

Razlika u tempiranju u Leios mogla bi odspajati poštene peerove

Ouroboros Leios je planirana skalirajuća arhitektura za Cardano, osmišljena za povećanje propusnosti transakcija uz zadržavanje sigurnosnih svojstava temeljnog konsenzus protokola.

Dio dizajna koristi Endorser Blocks, koji nose dodatne podatke o transakcijama uz Cardano ranking blokove. Čvorovi mogu najaviti Endorser Block prije nego što stignu potpuni podaci o bloku, čime se informacija učinkovitije širi kroz mrežu.

Identificirani problem uključivao je broj izdavanja operativnog certifikata, odnosno OCIN, priložen tim najavama.

Dva poštena čvora mogu privremeno imati različite nepromjenjive vrhove lanca. Napredniji čvor može već smatrati stariji OCIN opozvanim, dok uzvodni peer koji još nije dosegnuo istu nepromjenjivu točku može ga i dalje legitimno smatrati valjanim.

Prethodna prototipna logika mogla je protumačiti najavu koja koristi taj stariji OCIN kao nevaljano ponašanje i odspojiti uzvodnog peera.

Izvorni GitHub problem opisuje kako napadački stake pool može iskoristiti tu vremensku razliku slanjem najave neposredno prije nego što njegov OCIN postane nepromjenjiv. Budući da je pool mogao inkrementirati svoj OCIN pri postavljanju novog zaglavlja na lanac, taj slijed mogao se iskoristiti za pokretanje odspajanja između poštenih čvorova.

U problemu je navedeno da to ponašanje treba ispraviti prije nego što se logika najava može smatrati prikladnom za mainnet.

Nova logika u Leios zaustavlja odspajanje

Spojena ispravka mijenja način na koji Leios čvor reagira kada primi najavu koja koristi OCIN koji njegov vlastiti nepromjenjivi vrh već smatra opozvanim.

Umjesto prekidanja veze s peerom, čvor prihvaća poruku na razini mrežnog protokola. Budući da primajući čvor već zna da je OCIN zastario, najava se ignorira umjesto da se obrađuje ili prosljeđuje dalje.

Promjena omogućuje da pošteni peer privremeno zaostaje a da ne bude klasificiran kao zlonamjeran.

Razvijatelji su također dokumentirali uži preostali slučaj koji uključuje procurile povijesne KES ključeve. Procurjeli ključ i dalje bi se mogao iskoristiti za slanje manjeg broja dodatnih lažnih najava za Endorser Block neposrednim nizvodnim peerovima nakon opoziva.

Te najave ne pokreću odspajanja i ne propagiraju se dalje. Razvojna rasprava opisuje dodatni trošak obrade kao minimalan, a preostalo ponašanje kao nepoželjno, ali ne i prepreku za trenutačni prototip.

Ne postoji temeljni izvor dokaza da je ovaj napadni vektor utjecao na Cardano mainnet. Pogođeni mehanizam najava pripada Leios prototipu, a ispravka je spojena u njegovu namjensku razvojnu granu umjesto u produkcijsku konsenzus granu.

Dingo usvaja istu zaštitu za Leios

Blink Labs je također primijenio model rukovanja zastarjelim OCIN u Dingo, svojoj neovisnoj implementaciji Cardano čvora.

Dingo problem je otvoren 26. kolovoza nakon što su razvijatelji utvrdili da se ispravno potpisana, ali zastarjela najava i dalje može zabilježiti i proslijediti. Pull request #3563 spojen je 27. kolovoza.

Prema ažuriranoj implementaciji, najave zastarjelog ili nepoznatog izdavatelja prihvaćaju se bez zatvaranja veze s peerom, ali se ne bilježe, ne obrađuju niti prosljeđuju. Svježe najave prolaze kroz uobičajenu obradu, uz regresijske testove koji pokrivaju nekoliko stanja za OCIN.

Kolovoško razvojno ažuriranje u Intersect također je izvijestilo o proširenoj podršci za db-analyser na Leios lancima. Alat sada može ponovno reproducirati podatke Leios lanca i mjeriti certificirane transakcije za Endorser Block, njihovu veličinu i vrijeme potrebno za čitanje i primjenu. Time se testiranje proširuje izvan same propusnosti na troškove obrade u glavnoj knjizi i ponašanje resursa.

Ispravka za zastarjele najave sada obuhvaća dvije implementacije. Ouroboros Consensus je promijenio ponašanje u izvornom Leios prototipu 18. kolovoza, dok je Dingo usvojio odgovarajuću implementaciju devet dana kasnije, usklađujući način na koji obje kodne baze rješavaju isti rubni slučaj u mreži prije nego što Leios dosegne produkcijsku primjenu.