Estoy trabajando en un proyecto donde todos los datos se almacenan encriptados en una cadena de bloques. Hay algunos nodos de cómputo fuera de la cadena que tienen la clave para descifrar los datos y realizar algunos cálculos y devolver resultados. Me gustaría diseñar un esquema en el que se pueda verificar que el cálculo sea correcto mediante un contrato inteligente. Entonces, estoy pensando en tener un contrato inteligente que implemente la función de verificación. La función de verificación tendría dos argumentos: una clave para el descifrado y el resultado esperado. La función es constante, por lo que la clave privada no debe escribirse en blockchain, por lo tanto, debe permanecer oculta para todos. La función devuelve verdadero o falso y firma este resultado. Esta función solo puede ser llamada por la entidad que conoce la clave. Para implementar lo anterior, necesito una función para descifrar y para iniciar sesión en Solidity, pero no pude encontrar ninguna.
¿Algún consejo si el descifrado, la función de firma existe en Solidity? ¿Alguna biblioteca? Algún consejo sobre diseños alternativos para mi problema.
Según su pregunta, sí, puede hacerlo. Pero desafortunadamente no pude encontrar ninguna biblioteca de cifrado en Solidity. En general, los buenos algoritmos de cifrado/descifrado requieren una buena potencia de cálculo. Eso significa que requiere más gasolina. Siento que esto es rentable.
Permítanme resumir con el código:
contract Mail{
mapping(address=>string) loginInfo;
function validate(bytes key, bytes expectedResult) public constant returns(bool){
//Check given saved data
//To do check given data and decrypted data is same or not?
return true;
}
}
En lugar de hacer esto, puede seguir otra forma:
En el método anterior, sus datos originales no irán a la red.
Ej: contrato,
contract Mail{
struct MailInfo{
bytes ipfs;
bytes enc_hash;
}
mapping(address=>MailInfo) loginInfo;
function getIPFS(address userId) public constant returns(bytes,bytes){
return (loginInfo[userId].ipfs,loginInfo[userId].enc_hash);
}
}
Edmundo Edgar
usuario19510
Jitendra Kumar. Balla
Marcas.
Edmundo Edgar
Marcas.
Marcas.
Jitendra Kumar. Balla