Un viaggio iniziato alla fine dell’estate del 2022 è finalmente giunto a una felice conclusione. I portafogli Zcash di terze parti funzionano di nuovo ed Electric Coin Co. (ECC) esce dalla modalità di emergenza.

Durante questo periodo, ECC ha rilasciato numerosi aggiornamenti a zcashd e lightwalletd, oltre a nuovi SDK per dispositivi mobili che, insieme, hanno introdotto nuove innovazioni (e apprendimento) nel mondo della crittografia e del denaro decentralizzato. Questi rilasci forniscono aggiornamenti massicci alla privacy, alla scalabilità e all’esperienza utente di Zcash e hanno implicazioni per tutti i progetti di crittografia incentrati sulla privacy.

Prima di andare avanti, dobbiamo ringraziare di cuore i nostri partner Edge, Nighthawk e Unstoppable, che hanno collaborato con noi per testare le release e presentare i bug, e sono stati rapidi nell’implementare gli SDK 2.0 quando erano pronti.

Gli ingegneri della ECC meritano un riconoscimento speciale, e forse anche una vacanza, dopo aver dedicato lunghe ore per molti mesi a scoperte e sviluppo complessi. Lavorando durante la ristrutturazione dell’ECC e affrontando scadenze serrate, mentre si occupavano di altre emergenze cruciali come la rivelazione di Halborn, hanno fornito una tecnologia all’avanguardia che eleva l’esperienza dell’utente ZEC.

Background

A partire da giugno 2022, la rete Zcash ha iniziato a registrare un enorme aumento del volume delle transazioni schermate. Questo carico di rete aggiuntivo ha causato un “accumulo di dati” che ha impedito ai portafogli Edge, Nighthawk e Unstoppable di sincronizzarsi in un tempo ragionevole. Questi tre portafogli si affidano agli SDK mobili di ECC.

I processi di sincronizzazione dei portafogli richiedevano la scansione dell’intera blockchain prima che i fondi fossero disponibili per essere spesi. E quando i portafogli non si sincronizzavano, gli utenti non potevano accedere o spendere i loro fondi.

Nell’ottobre 2022, l’ECC entrò in modalità di emergenza e mise da parte tutte le altre priorità della roadmap. Dal nostro blog nel marzo 2023:

È una sfida complicata da affrontare e, come minimo, richiede lo sviluppo e l'implementazione di (1) un algoritmo più veloce che non richieda una sincronizzazione lineare di tutti i blocchi sulla catena e (2) modifiche agli strumenti che consentano agli utenti di spendere fondi senza avere una catena completamente sincronizzata. Come accennato, la soluzione comprende modifiche a tutti i componenti dello stack del portafoglio mobile schermato: zcashd, lightwalletd, gli SDK del portafoglio ECC e il prototipo di portafoglio ECC.

Criteri di uscita dalla modalità di emergenza

La nostra priorità assoluta è stata quella di garantire che gli utenti potessero accedere e spendere i loro ZEC. Questo è fondamentale per la nostra missione di libertà economica e un requisito per il denaro digitale privato del mondo reale.

Anche la velocità e l’affidabilità sono fondamentali per l’esperienza degli utenti di Zcash e questi sono stati i nostri criteri per uscire dalla modalità di emergenza:

  1. Gli utenti di Edge, Nighthawk e Unstoppable possono spendere i loro fondi (subito sincronizzati all’apertura del portafoglio).
  2. Gli utenti di questi portafogli possono ricevere e spendere nuovi fondi in arrivo alla velocità di un mese di transazioni in un’ora.
  3. Gli utenti di quei portafogli vedono aggiornamenti di sincronizzazione che sono minimamente confusi riguardo al progresso.
  4. Nessuno di questi portafogli è soggetto a frequenti arresti anomali o a comportamenti incoerenti (come la mancata visualizzazione di alcune transazioni già sincronizzate), né richiede comportamenti di workaround dovuti all’SDK ECC.

Con il rilascio dei nuovi SDK 2.0 per i portafogli mobili a settembre, ECC ha fornito l’ultimo tassello del suo impegno per mitigare i problemi di prestazioni dei portafogli di terze parti. Edge, Nighthawk e Unstoppable hanno rapidamente implementato gli SDK e, ad oggi, siamo lieti di riferire che i criteri di cui sopra sono stati soddisfatti.

Che cos’è Spend Before Sync e perché è importante?

Disponibile ora in Edge, Nighthawk e Unstoppable, Spend Before Sync (SBS) introduce la sincronizzazione non lineare, che consente ai portafogli di scansionare parti della blockchain in ordine sparso e/o in parallelo. In questo modo gli utenti possono spendere i fondi esistenti senza che il portafoglio debba sincronizzare completamente l’intera blockchain.

Separatamente, ma altrettanto importante, le strutture di dati che consentono SBS migliorano sostanzialmente le prestazioni degli aggiornamenti dell’albero degli impegni delle note. Ad esempio, Zingo! non ha adottato la SBS, ma solo utilizzando la struttura dati aggiornata il portafoglio ha ottenuto un miglioramento di oltre 10 volte nella velocità di scansione lineare.

Aditya Bharadwaj, meglio conosciuto come Adi, fondatore di Nighthawk, ha definito SBS “un progresso rivoluzionario che promette di rivoluzionare l’uso peer-to-peer di Zcash per i pagamenti e le interazioi schermate”.

Cosa abbiamo imparato durante la modalità di emergenza

  • Il codice del nostro SDK mobile non soddisfaceva le esigenze di un utente tipico di Zcash. L’interfaccia utente per la sincronizzazione era confusa e il design dell’API impediva ai portafogli di spendere fondi fino a quando il portafoglio non avesse sincronizzato completamente la catena.
  • Prima della Modalità di emergenza e, in parte, anche prima della ristrutturazione dell’ECC, il nostro team era troppo disperso e cercava di concentrarsi su troppe cose, facendo emergere problemi come l’impatto del carico delle transazioni.
  • Sapevamo già da tempo che era possibile un problema di carico delle transazioni, ma abbiamo dato priorità ad altre funzionalità e miglioramenti di Zcash. La sfida di dare priorità ai miglioramenti delle nuove funzionalità rispetto a rendere il sistema esistente più resistente o robusto è sempre presente. In questo caso abbiamo sottovalutato la probabilità di questo problema e la quantità di sforzi necessari per mitigarlo.
  • Abbiamo scelto di affrontare il problema nel modo più completo, facendo funzionare i portafogli durante l’alto carico di transazioni, piuttosto che ricorrere a interventi a breve termine per ridurre il carico di transazioni. Riteniamo che tali interventi a breve termine avrebbero portato a una maggiore complessità senza risolvere completamente il problema nel lungo periodo. Siamo ancora convinti che il nostro approccio sia il migliore per la solidità a lungo termine dell’ecosistema Zcash, ma abbiamo sottovalutato il tempo e l’impegno e i disagi complessivi per gli utenti Zcash nel frattempo.
  • Abbiamo anche imparato qualcosa sulle comunicazioni. Ci è voluto troppo tempo per definire la modalità di emergenza e comunicare una spiegazione e un piano concisi, sia internamente che esternamente.
  • Terminata la modalità di emergenza, l’ECC sta rivolgendo la propria attenzione alle aree di interesse principali: la proof-of-stake Zcash, lo sviluppo del portafoglio Zashi, i continui miglioramenti agli SDK e alle librerie Zcash Core e il lavoro sulla politica statunitense.

Completata la modalità di emergenza, l’ECC sta rivolgendo la propria attenzione alle aree di interesse principali: la proof-of-stake Zcash, lo sviluppo del portafoglio Zashi, i continui miglioramenti agli SDK e alle librerie Zcash Core e il lavoro sulla politica statunitense.

Articolo precedenteLista dei server per i wallet Zcash
Articolo successivoL’ECC fissa gli obiettivi e la pianificazione fino a gennaio 2024