Conoce sobre el Proyecto Plasma de Ethereum, parte II

0

En la primera parte de este artículo, hablamos sobre los aspectos fundamentales del proyecto Plasma y las razones por las que debería implementarse. A continuación, seguiremos con la conversación sobre el funcionamiento de Plasma, sus beneficios e inconvenientes, y cuándo se va a implementar en la mainnet de Ethereum.

¿Cómo funciona Plasma?

Imaginemos que estamos creando un juego de criaturas virtuales coleccionables —como CryptoKitties—. Los coleccionables son tokens ERC 721 no fungibles, pero que gozan de ciertas características que permiten a los usuarios jugar entre sí. Estas operaciones complejas generan congestión y costos elevados en la cadena principal, por lo que Plasma es una solución apropiada para este tipo de aplicaciones.

Al principio, se crean contratos inteligentes en la cadena de bloques principal de Ethereum y sirven como la base de la cadena hija de Plasma. Además, contienen las reglas básicas que la cadena hija deberá cumplir, registra hashes de estado de la cadena hija y permite a los usuarios mover activos entre las cadenas principal e hija.

Una vez que se anexa la cadena hija con la cadena principal, la cadena hija o lateral está lista para operar. Esta cadena hija puede utilizar su propio algoritmo de consenso, independiente de la cadena principal de Ethereum.

Por ejemplo, se podrá utilizar la Prueba de Participación (PoS, por sus siglas en inglés) que no requiere de cantidades de energía para resolver los hashes, sino que los validadores de los bloques reciben incentivos económicos por mantenerse fieles a una garantía depositada en la criptomoneda nativa que perderán en caso de que no seguir las reglas de consenso. PoS permite una frecuencia mayor de creación de bloques que la Prueba de Trabajo (PoW, por sus siglas en inglés).

Ahora que la cadena hija ha sido creada, se pueden establecer las reglas básicas del juego de coleccionables, ejecutando los contratos inteligentes de la aplicación en la cadena hija. Los coleccionables siguen siendo tokens ERC 721, creados en la cadena principal de Ethereum, y luego transferidos a la cadena hija.

Una vez que la cadena hija está en operación, los validadores de los bloques realizan una verificación periódica en la cadena principal para probar que el estado actual de la cadena hija sea válido en función de las reglas de consenso. Cuando un usuario utiliza este juego, la aplicación se ejecuta sin interactuar directamente con la cadena principal.

La seguridad de Plasma

La pregunta de rigor que siempre surge ante la existencia de cadenas de bloques laterales o secundarias que funcionan fuera de la cadena principal es ¿las transacciones que ocurren en una cadena de bloques hija son realmente inmutables y definitivas?

Vamos a imaginar el escenario extremo e improbable en el que una sola entidad posee todo el control sobre la producción de bloques en una cadena hija. Plasma garantiza que cada usuario pueda retirar sus fondos de regreso a la cadena principal, siempre. Incluso en el caso de que un atacante haya tomado el control de la red, lo peor que puede ocurrir es que los usuarios sean obligados a abandonar la cadena hija.

Las «salidas de plasma»

El principal mecanismo de seguridad detrás de Plasma son las «salidas de plasma», un proceso que permite a un usuario que participa en una cadena hija de Plasma dejar de hacerlo y trasladar sus fondos a la cadena principal. Cuando un usuario realiza una transacción en una cadena hija y desea transferir sus fondos a la cadena principal, envía una «transacción de salida», es decir, una prueba de Merkle de su historial de transacciones que demuestra que posee un determinado monto de dinero.

En ese momento, ocurre lo que se conoce con el nombre de «período de desafío». Este mecanismo también funciona en Lightning Network de Bitcoin. Básicamente, permite que cualquier persona impugne el reclamo de fondos del usuario presentando un comprobante que indique que su reclamo no es válido o se encuentra desactualizado.

Adicionalmente, al ser una transacción sujeta a impugnación, el usuario debe depositar una pequeña recompensa que incentive a las personas a desafiarlo si creen que su comportamiento fue malicioso. Es como robar algo y decir “te pagaré $10 si puedes atraparme”.

Por ejemplo, si Juan desea transferir 100 ETH a la cadena principal, enviará una transacción de salida más una recompensa como garantía. Si nadie impugna esta transacción, Juan puede reclamar los 100 ETH en la cadena principal. Si la transacción de Juan fue desafiada con éxito, es cancelada y el impugnador o refutador recibe la recompensa dejada en garantía por Juan. Por tanto, este mecanismo actúa como una forma de desincentivar, desde un punto de vista económico, la propagación de bloques no válidos en la cadena hija.

Los principales beneficios de Plasma

  • Ayuda a la cadena de bloques de Ethereum a manejar conjuntos de datos mucho más grandes de lo que actualmente es posible.
  • Permite que varias aplicaciones que usan recursos informáticos de forma intensiva se ejecuten en la cadena de bloques gracias al gran aumento en la capacidad de procesamiento.
  • Acelera las transacciones a tal punto como para permitir que las aplicaciones distribuidas (dApps, por sus siglas en inglés) se ejecuten sin contratiempos por congestiones de la red principal.
  • Reduce significativamente las tarifas de las transacciones, debido a que un número mucho más pequeño de nodos —los validadores de bloques— son los que las procesan.
  • Elimina los datos innecesarios en la cadena principal. Esto ahorra una enorme cantidad de potencia de procesamiento y memoria para los nodos de Ethereum.
  • Es compatible con varias soluciones de escalamiento de la cadena como la fragmentación o sharding, varios tamaños de bloques, etcétera.
  • Mejora significativamente la escalabilidad de la cadena de bloques, haciendo posible que las dApps que corren en Ethereum tengan una mayor capacidad de almacenamiento de datos.

¿Cuáles son los inconvenientes de Plasma?

Aquí surge nuevamente una pregunta fundamental, ¿qué pasaría si todos los nodos que corren en una cadena de Plasma hija quisieran abandonarla al mismo tiempo?

En el caso de un retiro masivo, es probable que no haya suficiente capacidad en la cadena principal de Ethereum para procesar las transacciones de todos los usuarios dentro del periodo de desafío, lo que quiere decir que se podrían perder los fondos.

Ventajosamente, hay algunas técnicas que pueden ser empleadas para prevenir esta situación. Por ejemplo, se puede extender el umbral del período de desafío de una forma que sea capaz de responder a una demanda exagerada de retiros.

¿Cuándo se implementará Plasma?

Actualmente, Plasma se encuentra en una etapa muy temprana de desarrollo. Si al lector le interesa conocer el estado de desarrollo de esta implementación, puede consultar la reciente propuesta de Vitalik Buterin sobre un «Plasma mínimo viable».

Vale la pena mencionar otras soluciones de escalabilidad que se basan en los mismos principios de Plasma: TrueBit, Cosmos, Tendermint, Polkadot, Lumino, Treechains, y más.

En resumen, Plasma es un mecanismo que permite ejecutar contratos inteligentes y mantener fondos en una cadena de bloques secundaria o hija cuyo estado de red es impuesto por la cadena de bloques raíz o principal. Esto permite una capacidad computacional y de almacenamiento mucho más amplia, a través de una red distribuida de computadoras sin comprometer a la cadena principal. Plasma permite la escalabilidad de la cadena de bloques de Ethereum para servir sin limitaciones a aplicaciones distribuidas con una cantidad significativa de usuarios.

¿Te gustó el artículo? ¡Puedes apoyar a Juan F. Bolaños en Patreon!

Deje un Comentario

Su correo electrónico no será publicado.