Contratos inteligentes privados y verificables

Los contratos inteligentes se están consolidando como uno de los principales usos de las blockchain públicas: por ejemplo, actualmente Ethereum es el principal blockchain en número de transacciones (más del 50% en comparación con el resto de competidores), y más del 50% de sus transacciones son de contratos inteligentes frente a transacciones simples.

Y si bien hay multitud de soluciones de seguridad para proteger la privacidad de las transacciones (zk-SNARKS de ZCash, Ring Signatures en Monero, …), todavía no existen opción alguna para proteger los contratos inteligentes: esto es, cifrar todo el cómputo que realizan los contratos inteligentes, y no únicamente las transacciones resultantes (en realidad, las transacciones no son más que un caso especial de contrato inteligente). Porque cuando se ejecutan los contratos inteligentes de blockchains públicos queda registrada su ejecución para todo el mundo, desde sus parámetros de entrada y cómputo hasta el resultado (eg., ejemplo de trazado de la transacción a un contrato inteligente).

Este inconveniente está limitando de forma muy significativa el uso de los blockchains públicos a sólo aquellos contratos inteligentes para los que no importa que cualquiera pueda visualizar su ejecución, lo cual debe ser un pequeño porcentaje del universo de posibles contratos inteligentes.

Por otra parte, los contratos inteligentes deben estar muy bien programados, o de lo contrario expertos hackers podrían aprovechar sus fallos para robar o bloquear sus fondos: por ejemplo, los fondos congelados de Parity (>$700MM), el robo de wallets de Parity (150.000 ETH) o el famoso DAO hack ($50MM). De acuerdo a las mejores prácticas actuales, se suele encargar que terceras partes auditen el contrato inteligente de forma manual para corregir cualquier error que pudiesen encontrar: nótese que éste no es un proceso de verificación formal y que los usuarios que luego van a ejecutar el contrato inteligente deben confiar en que la auditoría se haya realizado correctamente y si no, realizarla ellos mismos, desplazándose en última instancia la carga de la prueba de su corrección a los propios usuarios

Para resolver todos los problemas anteriores, nosotros llevamos tiempo trabajando en proteger los contratos inteligentes, sean tanto de redes permisionadas como de redes públicas.

Para proteger la privacidad del cómputo, ofrecemos el uso de las más eficientes técnicas de computación segura (órdenes de magnitud más eficientes que su completa ejecución en conocimiento cero):

Y para garantizar la corrección de los contratos inteligentes, su código se puede anotar y demostrar formalmente, enviándose las demostraciones formales para que las comprueben los usuarios antes de su ejecución y así garantizar su corrección (Proof-Carrying Code). Adicionalmente, los contratos inteligentes podrían demostrar que están cumpliendo especificaciones formales de terceras partes (entidades regulatorias, organismos económicos internacionales, organizaciones sin ánimo de lucro) lo cual mejoraría la confianza comercial entre las diferentes partes al poderse comprobar su corrección antes de ejecutarse (las demostraciones de conocimiento cero sólo certifican la integridad del cómputo después de que éste se haya ejecutado, y no la correctitud).

Nótese que la combinación de Proof-Carrying Code con computación criptográficamente segura es absolutamente necesaria: una vez se estén cifrando los contratos inteligentes, se necesitan garantías adicionales antes de su ejecución para evitar pérdidas de información malintencionadas, especialmente si se realiza entre terceras partes desconocidas. Además, también se ofrecerán interfaz de usuario fáciles de utilizar como “The Secure Spreadsheet” para todos aquellos que no tengan tiempo para lidiar con el código de los contratos inteligentes, aumentando así el público destinatario.

Aunque los contratos inteligentes son de uso general y pueden ejecutar cualquier tipo de programa, su uso más ventajoso es como instrumentos financieros criptográficamente seguros. Se pueden obtener muchos más detalles técnicos en la publicación.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.