Conozco el protocolo general abierto/sin confianza para almacenar transacciones. ¿Cómo me acercaría a un escenario aquí en el que quiero almacenar algunos datos en un contrato en la implementación, para luego ser recuperados por alguien desconocido en el momento de la implementación?
El principal problema aquí es que el receptor de los datos secretos no se conoce de antemano/cuando proporciona los datos secretos. Por lo tanto, simplemente cifrar los datos con la clave pública de los compradores no es un enfoque válido.
Por ejemplo, tengo un contrato que almacena un número secreto y otros usuarios pueden interactuar con la Dapp y ofertar por estos números, solo el mejor postor recibirá el verdadero número secreto al final.
No hay una manera completa de hacer esto. Un enfoque que podría considerar es:
Puede comprometerse con el secreto por adelantado (haciendo que el contrato contenga un hash del secreto). Cuando conozca al destinatario, puede enviarle el secreto cifrado con su clave pública, que luego puede descifrar y verificar que coincida con el hash comprometido anteriormente. Nada te obliga a hacer esto, pero al menos no puedes cambiar de opinión sobre cuál era el secreto después del hecho. NB: sin embargo, nada te obliga a revelar el secreto.
Podría pensar en una variación de lo anterior que implique que una o ambas partes hagan apuestas que solo se reembolsan en un resultado / conclusión exitoso, pero esto no resolvería el problema subyacente por completo.
Se están realizando algunos esfuerzos de investigación/desarrollo en esta área (incluido el cifrado homomórfico ) y Hawk ), pero nada que parezca estar siquiera cerca de estar listo para el horario de máxima audiencia.
Mi opinión es que este tipo de funcionalidades serán parte de la web 4.0 ;-)
¡Espero que esto ayude!
ética
piso
tjaden hess
tjaden hess
piso