Saltar al contenido principal
Versión: V3

Contratos

Semaphore incluye dos tipos de contratos:

así como Semaphore.sol, el principal contrato desplegado en las redes soportadas por Semaphore.

información

Para utilizar los contratos e interfaces Semaphore en su proyecto, instale el paquete NPM @semaphore-protocol/contracts.

Contratos base​

Semaphore ofrece los siguientes contratos base:

Los contratos base están relacionados de forma muy cercana al protocolo. Puede utilizarlos en su contrato o puede utilizar Semaphore.sol que ya los tiene integrados.

información

Si bien algunas dApps pueden utilizar grupos internos a la cadena, otros puede que prefieran utilizar grupos externos a la cadena, por lo que únicamente guardarán las raíces de sus árboles en el contrato.

Contratos para la extensión​

  • SemaphoreVoting.sol: contrato para votaciones que contiene las funciones esenciales para crear encuestas, añadir electores, y emitir votos de forma anónima;
  • SemaphoreWhistleblowing.sol: contrato para denuncias que contiene las funciones esenciales para crear entidades (por ejemplo: organizaciones sin fines de lucro), añade denunciantes, y filtraciones publicadas de forma anónima.

Estos contratos extienden las capacidades del protocolo y proveen una aplicación lógica para casos de uso específicos. En un futuro se incluirán más extensiones.

Semaphore.sol​

Semaphore.sol utiliza los contratos base como punto de partida, los integra y de forma adicional brinda:

  • un sistema que solamente permite que administradores (ej. cuentas de Ethereum o contratos inteligentes) controlen grupos;
  • un mecanismo que guarda los hashes anuladores (nullifier hashes) de cada grupo y evita que el mismo miembro emita dos señales;
  • un mecanismo que permite que pruebas Semaphore generadas con raíces de Merkle antiguas sean verificadas por un periodo de tiempo determinado por el administrador del grupo.
información

Visitando contratos desplegados puede encontrar las direcciones correspondientes a su red.