Solana es un protocolo de blockchain de capa base pública que optimiza la escalabilidad. Su objetivo es proporcionar una plataforma que permita a los desarrolladores crear aplicaciones descentralizadas (dApps) sin necesidad de diseñar en torno a cuellos de botella de rendimiento. Solana cuenta con un nuevo sistema de marcas de tiempo llamado Proof-of-History (PoH) que permite ordenar automáticamente las transacciones. También utiliza un algoritmo de consenso Proof of Stake (PoS) para ayudar a asegurar la red. Otros objetivos de diseño son los tiempos de liquidación inferiores a un segundo, los bajos costes de las transacciones y la compatibilidad con todos los lenguajes de contratos inteligentes compatibles con LLVM.
Historia
Los orígenes de Solana se remontan a finales de 2017, cuando su fundador, Anatoly Yakovenko, publicó el borrador de un libro blanco en el que se detallaba una nueva técnica de mantenimiento del tiempo para los sistemas distribuidos llamada Proof of History (PoH). En blockchains como Bitcoin y Etheruem, una de las limitaciones de la escalabilidad es el tiempo necesario para alcanzar un consenso sobre el orden de las transacciones. Anatoly creía que su nueva técnica podría automatizar el proceso de ordenación de las transacciones para las cadenas de bloques, proporcionando una pieza clave que permitiría a las redes de criptomonedas escalar mucho más allá de sus capacidades en ese momento.
Más tarde, Anatoly se asoció con su antiguo colega de Qualcomm, Greg Fitzgerald, para construir una red de blockchain única en Rust que utilizaba PoH como «reloj interno». Los dos publicaron la primera red de prueba interna (con demo) y la versión oficial del libro blanco del proyecto en febrero de 2018. Otro antiguo cohorte de Qualcomm, Stephen Akridge, sugirió que descargar la verificación de firmas a los procesadores gráficos podría aumentar aún más el rendimiento de las transacciones (es decir, la escalabilidad). Anatoly reclutó a Greg y Stephen, y a otras tres personas para fundar la empresa que acabaría convirtiéndose en Solana Labs. El equipo fundador incluía a antiguos ingenieros de Apple, además de los veteranos de Qualcomm. Inicialmente llamaron al proyecto Loom, pero más tarde lo renombraron como Solana para evitar la confusión con la solución de escalado de capa 2 de Ethereum, Loom Network.
Solana Labs comenzó a recaudar fondos para construir su nueva cripto red en el segundo trimestre de 2018. Entre abril de 2018 y julio de 2019, el equipo recaudó algo más de 20 millones de dólares en varias ventas privadas de tokens. Anunciaron las ventas como una única Serie A a finales de julio de 2019. El esfuerzo de recaudación de fondos fue paralelo al trabajo de Solana en el protocolo, que pasó por varias fases de testnet con permiso antes de que el equipo anunciara su testnet público incentivado, llamado Tour de SOL, en el tercer trimestre de 2020. La primera etapa de Tour de SOL se puso en marcha en febrero de 2020, y sigue funcionando junto con la versión Beta de Mainnet de Solana en la actualidad.
Solana se lanzó en Mainnet Beta en marzo de 2020, poco después de recaudar 1,76 millones de dólares en una subasta pública de tokens organizada en CoinList. La red beta del proyecto presentaba capacidades de transacción básicas y soporte de contratos inteligentes. Pero no incluía ninguna recompensa de estacas, ya que Solana todavía estaba determinando su calendario de emisión en curso. El plan actual es pasar de su actual fase beta a una versión más preparada para la producción a finales de 2020 o principios de 2021.
Por el momento, Solana Labs sigue siendo un colaborador principal de la red Solana, mientras que la Fundación Solana ayuda a financiar el desarrollo en curso y los esfuerzos de construcción de la comunidad.
Contribuyentes
- Anatoly Yakovenko
- Eric Williams
- Greg Fitzgerald
- Raj Gokal
- Solana Foundation
- Solana Labs
Uso del token
Solana tiene un token nativo llamado sols (SOL). Los soles fraccionarios se llaman lamports en honor al ganador del premio Turing, Leslie Lamport. Un lamport equivale a 0,0000000000582 sol.
Los SOLs tienen dos usos principales dentro de la red.
- Estacar: Los usuarios pueden apostar su SOL directamente en la red o delegar su posesión a un validador activo para ayudar a asegurar la red. A cambio, los apostadores recibirán recompensas de inflación. Solana aún no ha habilitado las recompensas por inflación, pero tiene la intención de desbloquear la inflación a finales de 2020 o principios de 2021.
- Tasas de transacción: Los usuarios pueden usar SOL para pagar las tarifas por enviar transacciones o ejecutar contratos inteligentes (interactuar con aplicaciones).
Lanzamiento y distribución inicial de tokens
El equipo de Solana distribuyó tokens en cinco rondas de financiación diferentes, cuatro de las cuales fueron ventas privadas. Estas ventas privadas comenzaron en el primer trimestre de 201 y culminaron en una Serie A de 20 millones de dólares liderada por Muliticoin Capital, anunciada en julio de 2019. Otros participantes fueron Distributed Global, BlockTower Capital, Foundation Capital, Blockchange VC, Slow Ventures, NEO Global Capital, Passport Capital y Rockaway Ventures. Las firmas recibieron tokens SOL a cambio de sus inversiones, aunque no se reveló el número de tokens asignados a los inversores. Solana anunció que el nuevo capital se destinaría a la ingeniería y la gestión de proyectos. Vea más detalles aquí.
En 2020, Solana recaudó su cuarta venta privada (apodada Venta Estratégica) y celebró una venta de subasta pública organizada por CoinList, que trajo otros ~4 millones de dólares combinados. Los tokens restantes del suministro inicial de SOL se destinarán a los miembros del equipo de Solana Labs, a la Fundación Solana (para ayudar a financiar el desarrollo y equilibrar el poder de voto de los validadores), y a una «reserva comunitaria» (también gestionada por la Fundación Solana) para financiar las iniciativas de la comunidad y los desarrolladores de aplicaciones.
La distribución inicial de los tokens SOL es la siguiente:
- 15,86% a los inversores de la Ronda Semilla
- 2,63% a los inversores de la Venta Fundacional
- 5,07% a los inversores de la venta de validadores
- 1,84% a los inversores de la Venta Estratégica
- 1,6% a los inversores de la subasta pública
- 12,5% a los miembros del equipo
- 12,5% a la Fundación Solana
- 38% al fondo de reserva comunitario (gestionado por la Fundación Solana)
Mecanismo de consenso
El mecanismo de consenso de Solana basado en Proof of Stake (PoS), específicamente llamado Tower BFT, aprovecha la técnica de Proof of History (PoH) de la red como reloj antes del consenso para reducir la sobrecarga de comunicación y la latencia.
Cada vez que un validador vota sobre una horquilla concreta, la votación se restringe a un periodo fijo de hashes llamado slot. La configuración actual de la red tiene unos 400 milisegundos (ms) para un slot. Cada 400 ms, la red tiene un punto potencial de retroceso, pero cada voto subsiguiente duplica la cantidad de tiempo que la red tendría que paralizar antes de poder desenrollar ese voto. En resumen, los votos secundarios hacen que sea mucho más difícil deshacer las transacciones ejecutadas en una ranura concreta. Por lo tanto, un bloque con varios votos tiene más posibilidades de seguir formando parte de la cadena de forma permanente.
Como ejemplo, cada validador ha votado 32 veces en los últimos 12 segundos. El voto de hace 12 segundos tendrá un tiempo de espera de 2³² ranuras o aproximadamente 54 años. Efectivamente, este voto nunca será revertido por la red. Mientras que la votación más reciente tiene un tiempo de espera de dos ranuras o unos 800ms. A medida que se añaden nuevos bloques al libro mayor, los bloques antiguos tienen cada vez más probabilidades de ser confirmados, ya que el número de ranuras a las que se comprometen los votos antiguos se duplica con cada ranura. La Torre BTF ofrece la finalidad una vez que dos tercios de los validadores de la red han votado en algún orden de eventos. Una vez que las transacciones se han finalizado, no pueden revertirse.
La red principal de Solana está planeada para operar en una prueba de compra delegada (dPoS), en la que los poseedores de tokens pueden participar en el proceso de producción de bloques y ganar recompensas, ya sea apostando el token y convirtiéndose ellos mismos en validadores, o delegando sus tokens a validadores de su confianza.
Cualquier persona puede convertirse en validador en la red y contribuir a la seguridad general del protocolo. No hay un requisito mínimo de apuesta, aunque el proceso de selección del líder (qué validador puede proponer el siguiente bloque) está ponderado por la apuesta. La arquitectura de la red está diseñada para escalar con el ancho de banda y el hardware, utilizando núcleos de GPU para paralelizar la ejecución y reducir los tiempos de verificación. Debido a los requisitos de la GPU, las expectativas de hardware son ligeramente superiores a las de algunos protocolos. Los costes estimados para una configuración satisfactoria son de unos 5.000 dólares.
Tecnología
El blockchain de alto rendimiento de Solana se construye utilizando las ocho innovaciones:
- Prueba de la historia: Un reloj antes del consenso
- Torre BFT: Una versión optimizada por PoH de la PBFT
- Turbina: Un protocolo de propagación en bloque
- Gulfstream: Un protocolo de reenvío de transacciones sin mempool
- Sealevel: El primer tiempo de ejecución de contratos inteligentes en paralelo del mundo
- Pipelining: Unidad de procesamiento de transacciones para la validación
- Cloudbreak: Base de datos de cuentas de escala horizontal
- Archivadores: Almacenamiento de libros de contabilidad distribuidos
Prueba de la historia: Un reloj antes del consenso
El mayor reto en las redes distribuidas es ponerse de acuerdo sobre la hora y la secuencia en que ocurrieron los eventos, ya que los nodos de la red no pueden confiar en la marca de tiempo de los mensajes recibidos de otros nodos. Solana intenta resolver esto con Proof of History (PoH) creando una fuente de tiempo criptográficamente segura en toda la red. La Prueba de la Historia es una Función de Retraso Verificable (VDF) de alta frecuencia, que requiere un número específico de pasos secuenciales para ser evaluada, pero produce una salida única que puede ser verificada públicamente. Esto significa que los nodos pueden crear el siguiente bloque sin tener que coordinarse primero con toda la red porque pueden confiar en la marca de tiempo y el orden de los mensajes que han recibido. El resultado es una reducción de la sobrecarga de consenso.
Torre BFT: Una versión de PBFT optimizada para PoH
Sobre Proof of History, Solana ejecuta su mecanismo de consenso llamado Tower BFT, que es un algoritmo similar a PBFT que aprovecha el reloj sincronizado habilitado por PoH para lograr el consenso en las transacciones de la red. Cada vez que un nodo de la red vota por una bifurcación determinada, se compromete a un cierto período de tiempo en el que no puede votar por una bifurcación contraria. Este periodo en el que están bloqueados crece exponencialmente a medida que continúan votando en la misma bifurcación hasta que alcanzan un bloqueo máximo de 32 votos para la misma bifurcación. Los nodos de la red sólo recibirán recompensas de inflación cuando alcancen este bloqueo máximo de votos; por lo tanto, les interesa seguir votando por la bifurcación que creen que la supermayoría de la red está votando.
Turbina: Un protocolo de propagación de bloques
Solana transmite bloques (comunica bloques entre validadores) independientemente del consenso, utilizando un protocolo separado pero conectado llamado Turbine. Turbine se basa en gran medida en BitTorrent y está optimizado para la transmisión. A medida que se transmite un bloque, se divide en pequeños paquetes junto con códigos de borrado, y luego se distribuye a través de un gran conjunto de pares aleatorios.
Gulf Stream: Protocolo de reenvío de transacciones sin mempool
En una red de alto rendimiento, la gestión del mempool presenta una nueva clase de problemas cuando se trata del coste de filtrar y mantener un número creciente de transacciones no confirmadas. Gulf Stream funciona trasladando el almacenamiento en caché y el reenvío de transacciones al borde de la red. Dado que cada validador conoce el orden de los próximos líderes (productores de bloques) en la arquitectura Solana, los clientes y validadores reenvían las transacciones al líder esperado con antelación. Esto permite a los validadores ejecutar las transacciones con antelación, reducir los tiempos de confirmación, cambiar de líder más rápidamente y reducir la presión de memoria sobre los validadores por el conjunto de transacciones no confirmadas. Una consecuencia de conocer a los líderes con antelación es un mayor riesgo de colusión entre validadores, ya que la red les da más tiempo para coordinarse. Los rápidos tiempos de bloqueo de Solana podrían mitigar la oportunidad de colusión porque limita el tiempo permitido para planificar un ataque.
Sealevel: Tiempo de ejecución de contratos inteligentes paralelos
Solana construyó Sealevel, un motor de procesamiento de transacciones hiperparalizado diseñado para escalar horizontalmente a través de GPUs y SSDs. La mayoría de los otros blockchains son ordenadores de un solo hilo. En cambio, Solana puede soportar la ejecución paralela de transacciones (además de la verificación de firmas) en un solo fragmento. La solución a este problema se basa en gran medida en una técnica de controladores del sistema operativo llamada scatter-gather. Las transacciones especifican por adelantado qué estado leerán y escribirán mientras se ejecutan. Sealevel es capaz de encontrar las transacciones que no se solapan en un bloque y ejecutarlas en paralelo (lo que se denomina ejecución paralela), al tiempo que optimiza la forma en que se programan las lecturas y las escrituras en el estado a través de una matriz de unidades SSD RAID 0. Sealevel es una VM que programa las transacciones, pero no ejecuta realmente las transacciones en la VM. En su lugar, Sealevel entrega las transacciones para que se ejecuten en el hardware de forma nativa utilizando el código de bytes llamado Berkeley Packet Filter (BPF).
Pipeline: Una unidad de procesamiento de transacciones para la optimización de la validación
El proceso de validación de transacciones en la red Solana hace un uso extensivo de una optimización común en el diseño de CPUs llamada pipelining. El pipelining es un proceso apropiado cuando hay un flujo de datos de entrada que debe ser procesado por una secuencia de pasos y hay un hardware diferente responsable de cada paso. En la red Solana, el mecanismo de pipelining, la Unidad de Procesamiento de Transacciones (TPU), progresa a través de la obtención de datos en el nivel del núcleo, la verificación de firmas en el nivel de la GPU, la banca en el nivel de la CPU y la escritura en el espacio del núcleo. Cuando la TPU comienza a enviar bloques a los validadores, ya ha obtenido el siguiente conjunto de paquetes, ha verificado sus firmas y ha comenzado a acreditar los tokens. La paralelización de la GPU en este proceso de cuatro etapas permite que la TPU Solana funcione con un alto rendimiento.
Cloudbreak: Base de datos de cuentas de escala horizontal
Los métodos para escalar el cómputo utilizando estas otras innovaciones podrían provocar cuellos de botella en la memoria. La memoria se utiliza para llevar el control de las cuentas y puede tener dificultades para mantener el rendimiento debido a la falta de tamaño de la memoria y a las velocidades de acceso limitadas. Cloudbreak fue diseñado para optimizar las lecturas y escrituras concurrentes repartidas en una configuración RAID 0 de discos SSD. Cada disco adicional añade capacidad de almacenamiento disponible para los programas en cadena, al tiempo que aumenta el número de lecturas y escrituras concurrentes que los programas pueden realizar al ejecutarse. Esto va de la mano con el diseño de las transacciones de Solana, que permite la obtención previa de las cuentas desde el disco y la preparación del tiempo de ejecución, permitiendo también que los nodos de la red comiencen a ejecutar las transacciones antes de que se codifiquen en un bloque. Todo ello tiene como objetivo ayudar a reducir los tiempos de bloque y la latencia de confirmación en la red.
Archivadores: Almacenamiento del libro mayor distribuido
El almacenamiento y el mantenimiento de los datos en una red de alto rendimiento es probable que se convierta en un vector principal de centralización. Si los costes de almacenamiento son muy elevados, sólo las entidades bien financiadas podrán actuar como validadores y participar en el consenso. En Solana, el almacenamiento de datos se descarga de los validadores a una red de nodos llamados archivadores. Los archivadores no participan en el consenso. El historial del estado se divide en muchas partes y códigos de borrado. Los archivadores almacenan pequeñas partes del estado. Cada cierto tiempo, la red pedirá a los Archivers que demuestren que están almacenando los datos que se supone que deben almacenar. Solana aprovecha las Pruebas de Replicación (PoRep), que se han tomado prestadas en gran medida de Filecoin. Los archivadores no están implementados actualmente y están en la hoja de ruta a largo plazo. Se implementarán en función de la demanda de datos de la red.
Gobernanza
La Fundación Solana, una organización suiza sin ánimo de lucro, es la propietaria de la propiedad intelectual de Solana y ayudará a establecer la dirección general de desarrollo de la red junto con Solana Labs. El código es de código abierto, lo que permite a los desarrolladores de la comunidad contribuir y dar su opinión sobre las actualizaciones propuestas del protocolo. Solana Labs seguirá siendo uno de los principales colaboradores del protocolo y ayudará a proponer y apoyar las actualizaciones y nuevas funciones de la red.
Detalles de la gobernanza en la cadena
Solana no tiene planes de gobierno en la cadena por el momento. Tiene un sistema de prueba de participación delegada (DPoS) que permite a los titulares de tokens seleccionar el conjunto de validadores. Sin embargo, el proyecto no tiene una hoja de ruta para un sistema de votación ponderada de tokens.