#dusk $DUSK
Las soluciones de doble gasto aparecieron en dos secciones diferentes de los mismos documentos del protocolo, y seguí tratando que eran la misma idea hasta que las miré con detenimiento.
Nonce de Moonlight: un contador simple. Tu cuenta tiene un nonce actual. Cada transacción debe incluir exactamente current_nonce + 1. La red rechaza cualquier otra cosa. Visible, secuencial y verificable públicamente.
Nullifier de Phoenix: un valor criptográfico derivado de la clave secreta del apunte (note). Cuando gastas un apunte, envías el nullifier. La red lo agrega a la lista de nullifiers. Nadie puede volver a enviar el mismo nullifier: el doble gasto queda bloqueado. El nullifier no revela nada sobre el apunte ni sobre el monto.
En la red principal (mainnet), las transacciones se confirman en menos de 10 segundos. Ambos mecanismos funcionan dentro de ese margen; sea cual sea el modelo que uses, la verificación de doble gasto se resuelve antes del siguiente bloque.
El nonce de Moonlight es transparente por diseño: permite que cualquiera verifique que una transacción es genuinamente nueva. El nullifier de Phoenix es privado por diseño: demuestra unicidad sin revelar qué apunte fue gastado.
La comparación es más interesante de lo que suena: la misma garantía fundamental — esta transferencia es nueva e irrepetible — se impone con divulgación de información completamente distinta. Uno transmite el contador. El otro demuestra la unicidad sin mostrar nada.
¿Qué enfoque escala mejor con una carga alta de transacciones: el estado secuencial visible o los conjuntos de nullifiers privados? @Dusk
$DUSK #dusk
Las soluciones de doble gasto aparecieron en dos secciones diferentes de los mismos documentos del protocolo, y seguí tratando que eran la misma idea hasta que las miré con detenimiento.
Nonce de Moonlight: un contador simple. Tu cuenta tiene un nonce actual. Cada transacción debe incluir exactamente current_nonce + 1. La red rechaza cualquier otra cosa. Visible, secuencial y verificable públicamente.
Nullifier de Phoenix: un valor criptográfico derivado de la clave secreta del apunte (note). Cuando gastas un apunte, envías el nullifier. La red lo agrega a la lista de nullifiers. Nadie puede volver a enviar el mismo nullifier: el doble gasto queda bloqueado. El nullifier no revela nada sobre el apunte ni sobre el monto.
En la red principal (mainnet), las transacciones se confirman en menos de 10 segundos. Ambos mecanismos funcionan dentro de ese margen; sea cual sea el modelo que uses, la verificación de doble gasto se resuelve antes del siguiente bloque.
El nonce de Moonlight es transparente por diseño: permite que cualquiera verifique que una transacción es genuinamente nueva. El nullifier de Phoenix es privado por diseño: demuestra unicidad sin revelar qué apunte fue gastado.
La comparación es más interesante de lo que suena: la misma garantía fundamental — esta transferencia es nueva e irrepetible — se impone con divulgación de información completamente distinta. Uno transmite el contador. El otro demuestra la unicidad sin mostrar nada.
¿Qué enfoque escala mejor con una carga alta de transacciones: el estado secuencial visible o los conjuntos de nullifiers privados? @Dusk
$DUSK #dusk

