
Fundația Zcash a lansat Zebra 4.5.3 și Zebra 5.0.0 după ce inginerii au descoperit și au remediat un bug critic de integritate în circuitul Acțiune Orchard.
Fundația a declarat că Zebra 4.5.3 a activat un soft fork de urgență la înălțimea blocului 3,363,426 a rețelei principale. Lansarea a respins temporar tranzacțiile și blocurile care conțineau acțiuni Orchard în timp ce inginerii au pregătit un circuit corectat.
Soft fork-ul a fost activat în jurul orei 02:00 UTC, pe 2 iunie, după ce o tentativă anterioară de coordonare s-a confruntat cu probleme de implementare a patch-urilor. Fundația a declarat că o coordonare privată cu mineri și exchange-uri a început pe 31 mai pentru a reduce șansa de exploatare înainte de divulgarea publică.
Zebra 5.0.0 a activat hard fork-ul NU6.2 la înălțimea blocului 3,364,600 a rețelei principale. Upgrade-ul a re-activat acțiunile Orchard cu un circuit corectat și a redirecționat dovezile Orchard către o nouă cheie de verificare per-circuit. Lansarea a marcat, de asemenea, al doilea upgrade de protocol bazat pe securitate din istoria Zcash de la 2016.
Un hard fork a fost necesar deoarece o remediere a circuitului de dovadă cu cunoștințe zero necesită o nouă cheie de verificare fixată.
„Îndemnăm puternic toți operatorii de noduri să facă upgrade la Zebra 5.0.0 cât mai curând posibil,” a declarat Fundația Zcash.
Bug-ul a fost descoperit pe 29 mai de către cercetătorul independent în securitate Taylor Hornby în timpul unui audit de protocol pentru Shielded Labs. Inginerii ZODL Daira-Emma Hopwood, Kris Nuttycombe și Jack Grigg au confirmat problema în câteva ore și au început lucrul la o remediere.
Fundația a declarat că vulnerabilitatea ar fi putut permite modificări invalide ale stării în interiorul Orchard și posibile cheltuieli duble (double spending) în cadrul acelui pool. De asemenea, a declarat că mecanismul de turnichet al Zcash a protejat oferta totală de ZEC și că „Nu există dovezi de creare neautorizată de valoare.” Codul afectat includea versiuni mai vechi ale halo2_gadgets, orchard și zcash_primitives, plus versiunile zcashd de la 5.0.0 la 6.12.3.
Orchard este cel mai nou pool confidențial (shielded pool) al Zcash și o componentă centrală a sistemului său de confidențialitate. A fost lansat cu NU5 în 2022 și utilizează Halo 2, ce a eliminat necesitatea unui setup de încredere (trusted setup). Acest design a făcut din Orchard o parte cheie a foii de parcurs actuale a Zcash în materie de confidențialitate.
Acoperirea de piață relevantă s-a concentrat recent pe creșterea utilizării confidențiale (shielded) a Zcash. Un raport recent a menționat că aproximativ 30% din oferta de ZEC s-a mutat în pool-uri confidențiale (shielded pools), Orchard deținând 4,2 milioane ZEC și majoritatea creșterii recente.
Fundația a declarat că confidențialitatea utilizatorilor nu a fost afectată în timpul incidentului. Tranzacțiile Sapling și cele transparente au continuat, de asemenea, să funcționeze normal în timp ce acțiunile Orchard au rămas suspendate.
Operatorii de noduri se confruntă acum cu sarcina principală de a face upgrade la Zebra 5.0.0, în loc să se bazeze pe versiuni mai vechi. Operatorii care au rămas pe o ramură (fork) incorectă după NU6.2 ar putea fi nevoiți să se resincronizeze de la zero sau să restaureze dintr-un backup făcut înainte de activare.