De lo que estás hablando se llama computación verificable
El artículo de Wikipedia anterior enumera dos opciones:
Verificación por replicación
- ¿Qué es más difícil de crear, el front-end del sitio web o el back-end?
- ¿Cuál es el mejor marco, CMS o API para aprender como desarrollador de back-end de PHP?
- ¿Hay alguna oportunidad en el sector gubernamental para alguien con experiencia VLSI Frontend / Backend?
- ¿Cuál es la definición correcta del desarrollo back-end y front-end?
- ¿Qué hace que PHP sea el lenguaje de programación back-end más popular para el desarrollo web?
Si el usuario también puede ejecutar el software y verificar que los resultados son los mismos, es posible que no sepan si el software que está ejecutando es el mismo, pero al menos sabrán que produce los mismos resultados , que a menudo es ” suficientemente bueno “en la práctica.
Por ejemplo, si estaba ejecutando un sitio de apuestas en línea, podría generar todos sus números aleatorios por adelantado, en un archivo por día, luego tomar el hash SHA-256 de esos archivos y publicarlos en una red blockchain como Bitcoin o Ethereum: luego, cuando termina cada día, simplemente publica los archivos que contienen los números, y todos pueden usarlos para verificar que los ganadores fueron elegidos correctamente (comparando el hash del archivo con el que se recuerda en la cadena de bloques, para que sepan no solo cambió el archivo, y luego ejecutó la parte del algoritmo de selección del ganador con esos números como entradas).
Cifrado homomórfico
Wikipedia dice:
El cifrado homomórfico es una forma de cifrado que permite realizar cálculos en texto cifrado, generando así un resultado cifrado que, cuando se descifra, coincide con el resultado de las operaciones realizadas en el texto sin formato.
Para su caso específicamente, el cálculo que se está llevando a cabo puede ser la simulación de un circuito, de modo que el usuario simplemente envíe el programa encriptado a su servidor, y su servidor simplemente realice el trabajo sin siquiera saber lo que está haciendo. No puede enviar resultados falsos porque incluso si puede adivinar qué programa están ejecutando, no podrá codificar la respuesta de la manera correcta para que el usuario la lea correctamente.
La advertencia es que lo anterior es material de “borde sangriento”; no solo encontrará una biblioteca que lo haga por usted, y requiere toneladas de potencia computacional (sobre eso, lo más positivo que puede encontrar en los artículos es que “no es una causa perdida”, y que la primera implementación de algo así necesitaba una operación de 30 minutos por bit).
Notas al pie:
¹ En realidad, así es como funcionan los sitios de juego de Bitcoin como Satoshi Dice: se autodenominan “demostrablemente justos”, porque es fácil demostrar que no hicieron trampa.