BLOQUES
Contratos Inteligentes y Blockchains Escalables y Seguros mediante Verificación y Análisis
S2018/TCS-4339 (BLOQUES-CM)
Descripción
Objetivos investigación
Resultados
Difusión
Ofertas de empleo
Contacto
Programa Anterior
PROMESAS
PROMETIDOS
N-GREENS
Soporte
Comunidad de Madrid
mid

EU flag
Destacados
Últimas novedades empleo
Últimas novedades noticias

El auge de las criptomonedas ha hecho que problemas clásicos, como el consenso distribuido y el asegurar la integridad de los datos, hayan pasado a primer plano. La tecnología basada en blockchain dio una solución a estos dos problemas usando técnicas de sistemas distribuidos y criptografía. Con esas técnicas, y en el entorno de una base de datos distribuida que registra transacciones, los participantes acuerdan qué transacciones son verdaderas. Una vez aceptadas las transacciones, se asegura que éstas no pueden ser modificadas (es decir, la historia no puede reescribirse). Del mismo modo, es prácticamente imposible presentar como verdadera una transacción inexistente, ya que cualquier participante puede verificar fácilmente si una transacción ha sido aceptada

Partiendo de esta base, se han desarrollado muchas variantes de blockchains (o, más en general, distributed ledgers) que varían en las estructuras que mantienen las transacciones, en la manera en que se alcanza el consenso, en la posible resistencia a fallos y en la posibilidad de escribir smart contracts: código que se ejecuta automáticamente cuando se cumple una condición de un contrato, como el pago de una contraprestación por un servicio desarrollado, de manera que no es necesario que un humano supervise la activación del contrato.

Esta tecnología podría revolucionar muchas de las actividades diarias en las cuales necesitamos llevar un rastro de documentos (físicos o informáticos) que deben ser revisados, validados y sellados por humanos y que pueden falsificarse o perderse. Todo esto podría evitarse con un distributed ledger correctamente diseñado, un lenguaje de contratos bien fundado y contratos bien escritos. Adicionalmente, la velocidad de procesamiento de los contratos sería mucho mayor, ya que no sería necesario esperar a revisiones de documentos por humanos.

Sin embargo, esas ventajas pueden convertirse en el talón de Aquiles de los distributed ledgers. Muchas infraestructuras no tienen un diseño completamente verificado y sus implementaciones, notoriamente complejas, contienen errores que han causado desapariciones de transacciones o aceptación de transacciones incorrectas, es decir, pérdidas financieras. Para evitar estas situaciones es necesario resolver múltiples problemas.

  • Primero: los protocolos de consenso distribuido con resistencia a fallos son muy complejos y extremadamente difíciles de entender y verificar que son correctos.
  • Segundo: los lenguajes de escritura de contratos pueden estar mal diseñados y/o implementados, de forma que contratos aparentemente correctos no se ejecuten como se esperaba.
  • Tercero: incluso si el lenguaje es correcto, el contrato puede estar mal escrito y no comportarse como se esperaba.
  • Cuarto: en muchas aplicaciones industriales es necesario asegurar la anonimidad de las transacciones.
  • Finalmente, su uso para transacciones financieras los hace una diana preferida de ciberataques y requiere de defensas adecuadas. .