Un viaje que comenzó a finales del verano de 2022, finalmente ha llegado a un final feliz. Los monederos Zcash de terceros vuelven a funcionar y Electric Coin Co. (ECC) sale del Modo Emergencia.
Durante este tiempo, ECC lanzó múltiples actualizaciones de zcashd y lightwalletd, además de nuevos SDK móviles que, en conjunto, introdujeron nuevas innovaciones (y aprendizaje) en el mundo de la criptografía y el dinero descentralizado. Estos lanzamientos proporcionan mejoras masivas en privacidad, escalabilidad y experiencia de usuario en Zcash, y tienen implicaciones para todos los proyectos criptográficos centrados en la privacidad.
Antes de seguir adelante, tenemos que dar las GRACIAS más enormes a nuestros socios de billetera Edge, Nighthawk y Unstoppable, quienes trabajaron con nosotros para probar versiones y presentar errores, y luego se apresuraron a implementar SDKs 2.0 cuando estuvieron listos.
Los ingenieros de ECC merecen un reconocimiento especial (y posiblemente unas vacaciones) tras dedicar largas horas durante muchos meses a complicados descubrimientos y desarrollos. Trabajando durante la reestructuración de ECC y luchando contra plazos difíciles, al tiempo que abordaban otras emergencias cruciales como la revelación de Halborn, entregaron una tecnología innovadora que eleva la experiencia del usuario de ZEC.
Antecedentes
A partir de junio de 2022, la red Zcash comenzó a experimentar un enorme aumento en el volumen de transacciones blindadas. Esta carga adicional de la red causó un "apilamiento de datos" que impidió que los monederos Edge, Nighthawk e Unstoppable pudieran sincronizarse en un tiempo razonable. Estos tres monederos dependen de los SDK para móviles de ECC.
Los procesos de sincronización de los monederos requerían escanear todo el blockchain antes de que los fondos estuvieran disponibles para ser gastados. Y cuando los monederos no se sincronizaban, los usuarios no podían acceder a sus fondos ni gastarlos.
En octubre de 2022, ECC entró en modo de emergencia y dejó de lado todas las demás prioridades de la hoja de ruta. Desde nuestro blog en marzo de 2023:
Es un reto complicado de abordar y, como mínimo, requiere desarrollar e implementar (1) un algoritmo más rápido que no requiera una sincronización lineal de todos los bloques de la cadena y (2) modificaciones en las herramientas que permitan a los usuarios gastar fondos sin tener una cadena totalmente sincronizada. Como se ha mencionado, la solución comprende cambios en cada componente de la pila de monederos móviles blindados: zcashd, lightwalletd, los SDK de monederos ECC y el monedero prototipo ECC.
Criterios de salida del modo de emergencia
Nuestra máxima prioridad era garantizar que los usuarios pudieran acceder y gastar sus ZEC (monedas Zcash). Esto es fundamental para nuestra misión de libertad económica y un requisito para el efectivo digital privado del mundo real.
La velocidad y la fiabilidad también son fundamentales para la experiencia del usuario de Zcash, y estos fueron nuestros criterios para salir del Modo de Emergencia:
Los usuarios de Edge, Nighthawk e Unstoppable pueden gastar sus fondos actuales (fondos que ya están sincronizados cuando abren su monedero)
Los usuarios de estos monederos pueden recibir y gastar nuevos fondos entrantes a un ritmo de un mes de transacciones en 1 hora.
Los usuarios de esos monederos ven actualizaciones de sincronización que son mínimamente confusas sobre el progreso.
Ninguno de estos monederos se ve afectado por caídas frecuentes o comportamientos incoherentes (como la no visualización de algunas transacciones ya sincronizadas), ni requiere soluciones alternativas debido al SDK de ECC.
Con el lanzamiento de los nuevos SDK 2.0 para monederos móviles en septiembre, ECC aportó la pieza final a nuestros esfuerzos por mitigar los problemas de rendimiento de los monederos de terceros. Edge, Nighthawk e Unstoppable implementaron rápidamente los SDK y, a día de hoy, nos complace informar de que se han cumplido los criterios anteriores.
¿Qué es Spend Before Sync y por qué es importante?
Disponible ahora en Edge, Nighthawk y Unstoppable, Spend Before Sync (SBS) introduce la sincronización no lineal, que permite a los monederos escanear partes de la cadena de bloques fuera de orden y/o en paralelo. Esto permite a los usuarios gastar sus fondos sin necesidad de que el monedero sincronice toda la cadena de bloques.
Por otra parte, pero también importante, las estructuras de datos que permiten el SBS mejoran sustancialmente el rendimiento de las actualizaciones del árbol de compromiso de notas. Como ejemplo, Zingo! no adoptó SBS, pero sólo con utilizar la estructura de datos actualizada ese monedero consiguió una mejora de más de 10 veces en la velocidad de escaneo lineal.
Aditya Bharadwaj, más conocido como Adi, fundador de Nighthawk, calificó SBS como "un avance innovador que promete revolucionar el uso peer-to-peer de Zcash para pagos e interacciones de aplicaciones blindadas".
Lo que aprendimos durante el Modo de Emergencia
Nuestro código SDK móvil no satisfacía las necesidades de un usuario típico de Zcash. La interfaz de sincronización era confusa y el diseño de la API impedía a los monederos gastar fondos hasta que el monedero hubiera sincronizado completamente la cadena.
Antes del Modo de Emergencia, y hasta cierto punto antes de la reestructuración del ECC, nuestro equipo estaba demasiado disperso y tratando de centrarse en demasiadas cosas, lo que permitió que surgieran problemas como el impacto de la carga de transacciones.
Sabíamos desde hace tiempo que un problema de carga de transacciones era posible, pero dimos prioridad a otras características y mejoras de Zcash. Este reto de priorizar las mejoras de nuevas características frente a hacer que el sistema existente sea más resistente o robusto siempre está presente. En este caso, subestimamos la probabilidad de este problema y el esfuerzo que supondría mitigarlo.
Optamos por abordar el problema de la forma más exhaustiva, haciendo que los monederos funcionaran durante los periodos de alta carga de transacciones, en lugar de recurrir a intervenciones a corto plazo para reducir la carga de transacciones. Creíamos que esas intervenciones a corto plazo generarían más complejidad sin resolver completamente el problema a largo plazo. Seguimos creyendo que nuestro enfoque era el mejor para la solidez a largo plazo del ecosistema Zcash, pero subestimamos el tiempo y el esfuerzo y la interrupción general para los usuarios de Zcash en el ínterin.
También aprendimos sobre comunicaciones. Nos llevó demasiado tiempo definir el Modo de Emergencia y comunicar una explicación y un plan concisos, tanto interna como externamente.
Tener nuestro propio monedero en desarrollo (Zashi), que utiliza nuestros SDK, fue clave para acelerar el proceso porque nos permitió probar nuestras soluciones antes de desplegarlas y/o compartirlas con monederos de terceros.
Una vez completado el Modo de Emergencia, ECC está centrando su atención en nuestras principales áreas de interés: proof-of-stake Zcash, desarrollo del monedero Zashi, mejoras continuas de los SDK y las Bibliotecas Zcash Core, y el trabajo en la Política de EE.UU.
Traducción del original en inglés de Electric Coin Co.

Si quieres aprender más sobre privacidad en la economía digital descentralizada, te puedes unir a la comunidad de Zcash Español en Telegram. Para conectar con el ecosistema digital de Zcash Español, visita nuestro Linktree.


