BLOQUES
Contratos Inteligentes y Blockchains Escalables y Seguros mediante Verificación y Análisis
S2018/TCS-4339 (BLOQUES-CM)
|
|||||||||||||||||||||||||
|
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.
|
||||||||||||||||||||||||