Las parathreads son una idea para que las parachains participen temporalmente (en una base de bloque a bloque) en la seguridad de Polkadot sin necesidad de arrendar un slot (ranura) de parachain dedicada. Esto se hace compartiendo económicamente el escaso recurso de un slot de parachain entre varios recursos que compiten (parathreads). Las cadenas que, de otro modo, no podrían adquirir un slot de parachain completo o que no consideran económicamente sensato hacerlo, pueden participar en la seguridad compartida de Polkadot, aunque con una tarifa asociada por bloque ejecutado. También ofrece una rampa de salida elegante a las parachains que ya no necesitan un slot de parachain dedicado, pero que quieren seguir utilizando la Relay Chain.
Origen #
Según esta charla en Chengdu, el origen de la idea vino de nociones similares en el recurso limitado de la memoria en las primeras computadoras personales de finales de los 80 y los 90. Como las computadoras tienen una cantidad limitada de memoria física, cuando una aplicación necesita más, la computadora puede crear memoria virtual utilizando el espacio de intercambio (swap space) en un disco duro. El espacio de intercambio permite ampliar la capacidad de la memoria de una computadora y que se ejecuten más procesos simultáneamente, con la contrapartida de que algunos procesos tardarán más en progresar.
¿Cómo funcionan las parathreads? #
Una parte de los slots (ranuras) de parachain en la Relay Chain será designada como parte del pool de parathreads. En otras palabras, algunos slots de parachain no tendrán ninguna parachain asociada y más bien se utilizarán como un espacio para que el ganador o ganadores de la subasta de tarifas de parathreads bloque por bloque puedan tener su candidato de bloque incluido.
Los collators (recolectores) ofrecerán una oferta designada en DOT para la inclusión de un candidato a bloque parathread. El autor del bloque de la Relay Chain puede seleccionar entre estas ofertas para incluir un bloque parathread. El incentivo obvio es que acepten el candidato a bloque con la oferta más alta, que les reportaría el mayor beneficio. Los tokens de las ofertas de parathreads se dividirán probablemente 80-20, lo que significa que el 80% va al Tesoro de Polkadot y el 20% al autor del bloque. Esta es la misma división que se aplica también a las tarifas de transacción y, como muchos otros parámetros en Polkadot, puede ser cambiado a través de un mecanismo de gobernanza.
Parachain vs. Parathread #
Las parachains y las parathreads son muy similares desde una perspectiva de desarrollo. Se puede imaginar que una cadena desarrollada con Substrate puede, en diferentes momentos de su vida, asumir uno de los tres estados: una cadena independiente con puente asegurado, una parachain, o una parathread. Puede cambiar entre estos dos últimos estados con un esfuerzo relativamente mínimo, ya que la diferencia es más una distinción económica que tecnológica.
Las parathreads tienen exactamente las mismas ventajas para conectarse a Polkadot que una parachain completa. A saber, son capaces de enviar mensajes a otros para-objetos a través de XCMP y están aseguradas bajo la plena seguridad económica del conjunto de validadores de Polkadot.
La diferencia entre parachains y parathreads es económica. Las parachains deben ser registradas a través de un medio normal de Polkadot, es decir, propuesta de gobernanza o subasta de slot de parachain. Las parathreads tienen una tarifa fija para el registro que, siendo realistas, sería mucho más baja que el costo de adquirir un slot de parachain. Al igual que los DOT se bloquean durante la duración de los slots de parachain y luego se devuelven al ganador de la subasta, el depósito para una parathread se devolverá a la parathread después de la conclusión de su plazo.
El registro de la parathread no garantiza nada más que el registro del código de la parathread en la Relay Chain de Polkadot. Cuando una parathread progresa produciendo un nuevo bloque, hay una tarifa que debe ser pagada para participar en una subasta por bloque para su inclusión en la verificación del siguiente bloque de la Relay Chain. Todas las parathreads registradas compiten en esta subasta para que su parathread sea incluida en la progresión.
Hay dos observaciones interesantes que hacer sobre las parathreads. Dado que compiten por bloque, es similar a cómo se incluyen las transacciones en Bitcoin o Ethereum. Es probable que se desarrolle un mercado de tarifas similar, lo que significa que las épocas de mayor actividad harán subir el precio de la inclusión de parathreads, mientras que las épocas de baja actividad requerirán tarifas más bajas. En segundo lugar, este mecanismo es notablemente diferente del mecanismo de parachain, que garantiza la inclusión siempre que se mantenga un slot de parachain; el registro de parathreads no otorga tal derecho a la parathread.
Economía de parathread #
Hay dos fuentes de compensación para los collators:
- Suponiendo que una parathread tenga su propio sistema de tokens local, paga a los collators (recolectores) con las tarifas de transacción de su token local. Si la parathread no implementa un token local, o su token local no tiene valor (por ejemplo, se utiliza sólo para la gobernanza), entonces puede utilizar DOT para incentivar a los collators.
- Subvención del protocolo Parathread. Una parathread puede acuñar nuevos tokens para proporcionar incentivos adicionales al collator. Probablemente, la cantidad de tokens locales a acuñar para la parathread sería una función del tiempo, cuanto más tiempo pase entre los bloques de la parathread que se incluyen en la Relay Chain, más tokens estará dispuesto a subvencionar la parathread para ser considerada para su inclusión. La implementación exacta de este proceso de acuñación podría ser a través de la inflación de parathreads locales o a través de una reserva de fondos como un Tesoro.
Los collators pueden ser pagados en moneda local de la parathread. Sin embargo, la Relay Chain sólo realiza transacciones con la moneda nativa de Polkadot. Los collators deben presentar candidatos de bloque con una oferta asociada en DOT .
Intercambio de slots de Parachain #
Será posible para una parachain que tenga un slot (ranura) de parachain intercambiar este slot con una parathread para que la parathread “se actualice” a una parachain completa y la parachain se convierta en una parathread. La cadena también puede dejar de ser una cadena y continuar como un thread sin intercambiar el slot. El slot, si está desocupado, se subastará en el siguiente periodo de subasta.
Esto proporciona una rampa de salida elegante para las parachains que han llegado al final de su contrato de arrendamiento y no tienen suficiente uso para justificar la renovación; pueden seguir registradas en la Relay Chain pero sólo producen nuevos bloques cuando lo necesitan.
Las parathreads ayudan a aliviar la parada brusca del plazo del slot de la parachain permitiendo que las parachains que todavía están haciendo algo útil produzcan bloques, incluso si ya no es económicamente viable arrendar un slot de parachain.