L'aggiornamento di Zcash blocca le monete Sprout al blocco 3.543.405, anche con le chiavi corrette
Punti chiave
- •L'attivazione di NU7 al blocco 3.543.405 porrà fine alla spesa Sprout, poiché nessuno dei due formati di transazione che restano validi in seguito — versione 5 e versione 6 — supporta il pool.
- •I possessori di Sprout dovranno dipendere da strumenti di recupero di terze parti come l'app Argos di Sovright, perché il deprecato zcashd era l'ultimo software mantenuto capace di costruire transazioni Sprout.
- •La velocità di recupero dipende dal backup: i file di wallet che conservano dati di note spendibili possono essere svuotati in pochi secondi, mentre le chiavi pure richiedono scansioni dell'intera catena di circa 26 GB che durano ore.
- •I fondi Sprout lasciati indietro non vengono bruciati e restano nella supply emessa di Zcash, e ZIP 2003 dichiara che la spesa Sprout potrebbe non tornare mai.
- •La conferma di qualsiasi trasferimento Sprout deve arrivare da un software di nodo pronto per NU7 come Zebra 7.0.0, perché i nodi non aggiornati possono rimanere online e seguire una catena pre-NU7.

Circa 12.226 ZEC erano ancora nel pool schermato Sprout di Zcash al mattino di giovedì, in calo rispetto ai roughly 22.263 di una settimana prima, secondo le cifre di ZecStats citate nel report di CoinDesk. La maggior parte di quell'uscita è avvenuta domenica, quando circa 9.094 ZEC hanno lasciato il pool. Al prezzo di 1.300 dollari per moneta usato da CoinDesk, quanto rimane vale circa 16 milioni di dollari.
La scadenza è il blocco 3.543.405 — l'altezza di attivazione sulla Mainnet stabilita in ZIP 259, la specifica di distribuzione dell'aggiornamento di rete NU7, e ribadita nell'avviso di rilascio di Zebra 7.0.0 della Zcash Foundation. CoinDesk ha riferito che Blockchair mostrava la catena al blocco 3.542.391 alle 05:24 UTC di giovedì, il che, con l'attuale obiettivo di blocco di 75 secondi, collocava l'attivazione intorno alle 02:30 UTC di venerdì. Sono i miner a stabilire il ritmo reale, quindi questa stima può variare in entrambe le direzioni. La data è pertanto un confine di validità del consenso piuttosto che una scadenza operativa garantita: l'evento decisivo è l'estrazione del blocco, mentre wallet e custodi possono applicare le proprie scadenze operative.
Due guasti che sembrano uguali in un wallet
La regola alla base della scadenza è più ampia di Sprout. ZIP 2003 vieta ogni transazione di versione 4 da NU7 in poi, e ZIP 259 dichiara che questo include i pagamenti solo trasparenti e Sapling. Sprout resta coinvolto perché nessuno dei due formati superstiti lo supporta: la versione 5, introdotta con NU5, e la versione 6, introdotta con NU6.3.
Un wallet che si rifiuta di inviare può quindi trovarsi di fronte a uno di due problemi, e solo uno di essi sopravvive all'attivazione:
Monete ancora in Sprout. Cosa si rompe: l'unico formato di transazione in grado di spenderle cessa di essere valido. Dopo il blocco: non esiste alcun formato sostitutivo supportato. La finestra si chiude al blocco 3.543.405.
ZEC trasparente o Sapling in un wallet non aggiornato. Cosa si rompe: il software costruisce pagamenti di versione 4 che la rete respinge. Dopo il blocco: il saldo resta spendibile, e un software che costruisce versioni 5 o 6 può ricreare il pagamento — rifirmare quello vecchio non funziona. La finestra resta aperta con un software aggiornato.
I pagamenti preparati in anticipo richiedono una verifica propria. ZIP 259 avverte che nemmeno le transazioni di versione 5 e versione 6 sono automaticamente valide oltre l'attivazione, perché le loro firme vincolano a un ID di ramo del consenso. Un pagamento salvato o firmato offline prima dell'aggiornamento potrebbe fallire se arriva in un blocco successivo alla scadenza, qualunque sia il suo formato.
I saldi custodial dipendono dalla piattaforma che li detiene. L'avviso della Zcash Foundation rivolge la regola sulla versione 4 direttamente ai wallet, agli exchange e agli altri servizi che costruiscono transazioni per conto dei propri utenti.
Il materiale di recupero determina i tempi
Per i possessori di Sprout, il problema più difficile è trovare un software che possa ancora costruire il trasferimento. ZIP 2003 rileva che la dismissione di zcashd, poco prima di NU6.3, ha rimosso l'unico software mantenuto che offriva ancora la funzionalità di wallet Sprout. Le regole di consenso accettano spese Sprout fino all'attivazione, ma i possessori restano costretti a fare affidamento su strumenti di recupero di terze parti per crearle.
Identificare le monete viene prima di tutto. La documentazione sugli indirizzi di Zcash elenca gli indirizzi schermati Sprout con il prefisso zc e gli indirizzi Sapling con zs. Il prefisso mostra a quale pool appartiene un indirizzo, non se vi rimanga un saldo.
Il backup conta più dell'indirizzo. Le istruzioni di backup di Zcash trattano le chiavi schermate legacy separatamente dal seed alla base degli indirizzi Sapling. Lo sviluppatore dell'app di recupero Argos aggiunge due dettagli nella sua documentazione: il seed di ZecWallet Lite non può ricostruire le chiavi Sprout che quel wallet ha generato indipendentemente, e un wallet.dat di zcashd non ha alcun seed principale, perché le sue chiavi sono memorizzate una per una — solo le chiavi presenti nel file possono esserne recuperate.
Ciò che contiene il backup determina anche quanto dura un salvataggio. Secondo le note di rilascio di Argos 1.2.0, un file di wallet che conserva già dati di note Sprout spendibili può essere svuotato senza scansione, in pochi secondi. Le chiavi senza quei dati di note, come chiavi di spesa autonome o chiavi importate in zcashd senza un rescan, richiedono una scansione che tenta di decrittare ogni transazione schermata nella storia della catena, poiché non esiste alcun indice degli indirizzi Sprout. Il sito dello sviluppatore stima una scansione Sprout da chiave pura a circa 26 GB di trasferimento sulla Mainnet e avverte che le scansioni durano ore. Con una scadenza misurata in ore, questa differenza può decidere se un trasferimento sia possibile o meno.
Anche la destinazione è fissa. Il valore Sprout può spostarsi solo nel pool Sapling, quindi le note di rilascio richiedono un indirizzo zs1 o un Unified Address con un receiver Sapling. Spostare poi i fondi verso Orchard è una transazione separata che il detentore esegue in seguito.
Valutare uno strumento di salvataggio sotto pressione di tempo
Argos è un'app desktop di terze parti di Sovright, creata dopo che ZecWallet Lite ha cessato di essere mantenuta. Il sito dello sviluppatore afferma che l'app è stata verificata in modo indipendente da Least Authority, gestisce seed e chiavi localmente, e si connette a internet solo per leggere i dati pubblici dei blocchi e inviare lo sweep finale. Per saldi consistenti, lo sviluppatore raccomanda un computer completamente nuovo, perché un ripristino di fabbrica non rimuove il malware a livello di firmware da una macchina usata a lungo.
Prima di premere sweep:
- Il download. Le build macOS e Windows sono firmate digitalmente. Ogni release su GitHub include un file SHA256SUMS e un'attestazione di build, verificabile con
gh attestation verify <file> --repo sovright/argos. - La divisione. La revisione dello sweep include una donazione opzionale a Sovright che per impostazione predefinita è del 10%. Entrambi gli importi appaiono prima della conferma, quindi impostare quella cifra con attenzione.
- Il canale. Lo sviluppatore dichiara che il suo supporto non chiederà mai un seed, un file di wallet, una passphrase o una chiave. Una richiesta di uno di questi elementi, su qualsiasi piattaforma, è una truffa.
Una volta confermato uno sweep, lo sviluppatore consiglia di dismettere il vecchio materiale di recupero, poiché un malware sulla macchina di recupero potrebbe averlo catturato. Il file originale del wallet dovrebbe essere conservato finché ogni pool che copre non sia stato svuotato.
Solo un nodo aggiornato può confermare lo spostamento
Un trasferimento Sprout firmato e trasmesso conta solo una volta incluso in un blocco prima dell'altezza di attivazione. Anche il punto in cui si legge quella conferma è importante. ZIP 259 rinuncia al consueto requisito che il software dei nodi vecchi scada prima di un aggiornamento, e avverte che i nodi non supportati possono rimanere online e seguire un ramo pre-NU7. L'avviso della Zcash Foundation afferma che i nodi non aggiornati seguiranno una catena diversa. Un detentore che verifica su un nodo non aggiornato potrebbe vedere un trasferimento che la rete aggiornata non riconosce, quindi la conferma deve arrivare da un software pronto per NU7 come Zebra 7.0.0, la prima release stabile di Zebra con supporto NU7 sulla Mainnet.
L'uscita è anche pubblica. La sezione privacy di ZIP 2003 rileva che il valore che lascia Sprout modifica il saldo visibile del pool, e che un breve periodo di uscita rende più facile collegare tempistiche e importi particolari a specifici detentori. Con soli circa 40 ZEC spostati mercoledì, un prelievo tardivo ha poco traffico circostante in cui confondersi.
Le monete lasciate indietro restano in contabilità
ZIP 2003, redatto da Daira-Emma Hopwood, non dismette né brucia i fondi Sprout. Il saldo del pool all'attivazione resta dentro la supply emessa di Zcash, inclusi i calcoli del Network Sustainability Mechanism in ZIP 237. La contabilità della supply di Zcash continua quindi a contare monete che attualmente non possono muoversi.
La proposta lascia una via teorica di ritorno: riattivare le transazioni di versione 4 o aggiungere un'altra struttura di recupero, se la comunità lo ritiene utile. Statuisce anche che la spesa Sprout potrebbe non tornare mai.
La giustificazione per accettare questo costo si basa sulla sicurezza dei nodi. ZIP 2003 rileva che Sprout condivide il sistema di proving Groth16 di Sapling e le curve BLS12-381 dall'aggiornamento Sapling. Il suo circuito JoinSplit e la sua gestione dei nullifier e dei note commitment continuano a pesare sul codice che accetta nuove transazioni, anche come superficie di denial-of-service. Poiché Sprout registra un uso quasi nullo, le implementazioni dei nodi hanno pochi motivi per ottimizzare quel percorso. Come è stato definito l'ambito dell'aggiornamento è trattato nel report di Coindoo sulla votazione dei detentori di monete su NU7.
Il costo ricade su un gruppo ristretto: i detentori le cui chiavi Sprout giacciono in backup non controllati o perduti. Il saldo pubblico del pool non può distinguere i due casi. La cifra che chiude la storia è il valore del pool Sprout nei dati di ZecStats una volta estratto il blocco 3.543.405, che mostrerà quanti ZEC l'aggiornamento ha lasciato indietro. Un futuro ZIP che proponga una struttura di recupero sarebbe l'unico segno che l'accesso potrebbe tornare.
Fonte: Coindoo