Midnight predstavlja podrobnosti varnostnih popravkov v Ledger 9.1.0.1
Različica, aktivirana na glavnem omrežju, odpravlja težave, povezane s provizijami za transakcije, omejitvami blokov in stanji denarnic. Uvaja tudi strožjo validacijo za razvijalce, ki gradijo na Midnight.
By SongMarketCap
Updated:
Midnight je objavil izvorno kodo in opombe ob izdaji za Ledger 9.1.0.1, različico, ki je bila aktivirana na glavnem omrežju med nadgradnjo omrežja 6. novembra. Izdaja navaja 13 popravkov, med drugim spremembe pri izračunu provizij za transakcije, omejitvah blokov in načinu prikaza kovancev v denarnicah.
Po opombah ob izdaji so upravljavci vozlišč programsko opremo prejeli 3. novembra. Izvorna koda in opisi popravkov so bili objavljeni 7. novembra. Posodobitev tudi zavrne nekatere transakcije, ki so jih prejšnje izvedbe Ledger 9 sprejemale.
Spremembe provizij za transakcije in omejitev blokov
Knjiga stanj je del programske opreme Midnight, ki določa, ali so transakcije veljavne in koliko stanejo. Midnight je prešel na Ledger 9 brez običajnega vnaprejšnjega obdobja na testnem omrežju Preprod. Projekt je pojasnil, da uporablja bolj nadzorovan postopek izdaj, kadar to zahtevajo varnostni popravki.
Ena težava je vplivala na to, kako so vozlišča obdelovala ponovljene vnose v deljenih podatkovnih strukturah. Po opombah ob izdaji je lahko majhna transakcija prisilila vozlišče, da je opravilo eksponentno naraščajočo količino dela, preden je preverilo njeno provizijo. Posodobljeni Ledger zavrne podvojene vnose, preden izračuna provizijo, in obdela podatke v času, sorazmernem z njihovo velikostjo.
Druga dva popravka se nanašata na omejitve blokov. Transakcija je lahko prej prijavila izbrise, ki jih ni izvedla, s čimer je znižala provizije za druge dele transakcije in obšla omejitev na neto zapisane bajte. Ločena težava pri izračunu je omogočala, da se prijavljen čas izračuna v višini vsaj 2⁶³ pikosekund obračuna kot nič. Obe vrsti transakcij sta zdaj zavrnjeni kot neveljavni.
DUST, denarnice in most Cardano
Provizije za transakcije v Midnight se plačujejo z DUST, virom, ki nastaja iz imetij NIGHT. Opombe ob izdaji opisujejo težavo, pri kateri je pametna pogodba lahko zajela presežni vir za provizijo, pripisan med registracijo, medtem ko je registrant še vedno prejel celotni znesek. Klici pogodb, ki prenašajo vir za provizijo kot javen vhod ali izhod, so zdaj zavrnjeni.
Drug popravek se nanaša na to, kako denarnice ponavljajo dogodke iz verige. Veljaven izhod je lahko vseboval šifriran zapis, ki se ni ujemal z njegovo kriptografsko zavezo. To je lahko povzročilo, da je denarnica prikazala kovance, ki jih ni mogla porabiti, ali prepisala položaj kovanca, ki ga je že imela. Opombe ob izdaji navajajo, da stanje na verigi ni bilo prizadeto.
Posodobitev tudi temeljiteje počisti iz pomnilnika občutljive podatke, izpeljane iz semenskih fraz denarnic. Nekateri našteti popravki se nanašajo na ugotovitve revizij, opombe ob izdaji pa kažejo na devet varnostnih priporočil na GitHub, katerih strani zjutraj 8. novembra niso bile javno dostopne.
Ločen popravek velja za protokolarni most, namenjen prenosu žetonov iz Cardano v Midnight. Zahtevki z ničelno vrednostjo so lahko prej prestali preverjanje brez plačila provizije. Zahtevki morajo zdaj izpolnjevati zahtevani minimum ali pokriti celotno preostalo stanje. Most je prisoten v kodi Ledger 9, vendar ostaja onemogočen na glavnem omrežju, dokler ga z ločenim dejanjem upravljanja ne omogočijo.
[NEWSBREAK]
Razvojni paketi in preostale težave
Izdaja vključuje @midnight-ntwrk/ledger-v9 1.0.1, onchain-runtime-v4 4.0.1 in Proof Server 9.0.1. Strežnik za dokaze ustvarja dokaze z ničelnim znanjem, uporabljene v transakcijah. Dokumentacija o nadgradnji glavnega omrežja Midnight ločeno navaja Proof Server 9.0.0 med združljivimi komponentami.
Ledger 9.1.0.1 zavrača transakcije z dvojnimi podpisi odbora ali dvojnimi registracijami provizij. Pogodba lahko vsebuje največ 256 operacij, vsaka namestitev se zaračuna za celotno stanje in prijavljeni plin mora ostati znotraj omejitve bloka.
Več Rust funkcij za izračun stroškov zdaj vrne napako namesto vrednosti. Razvijalci, ki provizije izračunavajo neposredno, morajo to spremembo upoštevati v svojih integracijah.
Dve znani težavi iz različice 9.1.0.0 ostajata odprti. Ena lahko povzroči, da je klic pogodbe zavrnjen, kadar je njegova provizija plačana z natanko enim izdatkom DUST. Dokumentacija Midnight kot začasno rešitev navaja uporabo dveh ali več izdatkov DUST, medtem ko je popravek načrtovan za poznejšo izdajo.