Ethereum
Ethereum y los contratos inteligentes: reglas ejecutadas por la red
Ethereum permite transferir ether y ejecutar programas compartidos. Los contratos inteligentes hacen posibles muchas aplicaciones, con reglas y límites concretos.
Diego RomeroFirma editorial
Programas y transacciones
Ethereum es una blockchain diseñada para ejecutar programas, además de transferir su activo nativo, el ether. Estos programas se llaman contratos inteligentes. El nombre puede impresionar, pero ante todo se refiere a código: unas instrucciones describen qué debe suceder cuando una operación cumple ciertas condiciones.
02Cómo funciona, paso a paso+
Imaginemos una caja fuerte digital que acepta un depósito y después permite retirarlo a una dirección determinada. El programa conserva la información necesaria y aplica sus reglas cuando recibe una transacción. Los participantes de la red verifican esa ejecución. Una aplicación puede ofrecer así intercambios de tokens, objetos digitales o una organización colectiva mediante contratos.
Ejecución y dependencias
03Puntos clave+
El usuario suele utilizar un sitio web y un monedero. El sitio presenta los botones; el monedero muestra una solicitud de firma; el contrato ejecuta la acción autorizada. Estos elementos siguen siendo distintos. Una interfaz no demuestra la calidad del programa y una firma puede autorizar más que una simple conexión.
La ejecución utiliza recursos medidos en gas. Las comisiones se pagan en ether y varían según el trabajo solicitado y la demanda de la red. Ethereum utiliza la prueba de participación: los validadores inmovilizan ether para participar en el consenso, con recompensas y penalizaciones previstas por el protocolo. Esto no significa que todos los usuarios se conviertan en validadores.
Un contrato inteligente no es un jurista ni una inteligencia capaz de juzgar una situación. Aplica su código, incluso cuando un defecto produce un resultado indeseado. Para conocer un acontecimiento externo, depende de información aportada por mecanismos que suelen llamarse oráculos. Algunos contratos pueden modificarse mediante derechos administrativos; otros no. Comprender una aplicación exige, por tanto, examinar sus permisos, posibilidades de actualización y dependencias. La automatización sustituye determinadas intervenciones humanas sin eliminar los errores de diseño ni todos los intermediarios.
Una aplicación con varias capas
Una aplicación que utiliza Ethereum puede combinar un sitio web, un monedero y varios contratos. La pantalla facilita la lectura de las acciones posibles, mientras que los programas determinan las operaciones ejecutadas en la red. Que el sitio deje de estar disponible no significa automáticamente que los contratos hayan desaparecido. A la inversa, una interfaz que sigue siendo accesible no demuestra que los programas subyacentes funcionen correctamente. Esta diferencia explica por qué la experiencia visible no basta para describir toda una aplicación.
Tomemos un programa ficticio que distribuye puntos cuando se cumple una condición informática. Aplica las instrucciones previstas con los datos recibidos, sin comprender las intenciones humanas detrás de una solicitud. Por ello, un error de diseño puede producir un resultado conforme al código, pero contrario a lo que imaginaban los usuarios. El carácter automático describe el modo de ejecución; no constituye una valoración de la utilidad del servicio ni una garantía sobre su fiabilidad.
Ejecución y capacidad de modificación
No todos los contratos presentan las mismas posibilidades de evolución. Algunos sistemas incluyen funciones de actualización o parámetros administrables. Comprender quién puede intervenir y sobre qué partes forma parte de la descripción técnica de un servicio. También es necesario distinguir una autorización de tokens de una transferencia inmediata: la primera puede permitir una acción posterior. Por último, un fallo de ejecución y una negativa del usuario a firmar corresponden a acontecimientos distintos, aunque a veces produzcan un resultado visual parecido.