Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Escalabilidad de blockchain, un problema muy real!

(si desea ayudar a resolver el problema, consulte nuestros cursos de blockchain y comience a experimentar)

Las criptomonedas se están volviendo cada vez más comunes. De hecho, veamos qué tan populares se han vuelto bitcoin y ethereum con el tiempo. Este es un gráfico del número de transacciones diarias de bitcoins rastreadas a lo largo de los años:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Cortesía de imagen: Wikipedia

Y aquí tenemos la cantidad de transacciones de Ethereum por mes a lo largo de los años:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Cortesía de imagen: Etherscan

Ahora, esto puede parecer muy impresionante, pero aquí está la cuestión, el diseño inicial de las criptomonedas no estaba destinado a un uso y adaptación generalizados. Si bien fue manejable cuando el número de transacciones era menor, a medida que se han vuelto más populares, han surgido una serie de problemas.

Entrena para convertirte en un desarrollador de blockchain

Comience su prueba gratis hoy!

El problema de escalabilidad de las criptomonedas

Para que bitcoin y ethereum compitan con sistemas más convencionales como visa y paypal, necesitan mejorar seriamente su juego cuando se trata de tiempos de transacción. Mientras que PayPal gestiona 193 transacciones por segundo y Visa gestiona 1667 transacciones por segundo, Ethereum solo realiza 20 transacciones por segundo, mientras que Bitcoin gestiona la friolera de 7 transacciones por segundo. La única forma en que se pueden mejorar estos números es si funcionan en su escalabilidad.

Si tuviéramos que categorizar los principales problemas de escalabilidad en las criptomonedas, serían:

  • Se tarda el tiempo en poner una transacción en el bloque..
  • Se tarda el tiempo en llegar a un consenso.

El tiempo necesario para poner una transacción en el bloque

En bitcoin y ethereum, una transacción se realiza cuando un minero coloca los datos de la transacción en los bloques que ha extraído. Entonces, supongamos que Alice quiere enviar 4 BTC a Bob, ella enviará los datos de esta transacción a los mineros, el minero los pondrá en su bloque y la transacción se considerará completa..

Sin embargo, a medida que bitcoin se vuelve cada vez más popular, esto consume más tiempo. Además, también existe la pequeña cuestión de las tarifas de transacción. Verá, cuando los mineros extraen un bloque, se convierten en dictadores temporales de ese bloque. Si desea que sus transacciones se realicen, tendrá que pagar un peaje al minero a cargo. Este “peaje” se llama tarifas de transacción.

Cuanto más altas sean las tarifas de transacción, más rápido las colocarán los mineros en su bloque. Si bien esto está bien para las personas que tienen un gran repositorio de bitcoins, es posible que no sean las opciones más viables financieramente. De hecho, aquí hay un estudio interesante para ti. Esta es la cantidad de tiempo que las personas tuvieron que esperar si pagaron la tarifa de transacción más baja posible:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Si paga las tarifas de transacción más bajas posibles, tendrá que esperar un tiempo medio de 13 minutos para que su transacción se realice.

La mayoría de las veces, las transacciones tenían que esperar hasta que se extraía un nuevo bloque (que son 10 minutos en bitcoin), porque los bloques más antiguos se llenarían de transacciones. Bitcoin tiene un límite de tamaño de 1 mb (esto se ampliará más adelante) lo que limita severamente su capacidad de carga de transacciones.

Ok, ¿qué pasa con Ethereum??

En teoría, se supone que Ethereum procesa 1000 transacciones por segundo. Sin embargo, en la práctica, ethereum está limitado por un límite de 6,7 millones de gas en cada bloque..

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Para entender qué significa “gas”, piense en esta situación. Alice ha emitido un contrato inteligente para Bob. Bob ve que los elementos del contrato costarán X cantidad de gas. Gas significa la cantidad de esfuerzo computacional por parte de Bob. En consecuencia, le cobrará a Alice la cantidad de gas que usó..

Así es como se ve el gráfico de precios del gas:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: Etherscan.

¿Qué significa esto para la escalabilidad de Blockchain??

Dado que cada bloque tiene un límite de gas, los mineros solo pueden agregar transacciones cuyos requisitos de gas sumen algo que sea igual o menor que el límite de gas del bloque..

límite de gas ethereum

Una vez más, el número de transacciones que se realizan es limitado..

El tiempo necesario para llegar a un consenso

Actualmente, todas las monedas basadas en blockchain están estructuradas como una red peer-to-peer. Los participantes, también conocidos como los nodos, no reciben ningún privilegio especial adicional. La idea es crear una red igualitaria. No hay una autoridad central ni jerarquía. Es una topología plana.

Todas las criptomonedas descentralizadas están estructuradas así por una sencilla razón, para mantenerse fieles a su filosofía. La idea es tener un sistema monetario, donde todos sean tratados como iguales y no exista un órgano de gobierno que pueda determinar el valor de la moneda según un capricho. Esto es cierto tanto para bitcoin como para ethereum..

Ahora bien, si no hay una entidad central, ¿cómo sabrían todos en el sistema que ha ocurrido una determinada transacción? La red sigue el protocolo de los chismes. Piense en cómo se difunden los chismes. Supongamos que Alice le envió 3 ETH a Bob. Los nodos más cercanos a ella se enterarán de esto, y luego se lo dirán a los nodos más cercanos a ellos, y luego se lo dirán a sus vecinos, y esto seguirá extendiéndose hasta que todos lo sepan. Los nodos son básicamente tus parientes entrometidos y molestos.

Recuerde, los nodos siguen un sistema sin confianza. Lo que esto significa es que el hecho de que el nodo A diga que una transacción es válida no significa que el nodo B crea que lo es. El nodo B hará su propio conjunto de cálculos para ver si la transacción es realmente válida o no. Esto significa que cada nodo debe tener su propia copia de la cadena de bloques para ayudarlos a hacerlo. Como puedes imaginar, esto hace que todo el proceso sea muy lento..

El problema es que, a diferencia de otras piezas de tecnología, cuanto más aumenta el número de nodos en una red de criptomonedas, más lento se vuelve todo el proceso. El consenso ocurre de manera lineal, es decir, supongamos que hay 3 nodos A, B y C.

Para que se produzca el consenso, primero A haría los cálculos y verificaría y luego B haría lo mismo y luego C.

Sin embargo, si hay un nuevo nodo en el sistema llamado “D”, eso agregaría un nodo más al sistema de consenso, lo que aumentará el período de tiempo general. A medida que las criptomonedas se han vuelto más populares, los tiempos de transacción se han vuelto más lentos.

Esto es especialmente un problema con ethereum, porque tiene la mayor cantidad de nodos entre todas las criptomonedas. Gracias a la locura de las ICO, todo el mundo quiere tener una pieza de ethereum, que ha aumentado significativamente la cantidad de nodos en su red. De hecho, en mayo de 2017, Ethereum tenía 25.000 nodos en comparación con los 7.000 de Bitcoin. Eso es más de 3 veces. De hecho, la cantidad de nodos de abril a mayo aumentó en un 81% … eso es casi el doble!

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Cortesía de imagen: Trust Nodes.

Entonces, ¿cuáles son las soluciones a los problemas de escalabilidad de Blockchain??

Tanto ethereum como Bitcoins han ideado una serie de soluciones que ya se han implementado o se van a implementar. Repasemos algunos de los principales.

Los que estaremos cubriendo son:

  • Segwit.
  • Aumento del tamaño del bloque.
  • Fragmentación.
  • Prueba de participación.
  • Canales de estado fuera de la cadena.
  • Plasma

Segwit (exclusivo solo para bitcoin)

El Dr. Peter Wiulle de Blockstream imaginó Segwit como una de las características de la cadena lateral que se ejecutará en paralelo a la cadena de bloques principal de bitcoin..

diagrama de cadena lateral

Activar Segwit, también conocido como Segregated Witness, significaría que todos los datos de firma de todas y cada una de las transacciones se moverán de la cadena principal a la cadena lateral. ¿Qué entendemos por datos de firma? Veamos los datos detrás de escena de una transacción:

El código de detalles de la transacción

Así es como se ve la transacción en forma de código. Supongamos que Alice quiere enviar 0.0015 BTC a Bob y, para hacerlo, envía entradas que valen 0.0015770 BTC. Así es como se ve el detalle de la transacción:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: canal de youtube djp3.

Lo primero que ves:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Es el nombre de la transacción, también conocido como el hash del valor de entrada y salida.

  • Vin_sz es el número de datos de entrada, ya que Alice está enviando los datos utilizando solo una de sus transacciones anteriores, es 1.
  • Vout_sz es 2 porque las únicas salidas son Bob y el cambio.

Estos son los datos de entrada:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

¿Ves los datos de entrada? Alice solo está usando una transacción de entrada, ya que vin_sz es 1. Los datos de entrada son 0.0015770 BTC.

Debajo de los datos de entrada están los datos de su firma (recuerde esto para la siguiente sección)

Debajo de todo esto están los datos de salida:

  • La primera parte de los datos significa que Bob está obteniendo 0.0015 BTC.
  • La segunda parte significa que 0.00005120 BTC es lo que Alice está recibiendo como cambio..
  • Ahora, ¿recuerdas que nuestros datos de entrada fueron 0.0015770 BTC? Esto es mayor que (0,0015 + 0,00005120). El déficit de estos dos valores es la tarifa de transacción que cobran los mineros..

Esta es la anatomía de una transacción simple.

Entonces, ¿qué pasará al activar Segwit??

El problema con estos datos de firma es que son muy voluminosos. De hecho, el 65% de los datos que recoge la transacción se debe a la firma. Y estos datos son útiles solo para el proceso de verificación inicial, no se necesitan más adelante en absoluto.

Entonces, ¿qué pasará al activar Segwit??

Los datos de la firma pasarán de la cadena principal al bloque extendido en la cadena paralela:

Lo que hará es que liberará mucho espacio en el bloque para más transacciones..

Se previó que los datos de la firma se organizarían en forma de árbol Merkle en la cadena lateral. La raíz de Merkle de las transacciones se colocó en el bloque junto con la transacción de la base de monedas (la primera transacción en cada bloque que básicamente significa la recompensa del bloque). Sin embargo, al hacer esto, los desarrolladores tropezaron con algo inesperado. Descubrieron que al colocar la raíz de merkle en ese lugar en particular, de alguna manera aumentaron el límite de tamaño de bloque general SIN aumentar el límite de tamaño de bloque!

A partir del 24 de agosto de 2017, segwit se activó en bitcoin. Veamos qué dijo Segwit al respecto:

¿Qué es Segwit? ¡Un curso intensivo para principiantes!

Imagen cortesía: segwit.co

Pros y contras de Segwit

Ventajas de segwit:

  • Aumenta la cantidad de transacciones que puede realizar un bloque..
  • Disminuye las tarifas de transacción.
  • Reduce el tamaño de cada transacción individual.
  • Las transacciones ahora se pueden confirmar más rápido porque el tiempo de espera disminuirá.
  • Ayuda en la escalabilidad de bitcoin.
  • Dado que aumentará la cantidad de transacciones en cada bloque, puede aumentar las tarifas generales totales que un minero puede cobrar.
  • Elimina la maleabilidad de las transacciones y ayuda en la activación del protocolo Lightning (más sobre esto más adelante)
  • Elimina el problema del hash cuadrático: el hash cuadrático es un problema que viene junto con el aumento del tamaño del bloque. El problema es que en ciertas transacciones, el hash de firma escala cuadráticamente

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: Bitcoincore.org

Básicamente, duplicar la cantidad de transacciones en un bloque duplicará la cantidad de transacciones y eso, a su vez, duplicará la cantidad de datos de firma que estarán dentro de cada una de esas transacciones. Esto haría que las transacciones fueran aún más voluminosas y aumentaría enormemente el tiempo de la transacción. Esto abre las puertas para las partes malintencionadas que quieran enviar spam a la cadena de bloques..

Segwit resuelve esto cambiando el cálculo del hash de la firma y, como resultado, hace que todo el proceso sea más eficiente..

Contras de segwit:

  • Los mineros ahora obtendrán tarifas de transacción más bajas por cada transacción individual.
  • La implementación es compleja y todas las carteras deberán implementar segwit por sí mismas. Existe una gran posibilidad de que no lo hagan bien la primera vez.
  • Aumentará significativamente el uso de recursos ya que la capacidad, transacciones, ancho de banda todo aumentará.
  • Como muestra la creación de Bitcoin Cash, finalmente dividió la comunidad de Bitcoin Core.
  • Otro problema con Segwit es el mantenimiento. Los mineros también deberán mantener la cadena lateral que contiene los datos de la firma. Sin embargo, a diferencia de la cadena de bloques principal, los mineros no tienen beneficios financieros al hacerlo, será necesario hacerlo pro-bono o se debe pensar en algún esquema de recompensa para incentivar a los mineros..

Aumento del tamaño del bloque

Ahora, dado que el principal problema de bitcoin y ethereum ha sido el tamaño de bloque limitado, ¿por qué no simplemente los aumentamos? No se suponía que Bitcoin tuviera un límite de 1 MB, pero luego Satoshi se vio obligado a ponerlo porque no querían que Bitcoin se atascara con transacciones de spam..

Si bien esto puede parecer una buena idea en la práctica, la implementación de esto ha sido todo lo contrario. De hecho, esto ha dado lugar a un gran debate en la comunidad de Bitcoin con lados que argumentan apasionadamente a favor y en contra del aumento del tamaño del bloque. Veamos algunos de estos argumentos:

Los argumentos en contra del aumento del tamaño del bloque

  • Los mineros perderán incentivos porque las tarifas de transacción disminuirán: dado que los tamaños de los bloques aumentarán, las transacciones se insertarán fácilmente, lo que reducirá significativamente las tarifas de transacción. Existe el temor de que esto pueda desincentivar a los mineros y puedan pasar a pastos más verdes. Si la cantidad de mineros disminuye, esto disminuirá la tasa de hash general de bitcoin..
  • Los bitcoins no deben usarse para fines cotidianos: algunos miembros de la comunidad no quieren que se utilicen bitcoins para transacciones cotidianas. Estas personas sienten que los bitcoins tienen un propósito más alto que simplemente ser una moneda común y corriente..
  • Dividirá la comunidad: un aumento del tamaño de bloque inevitablemente causará una bifurcación en el sistema que generará dos bitcoins paralelos y, por lo tanto, dividirá la comunidad en el proceso. Esto puede destruir la armonía en la comunidad..
  • Provocará una mayor centralización: dado que aumentará el tamaño de la red, también aumentará la cantidad de potencia de procesamiento necesaria para extraer. Esto eliminará todos los grupos de minería pequeños y otorgará poderes de minería exclusivamente a los grupos de gran escala. Esto, a su vez, aumentará la centralización que va en contra de la esencia misma de los bitcoins..

Argumentos para el aumento del tamaño del bloque

  • El aumento del tamaño del bloque en realidad funciona en beneficio del minero: el aumento del tamaño del bloque significará un aumento de las transacciones por bloque, lo que a su vez aumentará la cantidad de tarifas de transacción que un minero puede hacer al extraer un bloque.
  • Bitcoin necesita crecer más y ser más accesible para el “hombre común”. Si el tamaño del bloque no cambia, existe una posibilidad muy real de que las tarifas de transacción aumenten cada vez más. Cuando eso suceda, el hombre común nunca podrá usarlo y será usado exclusivamente por las corporaciones ricas y grandes. Ese nunca ha sido el propósito de bitcoin.
  • Los cambios no sucederán todos a la vez, sucederán gradualmente con el tiempo. El mayor temor que tiene la gente cuando se trata del cambio de tamaño de bloque es que demasiadas cosas se verán afectadas al mismo tiempo y eso provocará una gran interrupción. Sin embargo, las personas que están “a favor del aumento del tamaño del bloque” piensan que ese es un temor infundado, ya que la mayoría de los cambios se resolverán durante un período de tiempo..
  • Ya hay mucho apoyo para el aumento del tamaño de los bloques y las personas que no se adaptan a los tiempos pueden quedarse atrás.
  • Segwit no es una solución permanente.

De todos modos, el 21 de mayo de 2017, se llevó a cabo el Acuerdo de Nueva York donde se decidió que Segwit se activará y los tamaños de bloque aumentarán a 2 mb.

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: artículo de DCG en Medium.

Las personas que no estaban contentas con la idea de que Segwit se activara se separaron de la cadena principal e hicieron Bitcoin Cash, que tiene un límite de tamaño de bloque de 8 mb..

También se sugirió un aumento del tamaño de bloque para ethereum, pero debido a muchas razones por las que la gente no está realmente interesada en hacer eso en Ethereum al momento de escribir:

  • En primer lugar, lo principal que obstaculiza la escalabilidad de Ethereum es la velocidad del consenso entre los nodos. El aumento del tamaño del bloque aún no resolverá este problema. De hecho, a medida que aumenta el número de transacciones por bloque, también aumentará el número de cálculos y verificaciones por nodo..
  • Para adaptarse a cada vez más transacciones, los tamaños de los bloques deben aumentarse periódicamente. Esto centralizará más el sistema porque las computadoras y los usuarios normales no podrán descargar y preservar cadenas de bloques tan voluminosas. Esto va en contra del espíritu igualitario de una cadena de bloques..
  • Por último, el aumento del tamaño del bloque se producirá solo a través de hardfork, lo que puede dividir a la comunidad. La última vez que ocurrió un hardfork importante en ethereum, toda la comunidad se dividió y surgieron dos monedas separadas. La gente realmente no quiere que esto vuelva a suceder.

Prueba de participación

El cambio de prueba de trabajo a prueba de participación

Una de las cosas más importantes que está sucediendo en este momento es el cambio de Ethereum de prueba de trabajo a prueba de participación.

  • Prueba de trabajo: Este es el protocolo que la mayoría de las criptomonedas como ethereum y Bitcoin han estado siguiendo hasta ahora. Esto significa que los mineros “extraen” criptomonedas resolviendo cripto-rompecabezas utilizando hardware dedicado.
  • Prueba de participación: Este protocolo hará que todo el proceso de minería sea virtual. En este sistema tenemos validadores en lugar de mineros. La forma en que funciona es que, como validador, primero tendrá que bloquear parte de su éter como apuesta. Después de hacer eso, comenzará a validar bloques, lo que básicamente significa que si ve algún bloque que cree que se puede agregar a la cadena de bloques, puede validarlo haciendo una apuesta. Cuando y si se agrega el bloque, obtendrá una recompensa proporcional a la apuesta que haya invertido. Sin embargo, si apuesta por el bloqueo incorrecto o malicioso, se le quitará la apuesta que ha invertido..

Para implementar la “prueba de participación”, ethereum utilizará el algoritmo de consenso de Casper. Al principio, será un sistema de estilo híbrido donde la mayoría de las transacciones aún se realizarán como prueba de estilo de trabajo, mientras que cada transacción número 100 será una prueba de participación. Lo que esto hará es que proporcionará una prueba del mundo real para la prueba de participación en la plataforma de Ethereum. Pero, ¿qué significa eso para ethereum y cuáles son las ventajas de este protocolo? Vamos a ver.

Ventajas de la prueba de participación

  • Reduce el costo total de energía y monetario: los mineros de bitcoin del mundo gastan alrededor de $ 50,000 por hora en electricidad. ¡Eso es $ 1.2 millones por día, $ 36 millones por mes y ~ $ 450 millones por año! Simplemente ponga su cabeza en esos números y la cantidad de energía que se desperdicia. Al utilizar la “Prueba de participación”, usted hace que todo el proceso sea completamente virtual y elimine todos estos costos..
  • Sin ventaja de ASIC: dado que todo el proceso será virtual, no dependerá de quién tenga el mejor equipo o ASIC (circuito integrado específico de la aplicación).
  • Hace que el 51% del ataque sea más difícil: el 51% del ataque ocurre cuando un grupo de mineros obtiene más del 50% del poder hash mundial. Usar prueba de participación niega este ataque.
  • Validadores libres de malware: cualquier validador que tenga sus fondos bloqueados en la cadena de bloques se aseguraría de no agregar ningún bloque incorrecto o malicioso a la cadena, porque eso significaría que se les quitaría toda la participación invertida..
  • Creación de bloques: acelera la creación de bloques más nuevos y todo el proceso. (Más sobre esto en la siguiente sección).
  • Escalabilidad: hace que la cadena de bloques sea escalable al introducir el concepto de “fragmentación” (más sobre esto más adelante).

¿Cómo ayuda esto en la escalabilidad de Blockchain??

La introducción de la prueba de participación hará que la cadena de bloques sea mucho más rápida porque es mucho más simple verificar quién tiene más apuestas que ver quién tiene el mayor poder de hash. Esto hace que llegar a un consenso sea mucho más sencillo. Además, implementar una “prueba de cadena de bloques” es una parte integral de Serenity, la cuarta y última forma de ethereum (más sobre esto en un momento).

Al mismo tiempo, la prueba de participación facilita la implementación de la fragmentación. En un sistema de prueba de trabajo, será más fácil para un atacante atacar fragmentos individuales que pueden no tener una alta tasa de hash..

Además, en POS, los mineros no obtendrán una tarifa de bloque y solo pueden ganar mediante tarifas de transacción. Esto los incentiva a aumentar el tamaño del bloque para realizar más transacciones (a través de la gestión de gas)..

¿Cuál es el futuro de la prueba de participación??

A partir de ahora, la etapa uno de Casper se implementará en la cadena de bloques, en la que cada bloque número 100 se comprobará mediante prueba de participación. Yoichi Hirai de ethereum foundations ha estado ejecutando scripts de casper a través de detectores de errores matemáticos para asegurarse de que esté completamente libre de errores.

Eventualmente, el plan es mover la mayor parte de la creación del bloque a través de la prueba de participación y la forma en que planean hacerlo es… entrando en la era del hielo. La “edad de hielo” es una bomba de tiempo de dificultad que hará que la minería sea exponencialmente más difícil. Tener una dificultad increíblemente alta reducirá en gran medida la tasa de hash, lo que a su vez reducirá la velocidad de toda la cadena de bloques y el DAPPS que se ejecuta en ella. Esto obligará a todos los involucrados en ethereum a pasar a la prueba de participación..

Sin embargo, toda esta transición no está exenta de obstáculos. Uno de los mayores temores que tiene la gente es que los mineros puedan forzar una bifurcación en la cadena en un punto antes de que comience la edad de hielo y luego continuar minando en esa cadena. Esto podría ser potencialmente desastroso porque significaría que podría haber 3 cadenas diferentes de ethereum ejecutándose al mismo tiempo: Ethereum classic, ethereum proof of work y ethereum proof of stake.

Actualmente todo esto es especulación. Por ahora, el hecho es que, para un modelo escalable, es fundamental que ethereum utilice la prueba de participación para obtener la velocidad y la flexibilidad que requiere..

Fragmentación

El mayor problema al que se enfrenta ethereum es la velocidad de verificación de la transacción. Todos y cada uno de los nodos completos de la red deben descargar y guardar la cadena de bloques completa. Lo que hace la fragmentación es que divide una transacción en fragmentos y la propaga por la red. Los nodos funcionan en fragmentos individuales uno al lado del otro. Esto a su vez reduce el tiempo total.

Imagina que ethereum se ha dividido en miles de islas. Cada isla puede hacer lo suyo. Cada isla tiene sus propias características únicas y todos los que pertenecen a esa isla, es decir, las cuentas, pueden interactuar entre sí Y pueden disfrutar libremente de todas sus características. Si quieren contactar con otras islas, deberán utilizar algún tipo de protocolo..

Entonces, la pregunta es, ¿cómo va a cambiar eso la cadena de bloques??

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

¿Cómo se ve un bloque normal en bitcoin o ethereum (pre-fragmentación)??

Entonces, hay un encabezado de bloque y el cuerpo que contiene todas las transacciones en el bloque. La raíz de Merkle de todas las transacciones estará en el encabezado del bloque.

Ahora, piensa en esto.

  • ¿Bitcoin realmente necesitaba bloques??
  • ¿Realmente necesitaba una cadena de bloques???
  • Satoshi podría haber simplemente hecho una cadena de transacciones al incluir el hash de la transacción anterior en la transacción más nueva, haciendo una “cadena de transacciones” por así decirlo..

La razón por la que organizan estas transacciones en un bloque es crear un nivel de interacción y hacer que todo el proceso sea más escalable. Lo que sugiere ethereum es que cambian esto en dos niveles de interacción..

El primer nivel

El primer nivel es el grupo de transacciones. Cada fragmento tiene su propio grupo de transacciones.

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: Hackernoon

El grupo de transacciones se divide en el encabezado del grupo de transacciones y el cuerpo del grupo de transacciones..

Encabezado del grupo de transacciones

  • El encabezado se divide en distintas partes izquierda y derecha.

La parte izquierda:

  • ID de fragmento: el ID del fragmento al que pertenece el grupo de transacciones.
  • Pre-state root: este es el estado de la raíz del fragmento 43 antes de que se aplicaran las transacciones..
  • Post state root: este es el estado de la raíz del fragmento 43 después de que se aplican las transacciones.
  • Receipt root: la raíz del recibo después de que se aplican todas las transacciones en el fragmento 43.

La parte correcta:

  • La parte correcta está llena de validadores aleatorios que necesitan verificar las transacciones en el propio fragmento. Todos son elegidos al azar.

Cuerpo del grupo de transacciones

  • Tiene todos los ID de transacción en el propio fragmento.

Propiedades del Nivel Uno

  • Cada transacción especifica el ID del fragmento al que pertenece.
  • Una transacción que pertenece a un fragmento en particular muestra que se ha producido entre dos cuentas que son nativas de ese fragmento en particular.
  • El grupo de transacciones tiene transacciones que pertenecen solo a ese ID de fragmento y son únicas para él.
  • Especifica la raíz del estado anterior y posterior.

Ahora, veamos el nivel superior, también conocido como segundo nivel..

El segundo nivel

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: Hackernoon.

¡No, no tengas miedo! Es más fácil de entender de lo que parece.

Existe la cadena de bloques normal, pero ahora contiene dos raíces principales:

  • La raíz del estado
  • La raíz del grupo de transacciones

La raíz del estado representa el estado completo y, como hemos visto antes, el estado se divide en fragmentos, que contienen sus propios subestados..

La raíz del grupo de transacciones contiene todos los grupos de transacciones dentro de ese bloque en particular.

Propiedades del nivel dos

  • El nivel dos es como una cadena de bloques simple, que acepta grupos de transacciones en lugar de transacciones..
  • El grupo de transacciones es válido solo si: a) La raíz del estado previo coincide con la raíz del fragmento en el estado global.

    b) Todas las firmas del grupo de transacciones están validadas.

  • Si el grupo de transacciones ingresa, la raíz del estado global se convierte en la raíz posterior al estado de ese ID de fragmento en particular.

Entonces, ¿cómo ocurre la comunicación entre fragmentos??

Ahora, recuerda nuestra analogía con la isla?

Los fragmentos son básicamente como islas. Entonces, ¿cómo se comunican estas islas entre sí? Recuerde, el propósito de los fragmentos es hacer que sucedan muchas transacciones paralelas al mismo tiempo para aumentar el rendimiento. Si ethereum permite la comunicación aleatoria entre fragmentos, eso anula todo el propósito de fragmentar.

Entonces, ¿qué protocolo debe seguirse para la comunicación entre fragmentos??

ethereum eligió seguir el paradigma de recepción para las comunicaciones entre fragmentos. Mira esto:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: hackernoon

Como puede ver aquí, se puede acceder fácilmente a cada recibo individual de cualquier transacción a través de múltiples árboles Merkle desde la raíz del grupo de transacciones Merkle. Cada transacción en un fragmento hará dos cosas:

  • Cambiar el estado del fragmento al que pertenece
  • Generar un recibo

Aquí hay otra información interesante. Los recibos se almacenan en una memoria compartida distribuida, que pueden ser vistos por otros fragmentos pero no modificados. Por lo tanto, la comunicación entre fragmentos puede ocurrir a través de recibos como este:

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Imagen cortesía: Hackernoon

¿Cuáles son los desafíos de implementar la fragmentación??

  • Debe haber un mecanismo para saber qué nodo implementa qué fragmento. Esto debe hacerse de una manera segura y eficiente para garantizar la paralelización y la seguridad..
  • La prueba de participación debe implementarse primero para facilitar la fragmentación según Vlad Zamfir. En un sistema de prueba de trabajo, será más fácil atacar fragmentos con menor tasa de hash..
  • Los nodos funcionan en un sistema sin confianza, lo que significa que el nodo A no confía en el nodo B y ambos deben llegar a un consenso independientemente de esa confianza. Por lo tanto, si una transacción en particular se divide en fragmentos y se distribuye al nodo A y al nodo B, el nodo A tendrá que idear algún tipo de mecanismo de prueba de que han terminado de trabajar en su parte del fragmento..

Canales de estado fuera de la cadena

Que es un canal estatal?

A canal estatal es un canal de comunicación bidireccional entre los participantes que les permite realizar interacciones, que normalmente ocurrirían en la cadena de bloques, fuera de la cadena de bloques. Lo que esto hará es que disminuirá el tiempo de transacción exponencialmente, ya que ya no depende de un tercero como un minero para validar su transacción..

Entonces, ¿cuáles son los requisitos para hacer un canal estatal fuera de la cadena??

  • Un segmento del estado de la cadena de bloques está bloqueado mediante firma múltiple o algún tipo de contrato inteligente, que es acordado por un conjunto de participantes..
  • Los participantes interactúan entre sí firmando transacciones entre ellos sin dejar de enviar nada a los mineros..
  • Luego, todo el conjunto de transacciones se agrega a la cadena de bloques.

Los canales estatales se pueden cerrar en un punto predeterminado por los participantes según el fundador de Slock.it, Stephan Thual. Podría ser:

  • Tiempo transcurrido, por ejemplo. los participantes pueden acordar abrir un canal estatal y cerrarlo después de 2 horas.
  • Podría basarse en la cantidad total de transacciones realizadas, por ejemplo. cerrar la cadena después de que se hayan realizado transacciones por valor de $ 100.

canales de estado fuera de la cadena

Imagen cortesía: Stephan Tual Medium Article

Entonces, en la imagen de arriba. Tenemos un automóvil que interactúa directamente con el cargador y realiza transacciones por un valor total de $ 39.19. Finalmente, después de una serie de interacciones, el fragmento completo de la transacción se agrega a la cadena de bloques. Imagínese cuánto tiempo les habría llevado si tuvieran que ejecutar cada transacción a través de blockchain!

El canal de estado fuera de la cadena que Bitcoin está buscando implementar es la red Lightning..

Que es la red de rayos?

los red de rayos es un sistema de micropagos fuera de la cadena que está diseñado para hacer que las transacciones funcionen más rápido en la cadena de bloques. Joseph Poon y Tadge Dryja lo conceptualizaron en su documento técnico que tenía como objetivo resolver el límite de tamaño de bloque y los problemas de demora en las transacciones. Opera sobre Bitcoin y a menudo se le conoce como “Capa 2”. Como señala Jimmy Song en su artículo mediano:

“Lightning Network funciona creando una transacción con doble firma. Es decir, tenemos un nuevo cheque que requiere que ambas partes firmen para que sea válido. El cheque especifica cuánto se envía de una parte a otra. A medida que se realizan nuevos micropagos de una parte a la otra, se cambia el monto del cheque y ambas partes firman el resultado “.

La red permitirá a Alice y Bob realizar transacciones entre ellos sin que una tercera parte, también conocida como minero, los mantenga cautivos. Para activar esto, la transacción debe ser firmada por Alice y Bob antes de que se transmita en la red. Esta doble firma es fundamental para que la transacción se realice.

Sin embargo, aquí es donde nos enfrentamos a otro problema.

Dado que la verificación doble se basa en gran medida en el identificador de la transacción, si por alguna razón se cambia el identificador, esto provocará un error en el sistema y Lightning Network no se activará. En caso de que se esté preguntando cuál es el identificador de la transacción, es el nombre de la transacción, también conocido como el hash de las transacciones de entrada y salida..

Este es el identificador de la transacción.

Un error llamado “Transacción maleable” puede hacer que cambie el identificador de la transacción. Sin embargo, esto ya no será un problema, porque la activación de Segwit elimina este error..

ethereum también planea activar algo como la red de rayos que se llama “Raiden”.

Plasma

Plasma junto con Lightning Network / Raiden introducirá una capa completamente nueva a la arquitectura ethereum:

capas futuras de blockchain

Imagen cortesía: Medio.

Plasma es una serie de contratos que se ejecutan en la parte superior de la cadena raíz (la cadena de bloques principal de Ethereum). Si uno tuviera que imaginar la arquitectura y la estructura, entonces piense en la cadena de bloques principal y las cadenas de bloques de plasma como un árbol. La cadena de bloques principal es la raíz, mientras que la cadena de plasma, también conocida como cadenas de bloques secundarias, son las ramas..

Escalabilidad de Blockchain: ¿Cuándo, dónde, cómo?

Esto reduce en gran medida la carga en la cadena principal. Periódicamente, las sucursales siguen enviando informes a la cadena principal. De hecho, puede ver la Cadena Raíz como el tribunal supremo y todas las ramas como los tribunales subordinados que derivan sus poderes del tribunal principal..

Todas las cadenas de sucursales pueden emitir sus propios tokens únicos que pueden incentivar a los validadores de cadenas para que se encarguen de las cadenas y se aseguren de que no tienen fallas. Cada rama tiene sus propios datos independientes y cuando necesita enviar algunos datos a la cadena principal, no descarga todo su contenido, simplemente envía el hash del encabezado del blog a la cadena principal..

El plasma no solo ahorra mucho espacio en la cadena principal, sino que también aumenta exponencialmente la velocidad del proceso de transacción. Si se implementa correctamente, este podría ser uno de los cambios más revolucionarios jamás realizados en ethereum y las criptomonedas en general..

Mirando hacia el futuro: escalabilidad de blockchain

Las criptomonedas, y especialmente bitcoin y ethereum, se están volviendo cada vez más comunes. Para mantenerse al día con el aumento de uso, necesitan intensificarlo seriamente en lo que respecta a la escalabilidad. Afortunadamente, existen algunas soluciones fascinantes que podrían darles resultados muy interesantes. Sin embargo, ¿pueden realmente resolver el problema de la escalabilidad? Eso aún está por verse.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me