Quiero hacer algo similar a un dapp de concurso de popularidad de mascotas. Por lo que entiendo, implicaría una prueba de conocimiento cero no interactiva.
Existe una aplicación con una lista de mascotas que compiten en un concurso de popularidad. Cada mascota tiene un contador de popularidad adjunto.
// Pseudo-code petList = [Cobra, Elephant, Lion, Vulture] petList[0].popularityMeasure = 0; petList[1].popularityMeasure = 0; petList[2].popularityMeasure = 0; petList[3].popularityMeasure = 0;Cada persona expresa una elección llamando a una función de contrato inteligente como:
function sayMyChoice(witness) // witness is some sort of proof containing the name of the animal I'm opting forEntonces el contrato inteligente comprueba
function sayMyChoice(witness) { for(int i=0; i<petList.length. i++) { if(witness == petList[i]) petList[i].popularityMeasure+=1; } }Los contadores deberían ser públicos, pero no tendrías idea de quién optó por qué mascota.
Mi pregunta consta de varias partes:
Supongo que la prueba debe calcularse del lado del cliente, pero la verificación debe realizarse en un contrato inteligente.