Smart Contract Design in Times of Congested Networks

Updated on: August 12th, 2020
This content has been Fact-Checked.
Smart Contract Design in Times of Congested Networks

En este artículo, vamos a entender qué significa el gas Ethereum y por qué se ha disparado recientemente. Después de eso, veremos cómo otras plataformas de contratos inteligentes como RSK y EOS tratan con los precios del gas cuando se trata de Smart Contract Design.

Ethereum tiene un problema de gas. Por gracioso que parezca, podemos asegurarle que los desarrolladores están haciendo cualquier cosa menos riéndose de esa declaración.

La creciente demanda de aplicaciones DeFi (finanzas descentralizadas) ha aumentado la congestión en la cadena de bloques principal de Ethereum. Esto, a su vez, ha disparado los precios del gas en la cadena principal. Según Bitinfocharts, las comisiones medias de transacción se han disparado a sus niveles más altos desde principios de 2018.

Contrato inteligente y Ethereum Virtual Machine (EVM)

Los contratos inteligentes son contratos automatizados. Son autoejecutables con instrucciones específicas escritas en su código, que se ejecutan cuando se realizan ciertas condiciones.

Puede obtener más información sobre contratos inteligentes en nuestra guía detallada aquí.

Los contratos inteligentes son cómo se hacen las cosas en el ecosistema de Ethereum. Cuando alguien quiere hacer una tarea en particular en Ethereum, inicia un contrato inteligente con una o más personas.

Los contratos inteligentes son una serie de instrucciones escritas usando el lenguaje de programación «solidez», que funciona basado en la lógica IFTTT, también conocido como la lógica IF-THIS-THEN-THEN-THEN-THEN-THEN-THEN-THEN-THEN-TH Básicamente, si se realiza el primer conjunto de instrucciones, ejecute la siguiente función y luego la siguiente y siga repitiendo hasta que llegue al final del contrato.

Este es el principio básico detrás de los contratos inteligentes. Esto es lo que nos permite tener un acuerdo vinculante entre múltiples partes supervisado por código, en lugar de un tercero, como un abogado.

¿Qué es la máquina virtual de Ethereum?

Las máquinas virtuales de Ethereum son ecosistemas en los que se ejecutan contratos inteligentes. Una funcionalidad adecuada de contrato inteligente requiere tres cosas importantes:

Determinista.

Terminable.

Aislado.

Característica #1: Determinista

Un programa es determinista si da la misma salida a una entrada dada cada vez. Por ejemplo: Si 3+1 = 4 entonces 3+1 SIEMPRE será 4 (asumiendo la misma base). Por lo tanto, cuando un programa da la misma salida al mismo conjunto de entradas en diferentes computadoras, se llama determinista.

Característica #2: Terminable

En lógica matemática, tenemos un error llamado «detener el problema». Básicamente, establece que hay una incapacidad para saber si un programa determinado puede o no ejecutar su función en un límite de tiempo. Evidentemente, se trata de un problema con los contratos inteligentes porque, por definición, los contratos deben poder rescindirse en un plazo determinado. Los contratos inteligentes necesitan un entorno en el que puedan integrar un mecanismo de detención.

Característica #3: Aislada

En una cadena de bloques, cualquiera y todos pueden subir un contrato inteligente. Sin embargo, debido a esto, los contratos pueden, a sabiendas y sin saberlo, contener virus y errores. Si el contrato no está aislado, esto puede obstaculizar todo el sistema. Por lo tanto, es fundamental que un contrato se mantenga aislado en una caja de arena para salvar todo el ecosistema de cualquier efecto adverso.

Ethereum proporciona todas estas funcionalidades a través del EVM. Es una máquina virtual simple pero potente Turing Complete de 256 bits.

¿Qué es Ethereum Gas?

Gas es una unidad que mide la cantidad de esfuerzo computacional que se necesitará para ejecutar ciertas operaciones. Todos los contratos inteligentes que se ejecutan en el EVM están codificados usando solidez (Ethereum planea pasar a Viper desde Solidity en el futuro). Todas y cada una de las líneas de código en solidez requiere una cierta cantidad de gas para calcularse.

La imagen a continuación ha sido tomada de Ethereum Yellowpage y se puede usar para obtener una idea aproximada de cuánto cuestan instrucciones específicas en cuanto a gas.

Imagen cortesía: Ethereum Yellow Paper

Para comprender mejor cómo funciona el gas en Ethereum, utilicemos una analogía. Suponga que va de viaje. Antes de hacerlo, sigue estos pasos:

Usted va a la gasolinera y especifica la cantidad de gas que desea llenar en su coche.

Tienes ese gas lleno en tu auto.

Le pagas a la gasolinera la cantidad de dinero que les debes por el gas.

Ahora, vamos a dibujar paralelismos con Ethereum.

El automóvil es la operación que desea ejecutar, como un gas o un contrato inteligente.

El gas está bien.... gas.

La gasolinera es su minero.

El dinero que les pagaste son los honorarios del minero.

Todas las operaciones que los usuarios desean ejecutar en ethereum deben proporcionar gas para lo siguiente:

Para cubrir sus datos también conocidos como gas intrínseco.

Para cubrir todo su cálculo.

Ahora que hemos cubierto lo básico, tal vez hagas la siguiente pregunta.

¿Por qué tenemos este sistema de gas?

La respuesta es simple... incentivación.

Al igual que cualquier sistema de prueba de trabajo peer-to-peer, Ethereum depende en gran medida del hashrate de sus mineros. Más mineros, más hashrate, más seguro y rápido el sistema.

Para atraer a más mineros al sistema necesitan hacer que el sistema sea lo más rentable y atractivo posible para los mineros. En Ethereum, hay dos maneras en que los mineros pueden ganar dinero:

Minando bloques y obteniendo recompensas de bloque.

Convertiéndose en dictadores temporales de sus bloques minados.

Vamos a explorar el segundo punto.

Los mineros son responsables de poner las transacciones dentro de sus bloques. Para ello, deben utilizar su poder computacional para validar contratos inteligentes. El sistema de gas les permite cobrar una tarifa específica por hacerlo.

Esta cuota se conoce como la cuota del minero y ayuda a incentivarlos lo suficiente como para participar activamente en el ecosistema.

Entonces, ¿cuántos honorarios pueden cobrar? Antes de que podamos calcular eso vamos a entender cómo medimos el gas.

La unidad de medida de gas más pequeña es wei. Por lo tanto, si gastamos 1 unidad de gas durante una operación, lo llamamos 1 wei.

Las unidades de medida aumentan así:

Crédito de la imagen: Steemit

Antes de ir más lejos, es importante conocer el concepto de límite de gas.

¿Qué es el límite de gas?

Para realizar una operación en Ethereum, el generador de operaciones (es decir, la persona que inicia la transacción o el creador del contrato inteligente) debe especificar un límite de gas antes de enviarlo a los mineros. Cuando se ha definido un límite de gas, sólo entonces los mineros comenzarán a ejecutar la operación.

Al presentar un límite de gas, se deben tener en cuenta los siguientes puntos:

Las diferentes operaciones tendrán diferentes costes de gas (como se ha mostrado anteriormente).

Los mineros dejarán de ejecutar en el momento en que se agote el gas.

Si queda algo de gas, será devuelto inmediatamente al generador de operación.

Veamos esto en funcionamiento en un escenario hipotético.

Supongamos que estamos agregando dos números y para eso el contrato debe hacer las siguientes acciones:

Almacenando 10 en una variable. Digamos que esta operación cuesta 45 wei gas.

Agregando dos variables, digamos que esto cuesta 10 wei gas.

Almacenar el resultado que de nuevo cuesta 45 wei gas.

Supongamos que el límite de gas es 120 wei.

El gas total utilizado por el minero es (45+10+45) 100 wei.

Las tarifas que se les debe suponiendo que 1 wei cuesta 0.02 micro ETH es (100*0.02 micro ETH) = 0.000002 ETH.

Ahora, ¿cuánta gasolina queda?

120 — 100 = 20 wei.

El 20 wei se devuelve al generador de operaciones.

Entonces, habiendo especificado eso, hay dos escenarios que uno debe considerar:

El límite de gas es demasiado bajo.

El límite de gas es demasiado alto.

Escenario #1: El límite de gas es demasiado bajo

Si una operación se queda sin gas, entonces se vuelve a su estado original como si nada hubiera sucedido realmente, sin embargo, el generador de operaciones aún debe pagar a los mineros la cuota por sus costos computacionales y la operación se agrega a la cadena de bloques (incluso si no se ha ejecutado).

Volviendo a nuestra analogía de viaje por carretera, si usted no ha llenado suficiente gas en su coche, entonces usted no será capaz de llegar a su destino, pero incluso entonces usted pagó a la gasolinera el dinero por el combustible, ¿verdad?

Veamos cómo funciona esto en nuestro hipotético contrato inteligente de adición. El paso fue:

Almacenando 10 en una variable. Digamos que esta operación cuesta 45 wei gas.

Agregando dos variables, digamos que esto cuesta 10 wei gas.

Almacenar el resultado que de nuevo cuesta 45 wei gas.

Sin embargo, esta vez, el límite de gas es de 90 wei.

Ahora, sabemos que el gas que se requerirá para cumplir el contrato es de 100 wei, pero sólo tenemos 90 wel limit.

En este escenario, el minero hará 90 wei de cálculo y luego cobrará las tarifas del generador de operación para el 90 wei que resulta ser (90 * 0.02 micro ETH) 0.000018 ETH.

Además, el contrato vuelve a su estado original y se agrega a la cadena de bloques.

Escenario #2: El límite de gas es demasiado alto

¿Y si fijamos el límite de gas demasiado alto?

¿Eso tendría sentido hacerlo bien? Después de todo, lo que es sobrante se devuelve al generador de operación, ¿verdad?

Eso suena bien en el papel, pero realmente no funciona tan bien en la realidad. Tienes que recordar que cada bloque en Ethereum tiene un límite general de gas. Los mineros sólo pueden añadir operaciones que se suman a ser inferior o igual al límite de gas en bloque.

Imagen cortesía: Hackernoon

Supongamos que hay una transacción A que tiene un límite de gas de 42.000 y dos transacciones B y C que tienen límites normales de 21.000.

¿Cuál tendrá más sentido para que un minero lo ponga en su bloque?

¿Pondrán en la transacción A y devolverán una gran cantidad de gas?

¿O devolverán las transacciones B y C y devolverán poco o nada?

El segundo punto tiene más sentido para ellos económicamente correcto?

Esta es precisamente la razón por la que tener un límite de gas inflado no es el camino sensato a seguir.

Alta y baja tasa de gas vs alta y baja tarifa

Debe quedar claro para usted hasta ahora que el gas y el éter no son lo mismo. El gas es la cantidad de potencia computacional requerida mientras que el éter es el precio aka las tarifas que uno debe pagar por ese gas.

Ahora, con el conocimiento de todo lo que hemos obtenido hasta ahora, vamos a pasar por ciertos escenarios de gas y tarifas.

Si una operación tiene BAJO gas, entonces los mineros ni siquiera lo recogerán porque no tiene suficiente gas para terminar el cálculo.

Si una operación tiene tarifas BAJAS, entonces podría tener suficiente gas para cubrirla, pero aún así los mineros no estarán mordiendo los bits para recogerla porque una operación con tarifas bajas no es económicamente viable para ellos.

Si una operación tiene gas ALTO, significa que la operación está hinchada con un límite de gas alto y, por lo tanto, los mineros no lo recogerán.

Si una operación tiene altas tasas, entonces los mineros saben que ganarán mucho dinero y lo recogerán al instante.

Los precios de gas recomendados para diferentes tarifas de transacción, según ethgasstation son:

Aumento de los precios del gas de Ethereum

La cadena de bloques de Ethereum ha visto un aumento en el uso en los últimos tiempos. Esto se debe al aumento en el uso de contratos inteligentes más complicados.

Según la estación de servicio de Ethereum, las monedas estables como USDT y los intercambios descentralizados como Uniswap son los contratos inteligentes más hambrientos de gas en el espacio. Este aumento del uso obliga a los usuarios a pagar tarifas más altas para que sus transacciones se procesen más rápido. Como tal, cuando hay mucha actividad, las tarifas pueden aumentar rápidamente.

Para entender cuán drástica es la situación, considere esto. De acuerdo con Coin Metrics, en un momento dado, el costo promedio por transacción ha subido a un promedio de 7 días de alrededor de 91 centavos, de unos 8 centavos al comienzo de 2020. Connor Abendschein, de Digital Assets Data, señala:

«A partir de ahora, las altas tarifas de gas están evitando que los jugadores más pequeños puedan participar en algunos de los protocolos más interesantes de DeFi, como Synthetix».

Esto es una vergüenza absoluta porque Ethereum y DeFi es construir un sistema financiero global abierto y fácilmente accesible.

La peor parte es que este problema sólo va a empeorar a medida que los protocolos DeFi más complicados y los usuarios entren en el ecosistema.

Entonces, ¿cómo están los competidores de Ethereum lidiando con el problema del gas? Vamos a echar un vistazo..

Diseño de contrato inteligente en EOS: modelo de propiedad

El sistema de gas Ethereum se puede considerar como un modelo de alquiler. Ethereum es una supercomputadora global, en la que alquila recursos (gas) para crear y ejecutar su aplicación.

EOS, por otro lado, utiliza un modelo de propiedad. En lugar de ser un superordenador descentralizado, EOS planea convertirse en un sistema operativo descentralizado que los desarrolladores de Dapp pueden utilizar para crear y codificar varios Dapp. Los tokens EOS actúan como una cabina de peaje, y mantenerlos le da acceso a varios recursos como ancho de banda, cálculo y RAM.

Dado que estos recursos son escasos, EOS no quiere que se aferren a sus tokens por mucho tiempo. La compañía detrás de EOS, Block.one, ha mencionado explícitamente en la constitución de la plataforma que los miembros EOS que no usan sus tokens durante tres años obtendrían su cuenta terminada.

Al reponer y bloquear tokens EOS, se le proporciona una cantidad equivalente de recursos en el ancho de banda de la red y la CPU a cambio. Sin embargo, dado que la RAM es un recurso escaso, no se obtiene automáticamente apostando. Por lo tanto, para obtenerlos, deberá comprarlos directamente desde el mercado de RAM.

Cada vez que alguien compra o vende RAM, se aplica una tarifa del 0,5% tanto al lado del comprador como al del vendedor (1% en total). Esto realmente da a los usuarios un incentivo económico para vender su RAM y desalienta el marketing especulativo y la inflación ya que las tarifas cobradas se queman rápidamente (se eliminan del ecosistema).

Este mercado interno de RAM se asegurará de que haya una disponibilidad constante de RAM y compensará cualquier escasez prevista en el futuro. Usted será capaz de comprar RAM en función del precio en el que el sistema la establece, en función del suministro de RAM disponible actualmente.

Al comprar y usar estos recursos, los desarrolladores pueden crear aplicaciones descentralizadas.

Costos de desarrollo de EOS

A diferencia de Ethereum, no necesita pagar los precios de la gasolina en EOS. Necesita apostar sus tokens EOS para recibir ancho de banda, CPU y almacenamiento para su contrato inteligente. Junto con todo esto, aún necesitarás RAM. Dado que la RAM es un recurso tan raro, debe comprarla en un mercado interno de RAM. Según el planificador de recursos EOS, la RAM cuesta $0.154 USD por KB

Por lo tanto, con toda esa información en mente, veamos cuánto EOS tendrá que apostar para ejecutar una aplicación. Supongamos que vamos a hacer una aplicación para 1000 usuarios. Deberá tener en cuenta las siguientes métricas:

Paga por cada cuenta de usuario.

Usted tendrá que pagar por su almacenamiento

También deberá tener en cuenta el ancho de banda de red y el ancho de banda de CPU que necesitará también.

RSK - El puente entre Bitcoin y Ethereum - Diseño de contrato inteligente

Rootstock (RSK) es una plataforma de contrato inteligente que está conectada a la cadena de bloques Bitcoin a través de la tecnología sidechain. Rootstock nació para ser compatible con las aplicaciones de Ethereum (el modelo Web3/EVM/Solidity) y bitcoin como la criptomoneda subyacente. La idea detrás de la creación de RSK era dar al Bitcoin blockchain funcionalidades de contrato inteligente. En su esencia, Rootstock es una combinación de:

Una máquina virtual determinista de gestión completa de recursos (para contratos inteligentes) compatible con EVM de Ethereum.

Una cadena lateral bidireccional de Bitcoin (para el comercio denominado BTC) basada en una fuerte federación

Un protocolo de consenso de fusión y minería SHA256D (para la seguridad de consenso basándose en los mineros de Bitcoin) con un intervalo de bloques de 30 segundos. (para pagos rápidos).

RSK le permite construir puentes de tokens que se conectan directamente a la cadena de bloques de Ethereum. Esto permite al creador del contrato aprovechar las ventajas de ambas cadenas de bloques, pero también permite la creación de un ecosistema próspero e interoperable entre ambas.

Entonces, ¿cómo se traduce esto en los precios del gas? RSK ha sido históricamente más barato que Ethereum cuando se trata de costos de gas.

La línea azul arriba es el precio del gas de Ethereum, mientras que la línea verde abajo es el precio del gas de RSK. Si necesita más aclaración sobre cuánto más eficiente es RSK en comparación con Ethereum, entonces verifique esto:

Aquí está la comparación promedio de tarifas de transacción de Ethereum y RSK en los últimos diez días. Entonces, lo que esto significa es que no solo RSK es más barato, sino que también aporta la seguridad general de la cadena de bloques de Bitcoin, dándole una ventaja clara sobre Ethereum y EOS.

Conclusión

A medida que entramos en una nueva era de innovación DeFi y adopción más amplia, los desarrolladores necesitarán una plataforma donde puedan desarrollar sus aplicaciones de manera eficiente. Mientras que nadie niega que Ethereum es un primer movimiento, otras plataformas como RSK definitivamente han hecho casos fuertes como potenciales bateadores pesados del futuro. Si tenemos en cuenta el hecho de que desarrollar contratos inteligentes y todo tipo de tokens fungibles y tokens no fungibles es un proceso sin problemas en RSK, los desarrolladores tienen grandes incentivos para probar esta plataforma de contratos inteligentes.

Rajarshi Mitra
Rajarshi started writing in the blockchain space after listening to Andreas Antonopoulos’ podcast with Joe Rogan. A content generating machine, Rajarshi has been consistently producing high-quality guides and articles for us since late 2016. His articles have been shared extensively in social media and several start-ups have used his guide as learning material for their staff. He is continuously invited all over his country to give talks in various crypto seminars and conferences. He has gained a solid reputation as a speaker/educator on top of being one of the most promising writers in the crypto space. When he is not busy nerding out over the latest in the blockchain/crypto space, he is usually busy watching re-runs of top gear and MMA.

Like what you read? Give us one like or share it to your friends and get +16

1,102
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In