Los contratos inteligentes son la columna vertebral de cualquier blockchain, pero ¿qué los hace seguros? ¿Están a salvo de las amenazas de ciberseguridad o también tienen problemas de seguridad? Si un hacker tuviera como objetivo un contrato inteligente, ¿cuál sería su mejor apuesta para comprometerlo?
En este artículo, exploraremos cómo funcionan los contratos inteligentes y cómo los hackers podrían intentar vulnerarlos. También examinaremos proyectos de criptomonedas que ya han sufrido el robo de importantes sumas por parte de piratas informáticos.
En última instancia, debes usar el sentido común a la hora de decidir si tu proyecto necesita o no una capa adicional de protección. En la mayoría de los casos, un token básico será suficiente y demostrará ser más que capaz de proteger contra ataques de hackers. Si su proyecto es más importante y su equipo va a manejar una gran cantidad de dinero, es posible que desee invertir en servicios externos de ciberseguridad.
La belleza de la blockchain es que es casi totalmente inmutable. Sin embargo, los contratos inteligentes siguen siendo susceptibles a la actividad maliciosa. Aunque no son tan propensos a los ataques como las aplicaciones tradicionales, todavía pueden ser vulnerados.
Cómo funcionan los contratos inteligentes
Las aplicaciones descentralizadas (DApps) y los contratos inteligentes cumplen diversas funciones en el ecosistema de una cadena de bloques. Por ejemplo, pueden utilizarse para crear una base de datos compartida o facilitar el intercambio de bienes. Pero la función más importante de los contratos inteligentes es facilitar acuerdos automatizados. Las DApp no son capaces de hacer cumplir ningún acuerdo, por eso necesitamos contratos inteligentes. Estos programas informáticos autoejecutables permiten a las aplicaciones blockchain automatizar tareas que normalmente requerirían la intervención humana. Para ello se utilizan reglas de blockchain codificadas en líneas de código y ejecutables por toda la red. Estas reglas se especifican en lenguajes de programación informática como Solidity, Vyper y Serpent, entre otros.
Por ejemplo, imaginemos un escenario en el que una organización quisiera asignar un equipo de personas para trabajar en un proyecto que requiere fondos importantes y otros miembros de la comunidad. En lugar de esperar a que cada miembro se dirija al director del proyecto para solicitar una determinada cantidad de fondos, se puede utilizar un contrato inteligente para aprobar automáticamente los pagos. Esta es una de las muchas formas en que los contratos inteligentes pueden agilizar las operaciones comerciales relacionadas con blockchain y proporcionar flexibilidad donde antes faltaba. Los contratos inteligentes han demostrado ser tan útiles para este propósito como lo son en otras industrias.
Vulnerabilidades de los contratos inteligentes
Aunque los contratos inteligentes ahora sólo existen en código informático, todavía deben ser capaces de interactuar con la blockchain y otros contratos inteligentes para que puedan ejecutarse. Esta interacción puede lograrse de varias maneras, pero son los dos métodos más comunes los que permiten a los hackers atacar los contratos inteligentes. El primero se conoce como “inyección de código”, y el segundo como “hackeo de pago de gas”.
La inyección de código se refiere a cuando un hacker busca insertar código malicioso en un contrato inteligente de tal manera que potencialmente podría manipular los términos o datos del contrato. Esto puede lograrse engañando al creador de un contrato inteligente para que escriba mal una línea de código o incrustando código malicioso en un contrato inteligente existente.
Los Gas Payment Hacks son sencillos: están diseñados para pagar a los hackers por su trabajo liberando una pequeña cantidad de criptomoneda cada vez que alguien interactúa con el contrato. En otras palabras, mientras haya gente interactuando con el contrato inteligente, los hackers pueden utilizar los hacks de pago de gas para ganar tokens (en este caso, el criptoactivo de Ethereum, Ether). Si se ataca desde dentro (o desde fuera), este tipo de hacks son mucho más difíciles de detectar que la inyección de código.
La cuestión es que los contratos inteligentes pueden explotarse de cualquier forma posible. Sólo es cuestión de encontrar la mejor manera de que un hacker los explote. La mayoría de las veces, será a través de la inyección de código. Pero también se puede intentar manipular a los usuarios para que interactúen con un contrato inteligente para generar pagos de gas. Lo más importante que puedes hacer es evitar hacer llamadas innecesarias a tu contrato inteligente e interactuar con él sólo cuando sea necesario.
El debate entre dentro y fuera de la cadena: ¿dónde debe almacenar sus datos?
El debate entre el almacenamiento de datos en la cadena y fuera de ella ha sido largo y tedioso, pero en última instancia lo cierto es que ambos son valiosos. Cada uno tiene sus pros y sus contras, lo que significa que deberíamos utilizar ambos métodos en función de la situación en la que nos encontremos.
Este es el debate más común cuando se trata del tema del almacenamiento de datos, y la razón por la que resulta confuso para muchas personas. La forma tradicional de almacenar datos era en la cadena, pero hemos descubierto formas de almacenar datos fuera de la cadena. Entidades como Google y Amazon lo han hecho con sus servidores en la nube. Pero como estas empresas tienen muchos usuarios, pudieron utilizar su espacio de almacenamiento fuera de la cadena como medida de ahorro de costes.
Con las aplicaciones descentralizadas, como los juegos basados en blockchain, este no es el caso. El espacio de almacenamiento será individual. Esto significa que si estás almacenando cientos de gigabytes de datos, esto podría resultar beneficioso. Pero si sólo guardas unos pocos megabytes de datos y ejecutas una aplicación sencilla, el almacenamiento en la cadena puede ser más rentable.
Lo anterior es una generalización porque hay muchos casos en los que los métodos on-chain o off-chain son más valiosos que otros. En todos los casos, sin embargo, debe determinarse en función del papel que se desempeñe en cada cadena y de cuánto espacio de almacenamiento se disponga para proteger los activos.
Uso actual de los contratos inteligentes
Dado que los contratos inteligentes son todavía una novedad, aún queda mucho por aprender sobre sus posibles casos de uso. Pero eso no ha impedido que las industrias se lancen de cabeza a la blockchain. Los siguientes son algunos de los ejemplos más destacados de uso de contratos inteligentes en la actualidad:
Herramientas de Ethereum para el desarrollo de DApps
Raiden Network for Transactions Between Blockchains (Esta red no utiliza contratos inteligentes, pero muestra la facilidad con la que varias blockchains pueden comunicarse) The Ethereum Name System (ENS) – Se trata de una solución fuera de la cadena diseñada para ayudarnos a organizar mejor los sitios web y las aplicaciones descentralizadas. ENS no es un contrato inteligente, pero utiliza blockchain para registrar transacciones. CryptoKitties – Un juego que utiliza contratos inteligentes on-chain para la cría y venta de gatos virtuales. El sitio web ingresa unos 30.000 dólares al día.
Contratos inteligentes de Bitcoin
Dado que se supone que Bitcoin ni siquiera se utiliza para transacciones estrictamente monetarias, es difícil determinar cuántos contratos inteligentes basados en Bitcoin existen. Pero hay varios ejemplos de contratos inteligentes relacionados con Bitcoin que sí proporcionan un valor añadido que hacen que la plataforma sea más valiosa de lo que sería sin ellos:
La red relámpago – La red relámpago permite a los usuarios realizar pequeñas transacciones de Bitcoin fuera de la cadena. Mediante el uso de contratos inteligentes, podemos crear transacciones sencillas, seguras y baratas entre usuarios.
La Lightning Network permite a los usuarios realizar pequeñas transacciones de Bitcoin fuera de la cadena. Mediante el uso de contratos inteligentes, podemos crear transacciones simples, seguras y baratas entre usuarios. Los Lightning Swaps – Son soluciones basadas en contratos inteligentes que permiten que varios sistemas de pago se conecten con Bitcoin. Esto facilita que cualquiera pueda enviar dinero internacionalmente sin pasar por una cuenta bancaria intermedia.
Son soluciones basadas en contratos inteligentes que permiten que varios sistemas de pago se conecten con Bitcoin. Esto hace que sea más fácil para cualquier persona enviar dinero a nivel internacional sin pasar por una cuenta bancaria intermedia. OpenBazaar – Esta plataforma descentralizada de comercio electrónico se basa en contratos inteligentes. Permite a los usuarios comprar y vender artículos en el sitio sin comisiones, por lo que es una de las formas más baratas de hacer negocios en línea.
Esta plataforma de comercio electrónico descentralizada se basa en contratos inteligentes. Permite a los usuarios comprar y vender artículos en el sitio sin comisiones, por lo que es una de las formas más baratas de hacer negocios en línea. CoinJoin – CoinJoin permite a los usuarios de Bitcoin consolidar sus transacciones en una sola operación. Esto ofrece un grado de privacidad que puede ser difícil de alcanzar cuando se utilizan métodos tradicionales de envío de criptomoneda.
CoinJoin permite a los usuarios de Bitcoin consolidar sus transacciones en una única operación. Esto ofrece un grado de privacidad que puede ser difícil de lograr cuando se utilizan métodos tradicionales de envío de criptodivisas. The Lightning Network – Esta es otra solución fuera de la cadena que permite a los usuarios realizar transacciones Bitcoin. Esto hace que sea más fácil para cualquier persona enviar dinero internacionalmente sin pasar por una cuenta bancaria intermedia.
El futuro de los contratos inteligentes
Existen infinitas posibilidades para los contratos inteligentes y las industrias que pueden ayudar a crear. Es importante entender qué ofrece cada contrato inteligente y qué se puede hacer con ellos. Los contratos inteligentes son una parte importante de la revolución del libro mayor distribuido, y no van a desaparecer pronto.
Utilizar esta tecnología puede hacernos la vida más fácil, especialmente si eres propietario de un negocio o desarrollador de una DApp. Pero se necesita una red de desarrolladores y empresas para poder crear estos conceptos, y por eso necesitamos plataformas como Ethereum.
Fuente: Medium
Libre Traducción: LBC