Solana: Blockhain de alta escalabilidad basada en la web 3.0
Hola comunidad de HIVE. en esta oportunidad comparto con ustedes un análisis sobre el funcionamiento de la criptomoneda Solana(SOL) desde la perspectiva del trilema blockchain. Considero el trilema blockchain como una herramienta pedagógico muy útil para comprender cualquier blockchain. Sin mas preámbulos, entremos en materia.
Trilema Blockchain
La conceptualización del trilema blockchain se le acuña al co-fundador de Ethereum-Vitalik Buterin- y se enfoca en comprender tres aspectos básicos de las blockchains: Seguridad, escalabilidad y descentralizacion. Vitalik llega a la conclusión de que muchos proyectos criptograficos se encuentran inmersos en el reto en generar innovaciones en base a estos tres aspectos, pero que es difícil de lograr un equilibro. Cuando los desarrolladores deciden mejorar dos aspectos de la blockchain-seguridad y escalabilidad-, se encuentran en la situación de realizar cambios sacrificando un aspecto -descentralizacion-. De acuerdo al surgimiento de este problema los desarrolladores recurren a generar y aplicar un abanico de soluciones: cadenas laterales,off-chain, canales de estado, fragmentación de datos y diferentes pruebas de consensos.[1][2].
Descentralización | ||||||
---|---|---|---|---|---|---|
Los nodos de la red están desconcertados y carece completamente de una autoridad centralizada que administre o manipule las transacciones en la blockchain. Mientras mayor sea el número de participantes(nodos) menor será la capacidad de centralización de una institución o corporación. Para estos desarrolladores su prioridad es que la red funcione con una mayor distribución geográfica de los nodos y que ningún participante concentre todo el poder de cómputo que la red pueda soportar. |
Seguridad | |||
---|---|---|---|
Se centra en asegurar que blockchain no sea vulnerable diferentes ataques a la red, como denegación de servicios, ataque de día cero, bifurcación de la blockchain o el popular ataque del 51%. Para estos desarrolladores las correcciones de bugs o brechas de seguridad son su máxima prioridad. |
Escalabilidad | |
---|---|
Se refiere a la velocidad en que son procesadas las transacciones en la cadena de bloques. Cuando una blockchain aumenta su escalabilidad significa que puede realizar una mayor cantidad de transacciones por segundos(TPS) soportando así una alta concurrencia en la red debido a la adopción o intercambio de información que realizan los usuarios. Realizar transacciones veloces es la prioridad. |
Debido a este situación, en la comunidad blockchain surgen diferentes opiniones y preferencias lo que conlleva que los usuarios puedan elegir los proyectos que consideren de mejor competencia ya que presentan rendimientos y características diferentes.
Como mencione al inicio, podemos analizar Solana en base al trilema blockchain, cuales han sido sus resultados y que impacto a generado en el mercado criptografico.
¿Que es Solana?
Solana(SOL) es una blockchain creada por Anatoly Yakovenko con el propósito de ofrecer una alta escabilidad. es decir, maximizar la eficiencia de la red para realizar transacciones por segundos(TPS) superiores a otras blockchain, y esto fue posible creando una blockchain desde cero combinando dos pruebas de consenso: Prueba de participacion(PoS) y Prueba de historia(PoH). [3][4].
Informacion estadistica extraida de https://explorer.solana.com
Informacion estadistica extraida de solana_daily
¿Cómo la blockchain Solana logró superar en escalabilidad a otros proyectos blockchain ?
La clave se encuentra en 8 innovaciones desarrolladas por el equipo de Solana:
- Proof of History(PoH)
- Tower BFT
- Turbine
- Gulf Stream
- Sealevel
- Pipelining
- Cloudbreak
- Archivers
En este segmento me ocuparé de realizar una serie de explicaciones intuitivas para facilitar la comprensión del funcionamiento de esta blockchain.
PoH es la característica central de Solana. PoH incorpora una marca de tiempo (timestamping) para realizar un registro histórico con la finalidad de probar que ha ocurrido un evento o instrucciones específicas en diferentes periodos de tiempo en la blockchain de Solana. En Solana todos los validadores contienen su propio reloj interno, pero es codificado mediante una función de retardo verificable (VDF) y funciones SHA-256.
Visualice las cadenas de bloques como si fuera una sala de espera para efectuar una consulta con su médico. La administradora de las citas se encargará de asentar su llegada un libro de registros y le proporcionará un ticket, Usted debe esperar que la administradora de citas le haga un llamado de acuerdo al ticket y así ingresara consulta con su médico. Recibir el ticket de espera es el resultado equivalente a que su transacción será incorporada en el siguiente bloque de la cadena. Para la administradora de citas, es una prioridad que todas las pacientes-tickets- se encuentren en la misma página en el sentido de comprobar quien tiene el ticket correspondiente y cuándo será llamado. Para hacerlo, el consultorio médico que funciona con la tecnología PoW requiere que todas las administradoras de citas se comuniquen entre sí para discutir y acordar qué persona será la próxima en ingresar al consultorio del doctor. Como resultado, los pacientes deben esperar que las administradoras de citas tomen en tiempo necesario para determinar con precisión el próximo paciente. Si se trata de un día donde consultorio médico tiene muchos pacientes en espera y se encuentra congestionado, el trabajo de procesar el próximo bloque será lento.
Para evitar este problema de espera o congestionamiento, Solana-mediante PoH- se dirigió a las administradoras de citas, le entregó un formato diferente para realizar apuntes especiales para agilizar el proceso de verificación y llamado a sus pacientes. Esta proceso especial-mediante funciones SHA-256- el tiempo en que se registró un ticket al cliente, lo convierte en especie de caracteres codificados. Este cambio, este proceso, se conoce como una marca de tiempo criptográfica o PoH. Cada mensaje o evento que pasa por la blockchain de Solana recibe una marca de tiempo que hace referencia al mensaje sellado criptográficamente para garantizar la seguridad y mejorando la precisión de búsqueda del mensaje. Si uno de los pacientes extravió el ticket, la administradora de citas dispondrá de un historial especial de cada paciente que ingresó al consultorio médico hasta que se imprimió el ticket correspondiente. Al ejecutar el trabajo de comprobación por adelantado, los validadores de bloques de Solana pueden dejar que el paciente ingrese al consultorio médico primero y acordar el orden después porque ya dispone de una marca de tiempo criptográficamente sellado capaz de verificar este proceso posteriormente. Cuando es momento de discutir el registro cronológico de los eventos, no genera discusiones porque las administradoras de citas(entre los nodos) solicitan rápidamente los tickets recogidos a los pacientes y los clasifica por marca de tiempo. Como resultado, Esto agiliza enormemente el tiempo en que tarda en incluir el siguiente bloque a la cadena.
Tower BFT, es un algoritmo de consenso diseñado específicamente para aprovechar la sincronización de las marcas de tiempo usando PoH. Tower Consensus prefiere la capacidad de respuesta a la consistencia. Capacidad de respuesta para acelerar el proceso de verificación y validación de las transacciones. Con Tower BFT cuando los nodos de la red reciben los mensajes pueden verificar los tiempos de espera de todos los demás validadores de la red de forma asincrónica.
Supongamos que usted se encuentra en la fila esperando para ingresar al concierto de rock de su banda favorita.
Pero ocurre que hay diferentes entradas y hay muchas personas esperando, las entradas al concierto tiene unas filas más largas y otras más pequeñas. Las personas encargadas de la puerta deciden elegir el líder principal(hasta que rote a otro validador en la blockchain) ese líder se encargará de recibir y procesar las entradas(transacciones) de todos por medio de la marca de tiempo empleando PoH.
Al finalizar procesar los tickets de todos, el líder genera y suministra una copia sobre la cantidad de personas-entradas- que han ingresado al concierto de rock (blockchain), los sella y las envías al resto de sus compañeros. Los compañeros que reciben las copias del líder procesan todas las entradas (transacciones) y crean su propia copia criptográficamente sellada de lo que creen que ahora es el concierto de rock. Es decir, los cambios en espera de ser confirmados.
Cada confirmación publicada en la blockchain por los compañeros del líder la utilizan como votación para el algoritmo de consenso (Tower BFT) una vez finaliza la votación y verificando continuamente la cantidad de personas que quieren ingresar al concierto de rock, Se elige un nuevo líder que tenga mayor capacidad de procesamiento y el proceso se repite continuamente.
En sistemas distribuidos la escalabilidad es un problema difícil de resolver, al aumentar la cantidad de nodos en la blockchain, tarda más tiempo en enviar y recibir los datos que se propagan en todos los nodos de la red. Es decir, mientras más información a distribuir mayor será la cantidad de bytes por procesar y recordemos que en la blockchain todos los nodos necesitan una copia de la información firmada criptográficamente y mantenerla almacenada de forma permanente.
Para resolver este problema Solana utiliza Turbine y funciona de la siguiente manera:
Los datos del bloque creado por consenso se enviarán del líder al resto de los compañeros para que los incorporen a su copia. El líder envía una carta (bloque).
Todos los compañeros del líder necesitan una copia de la carta, por lo que el líder envía una copia a cada uno individualmente.
Cada copia que envía el líder no es pequeña. Por lo tanto, el tiempo de transmitir una copia es más lenta.
Con Turbine, el líder divide la carta en trozos más pequeños de igual tamaño y las envía al azar a todos sus compañeros.
Cada uno individualmente realiza una copia y entrega parte de la carta al compañero más cercano, y viceversa, hasta que todos tengan la carta completa (bloques).
Los miembros se agrupan y se denominan vecindarios. Los compañeros con más inversión en el proyecto se colocan en el vecindario más cercano al líder. Los barrios son responsables de pasar algunos pequeños trozos de la carta los barrios de abajo y así sucesivamente. En caso de que todos no estén haciendo su parte al compartir los pequeños trozos de la carta, el líder asume la responsabilidad de distribuir copias adicionales de cada pequeño trozo de carta, de esta forma proporciona seguridad al proceso.
Las transacciones no registradas que esperan ser incluidas la cadena de bloques generalmente se mantienen en pool de memoria. Con el aumento del tamaño de mempool , el tiempo requerido para procesar una transacción también aumenta. Por lo tanto, la velocidad de la red es más lenta. Una posible La solución es aumentar el ancho de banda de la red y disponer de hardware de alto rendimiento. Pero requiere realizar un mayor gasto de recursos. Debido a ese problema Solana implementa una técnica llamada Gulf Stream.
Cada validador conoce el orden histórico de los siguientes líderes debido a la arquitectura de Solana. En consecuencia, los validadores envían las transacciones a los próximos líderes antes de que actúen como líderes en la red. En tal sentido, los validadores comenzarán a procesar transacciones con anticipación porque conocen cuál será el próximo líder validador. Como resultado, se almacena menos transacciones en caché de la memoria de los validadores y acelera el proceso de confirmaciones.
Sealevel se encarga de ejecutar de forma paralela múltiples contratos inteligentes y aprovecha de forma óptima el uso eficiente de todos los recursos computacionales disponibles en la red. De este modo, Solana genera mayor escalabilidad para procesamiento de los Smart contracts.
Lo que lo convierte en un algoritmo más eficiente y rápido superior a los tiempos de ejecución de un solo subproceso como es el caso de la Máquina virtual de Ethereum( EVM) para Ethereum. Es decir, en EVM los tiempos de ejecución de un solo subproceso pueden ejecutar un contrato inteligente a la vez. Pero con Sealevel, se pueden ejecutar decenas de miles de transacciones en paralelo utilizando todos los núcleos disponibles de la máquina del Validador.
Las transacciones de Solana se componen de instrucciones. Cada instrucción contiene el ID del programa que ejecuta, las especificaciones del programa y una cantidad específica cuentas que la transacción necesita procesar.
Sealevel ordena y clasifica las transacciones por aquellas que leen los datos de las cuentas o aquellas que se pueden procesar sin sobrescribir el mismo evento al mismo tiempo. Las ordena en grupos o las procesa en lotes con instrucciones específicas de esta forma evita conflictos de sobre-escritura y procesamiento redundantes.
Con Sealevel, Solana logra procesar y optimizar una gran cantidad transacciones se han diferentes grupos y las instrucciones de un programa (contrato inteligente) está siendo solicitada por miles de transacciones diferentes. Sealevel aprovecha completamente los recursos de CPU y GPU para que pueda ejecutar una instrucción en múltiples fuentes de datos clasificando los programas por su ID y los ejecuta en todos los flujos de datos de acuerdo la capacidad de procesamiento del CPU y GPU.
El mismo Anatoly Yakovenko en su cuenta de medium ofrece un ejemplo de como Solana aprovecha la GPU Nvidia de la serie CUDA, cito su escrito:
Una GPU Nvidia moderna tiene 4000 núcleos CUDA, pero unos 50 multiprocesadores. Si bien un multiprocesador puede ejecutar solo una instrucción de programa a la vez, puede ejecutar esa instrucción en más de 80 entradas diferentes en paralelo. Entonces, si las transacciones entrantes que Sealvel carga todas llaman a las mismas instrucciones del programa, como CryptoKitties::BreedCats, Solana puede ejecutar todas las transacciones simultáneamente en todos los núcleos CUDA disponibles.
Sealevel realiza optimización excepcional y escalabilidad para eficientizar las TPS y lo que supera otras cadenas de bloques con tiempos de ejecución de un solo subproceso como es el caso Ethereum.
Pipeline es un método de procesamiento secuencial donde el rendimiento del sistema aumenta al organizar simultáneamente la ejecución paralela de múltiples instrucciones. Esto es posible mediante cuatro fases: Unidad de Procesamiento de Transacciones, o TPU, se compone de Obtención, Verificación de Firma, Banca y Escritura.
Solana aprovecha el uso de hardware diferente(CPU Y GPU) para manejar diferentes instrucciones en el proceso es similar al proceso de fabricación de maquinarias. La idea básica es que el mecanismo de transacciones de datos se mantenga siempre operativo validando y distribuyendo recompensa de los bloques.
Obtención de datos: inspecciona las transacciones entrantes para recopilar datos específicos para la preparación de la ejecución de transacciones.
Kernel Space: el núcleo del sistema operativo de una computadora, que realiza un control completo del sistema y facilita las interacciones entre el hardware y el software.
Verificación de firma: Se encarga garantizar que las solicitudes de transacciones entrantes sean todas únicas y legítimas.
Hardware utilizado: Unidad de procesamiento de gráficos (GPU): un componente electrónico especializado capaz de acelerar la creación de imágenes en equipos de programas que requieran un empleo intensivo de visualizaciones gráficas. Normalmente, las GPU ha sido utilizadas en el procesamiento de datos en paralelo en la blockchain.
Fase bancaria: comprende al aspecto financiero de las transacciones donde se distribuyen los tókenes.
Hardware utilizado: Unidad central de procesamiento (CPU): procesador principal que ejecuta instrucciones en un programa de computadora.
Fase de escritura: registra la transacción en la memoria permanente y luego la transmite a otros nodos para validarlo.
Cuando la TPU está enviando bloques a los validadores, todas las demás etapas están procesando exponencialmente nuevos datos, verificando firmas y acreditar nuevos tókenes.
En resumen, Un nodo en la red Solana realiza una función dual cambiante, una unidad de procesamiento de transacciones (TPU) cuando actúa como líder y una unidad de validación de transacciones (TVU) cuando actúa como validador. Los recursos de cómputo que se usa para los procesos de la entrada y salida de datos en la blockchain es el mismo, pero el proceso que ocurre en cada pipeline es diferente.
En los sistemas distribuidos La memoria generalmente se usa para realizar un seguimiento de las cuentas. Esto puede ralentizar el rendimiento de la red y, por lo tanto, se convierte en una limitación en la capacidad de almacenamiento y la velocidad de procesamiento.
Con Cloud Break Solana elabora una estructura de datos distribuidos en dispositivos SSD y así los nodos efectúan una lectura y escritura de datos de manera simultánea. Específicamente, Los bloques de datos se segmentan y distribuyen en orden secuencial en diferentes dispositivos SSD. Cuando obtiene una organización secuencial de datos, la eficiencia del procesamiento en la CPU aumenta, lo que agrega mas rendimiento para el arranque. Además, no solo ocupa espacio de almacenamiento, sino también la cantidad de fuentes de acceso simultáneas disponibles(mapa de memoria).
Son los guardianes o nodos archivadores de todas transacciones que circulan la blockchain y no tiene participación en el consenso. Su única función es almacenar datos.
En su máxima capacidad, se prevé que la red genere 1 GB/s de datos, lo que equivale a 4 petabytes de datos al año. Debido a esto un grupo reducido de participantes que pudiera financiar y administrar equipos de alta capacidad de almacenamiento, daría como resultado que solo una pequeña concentración de entidades pudiera respaldar la red y esto afectaría negativamente la descentralización.
¿Qué solución implementó solana? De manera similar al enfoque de Turbine y Cloudbreak, donde los datos se dividen en segmentos, Solana divide el historial del libro mayor en partes pequeñas que se distribuyen a los nodos archivadores.
Esto es posible mediante PoRep. PoRep significa prueba de replicación y es un sistema elaborado por el proyecto Filecoin en el que un probador realiza una afirmación públicamente verificable de que está utilizando recursos para almacenar una o más copias recuperables de un archivo de datos. PoRep combinado con la tecnología PoH de Solana logra acelerar la validación de la prueba de replicación(PoRep).
Los archivadores informan que disponen de una cantidad específica de bytes para almacenar datos. La red divide el historial del libro mayor en fragmentos para agilizar la carga de la red y seguir enviando el historial del libro mayor a los archivadores.
Aleatoriamente, la red solicitará a los archivadores que demuestren que están procediendo su trabajo de almacenamiento de datos para así lograr completar PoRep. Para recompensar a los archivadores, obtendrían un 3% de inflación por colaborar en la red.
¿Que impacto a generado en el mercado criptografico?
Solana es un proyecto que se centra en mantener operatividad de la red aumentando exponencialmente su escalabilidad. Pero a pesar de ser una blockchain con TPS muy alto, ha registrado incovenientes en su red en septiembre del 2021[5]. según explicaciones dada por sus desarrolladores ocurrió debido alta concurrencia de la red, un gran aumento en la carga de transacciones causó un pico de 400,000 transacciones por segundo a su vez la alta concurrencia congestionó el procesamiento de las transacciones y género un fork de su Mainnet-Una cadena paralela-. Para evitar mayores daños y restaurar la operatividad, los desarrolladores de Solana decidieron reiniciar la red.
A pesar de este incidente los desarrolladores blockchain aún mantiene operativos una variedad de proyectos en Solana. Serum, un intercambio descentralizado; Audius, una plataforma de transmisión de música; Metaplex, Plataforma NFT.
El objetivo de Solana consiste en sostener una alta escalabilidad mediante la aplicación de 8 innovaciones elementales indispensables para el funcionamiento de su ecosistema. Tenemos PoH, un complemento de la PoS aplicada para acelerar las transacciones por medio de una marca de tiempo criptográfica; todos los nodos portan su propio reloj interno lo que permite al nodo verificador comprobar todos los estados o eventos que recibe(timestamping) y posteriormente procede a realizar el consenso. Tower HFT, es la versión Solana de la tolerancia a fallas bizantinas funciona como punto de control para sincronizar todos los relojes internos de los nodos de la red en función de las instrucciones definidas por el protocolo de Solana; Turbine, segmenta los bloques en fragmentos y las envía a la red para que el nodo líder y acompañantes las reconstruyen de acuerdo a sus eventos o instrucciones. En consecuencia, optimiza el uso del ancho de banda y aumenta su TPS; Gulf Stream, Se encarga de recibir y reenviar transacciones antes de que se finalice las confirmaciones del siguiente clúster de bloques y el resultado es que reduce el tiempo de generación de bloques; Sealevel, Se encarga de ejecutar aplicaciones descentralizadas(DApss) o Smart contracts de forma simultánea o paralela usando todo el potencial disponible de la red (CPU y GPU); Pipelining, se encarga procesar de forma secuencial y simultánea los eventos o estados de los bloques. A medida que sucede un evento específico, va ejecutando otros paso a paso y agrega agilización en la producción de bloques en red; Cloudbreak, realiza una base de datos y la distribuye en dispositivos de almacenamiento de forma secuencial de esta forma los nodos puede realizar una lectura y escritura de los datos de forma óptima; Archivers, almacena y replica los datos generados por los validadores y los guarda para que todos los nodos de red los utilicen cuando sea necesario.
En conclusión y de acuerdo al trilema blockchain, Solana se centra en ofrecer mayor escalabilidad y descentralización, pero -como sucede en toda innovación- ha presentado inconvenientes en su red lo que generó un enorme descontento en la comunidad de Solana.
Espero que este análisis les resulte útil para comprender el funcionamiento de Solana.Hasta la próxima entrega.
Equipo
Referencias
https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274
https://medium.com/solana-labs/pipelining-in-solana-the-transaction-processing-unit-2bb01dbd2d8f
https://medium.com/solana-labs/sealevel-parallel-processing-thousands-of-smart-contracts-d814b378192
https://chaindebrief.com/introduction-to-solana/
https://genesisblockhk.com/what-is-solana/
https://www.profesionalreview.com/2021/07/10/que-es-solana/
https://www.iproup.com/economia-digital/27978-que-solana-y-por-que-es-la-criptomoneda-promesa
https://newsletter.edgeandpace.com/p/solana-the-new-kid-on-the-blockchain
https://es.finance.yahoo.com/noticias/navegador-web-opera-anuncia-integraci%C3%B3n-133207677.html
Congratulations @pynomiems! You received a personal badge!
You can view your badges on your board and compare yourself to others in the Ranking
Check out the last post from @hivebuzz:
Support the HiveBuzz project. Vote for our proposal!