Ojo, los contratos inteligentes de #Ethereum están llenos de fallos
Los programas informáticos que se ejecutan en cadenas de bloques están revolucionando el sistema financiero. Pero una gran parte del bombo de lo que ya se conoce como contratos inteligentes no es más que básicamente eso, bombo. Es un sector nuevo. Los tecnólogos están empezando a aprender a diseñarlos para garantizar que no perderán el dinero de las personas y, como lo ilustra una nueva encuesta sobre contratos inteligentes con Ethereum, los expertos en ciberseguridad no han hecho más que empezar a definir cuáles son las vulnerabilidades de un contrato inteligente.
Máquinas expendedoras digitales: el término "contrato inteligente" lo acuñó el pionero de las criptomonedas Nick Szabo que lo introdujo hace más de 20 años (puede que sea o no Satoshi Nakamoto). La idea básica, escribió Szabo, es que "muchos tipos de cláusulas contractuales (como garantías, enlaces, delimitación de los derechos de propiedad, etcétera) se pueden integrar en el hardware y software con el que trabajamos, de tal forma que incumplir el contrato se vuelve muy caro (o incluso prohibitivo) para el infractor". Szabo denominó a las máquinas expendedoras físicas como un "primitivo antecesor de los contratos inteligentes", ya que toman monedas y dispensan un producto y el cambio correcto en función del precio de compra.
Aparece el blockchain: hoy en día la idea más común de un contrato inteligente consiste en un programa de ordenador almacenado en una cadena de bloques. Esta cadena es básicamente un libro de contabilidad compartido que usa la criptografía y una red de ordenadores para rastrear los activos y proteger el libro de posibles alteraciones. Para Bitcoin, esta tecnología permite que dos partes que no se conocen entre sí tengan una garantía férrea de que una transferencia de fondos acordada sucederá como se espera, es decir, nadie será engañado.
La cosa se pone interesante con la llegada de los contratos inteligentes. Con un contrato inteligente, dos personas podrían crear un sistema que retire fondos de la cuenta de una persona, por ejemplo de uno de los padres, y los deposite en la cuenta de su hijo si el saldo del hijo cae por debajo de cierto nivel. Este es solo el ejemplo más simple; en teoría, los contratos inteligentes se pueden usar para programar todo tipo de acuerdos financieros, desde contratos de derivados y subastas hasta depósitos controlados por blockchain.
ICO en todas partes: una de las aplicaciones más populares de los contratos inteligentes ha sido la de crear nuevas criptomonedas. Algunas de ellas son pequeños indicios de un nuevo tipo de economía, una en la cual una moneda digital hecha a propósito se puede usar para un servicio "descentralizado", como el almacenamiento de datos y el comercio de divisas digital. La emoción de los inversores sobre tales aplicaciones ha ayudado a alimentar la locura de la oferta inicial de moneda (ICO por sus siglas en inglés), que en conjunto ya han recaudado más de 4.000 millones de euros. (Si se pregunta qué diablos es un ICO ← aquí hay un manual)
Paren el carro: los tecnólogos aún no tienen una idea completa de qué aspecto tiene un agujero de seguridad en un contrato inteligente, según el científico informático del University College de Londres (Reino Unido) Ilya Sergey quien es coautor de un estudio publicado la semana pasada sobre este tema.
Los usuarios lo descubrieron a las malas en 2016 cuando un pirata informático robó unos 40 millones de euros de la Organización Autónoma Descentralizada, que estaba basada en blockchain de Ethereum. Y en noviembre, alrededor de 120 millones de euros quedaron secuestrados repentinamente para los usuarios del servicio de billetera de Parity, que también tiene sus raíces en Ethereum.
Sergey y sus compañeros utilizaron una nueva herramienta para analizar una muestra de alrededor un millón de contratos inteligentes de Ethereum. De todos ellos, 34.000 resultaron vulnerables, incluido el que condujo al incidente de Parity. Sergey dice que el trabajo del equipo es como interactuar con una máquina expendedora, como si pulsaran botones al azar y registraran las condiciones que hicieron que la máquina actuara de forma involuntaria. Sergey concluye: "Creo que todavía hay una gran cantidad de vulnerabilidades por descubrir y que deben ser detalladas formalmente".