¿Qué es Semaphore?
General
Semaphore es un protocolo que utiliza conocimiento cero (zero-knowledge) y permite emitir una señal (por ejemplo: un voto o una aprobación) como una persona probablemente miembro de un grupo sin revelar su identidad. Además, proporciona un mecanismo sencillo para impedir que un mismo usuario emita dos señales. Algunos de los potenciales casos de uso son: votaciones, denuncias, DAOs anónimas y mezcladores.
Características
Con Semaphore puede permitir que sus usuarios realicen las siguientes acciones:
- Crear una identidad Semaphore.
- Agregar su identidad Semaphore a un grupo (es decir: Árbol de Merkle).
- Enviar una señal anónima, verificable (ej. un voto o una aprobación).
Cuando un usuario emite una señal (por ejemplo: un voto), las pruebas de conocimiento cero (ZKP) pueden asegurar que el usuario se ha incorporado al grupo y aún no ha emitido una señal con su nullifier (anulador).
Semaphore utiliza contratos internos a la cadena en Solidity y librerías de JavaScript externas a la cadena que funcionan de forma conjunta.
- Externos a la cadena (off-chain), se pueden utilizar librerías de Javascript para crear identidades, organizar grupos y generar pruebas.
- Internos a la cadena (on-chain), se pueden utilizar contratos en Solidity para organizar grupos y verificar pruebas.
Beneficios para desarrolladores
Semaphore está diseñado para ser un componente de privacidad simple y genérico para aplicaciones descentralizadas (dApps) en Ethereum. Promueve el diseño modular de las aplicaciones, lo que permite que los desarrolladores de las dApps escojan y personalicen los componentes que necesitan externos e internos a la cadena.
Respecto al código
La base del protocolo es la lógica de circuitos (circuit logic). Además de los circuitos, Semaphore ofrece contratos en Solidity y librerías en JavaScript que permiten que los desarrolladores generen pruebas de conocimiento cero (ZKP) y las verifiquen con un esfuerzo mínimo.
Ceremonia de configuración de confianza (Trusted Setup Ceremony)
Los parámetros seguros para generar pruebas válidas con los circuitos Semaphore fueron generados en una ceremonia de configuración de confianza que se completó con más de 300 participantes el 29 de Marzo de 2022.
Auditorías
Versión | Auditores | Reporte | Alcance |
---|---|---|---|
v2.0.0 | PSE | Semaphore_2.0.0_Audit.pdf | circuits , contracts |
v2.5.0 | PSE | Semaphore_2.5.0_Audit.pdf | contracts , libraries |
v3.0.0 | Veridise | Semaphore_3.0.0_Audit.pdf | circuits , contracts |
Si está utilizando una de las versiones anteriores de Semaphore, vea la documentación de Semaphore V1 o de Semaphore V2.