🇪🇸 Hydra: La solución de escalabilidad de Cardano

:es: Traducción al español de Hydra: Cardano scalability solution

Publicado por Cardanians en su blog de Medium, el 19 de Marzo de 2020.


1
El cuerpo de Hydra es como la cadena principal. Hydra puede tener muchas cabezas. Cada cabeza puede procesar ~1000 TPS.

Las criptodivisas llegaron al mundo para convertirse en una alternativa al sistema financiero actual. Como tal, los usuarios deben ser capaces de pagar en una tienda tan rápido como con tarjetas de crédito. Esto significa que una transacción debe ser completada en pocos segundos. La red de Visa procesa un promedio de 150 millones de transacciones cada día. Son aproximadamente 2.000 transacciones por segundo (TPS). Tal rendimiento es inalcanzable para las actuales redes de blockchain. El rendimiento normal de las redes PoW suele ser de sólo unas pocas docenas de TPS. Las redes PoS pueden alcanzar varios cientos de TPS.

Las redes distribuidas suelen sufrir graves limitaciones de escalabilidad, un bajo rendimiento y un almacenamiento excesivo necesario para mantener el estado del sistema y su historial de transacciones. Después de unos 5 años de esfuerzo de investigación interdisciplinaria, IOHK publicó el documento Hydra. Los científicos e investigadores de las ramas de redes, computación multipartita, lenguaje de programación y consenso tuvieron que trabajar juntos para llegar a una solución de escalamiento que se ajusta bien a la blockchain y a los contratos inteligentes. Es un gran logro científico y un hito significativo en el desarrollo de Cardano. Ouroboros Hydra abre nuevos caminos en la escalabilidad de PoS. Con Hydra, Cardano puede realmente convertirse en la alternativa al actual dinero fiduciario.

Hydra es la solución de segunda capa encima de la primera capa de Cardano donde se utiliza el consenso PoS. Hydra está diseñada de manera que encaja bien con un modelo de stake pools. El equipo de IOHK introdujo un modelo UTxO extendido que permite la fragmentación del espacio de staking sin necesidad de fragmentar el ledger en sí. Todavía es posible fragmentar a nivel del ledger e Hydra es una parte complementaria de la solución de escalamiento total. Cada pool puede crear una nueva cabeza de Hydra, por lo que si se añaden más pools, se pueden añadir más cabezas. Así que añadiendo nuevas cabezas al protocolo se puede lograr un escalamiento casi lineal. Se han hecho simulaciones y los resultados son excelentes. Cada cabeza de Hydra puede procesar alrededor de 1000 TPS y hay espacio para una mayor optimización. Así que con 1000 pools, Cardano podría teóricamente ser capaz de escalar hasta 1 millón de TPS, y la finalización de las transacciones sería muy rápida.

No importa si no entiendes todo lo que escribimos anteriormente. Vamos a profundizar en los detalles técnicos.

¿Cuál es la relación entre la bockchain y Hydra

Las opciones de la primera capa siempre estarán limitadas en cuanto al número de transacciones procesadas en un período de tiempo determinado. Si no se sacrifica la descentralización, el rendimiento nunca será suficiente para permitir que un gran número de personas utilicen una red distribuida consensuada. La solución puede consistir en crear una segunda capa por encima de la primera. La primera capa es lo que llamamos blockchain. Es la red más segura y descentralizada, pero con menor rendimiento. Por encima de esta primera capa, es posible crear una red cuasi independiente, una segunda capa. La segunda capa se construye para escalar lo más alto posible, y hacer transacciones rápidas y baratas. Así que Hydra es la solución de segunda capa para la primera capa de Cardano.

Debido a que la seguridad de la primera capa está garantizada por la blockchain y el consenso distribuido, decimos que las transacciones se procesan en cadena. Los usuarios podrán transferir fondos a la segunda capa. Las transacciones en la segunda capa se procesan fuera de la cadena, es decir, fuera de la blockchain. Así que la primera capa no verifica las transacciones que tienen lugar en la segunda capa.

Mostrémoslo con un ejemplo. Alice, Bob y Carol tienen cada uno 10 monedas ADA en la blockchain, en la primera capa. En total 30 monedas. Hay un mecanismo especial que permite transferir las monedas a la segunda capa. En nuestro caso, a Hydra. Para ser más precisos, la cabeza de Hydra se abre. En la cabeza de Hydra, todos los participantes intercambian monedas a través de transacciones. La primera capa no verifica estas transacciones. Una vez que la cabeza de Hydra se cierra, la blockchain sólo se hará cargo de la última distribución de monedas válida de la segunda capa. Luego hablaremos de la transferencia de monedas entre las capas.

La blockchain puede verificar fácilmente que de la cabeza de Hydra se espera que 30 monedas ADA sean devueltas a la blockchain. Así que exactamente la misma cantidad que fue transferida a blockchain durante la apertura de la cabeza de Hydra. La propiedad de las monedas puede haber cambiado en la segunda capa, con Alicia teniendo ahora 20 monedas y Bob con Carol 5 monedas. La ventaja es que un gran número de transacciones rápidas entre muchos usuarios puede tener lugar en la segunda capa y la blockchain no tiene que preocuparse por ello directamente.

1*_Qpvmy3aomB8swT5GS1BNg
Alice, Bob y Carol transfieren las monedas ADA de la blockchain a Hydra. La cabeza de Hydra se abre. En la cabeza de Hydra las partes pueden intercambiar tantas transacciones rápidas como quieran. Al final, el estado final de las monedas se transfiere de nuevo a la blockchain.

Alice, Bob y Carol pueden comunicarse entre sí directamente desde la cabeza de Hydra. Esto sucede de manera que es posible olvidar el historial de las transacciones. Las partes se actualizan mutuamente sobre los estados locales, y una vez que se confirma entre todos ellos el historial de transacciones puede ser eliminado. Así, sólo el último estado válido se mantiene en la cabeza de Hydra, y se utiliza cuando los fondos deben ser transferidos de nuevo a la blockchain. También lo discutiremos con más detalle más adelante.

Los canales de estado de Hydra

Hydra utiliza canales de estado, lo que amplía el concepto de canales de pago. Las partes mantienen los canales de estado para mantener el estado común, y son capaces de acordar sin interacción con la blockchain.

Hydra no sólo se trata de la transferencia de fondos, sino también de la ejecución de contratos inteligentes. Por lo tanto, es necesario trabajar con los estados. Por ejemplo, es posible crear un contrato inteligente en la primera capa y transferirlo a la cabeza de Hydra donde puede ser ejecutado.

Puedes imaginar un contrato inteligente como un programa o secuencia de ciertas operaciones que se ejecutan condicionalmente. Esto significa que una operación sólo se realiza si se ha producido un evento esperado. Si no, se puede realizar otra operación. Podemos hablar de la ejecución por eventos de un contrato inteligente. El contrato inteligente se encuentra en un determinado estado en cualquier momento, que cambia gradualmente de forma condicional mientras está activo, y los eventos desencadenan los cambios.

Puedes leer nuestro artículo sobre los contratos inteligentes aquí.

Imagina una oficina de apuestas donde la gente pueda apostar sobre el resultado de los partidos. El contrato inteligente será capaz de bloquear los depósitos de todos los participantes y luego distribuir equitativamente las ganancias en base a los resultados de los partidos. Si lo simplificamos, el contrato estará en varios estados por partido:

  1. Recoger los depósitos y las propinas de los participantes antes de un partido.
  2. Dejar de aceptar depósitos poco antes de que comience el partido.
  3. Esperar el resultado del partido.
  4. Procesando el resultado del partido y calculando las ganancias.
  5. Distribución de las ganancias entre los ganadores.

El contrato inteligente puede ser ejecutado en Hydra y puede ser usado para más partidos seguidos. Por lo tanto, la blockchain puede no almacenar todas las transacciones relacionadas con las apuestas. El historial puede ser olvidado en Hydra. Después de que las ganancias se distribuyen a los ganadores después del partido, todos los estados y transacciones pueden ser borrados; excepto el estado final, por supuesto. Asumamos que el contrato inteligente fue creado para una temporada de fútbol. Una vez que la temporada termine, la cabeza de Hydra puede ser cerrada y todo lo que se almacenará en la blockchain es el fondo final de distribución de los apostadores.

0*7KFc7W5ZYgbbT98d
¿Por qué no apostar a través de un contrato inteligente?

El concepto de canales de estado no es nuevo y ya existen algunas implementaciones. Sin embargo, tienen algunas serias desventajas. La mayor desventaja es que la infraestructura de la primera capa y el código del contrato inteligente, que está escrito para la infraestructura de la primera capa, no se puede utilizar dentro de la segunda capa sin cambios. Estos cambios, que son necesarios para la transferencia de fondos y contratos inteligentes entre capas, podrían ser muy peligrosos.

Por ejemplo, la blockchain suele utilizar el modelo UTxO (Unspent Transaction Output). UTxO es básicamente una abstracción de monedas. Cada UTxO representa una cadena de propiedad implementada como una cadena de firmas digitales en la que el propietario utiliza la llave privada para firmar una transacción que transfiere la propiedad de su UTxO a la llave pública del receptor. Como dijimos, para simplificar, puedes imaginarte al modelo UTxO como una representación de la moneda. Sus tenencias de monedas están definidas por el número de UTxO que tiene en las direcciones de su billetera.

El modelo UTxO es considerado como una forma muy segura de manipular con fondos dentro de la blockchain. Las soluciones actuales de segunda capa no son capaces de trabajar directamente con la UTxO. Por lo tanto, las monedas se representan de una manera completamente diferente. Las actuales segundas capas pierden así un importante elemento de seguridad. Lo mismo ocurre con la ejecución de contratos inteligentes donde debe producirse una conversión de la representación de la información. Y puede ser muy peligroso.

Hydra simplifica significativamente las soluciones de la segunda capa. Hydra es capaz de adoptar la solución de la primera capa. El modelo UTxO Extendido y toda la infraestructura de contratos inteligentes de la primera capa puede ser utilizada dentro de Hydra. Las transacciones de Hydra trabajan directamente con UTxO para cambiar la propiedad. Un contrato inteligente, que se despliega en la blockchain, puede ser ejecutado tal cual en la cabeza de Hydra y no hay conversión de datos.

0*OmMiq14YelBR3k99
La simplicidad es poder.

Para ver la diferencia más claramente, podemos echar un vistazo a Ethereum. Ethereum usa Solidity para escribir un contrato inteligente sobre la primera capa. Cuando el contrato debe ser transferido a la segunda capa debe ser convertido ya que la segunda capa no es capaz de trabajar directamente con Solidity. Para permitir la conversión, el contrato inteligente en Solidity debe ser adaptado. El lenguaje de scripting de la blockchain y la segunda capa difieren significativamente. Así que la conversión es necesaria.

En Hydra, no es necesaria la conversión ya que ambas capas son capaces de utilizar el mismo sistema de scripts. Hydra introduce canales de estado isomórficos multipartitos. Básicamente significa que el lenguaje de scripting del ledger subyacente es utilizado por los canales de estado. Hydra hereda el lenguaje de scripts de la blockchain de Cardano.

Los canales de estado permiten el procesamiento paralelo de transacciones y contratos inteligentes, esto sucediendo fuera de la cadena. Es posible abrir más cabezas de Hydra. Así que Hydra puede ser multicabeza. Cada cabeza recién abierta representa una nueva unidad paralela. Una vez que se cierra un canal de estado, la cabeza puede ser absorbida sin problemas por la blockchain. Es una tarea fácil y sencilla, ya que se utiliza el mismo código de contrato inteligente dentro y fuera de la cadena. Incluso es posible crear un contrato inteligente en Hydra sin ser registrado en la blockchain. Blockchain es capaz de hacerse cargo del contrato inteligente y continuar con la ejecución en la cadena.

1*ao8wF_LP7CL378rGG2dZ_g
Hay más cabezas de Hydra.

Gracias a Hydra, Cardano puede escalar casi linealmente. Significa que cuando se añaden nuevos recursos a la red, se pueden procesar más transacciones y contratos inteligentes. El rendimiento aumenta. No siempre es el caso de la blockchain. Al menos, no es tan fácil.

UTxO Extendido

El uso del modelo UTxO en ambas capas no es gratuito y ambas capas deben ser preparadas para ello. El uso de los canales de estado isomórfico requiere la capacidad de tomar una parte del estado de la blockchain, procesarla afuera de manera independiente en Hydra, y finalmente ser capaz de fusionarla de nuevo en la blockchain. El modelo UTxO es muy adecuado para eso y puede representar el estado dentro y fuera de la cadena. Sin embargo, el modelo UTxO de Bitcoin tradicional es difícil de usar para el procesamiento fuera de la cadena debido a sus limitadas capacidades de scripting. IOHK introdujo un modelo UTxO Extendido (EUTxO) y soporte para una máquina de estado general (lo hablaremos más adelante). El modelo UTxO Extendido y la máquina de estados permite una transferencia segura entre capas sin restricciones de scripting.

La transferencia de UTxOs desde la blockchain a la cabeza de Hydra está coordinada por múltiples partes. Hablamos de la apertura de la cabeza de Hydra. La cabeza en sí es el nombre del protocolo de la segunda capa. Al principio, después de la transferencia, hay un estado inicial de la cabeza, que evoluciona en el protocolo de la cabeza independientemente de la blockchain. Las partes envían transacciones, ejecutan contratos inteligentes y mantienen colectivamente el estado común. Debido a la naturaleza isomórfica, la misma validación de la transacción, reglas y ejecución de scripts puede ser utilizada en la cadena y fuera de ella.

Cualquiera de las partes puede desear terminar el protocolo de la cabeza off-chain. En este caso, las partes transfieren el estado final de la cabeza de nuevo a la blockchain. Por lo tanto, el estado de la blockchain se actualiza en consecuencia, y es coherente con el estado final de la cabeza.

Hydra permite compromisos y descompromisos incrementales. Significa que un UTxO puede ser añadido o eliminado de la cabeza de Hydra sin cerrar y volver a abrir la cabeza. Es muy útil ya que puede haber más partes involucradas, y sería innecesario cerrar la cabeza sólo porque un participante necesita agregar o quitar fondos.

La máquina de estados

Puede que no estés familiarizado con el término máquina de estado. En pocas palabras, es un modelo de cálculo matemático. Es una máquina abstracta que puede estar en exactamente uno de un número finito de estados en un momento dado. La máquina de estados puede cambiar de un estado a otro en respuesta a algunas entradas. El cambio de un estado a otro se llama transición. Se utiliza dentro de la primera capa de Cardano para estar absolutamente seguro de que la transferencia de UTxO entre capas es fiable y segura, ya que sólo hay un estado válido en cada momento y la transición al siguiente estado es determinista.

1*RcKgzpxBqKsUBEK11tLwBQ
La máquina de estados se encarga de la transferencia de UTxOs.

La parte de la blockchain de Hydra debe asegurar dos cosas:

  1. Se encarga de la fijación de los UTxOs en la blockchain mientras que los UTxOs se transfieren a la cabeza. Los UTxOs se mantienen bloqueados en la blockchain mientras la cabeza está activa. Esto sucede cuando la cabeza debe ser abierta.
  2. Cuando la cabeza va a ser cerrada, establece el estado final de Hydra. Asegura que los UTxOs sean transferidos de forma segura de nuevo a la blockchain y se descompongan. Esto sucede cuando la cabeza debe ser cerrada.

Estas dos funciones aseguran que las UTxOs que se usaron como el estado inicial de la cabeza son reemplazadas por UTxOs que corresponden al estado final de la cabeza.

1*l2YOWpxszY6i4Cqr0zZT6g
Los UTxOs se bloquean una vez que la cabeza se abre y se desbloquean cuando se cierra.

Hay cuatro estados utilizados dentro de la máquina de estados de Hydra: Inicial, Abierto, Cerrado y Final, y lo veremos más de cerca a continuación.

Probablemente no sea necesario hablar más profundamente de la máquina de estados. Es importante saber que la transferencia de UTxO entre capas está definida de manera estricta y segura. Un UTxO en particular puede ser manejado ya sea por una blockchain o por la cabeza de Hydra. Nunca por ambas capas simultáneamente.

El protocolo de la cabeza

Cualquier parte puede iniciar la creación de una cabeza de Hydra pidiendo a un conjunto de terceros que se unan. Cada parte establece un canal con todas las otras partes. Si no es posible por cualquier razón, la creación de la cabeza es abortada. Las partes intercambian material de llave pública a través de los canales establecidos. El material de llave pública se utiliza para la autenticación de las transacciones en cadena relacionadas con la cabeza, ya que sólo los miembros de la cabeza están autorizados a hacerlo. El material también se utiliza para la confirmación de eventos basados en firmas múltiples dentro de la cabeza.

El iniciador de la cabeza establece la cabeza mediante la presentación de una transacción inicial a la blockchain. Se crean tokens especiales y se asignan a todos los miembros de la cabeza. Así, las llaves públicas de los miembros de la cabeza pueden ser enlazadas con los tokens. En este punto, la máquina de estados se involucra y se encarga de la transferencia segura de UTxO de la blockchain a la cabeza. El primer estado es el inicial. En este punto, todos los miembros de la cabeza pueden enviar UTxO a la cabeza. Si algún miembro de la cabeza no envía la transacción de confirmación, entonces el estado pasa directamente de Inicial a Final y la cabeza no se abrirá. Asumamos que todos los miembros han logrado enviar la transacción de confirmación. En este caso, las UTxOs están bloqueadas dentro de la blockchain para permitir a los miembros de la cabeza trabajar con ellas. Los miembros de la cabeza pueden empezar a usar UTxO dentro de la cabeza una vez que la máquina de estado cambie el estado a Abierto. A partir de ese momento, las UTxOs comienzan a evolucionar fuera de la cadena.

En cualquier momento, cuando la cabeza se abre, cualquier parte puede iniciar el cierre de la cabeza. La máquina de estado cambia el estado a Cerrado. Hay un período de disputa durante el cual las partes proporcionan su estado final, que es su conjunto de UTxO. Una vez que el período de impugnación pasa, la máquina de estados cambia el estado a Final. Del mismo modo, como al principio, la máquina de estado se encarga de la transferencia segura del conjunto UTxO, que corresponde al estado final de la cabeza, de vuelta a la blockchain.

Echemos un vistazo al procesamiento de la transacción en la cabeza. El protocolo de la cabeza es asíncrono y es capaz de procesar transacciones en paralelo. Cada parte mantiene su propio estado UTxO final. El protocolo de la cabeza recoge y distribuye multi-firmas en cada transacción emitida. Una vez que una transacción es confirmada, pasa a formar parte del último estado UTxO válido. El último estado UTxO válido es irreversible, por lo que la UTxO individual es inmediatamente gastable. Debido al procesamiento asíncrono, el estado final de la parte puede ser diferente del otro. La UTxO evoluciona en el tiempo desde la fase inicial. Cada parte aplica todas las transacciones que han sido confirmadas en la cabeza, y por lo tanto el estado final puede cambiar constantemente.

El protocolo de la cabeza no mantiene el historial de las transacciones para minimizar el almacenamiento local de las partes. En lugar de mantener el historial, se generan constantemente copias de UTxO. Siempre se selecciona un líder de copia que ofrece su visión del estado confirmado. Otras partes confirman el estado mediante una firma, y como resultado se genera una nueva copia. A diferencia del procesamiento asincrónico de transacciones, la copia se genera de forma secuencial. Una vez que se confirma una nueva copia, las partes pueden borrar todas las transacciones que se han procesado y que forman parte de la nueva copia. El estado confirmado de la parte siempre se adelanta a la última copia confirmada. Por lo tanto, no es necesario esperar a que se confirme alguna transacción para poder confirmar una nueva copia propuesta. La copia refleja el estado final de la cabeza que ha sido confirmado por todos los miembros de la cabeza.

Resumen

Hydra permitirá lo que es absolutamente necesario para una mayor adopción de las criptomonedas, y eso es una alta escalabilidad. Sin esta característica, el sistema global es básicamente inutilizable, porque una vez que la gente quiera empezar a utilizarlo, se encontrará con que tiene que esperar mucho tiempo para un acuerdo de transacción. Y a menudo también con un coste extra. Hydra es una ruptura en el juego. Además de enviar transacciones, también permite la ejecución de contratos inteligentes. Además, todo es muy seguro en comparación con la competencia gracias al uso directo de UTxO.


Considera la posibilidad de delegar tus ADA en Cardanians, ticker CRDNS.

Nuestro equipo está relacionado con el desarrollo de Adapools.org.

Si te gustan nuestros artículos, puedes apoyarnos con una donación:

[ADA] DdzFFzCqrhsp2Qsit7VGq5jpjehGFmVt9rvJzSRnWJ8S5HaMqpXxg7kguevE7jvxhPgmHbrKGtRXGGF7jVHjcnSBfQ5sEGKB7HVvDNyR

[BTC] 3GvKDw7GWfyawMo3QcHkVJCUjGvbyUqboA

Embajadores de Cardano: Jaromir Tesar y Lukas Barta

Vías de contacto

Web: https://cardanians.io
Twitter: @Cardanians_io
Adapool Twitter: @AdapoolsO
Email: hello@cardanians.io
Telegram: Telegram: Contact @cardanians
Facebook: Cardano CZ/SK: Cardano [ADA] CZ/SK | Facebook

1 Like