Ethereum es una plataforma de cadena de bloques abierta que permite a cualquier persona crear y utilizar aplicaciones descentralizadas. En 2013, Vitalik Buterin, el fundador de Ethereum, publicó el documento técnico de Ethereum, que describía el núcleo de su diseño y el aspecto técnico de Ethereum, sentando las bases para el desarrollo vigoroso de las aplicaciones y los ecosistemas de blockchain en el futuro.
El objetivo principal de Ethereum era mejorar la funcionalidad de Bitcoin, no solo como un sistema de pago digital. La principal diferencia entre los dos es que Ethereum puede almacenar código que se puede ejecutar. Esta innovación central también se denomina contratos inteligentes, lo que significa que cualquier desarrollador puede escribir aplicaciones descentralizadas ejecutables (dApps) en la cadena de bloques de Ethereum para implementar diversas necesidades comerciales y contratos sociales.
Con la aparición de los contratos inteligentes, los usuarios pueden realizar transacciones y colaboraciones seguras, transparentes y automatizadas sin necesidad de confianza o intermediarios. Esto amplió la utilidad y la funcionalidad de las redes blockchain.
Sin embargo, el desarrollo y la aplicación práctica de Ethereum inevitablemente han enfrentado algunos desafíos, siendo los más significativos los problemas de escalabilidad. Cuando el mercado de criptomonedas experimentó un rápido crecimiento y un aumento en el volumen de transacciones, el rendimiento de la cadena de bloques de Ethereum se volvió insuficiente para satisfacer la demanda. Por lo tanto, Ethereum necesita innovación y evolución continuas para atender a su creciente base de usuarios.
Esta lección proporciona una descripción general completa de la evolución tecnológica de Ethereum, explora cómo Ethereum se ha convertido en un pionero en el espacio de blockchain y lo guía para comprender los desafíos de escalabilidad que enfrenta Ethereum y las soluciones correspondientes.
Antes del surgimiento de Ethereum, el enfoque del desarrollo de blockchain se limitaba principalmente a las monedas digitales y los sistemas de pago, utilizando libros de contabilidad descentralizados de blockchain para registrar transacciones. Tomando Bitcoin como ejemplo, la red de Bitcoin puede verse como un sistema de transición de estado que utiliza el modelo de salida de transacciones no gastadas (UTXO). UTXO se refiere a la cantidad restante de tokens de una transacción que se puede usar en otra transacción. Puede interpretarse como el saldo restante no gastado después de que alguien le da una cierta cantidad de dinero.
Cada vez que un minero produce un nuevo bloque, representa un cambio en el estado de la red de Bitcoin, ya que el nuevo bloque contiene algunas transacciones válidas que consumen algunos UTXO existentes y crean nuevos UTXO. Estos nuevos UTXO se convierten en el último estado de la red de Bitcoin, que refleja el número y la distribución de Bitcoin en poder de todos los usuarios.
Estado anterior + transacciones válidas en un nuevo bloque = Estado actual
Transición estatal de la UTXO
En la vida cotidiana, las personas están más familiarizadas con el modelo de cuenta utilizado en los sistemas bancarios tradicionales, donde una dirección de cadena de bloques corresponde a una cuenta. Cada transacción implica la transferencia de fondos o datos de una cuenta a otra, y el saldo de la cuenta es el activo que posee. Al realizar transacciones con el modelo UTXO, no hay restricciones de dirección, lo que significa que puede usar una dirección diferente para cada transacción. Su activo es la suma de todos los UTXO asociados con usted, en lugar del saldo de una dirección específica. Por lo tanto, UTXO tiene una mejor paralelización, mientras que es más probable que el modelo de cuenta se ejecute secuencialmente, lo que da como resultado un rendimiento limitado. Aunque el modelo UTXO ofrece mejor privacidad y escalabilidad, es menos intuitivo y difícil de implementar operaciones lógicas complejas. Por ejemplo, el lenguaje de programación de Bitcoin tiene las siguientes limitaciones:
Completa sin Turing
Aunque el lenguaje de secuencias de comandos de Bitcoin admite una amplia variedad de funcionalidades, no admite todos los cálculos, en particular, carece de soporte para bucles. En teoría, cualquier operación de bucle se puede lograr ejecutando repetidamente el código subyacente a través de múltiples capas de declaraciones IF, pero esto conducirá a una eficiencia operativa muy baja.
Difícil determinar el valor.
Los scripts de UTXO no pueden controlar con precisión la cantidad que se puede retirar. Por ejemplo, el usuario A necesita cubrir el riesgo de precio y el usuario B actúa como contraparte. Las dos partes depositan activos por valor de $1,000 en un contrato. Después de 30 días, el usuario A recupera $ 1,000 en Bitcoin, y la parte restante se envía al usuario B. Esto requeriría un oráculo para determinar el valor en dólares de 1 Bitcoin, lo que obliga al oráculo a tener muchos UTXO de diferentes denominaciones.
Falta de flexibilidad estatal
UTXO puede gastarse o no gastarse. Es difícil crear contratos de opciones, sistemas de cotización descentralizados, protocolos de compromiso criptográfico y otras aplicaciones que requieren estados de varias etapas (como "en uso"). Por lo tanto, los UTXO solo se pueden usar para crear contratos simples de una sola vez, en lugar de contratos "con estado" más complejos en protocolos descentralizados.
No se pueden ver los datos de la cadena de bloques
El modelo UTXO no tiene visibilidad de los datos de la cadena de bloques, como números aleatorios, marcas de tiempo y el hash del bloque anterior. Esta limitación restringe el desarrollo de juegos y otros tipos de dApps.
Para abordar las deficiencias de Bitcoin en las aplicaciones de contratos inteligentes, Ethereum abandonó el modelo UTXO y adoptó un modelo de cuenta, similar a las cuentas bancarias personales, donde una base de datos registra el saldo de cada cuenta y lo actualiza automáticamente con cada transacción.
Hay dos tipos de cuentas en Ethereum: cuentas de propiedad externa controladas por claves privadas y cuentas de contrato controladas por código de contrato inteligente. Ether sirve como medio de intercambio dentro de la red Ethereum.
En el desarrollo de blockchain, Ethereum fue la primera red de blockchain que facilitó la adopción generalizada de contratos inteligentes y dApps. Los contratos inteligentes en Ethereum generalmente se programan utilizando el lenguaje Solidity. Son programas que se ejecutan en la cadena de bloques con características como automatización, descentralización, transparencia e inmutabilidad, lo que los hace adecuados para implementar diversas reglas de lógica de negocios y transacciones. Los usuarios pueden realizar transacciones de forma segura y fiable sin necesidad de confiar en terceros.
Los contratos inteligentes se pueden usar para desarrollar varios tipos de dApps, lo que hace que la red Ethereum sea esencialmente una computadora compartida globalmente. Cualquiera puede acceder a los datos y editar y operar diferentes tipos de aplicaciones en esta computadora para satisfacer sus necesidades.
A primera vista, puede que no parezca particularmente único, ya que solo ejecuta programas de software, ¿verdad? El almacenamiento de datos y la ejecución de código de aplicación web en servidores centralizados o la instalación de software en computadoras personales aparentemente pueden lograr las mismas funcionalidades de aplicación que los contratos inteligentes.
Sin embargo, este enfoque conlleva limitaciones y riesgos, como la pérdida de datos, la manipulación y las interrupciones del servicio. El surgimiento de contratos inteligentes brinda seguridad, verificabilidad y resistencia a la censura sin precedentes para las aplicaciones tradicionales. Específicamente, los contratos inteligentes de Ethereum tienen varias diferencias clave en comparación con las aplicaciones web generales y el software del lado del cliente:
Ethereum Virtual Machine (EVM) es una computadora completa de Turing que se ejecuta en la cadena de bloques Ethereum. Ejecuta el código de los contratos inteligentes y modifica el estado de la cadena de bloques. Una analogía para entenderlo es el sistema operativo (SO) que se ejecuta en computadoras personales o teléfonos inteligentes, donde solo dentro de este entorno específico se pueden ejecutar contratos inteligentes y aplicaciones Ethereum.
El EVM opera en un entorno aislado, no afectado por interferencias externas y sin afectar el hardware subyacente. Funciona compilando el código de los contratos inteligentes, generalmente escritos en lenguaje Solidity, en un conjunto de instrucciones de código de bytes llamado código de bytes EVM. El EVM luego ejecuta estas instrucciones paso a paso.
La ejecución de EVM da como resultado cambios en el estado de la cadena de bloques, como la transferencia de tokens, el almacenamiento de datos o la activación de eventos. Para evitar que el código de contrato inteligente malicioso provoque bucles infinitos o bloquee la red Ethereum, cada instrucción consume una cierta cantidad de gas. Si no hay suficiente gas, no se puede realizar la operación.
La tarifa de gas se refiere a la tarifa de transacción pagada en Ether (ETH) en la red Ethereum para ejecutar contratos inteligentes o transferir tokens. Se utiliza para recompensar a los mineros que mantienen la red. El costo de la tarifa del gas depende de la complejidad de la transacción y el nivel de congestión de la red, generalmente medido en Gwei (1 Gwei = 0.000000001 ETH).
Los comerciantes pueden establecer su propio precio de gas (el precio por unidad de gas) y el límite de gas (la cantidad máxima de gas que están dispuestos a pagar) para ajustar la velocidad y el costo de sus transacciones.
La fórmula para calcular la tarifa de gas en Ethereum es la siguiente:
Precio del gas * Límite de gas = Tarifa de gas
El precio del gas representa el precio unitario de la tarifa. Si el precio del gas es demasiado bajo, la prioridad de la transacción puede ser menor y los mineros pueden ignorarla.
El límite de gas se refiere a la cantidad de tarifas. Si el límite de gas es demasiado bajo, no afectará la prioridad de la transacción, pero la transacción puede fallar debido a una ejecución incompleta y la tarifa de gas pagada no se reembolsará.
Según EIP-1559 (Propuesta de mejora de Ethereum), el precio del gas incluye una tarifa base que se ajusta dinámicamente según la demanda de la red y el tamaño del bloque. Se garantiza el procesamiento de transacciones con precios de gas establecidos por encima de la tarifa base, y el ETH se quemará para reducir el suministro de tokens en la red Ethereum.
Las propinas son tarifas adicionales opcionales que los usuarios están dispuestos a pagar a los mineros o validadores. Los usuarios pueden establecer sus propios valores para las propinas, lo que puede ayudar a mejorar la prioridad de sus transacciones o acelerar la velocidad de las transacciones durante la congestión de la red.
Debido al mecanismo de gas de Ethereum, los recursos computacionales y el espacio de almacenamiento de la red de la cadena de bloques pueden tener un precio adecuado, lo que puede evitar que los contratos inteligentes ejecuten infinitos bucles erróneos o sean atacados por actores malintencionados.
Antes de la fusión de Ethereum en septiembre de 2022, tanto Ethereum como Bitcoin se basaban en el mecanismo de consenso de Prueba de trabajo (PoW) para facilitar el funcionamiento normal de sus redes de cadena de bloques.
Se requería que los dispositivos que participaban en la minería resolvieran un rompecabezas criptográfico complejo mediante el uso de poder computacional para calcular un valor hash que cumpliera con los requisitos específicos. Este proceso consumió recursos computacionales y electricidad significativos, y la dificultad del rompecabezas siguió cambiando con el poder de cómputo de la red. Los usuarios que proporcionaban poder computacional se denominaban mineros.
Al intentar continuamente calcular el valor hash, los mineros tuvieron la oportunidad de encontrar un valor hash que cumpliera con los requisitos. Luego, los mineros podrían empaquetar las transacciones pendientes en un bloque y transmitir el bloque a toda la red para su validación y confirmación. Si se confirmaba el bloque, el minero recibiría recompensas por bloque y tarifas de transacción.
Después de la actualización de Ethereum 2.0, Ethereum adoptó el mecanismo de consenso de prueba de participación (PoS) para la minería. Los nodos que validan las transacciones deben apostar una cierta cantidad de Ether como garantía para competir por el derecho a producir nuevos bloques.
El propósito de hacer staking es imponer riesgos económicos en los nodos para que los nodos que atacan la red vean reducidos sus activos en staking, lo que genera pérdidas. Esto sirve como elemento disuasorio contra comportamientos maliciosos. Cuanto más Ether apuesta un nodo, mayor es la probabilidad de obtener el derecho a producir nuevos bloques.
Los nodos responsables de producir bloques necesitan empaquetar transacciones pendientes, generar nuevos bloques y transmitirlos a la red para su validación y confirmación. Si se confirma un bloque, el nodo recibe recompensas de bloque y tarifas de transacción, así como ciertos rendimientos basados en la cantidad de activos apostados.
El mecanismo de minería juega un papel crucial en la red Ethereum, reflejado principalmente en los siguientes aspectos:
Garantizar la fiabilidad y la seguridad de las transacciones
La minería implica agregar nuevas transacciones a la cadena de bloques, aumentar la cantidad de bloques y confirmar la legitimidad de estas transacciones mediante la obtención de una prueba de trabajo (actualmente prueba de participación). La minería dificulta que los atacantes manipulen maliciosamente las transacciones, lo que garantiza la confiabilidad y seguridad de las transacciones.
Mantener la descentralización de la cadena de bloques
El mecanismo de minería puede evitar que una sola entidad u organización controle toda la red de Ethereum, ya que la minería requiere una cantidad significativa de poder de cómputo (en su lugar, tokens actualmente apostados) y los atacantes necesitarían recursos sustanciales para obtener el control. Esto asegura la descentralización de la red y evita el control monopólico por parte de cualquier individuo o entidad.
Ofrecer incentivos para la participación
La minería permite a los participantes ganar recompensas al contribuir con recursos. Esto incentiva a los usuarios a participar en la construcción y operación de la red, asegurando así su buen funcionamiento.
En comparación con la minería PoW, la minería PoS requiere significativamente menos recursos informáticos y consumo de energía, lo que la hace más adecuada para satisfacer las necesidades de desarrollo y escalabilidad de la red Ethereum.
Los contratos inteligentes de Ethereum han permitido muchas aplicaciones importantes, que incluyen:
DeFi (Finanzas Descentralizadas)
DeFi es una de las aplicaciones más exitosas de los contratos inteligentes de Ethereum. Aprovecha los contratos inteligentes para establecer una gama de protocolos financieros descentralizados como MakerDAO, Compound, Uniswap y más. Estos protocolos permiten servicios financieros como préstamos, comercio, seguros, gestión de activos, etc.
NFT (tokens no fungibles)
Los NFT son activos digitales basados en los contratos inteligentes de Ethereum, que brindan singularidad e indivisibilidad a través de la funcionalidad del contrato inteligente. Los NFT encuentran aplicaciones en varios campos, como el arte, la música, los juegos, los bienes raíces virtuales y más.
DAO (Organismos Autónomos Descentralizados)
Una DAO es una organización autónoma descentralizada basada en los contratos inteligentes de Ethereum. Permite a los miembros tomar decisiones sobre asuntos internos a través de la votación, como asignación de presupuesto, administración de personal, decisiones de inversión y más. Los DAO operan de una manera verdaderamente descentralizada y democrática y se pueden aplicar a comunidades, empresas, fundaciones y otras organizaciones.
emisión de tokens
El estándar ERC-20 en Ethereum especifica la emisión y el intercambio de tokens, lo que permite la creación de tokens propios que se pueden intercambiar en la red Ethereum.
Almacenamiento descentralizado
También hay algunos protocolos de almacenamiento de archivos distribuidos basados en contratos inteligentes en Ethereum. Por ejemplo, el protocolo Swarm permite a los usuarios almacenar archivos de forma distribuida en la red, haciéndolos más seguros y confiables.
Computación en la nube
También existen algunas plataformas informáticas descentralizadas basadas en contratos inteligentes en Ethereum, como Golem e iExec. Estas plataformas permiten a los usuarios alquilar recursos informáticos para ejecutar diversas aplicaciones, logrando así una computación y un procesamiento de datos más eficientes.
identidad digital
EIP-4361 presenta un marco estandarizado para iniciar sesión con Ethereum, lo que permite a los usuarios iniciar sesión en dApps utilizando sus direcciones de Ethereum en lugar de los nombres de usuario y contraseñas tradicionales. Este mecanismo de autenticación mejora la privacidad y la seguridad del usuario al tiempo que reduce la participación de los intermediarios. \
Además de las aplicaciones antes mencionadas, los contratos inteligentes de Ethereum pueden habilitar una amplia gama de otros casos de uso, como juegos, redes sociales y gestión de la cadena de suministro, entre otros. Debido a la capacidad de programación de los contratos inteligentes, los escenarios de aplicación en la plataforma Ethereum continúan expandiéndose, lo que ofrece un potencial significativo para el desarrollo futuro.
Ethereum ha sacrificado cierta medida de rendimiento en pos de la descentralización y la seguridad. Debido a limitaciones técnicas, Ethereum tiene un tiempo de generación de bloques de aproximadamente 12 a 15 segundos, y cada bloque tiene un límite de tamaño de 15 MB. Como resultado, Ethereum solo puede procesar alrededor de 15 transacciones por segundo.
Sin embargo, como la red de contratos inteligentes más grande en términos de ecosistema y comunidad de desarrollo, Ethereum ha experimentado un aumento significativo en la cantidad de direcciones de billetera únicas con un saldo distinto de cero en su cadena de bloques, creciendo más de diez veces en los últimos cinco años. El aumento de diferentes protocolos y actividades de los usuarios ha superado el diseño existente, lo que exacerba los desafíos de escalabilidad de Ethereum.
Para mejorar la escalabilidad de Ethereum, la comunidad de desarrollo ha propuesto varias soluciones, que incluyen cadenas laterales, acumulaciones, tecnología de fragmentación y desvío de tráfico a otras redes de cadenas de bloques compatibles con EVM para aliviar la congestión.
En esta lección, hemos profundizado en la arquitectura técnica y los principios de Ethereum, así como también en cómo la innovación de los contratos inteligentes aprovecha el potencial de blockchain, permitiendo una amplia gama de aplicaciones y ecosistemas descentralizados para facilitar diversas necesidades comerciales y contratos sociales.
Sin embargo, el rápido crecimiento de Ethereum ha sacado a la luz el problema de la baja escalabilidad. Por lo tanto, abordar el desafío de la escalabilidad se ha convertido en una prioridad para satisfacer las crecientes demandas de los usuarios.
En la próxima lección, exploraremos diferentes soluciones de escalabilidad y sus aplicaciones dentro del ecosistema, incluidas cadenas laterales, acumulaciones y varios competidores de EVM. También analizaremos sus respectivas ventajas y desventajas, brindándole una mejor comprensión del estado de desarrollo actual y las tendencias futuras de la tecnología blockchain.
🎥・Vídeo principal
| 📄・Artículos relacionados
|
Ethereum es una plataforma de cadena de bloques abierta que permite a cualquier persona crear y utilizar aplicaciones descentralizadas. En 2013, Vitalik Buterin, el fundador de Ethereum, publicó el documento técnico de Ethereum, que describía el núcleo de su diseño y el aspecto técnico de Ethereum, sentando las bases para el desarrollo vigoroso de las aplicaciones y los ecosistemas de blockchain en el futuro.
El objetivo principal de Ethereum era mejorar la funcionalidad de Bitcoin, no solo como un sistema de pago digital. La principal diferencia entre los dos es que Ethereum puede almacenar código que se puede ejecutar. Esta innovación central también se denomina contratos inteligentes, lo que significa que cualquier desarrollador puede escribir aplicaciones descentralizadas ejecutables (dApps) en la cadena de bloques de Ethereum para implementar diversas necesidades comerciales y contratos sociales.
Con la aparición de los contratos inteligentes, los usuarios pueden realizar transacciones y colaboraciones seguras, transparentes y automatizadas sin necesidad de confianza o intermediarios. Esto amplió la utilidad y la funcionalidad de las redes blockchain.
Sin embargo, el desarrollo y la aplicación práctica de Ethereum inevitablemente han enfrentado algunos desafíos, siendo los más significativos los problemas de escalabilidad. Cuando el mercado de criptomonedas experimentó un rápido crecimiento y un aumento en el volumen de transacciones, el rendimiento de la cadena de bloques de Ethereum se volvió insuficiente para satisfacer la demanda. Por lo tanto, Ethereum necesita innovación y evolución continuas para atender a su creciente base de usuarios.
Esta lección proporciona una descripción general completa de la evolución tecnológica de Ethereum, explora cómo Ethereum se ha convertido en un pionero en el espacio de blockchain y lo guía para comprender los desafíos de escalabilidad que enfrenta Ethereum y las soluciones correspondientes.
Antes del surgimiento de Ethereum, el enfoque del desarrollo de blockchain se limitaba principalmente a las monedas digitales y los sistemas de pago, utilizando libros de contabilidad descentralizados de blockchain para registrar transacciones. Tomando Bitcoin como ejemplo, la red de Bitcoin puede verse como un sistema de transición de estado que utiliza el modelo de salida de transacciones no gastadas (UTXO). UTXO se refiere a la cantidad restante de tokens de una transacción que se puede usar en otra transacción. Puede interpretarse como el saldo restante no gastado después de que alguien le da una cierta cantidad de dinero.
Cada vez que un minero produce un nuevo bloque, representa un cambio en el estado de la red de Bitcoin, ya que el nuevo bloque contiene algunas transacciones válidas que consumen algunos UTXO existentes y crean nuevos UTXO. Estos nuevos UTXO se convierten en el último estado de la red de Bitcoin, que refleja el número y la distribución de Bitcoin en poder de todos los usuarios.
Estado anterior + transacciones válidas en un nuevo bloque = Estado actual
Transición estatal de la UTXO
En la vida cotidiana, las personas están más familiarizadas con el modelo de cuenta utilizado en los sistemas bancarios tradicionales, donde una dirección de cadena de bloques corresponde a una cuenta. Cada transacción implica la transferencia de fondos o datos de una cuenta a otra, y el saldo de la cuenta es el activo que posee. Al realizar transacciones con el modelo UTXO, no hay restricciones de dirección, lo que significa que puede usar una dirección diferente para cada transacción. Su activo es la suma de todos los UTXO asociados con usted, en lugar del saldo de una dirección específica. Por lo tanto, UTXO tiene una mejor paralelización, mientras que es más probable que el modelo de cuenta se ejecute secuencialmente, lo que da como resultado un rendimiento limitado. Aunque el modelo UTXO ofrece mejor privacidad y escalabilidad, es menos intuitivo y difícil de implementar operaciones lógicas complejas. Por ejemplo, el lenguaje de programación de Bitcoin tiene las siguientes limitaciones:
Completa sin Turing
Aunque el lenguaje de secuencias de comandos de Bitcoin admite una amplia variedad de funcionalidades, no admite todos los cálculos, en particular, carece de soporte para bucles. En teoría, cualquier operación de bucle se puede lograr ejecutando repetidamente el código subyacente a través de múltiples capas de declaraciones IF, pero esto conducirá a una eficiencia operativa muy baja.
Difícil determinar el valor.
Los scripts de UTXO no pueden controlar con precisión la cantidad que se puede retirar. Por ejemplo, el usuario A necesita cubrir el riesgo de precio y el usuario B actúa como contraparte. Las dos partes depositan activos por valor de $1,000 en un contrato. Después de 30 días, el usuario A recupera $ 1,000 en Bitcoin, y la parte restante se envía al usuario B. Esto requeriría un oráculo para determinar el valor en dólares de 1 Bitcoin, lo que obliga al oráculo a tener muchos UTXO de diferentes denominaciones.
Falta de flexibilidad estatal
UTXO puede gastarse o no gastarse. Es difícil crear contratos de opciones, sistemas de cotización descentralizados, protocolos de compromiso criptográfico y otras aplicaciones que requieren estados de varias etapas (como "en uso"). Por lo tanto, los UTXO solo se pueden usar para crear contratos simples de una sola vez, en lugar de contratos "con estado" más complejos en protocolos descentralizados.
No se pueden ver los datos de la cadena de bloques
El modelo UTXO no tiene visibilidad de los datos de la cadena de bloques, como números aleatorios, marcas de tiempo y el hash del bloque anterior. Esta limitación restringe el desarrollo de juegos y otros tipos de dApps.
Para abordar las deficiencias de Bitcoin en las aplicaciones de contratos inteligentes, Ethereum abandonó el modelo UTXO y adoptó un modelo de cuenta, similar a las cuentas bancarias personales, donde una base de datos registra el saldo de cada cuenta y lo actualiza automáticamente con cada transacción.
Hay dos tipos de cuentas en Ethereum: cuentas de propiedad externa controladas por claves privadas y cuentas de contrato controladas por código de contrato inteligente. Ether sirve como medio de intercambio dentro de la red Ethereum.
En el desarrollo de blockchain, Ethereum fue la primera red de blockchain que facilitó la adopción generalizada de contratos inteligentes y dApps. Los contratos inteligentes en Ethereum generalmente se programan utilizando el lenguaje Solidity. Son programas que se ejecutan en la cadena de bloques con características como automatización, descentralización, transparencia e inmutabilidad, lo que los hace adecuados para implementar diversas reglas de lógica de negocios y transacciones. Los usuarios pueden realizar transacciones de forma segura y fiable sin necesidad de confiar en terceros.
Los contratos inteligentes se pueden usar para desarrollar varios tipos de dApps, lo que hace que la red Ethereum sea esencialmente una computadora compartida globalmente. Cualquiera puede acceder a los datos y editar y operar diferentes tipos de aplicaciones en esta computadora para satisfacer sus necesidades.
A primera vista, puede que no parezca particularmente único, ya que solo ejecuta programas de software, ¿verdad? El almacenamiento de datos y la ejecución de código de aplicación web en servidores centralizados o la instalación de software en computadoras personales aparentemente pueden lograr las mismas funcionalidades de aplicación que los contratos inteligentes.
Sin embargo, este enfoque conlleva limitaciones y riesgos, como la pérdida de datos, la manipulación y las interrupciones del servicio. El surgimiento de contratos inteligentes brinda seguridad, verificabilidad y resistencia a la censura sin precedentes para las aplicaciones tradicionales. Específicamente, los contratos inteligentes de Ethereum tienen varias diferencias clave en comparación con las aplicaciones web generales y el software del lado del cliente:
Ethereum Virtual Machine (EVM) es una computadora completa de Turing que se ejecuta en la cadena de bloques Ethereum. Ejecuta el código de los contratos inteligentes y modifica el estado de la cadena de bloques. Una analogía para entenderlo es el sistema operativo (SO) que se ejecuta en computadoras personales o teléfonos inteligentes, donde solo dentro de este entorno específico se pueden ejecutar contratos inteligentes y aplicaciones Ethereum.
El EVM opera en un entorno aislado, no afectado por interferencias externas y sin afectar el hardware subyacente. Funciona compilando el código de los contratos inteligentes, generalmente escritos en lenguaje Solidity, en un conjunto de instrucciones de código de bytes llamado código de bytes EVM. El EVM luego ejecuta estas instrucciones paso a paso.
La ejecución de EVM da como resultado cambios en el estado de la cadena de bloques, como la transferencia de tokens, el almacenamiento de datos o la activación de eventos. Para evitar que el código de contrato inteligente malicioso provoque bucles infinitos o bloquee la red Ethereum, cada instrucción consume una cierta cantidad de gas. Si no hay suficiente gas, no se puede realizar la operación.
La tarifa de gas se refiere a la tarifa de transacción pagada en Ether (ETH) en la red Ethereum para ejecutar contratos inteligentes o transferir tokens. Se utiliza para recompensar a los mineros que mantienen la red. El costo de la tarifa del gas depende de la complejidad de la transacción y el nivel de congestión de la red, generalmente medido en Gwei (1 Gwei = 0.000000001 ETH).
Los comerciantes pueden establecer su propio precio de gas (el precio por unidad de gas) y el límite de gas (la cantidad máxima de gas que están dispuestos a pagar) para ajustar la velocidad y el costo de sus transacciones.
La fórmula para calcular la tarifa de gas en Ethereum es la siguiente:
Precio del gas * Límite de gas = Tarifa de gas
El precio del gas representa el precio unitario de la tarifa. Si el precio del gas es demasiado bajo, la prioridad de la transacción puede ser menor y los mineros pueden ignorarla.
El límite de gas se refiere a la cantidad de tarifas. Si el límite de gas es demasiado bajo, no afectará la prioridad de la transacción, pero la transacción puede fallar debido a una ejecución incompleta y la tarifa de gas pagada no se reembolsará.
Según EIP-1559 (Propuesta de mejora de Ethereum), el precio del gas incluye una tarifa base que se ajusta dinámicamente según la demanda de la red y el tamaño del bloque. Se garantiza el procesamiento de transacciones con precios de gas establecidos por encima de la tarifa base, y el ETH se quemará para reducir el suministro de tokens en la red Ethereum.
Las propinas son tarifas adicionales opcionales que los usuarios están dispuestos a pagar a los mineros o validadores. Los usuarios pueden establecer sus propios valores para las propinas, lo que puede ayudar a mejorar la prioridad de sus transacciones o acelerar la velocidad de las transacciones durante la congestión de la red.
Debido al mecanismo de gas de Ethereum, los recursos computacionales y el espacio de almacenamiento de la red de la cadena de bloques pueden tener un precio adecuado, lo que puede evitar que los contratos inteligentes ejecuten infinitos bucles erróneos o sean atacados por actores malintencionados.
Antes de la fusión de Ethereum en septiembre de 2022, tanto Ethereum como Bitcoin se basaban en el mecanismo de consenso de Prueba de trabajo (PoW) para facilitar el funcionamiento normal de sus redes de cadena de bloques.
Se requería que los dispositivos que participaban en la minería resolvieran un rompecabezas criptográfico complejo mediante el uso de poder computacional para calcular un valor hash que cumpliera con los requisitos específicos. Este proceso consumió recursos computacionales y electricidad significativos, y la dificultad del rompecabezas siguió cambiando con el poder de cómputo de la red. Los usuarios que proporcionaban poder computacional se denominaban mineros.
Al intentar continuamente calcular el valor hash, los mineros tuvieron la oportunidad de encontrar un valor hash que cumpliera con los requisitos. Luego, los mineros podrían empaquetar las transacciones pendientes en un bloque y transmitir el bloque a toda la red para su validación y confirmación. Si se confirmaba el bloque, el minero recibiría recompensas por bloque y tarifas de transacción.
Después de la actualización de Ethereum 2.0, Ethereum adoptó el mecanismo de consenso de prueba de participación (PoS) para la minería. Los nodos que validan las transacciones deben apostar una cierta cantidad de Ether como garantía para competir por el derecho a producir nuevos bloques.
El propósito de hacer staking es imponer riesgos económicos en los nodos para que los nodos que atacan la red vean reducidos sus activos en staking, lo que genera pérdidas. Esto sirve como elemento disuasorio contra comportamientos maliciosos. Cuanto más Ether apuesta un nodo, mayor es la probabilidad de obtener el derecho a producir nuevos bloques.
Los nodos responsables de producir bloques necesitan empaquetar transacciones pendientes, generar nuevos bloques y transmitirlos a la red para su validación y confirmación. Si se confirma un bloque, el nodo recibe recompensas de bloque y tarifas de transacción, así como ciertos rendimientos basados en la cantidad de activos apostados.
El mecanismo de minería juega un papel crucial en la red Ethereum, reflejado principalmente en los siguientes aspectos:
Garantizar la fiabilidad y la seguridad de las transacciones
La minería implica agregar nuevas transacciones a la cadena de bloques, aumentar la cantidad de bloques y confirmar la legitimidad de estas transacciones mediante la obtención de una prueba de trabajo (actualmente prueba de participación). La minería dificulta que los atacantes manipulen maliciosamente las transacciones, lo que garantiza la confiabilidad y seguridad de las transacciones.
Mantener la descentralización de la cadena de bloques
El mecanismo de minería puede evitar que una sola entidad u organización controle toda la red de Ethereum, ya que la minería requiere una cantidad significativa de poder de cómputo (en su lugar, tokens actualmente apostados) y los atacantes necesitarían recursos sustanciales para obtener el control. Esto asegura la descentralización de la red y evita el control monopólico por parte de cualquier individuo o entidad.
Ofrecer incentivos para la participación
La minería permite a los participantes ganar recompensas al contribuir con recursos. Esto incentiva a los usuarios a participar en la construcción y operación de la red, asegurando así su buen funcionamiento.
En comparación con la minería PoW, la minería PoS requiere significativamente menos recursos informáticos y consumo de energía, lo que la hace más adecuada para satisfacer las necesidades de desarrollo y escalabilidad de la red Ethereum.
Los contratos inteligentes de Ethereum han permitido muchas aplicaciones importantes, que incluyen:
DeFi (Finanzas Descentralizadas)
DeFi es una de las aplicaciones más exitosas de los contratos inteligentes de Ethereum. Aprovecha los contratos inteligentes para establecer una gama de protocolos financieros descentralizados como MakerDAO, Compound, Uniswap y más. Estos protocolos permiten servicios financieros como préstamos, comercio, seguros, gestión de activos, etc.
NFT (tokens no fungibles)
Los NFT son activos digitales basados en los contratos inteligentes de Ethereum, que brindan singularidad e indivisibilidad a través de la funcionalidad del contrato inteligente. Los NFT encuentran aplicaciones en varios campos, como el arte, la música, los juegos, los bienes raíces virtuales y más.
DAO (Organismos Autónomos Descentralizados)
Una DAO es una organización autónoma descentralizada basada en los contratos inteligentes de Ethereum. Permite a los miembros tomar decisiones sobre asuntos internos a través de la votación, como asignación de presupuesto, administración de personal, decisiones de inversión y más. Los DAO operan de una manera verdaderamente descentralizada y democrática y se pueden aplicar a comunidades, empresas, fundaciones y otras organizaciones.
emisión de tokens
El estándar ERC-20 en Ethereum especifica la emisión y el intercambio de tokens, lo que permite la creación de tokens propios que se pueden intercambiar en la red Ethereum.
Almacenamiento descentralizado
También hay algunos protocolos de almacenamiento de archivos distribuidos basados en contratos inteligentes en Ethereum. Por ejemplo, el protocolo Swarm permite a los usuarios almacenar archivos de forma distribuida en la red, haciéndolos más seguros y confiables.
Computación en la nube
También existen algunas plataformas informáticas descentralizadas basadas en contratos inteligentes en Ethereum, como Golem e iExec. Estas plataformas permiten a los usuarios alquilar recursos informáticos para ejecutar diversas aplicaciones, logrando así una computación y un procesamiento de datos más eficientes.
identidad digital
EIP-4361 presenta un marco estandarizado para iniciar sesión con Ethereum, lo que permite a los usuarios iniciar sesión en dApps utilizando sus direcciones de Ethereum en lugar de los nombres de usuario y contraseñas tradicionales. Este mecanismo de autenticación mejora la privacidad y la seguridad del usuario al tiempo que reduce la participación de los intermediarios. \
Además de las aplicaciones antes mencionadas, los contratos inteligentes de Ethereum pueden habilitar una amplia gama de otros casos de uso, como juegos, redes sociales y gestión de la cadena de suministro, entre otros. Debido a la capacidad de programación de los contratos inteligentes, los escenarios de aplicación en la plataforma Ethereum continúan expandiéndose, lo que ofrece un potencial significativo para el desarrollo futuro.
Ethereum ha sacrificado cierta medida de rendimiento en pos de la descentralización y la seguridad. Debido a limitaciones técnicas, Ethereum tiene un tiempo de generación de bloques de aproximadamente 12 a 15 segundos, y cada bloque tiene un límite de tamaño de 15 MB. Como resultado, Ethereum solo puede procesar alrededor de 15 transacciones por segundo.
Sin embargo, como la red de contratos inteligentes más grande en términos de ecosistema y comunidad de desarrollo, Ethereum ha experimentado un aumento significativo en la cantidad de direcciones de billetera únicas con un saldo distinto de cero en su cadena de bloques, creciendo más de diez veces en los últimos cinco años. El aumento de diferentes protocolos y actividades de los usuarios ha superado el diseño existente, lo que exacerba los desafíos de escalabilidad de Ethereum.
Para mejorar la escalabilidad de Ethereum, la comunidad de desarrollo ha propuesto varias soluciones, que incluyen cadenas laterales, acumulaciones, tecnología de fragmentación y desvío de tráfico a otras redes de cadenas de bloques compatibles con EVM para aliviar la congestión.
En esta lección, hemos profundizado en la arquitectura técnica y los principios de Ethereum, así como también en cómo la innovación de los contratos inteligentes aprovecha el potencial de blockchain, permitiendo una amplia gama de aplicaciones y ecosistemas descentralizados para facilitar diversas necesidades comerciales y contratos sociales.
Sin embargo, el rápido crecimiento de Ethereum ha sacado a la luz el problema de la baja escalabilidad. Por lo tanto, abordar el desafío de la escalabilidad se ha convertido en una prioridad para satisfacer las crecientes demandas de los usuarios.
En la próxima lección, exploraremos diferentes soluciones de escalabilidad y sus aplicaciones dentro del ecosistema, incluidas cadenas laterales, acumulaciones y varios competidores de EVM. También analizaremos sus respectivas ventajas y desventajas, brindándole una mejor comprensión del estado de desarrollo actual y las tendencias futuras de la tecnología blockchain.
🎥・Vídeo principal
| 📄・Artículos relacionados
|