Glosario cripto
Esquema commit-reveal
Un esquema commit-reveal es un patrón en dos pasos: primero se envía un compromiso oculto y después se revela, lo que impide copiar o adelantarse a los demás.
En una blockchain pública todas las transacciones pendientes son visibles, así que quien envía en claro un voto, una puja o una jugada puede ser copiado o adelantado. El commit-reveal divide la acción en dos. En la fase de compromiso, cada participante envía el hash de su elección más una sal secreta. Cuando se cierra ese plazo, envía la elección y la sal, y el contrato comprueba que coinciden con el hash anterior.
El patrón se usa mucho. El registro de nombres ENS exige una transacción de compromiso, una breve espera y una revelación, para que los bots que vigilan la mempool no puedan arrebatar el nombre deseado. Las subastas a sobre cerrado, el piedra, papel o tijera en cadena, las votaciones privadas y algunas fuentes de aleatoriedad siguen la misma lógica, porque el secreto de cada participante contribuye a un resultado que nadie podía prever.
Su punto débil es la revelación: un participante al que no le guste el resultado probable puede negarse a revelar, por eso muchos diseños exigen depósitos que se pierden si no se revela. Dos transacciones suponen más gas y una interacción más lenta, y las sales deben ser realmente aleatorias o un valor oculto con pocas opciones podrá adivinarse por fuerza bruta.
Ejemplo
En una votación privada de una DAO, los miembros envían durante tres días el hash de sí o no con una sal aleatoria y revelan su voto en los dos días siguientes; el recuento solo incluye las revelaciones que coinciden con sus compromisos.
