#dusk $DUSK @Dusk Hay un sitio que me dejó bloqueado durante tres días: las transacciones de la cadena de privacidad están cifradas, los nodos ni siquiera pueden ver el contenido de las transacciones. ¿Pero cómo se supone que se cobre el Gas y la comisión? Anoche, aplasté una captura de pantalla con los registros de generación de pruebas de tres días, contra el fondo del vaso de americano helado junto al respaldo de la silla plegable, como si fuese una broma. El ventilador viejo del cuarto de alquiler silbaba y giraba, haciendo vibrar los borradores del código sobre la mesa durante medio minuto. Fijé la vista en el diagrama lógico de la máquina virtual Rusk durante tres minutos y no dije nada. Antes yo daba por hecho que esto o bien lo descifraban los nodos para ver el detalle y cobrar, o bien el usuario rellenaba el Gas y luego ajustaban con más o menos reembolso, hasta que terminé de revisar el código del módulo de medición de Gas en el apartado de cero conocimiento, y descubrí que ni siquiera la capa de facturación quedó fuera del límite de privacidad.

Al principio pensé que aquel módulo de medición de Gas con conocimiento cero solo era un estimador de Gas normal envuelto en cifrado. Pero al mirar con más detalle la lógica de ejecución de la máquina virtual, entendí que no estaba diseñado para ahorrar Gas: estaba hecho para cerrar la fuga de privacidad. Si un nodo pudiera deducir, a partir del consumo de Gas, qué contrato ejecutaste y cuánto transferiste, entonces el cifrado de transacciones anteriores sería básicamente inútil.

Este mecanismo justo bloqueó el agujero por el que me había atorado tres días sin poder rodearlo. Se trata del módulo de prueba de facturación Citadel integrado en la VM de Rusk: compila directamente la lógica de cálculo del Gas dentro de un circuito PLONK. Cuando el usuario genera la prueba, se calcula automáticamente el valor de Gas conforme. El nodo no necesita descifrar la transacción: solo valida el resultado de la prueba. Es completamente lo contrario al enfoque de los competidores de "estimación fuera de la cadena + validación en claro por el nodo". Los nodos no ven ningún detalle de la ejecución; el límite de privacidad pasa de cubrir las transacciones a cubrir también la facturación, e incluso el perfil de Gas no se puede rastrear. En pruebas reales, la generación de una sola prueba me tomó 1,9 segundos; aunque es más lento que calcular el Gas en claro en nodos de Ethereum, cierra por completo las rutas de fuga por canal lateral.

Pero también tengo que decir la verdad: al meter el cálculo de Gas en un circuito ZK, la complejidad de generación de pruebas sube aproximadamente un 30%. Para principiantes, llenar el Gas manualmente es fácil que se quede corto o pase por la desviación de la estimación, provocando que la transacción se bloquee. Como aún no hay adaptación dinámica de la complejidad, usar un parámetro fijo de Gas puede implicar sobreprecio en momentos de congestión. El ajuste del ritmo todavía no se ha divulgado; habrá que esperar a la validación en la red principal.

¿Esta vía podrá ejecutarse sin problemas depende de la verificación con datos de la red principal, pero al menos sirve para dejar claro que Dusk se toma la privacidad en serio, no es solo eslogan. Ni siquiera el paso de facturación, el más fácil de ignorar, se dejó fuera. ¿Tú crees que en una cadena pública de privacidad también debería esconderse el dato de facturación del Gas? Hablemos en la sección de comentarios.