Conoce sobre el Proyecto Plasma de Ethereum, parte II

in #blockchain6 years ago (edited)

En la primera parte de este artículo conversamos 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 del 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.

Imagen: Pixabay.com

Al principio, se crean contratos inteligentes en la cadena de bloques principal de Ethereum. Estos contratos sirven como la base de la cadena hija de Plasma. Estos contratos que se ejecutan en la cadena principal contienen las reglas básicas que la cadena hija deberá cumplir, también 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). En este caso, este no requiere de la utilización de grandes 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 se perderá en el caso de que no se sigan las reglas de consenso. PoS permite una frecuencia mayor de creación de bloques que PoW.

plasma.png

Imagen: Plasma: Scalable Autonomous Smart Contracts

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á corriendo, los validadores de los bloques realizan una verificación periódica en la cadena principal lo que prueba que el estado actual de la cadena hija es 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 el control sobre el 100 % de 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», que es un proceso que permite que un usuario que participa en una cadena hija de Plasma deje de participar en aquella y traslade 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», en otras palabras, 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 «periodo 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».

Imagen: Pixabay.com

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

  • Ayudará 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 como para permitir que las aplicaciones distribuidas (DApps, por sus siglas en inglés) se ejecuten sin contratiempos por congestiones de la red principal
  • Reducción significativa en 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
  • Eliminará 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 fragmentación (sharding, en inglés), 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, extendiendo el umbral del periodo 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, entre otras.

Para concluir, 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 significativos 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.

avatar_jfbt_steemit_120x120.png
Juan Francisco Bolaños
steemit.com | busy.org

steemit_divider.png

Referencias:

  • Bolaños, Juan. (2018). Escalabilidad de Ethereum: explicación de «sharding», parte I. Quito, Ecuador: Steemit.com. http://bit.ly/2BuqLsB
  • Buterin, Vitalik; Poon, Joseph. (2017). Plasma: Scalable Autonomous Smart Contracts. Plasma.io. http://bit.ly/2nUXQE5
  • Schor, Lukas. (2018). Explained: Ethereum Plasma. New York, NY, USA: Medium.com. http://bit.ly/2LMSjwZ

steemit_divider.png

Lecturas que vas a disfrutar

Una selección de mis mejores artículos publicados en steemit.com:

steemit_divider.png

Academia Blockchain

Academia Blockchain es una iniciativa que crea un espacio para la difusión y conocimiento de la cadena de bloques y las criptomonedas en Latinoamérica. Amigos, están cordialmente invitados a visitarnos en nuestra web y en nuestro blog de steemit.com.

steemit_divider.png

Compra en Amazon y paga con Bitcoin

Compra lo que más te gusta en Amazon y paga con Bitcoin y otras criptodivisas a través de Purse.io. Recibe descuentos del 5 al 15 % en tus compras. Regístrate aquí.

steemit_divider.png

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 58400.82
ETH 2567.08
USDT 1.00
SBD 2.38