Ironwood introdujo mejoras importantes en Zcash y un nuevo desafío para las billeteras.
Mover ZEC de Orchard a Ironwood es sencillo. Hacerlo sin renunciar innecesariamente a la privacidad es mucho más difícil.
Esto se debe a que las transferencias entre pools blindados de Zcash revelan las cantidades migradas en la cadena, aunque las direcciones involucradas permanezcan blindadas.
El riesgo para la privacidad es que estas cantidades pueden convertirse en huellas digitales. Si un observador puede conectar las transacciones de migración con otra información sobre tu billetera, entonces puede inferir tu saldo y asociar actividad de la billetera que de otro modo sería difícil de vincular.
ZIP-318 fue creado para abordar este problema. Es el estándar canónico de billetera para migrar fondos de Orchard a Ironwood mientras se hace más difícil identificar y vincular las transacciones de usuarios individuales. Los ingenieros de ZODL ayudaron a desarrollarlo, y sus protecciones informaron cómo construimos nuestra propia experiencia de migración.
En los días previos a la activación de Ironwood, enfrentamos un dilema: lanzar una migración guiada lo más rápido posible, o tomarnos el tiempo necesario para trabajar en los requisitos de privacidad, confiabilidad y experiencia de usuario de ZIP-318.
Eso significaba que Migrar con Privacidad llegaría después de la activación. En eso se invirtió el tiempo adicional.
Por qué la migración de Zodl llegó después
Zodl dio soporte a Ironwood en la activación. Los usuarios podían recibir fondos de Ironwood, seguir usando la billetera y mover manualmente fondos de Orchard a través del torniquete. Más tarde, lanzamos nuestra experiencia de Migrar con Privacidad, con Android activándose el viernes 7 de agosto y iOS el lunes 10 de agosto.
Otras billeteras lanzaron migraciones guiadas antes, así que los usuarios con razón preguntaron por qué Zodl no lo había hecho. La razón es que ayudar a los usuarios a cruzar el torniquete era solo una parte de lo que estábamos construyendo.
Una migración que preserva la privacidad debe evitar que múltiples piezas de información se usen para conectar las transacciones de un usuario. También debe funcionar de manera confiable con las realidades del uso de dispositivos móviles.
Gran parte de esa ingeniería es invisible para un usuario que toca “Migrar”, pero importa enormemente para la privacidad del resultado. A diferencia de la mayoría de las funciones de una billetera, la migración es efectivamente un evento único para los fondos de un usuario. Una vez que la información se revela cuando el ZEC cruza entre pools, una actualización posterior del software no puede revertir esa revelación. Eso elevó el listón de lo que estábamos dispuestos a lanzar.
¿Qué protege realmente una migración privada?
Tu saldo
Si migras todo el saldo de Orchard en una sola transacción, esa cantidad se hace visible en la cadena.
ZIP-318, en cambio, divide el saldo en cantidades estandarizadas diseñadas para ser compartidas entre billeteras. En lugar de difundir una cantidad distintiva, digamos 17,3842 ZEC, una billetera envía piezas estandarizadas como 0,1 ZEC, 0,5 ZEC o 1 ZEC, las denominaciones estandarizadas especificadas por ZIP-318.
Zodl utiliza este enfoque para Migrar con Privacidad. Los usuarios que prefieren velocidad aún pueden migrar de inmediato, pero explicamos que hacerlo revela la cantidad total que cruza hacia Ironwood.
Tus patrones de temporización
Dividir un saldo en piezas solo ayuda hasta cierto punto si esas piezas se envían luego en una secuencia fácilmente reconocible.
ZIP-318 por tanto distribuye las transacciones en intervalos aleatorios, de modo que incluso si se observó la transacción anterior de un usuario, el momento de su siguiente transacción es más difícil de predecir. El estándar también toma medidas para evitar que las difusiones de migración se vinculen a cuando una billetera particular se sincroniza o cuando su dueño abre la aplicación.
Estas protecciones también se fortalecen a medida que más personas las usan. Cuando muchos usuarios migran en cantidades comunes e intervalos impredecibles, cada migración individual se vuelve más difícil de distinguir del resto. Por tanto, usar Migrar con Privacidad ayuda a proteger no solo la información sobre tu propia billetera, sino la privacidad de otros que migran junto a ti.
Tu dirección IP
También hay información que proteger que nunca aparece en la blockchain.
Sin privacidad de red, el servidor remoto que recibe la transacción de una billetera puede ver la dirección IP desde la que proviene. Debido a que la cantidad que cruza hacia Ironwood es simultáneamente visible en la cadena, la información presenta otro riesgo de vinculación.
Con transacciones de migración repetidas, el riesgo de vinculación se agrava: un servidor que ve repetidamente la misma IP enviando transacciones de cruce entre pools puede agrupar esas transacciones e inferir sustancialmente más sobre las tenencias de Orchard de esa billetera. ZIP-318 identifica explícitamente este riesgo y busca remediarlo.
Por eso el estándar requiere un paso de privacidad de red dentro del flujo de migración en la aplicación, antes de que se confirme el calendario. La billetera debe ofrecer Tor y, donde esté disponible, Nym. El usuario aún puede elegir continuar sin ninguno de los dos.
Tor evita que el servidor remoto de la billetera vea la IP de origen ordinaria del usuario. Nym proporciona otra opción de privacidad de red diseñada para oscurecer tanto la identidad de red como los patrones de tráfico. Una VPN confiable también puede ocultar la IP del usuario al servidor de la billetera, aunque eso traslada la confianza al proveedor de VPN.
Estas protecciones no ocultan la cantidad que cruza entre Orchard e Ironwood. Eso es lo que aborda el resto del diseño de migración de ZIP-318. La privacidad en cadena y la privacidad de red son capas diferentes, y ambas importan.
Zodl ya había dado soporte a Tor durante meses antes de Ironwood. Migrar con Privacidad se construye sobre esa base existente de privacidad de red pidiendo a los usuarios que habiliten Tor antes de confirmar una migración privada, como especifica ZIP-318.
Construyendo para las realidades de los teléfonos
Una migración privada también debe mantenerse privada cuando las cosas no salen según lo planeado.
Los teléfonos se suspenden. Las conexiones desaparecen. Los fabricantes de Android restringen los procesos en segundo plano. iOS impone limitaciones diferentes. Los usuarios cierran aplicaciones, gastan fondos, restauran billeteras y a veces pierden el momento en que una transacción estaba programada para enviarse.
ZIP-318 contempla estos casos porque manejarlos incorrectamente daña la privacidad del usuario. Por ejemplo, simplemente enviar varias transacciones de migración atrasadas juntas la próxima vez que alguien abre su billetera puede hacer que esas transacciones sean más fáciles de asociar entre sí.
El flujo de migración de Zodl fue diseñado en torno a esas realidades.
Antes de que nada salga de Orchard, los usuarios revisan su plan de migración. Android hace su mejor esfuerzo para difundir las transferencias programadas en segundo plano y concilia todo lo que se haya perdido. En iOS, donde la ejecución en segundo plano está más restringida, Zodl le dice al usuario cuándo necesita reabrir la aplicación para continuar. El progreso de la migración permanece visible durante todo el proceso.
También construimos el flujo para que funcione con billeteras de hardware Keystone, incluyendo la firma del plan de migración antes de sus difusiones programadas.
Hacer que esos caminos funcionen correctamente, incluyendo los casos límite, tomó más tiempo que lanzar la capacidad básica de mover fondos.
Diferentes enfoques, diferentes compensaciones
Los equipos de billeteras en todo el ecosistema Zcash adoptaron varios enfoques diferentes para la migración a Ironwood, reflejando distintas elecciones en torno a velocidad, complejidad de implementación y privacidad.
Algunas billeteras, incluyendo Unstoppable, Noir y Edge, agregaron soporte para Ironwood sin un flujo de migración privada gradual.
Otras implementaron la migración gradual de diferentes maneras. Zkool primero divide las notas no estándar de Orchard en denominaciones estándar, luego migra esas notas individualmente a Ironwood. Su flujo de migración avanza en una cadencia fija de seis segundos mientras está activo, en lugar de usar el calendario basado en bloques aleatorios de ZIP-318.
Zingo agregó inicialmente soporte para Ironwood sin un flujo de migración privada; luego introdujo una ruta de migración privada en una versión posterior. Su flujo primero estandariza los saldos, luego los envía en lotes durante un período de aproximadamente tres días, diseñado para mezclar las transferencias con otros usuarios y actividad de la red.
Cake Wallet adoptó otro enfoque para la temporización. Su migración gradual envía aproximadamente una transacción por bloque de Zcash, resultando en una migración mucho más rápida. ZIP-318, en cambio, baraja el orden de las cantidades y aleatoriza el retraso entre transacciones, de modo que observar una transacción no hace predecible el momento de la siguiente.
La migración inicial de Vizor reconoció la importancia de la privacidad de red y aconsejó públicamente a los usuarios usar Tor, Nym, una VPN confiable o su propio lightwalletd. Esas protecciones no se ofrecían inicialmente dentro del propio flujo de migración, como especifica ZIP-318. Tor se agregó a Vizor más tarde.
Estas diferencias no determinan si una billetera puede mover fondos exitosamente a Ironwood, ni hacen que ninguna de estas billeteras o fondos migrados sea inherentemente insegura. Ilustran la gama de elecciones de producto y privacidad que los equipos hicieron mientras trabajaban ante la misma transición de red.
El tiempo de desarrollo adicional de Zodl se invirtió en implementar el diseño completo de migración de ZIP-318 en toda la experiencia de usuario, incluyendo sus denominaciones, temporización, ordenamiento y protecciones de privacidad de red.
En qué optimizamos
La migración de Zodl que preserva la privacidad llegó más tarde que algunas alternativas. El tiempo adicional se invirtió en proteger contra la correlación por cantidad y temporización, incorporar la privacidad de red al propio flujo de migración, manejar las realidades de Android e iOS, recuperarse de interrupciones sin socavar el calendario de privacidad y dar soporte a Keystone.
Los usuarios tienen una elección. Si la velocidad es la prioridad, pueden migrar de inmediato, con el correspondiente compromiso de privacidad explicado de antemano. Migrar con Privacidad ofrece la ruta de mayor privacidad.
Para nosotros, la privacidad no se trataba solo de construir protecciones en el software. También se trataba de ayudar a los usuarios a entender las elecciones que afectan su privacidad y darles la información para que tomen esas decisiones por sí mismos.
El objetivo era una migración que protegiera a los usuarios por diseño, a la vez que les diera información clara y control dondequiera que la privacidad involucrara una elección.
Traducción del original en inglés de Zodl.

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


