Necesito implementar algoritmos criptográficos como AESCCM y algoritmos de curva elíptica (ECDSA, ECIES) dentro de un contrato inteligente. ¿Existe alguna implementación de dichos algoritmos en Solidity o Serpent?
¿O hay alguna forma de integrar el código Python (u otro idioma) dentro de Serpent, por ejemplo (hay muchas bibliotecas criptográficas en Python)?
¿O alguna otra sugerencia sobre cómo puedo implementar esos algoritmos?
Esta biblioteca es un buen punto de partida: https://github.com/HarryR/solcrypto
Como Richard señala, la criptografía de clave simétrica y la operación de clave privada rara vez son sensatas en un contrato inteligente, ya que el contrato inteligente no tiene privacidad. Sin embargo, las operaciones de clave pública como la verificación de firmas, pruebas y hashes pueden ser muy útiles y se volvieron más eficientes con la adición de los contratos precompilados de curva elíptica en Bizancio.
Recuerde que cualquier cosa que se haga dentro de un contrato inteligente debe pagarse con gas: el gasto computacional equivale al gasto de gas. Incluso si los altos costos de la gasolina no son un impedimento, todavía hay un límite de gasolina por bloque que debería considerarse. (No sé mucho sobre la implementación de algoritmos criptográficos, pero revisé la implementación OpenSSL C de ECDSA, y tiene cientos de líneas de largo...)
Además, como se mencionó en hilos anteriores , firmar cualquier cosa dentro de un contrato inteligente necesariamente expondría las claves privadas, lo que presumiblemente no es lo que desea. Una mejor opción sería realizar la carne de la criptografía fuera del contrato y enviarle los hashes resultantes.
ética
Desnudo
Adithya Bhat