Flow es una blockchain creada por Dapper Labs que pretende facilitar a los desarrolladores la creación de aplicaciones y negocios descentralizados. Flow utiliza un diseño de arquitectura de roles múltiples para escalar la red en lugar de la fragmentación. Una de las razones fundamentales por las que Dapper Labs optó por alejarse de Ethereum y construir su propia blockchain de propósito general fue para evitar la complejidad de la fragmentación. Flow afirma que su estrategia de escalado sin fragmentación mejorará la velocidad y el rendimiento de la red, a la vez que mantiene los estándares de composabilidad y un entorno compatible con ACID para los desarrolladores.
Historia
Dapper Labs se fundó en 2018 y tiene su sede en Vancouver, BC.
A partir de otoño de 2019, el equipo de Dapper Labs ha estado construyendo la versión de producción de la red Flow. Esto incluye implementaciones completas de la lógica del protocolo para cada uno de los diversos tipos de nodos, la integración del algoritmo de consenso Hot Stuff y la implementación de las diversas bibliotecas criptográficas y firmas que requiere el protocolo. El equipo lanzó la Mainnet Beta de Flow en mayo, que soporta experiencias de usuario de producción para nosotros y sus socios.
Para la Beta Mainnet el token nativo (FLOW) existía en la red para instanciar las cuentas de usuario y proporcionar un saldo mínimo para que el usuario realizara sus primeras transacciones. En esta fase, todas las tarifas eran una pequeña cantidad nominal. El desarrollo futuro incluirá la integración de épocas (la posibilidad de que nuevos nodos se unan y abandonen el protocolo), el arbitraje completo de desafíos por parte de los nodos de consenso, mejoras en el rendimiento del protocolo y actualizaciones del lenguaje de programación (Cadence).
Uso del token
El token FLOW es el token nativo de la cadena de bloques necesario para apostar en la plataforma, así como la moneda en la que se pagan las recompensas de las apuestas. Además, se requieren pequeñas cantidades de token FLOW para pagar las tasas de transacción y se requiere un saldo mínimo reservado para pagar el almacenamiento en la red.
Flow es un sistema de prueba de apuestas, por lo que las operaciones de los nodos validadores requieren tokens FLOW. Los tokens tendrán múltiples usos, entre ellos
- Estacas
- Recompensas de apuestas
- Tasas de gas/transacción
- Depósitos de almacenamiento de cuentas
- Garantía para stablecoin y otros productos defi de terceros
- Participación en la futura gobernanza del protocolo y en el desarrollo del ecosistema
Tecnología
Hay cuatro pilares en la base de la blockchain de Flow:
- Arquitectura multifuncional
- Programación orientada a los recursos
- Ergonomía del desarrollador
- Incorporación del consumidor
Arquitectura multifuncional
El diseño de Flow es único, ya que permite a la red escalar para servir a miles de millones de usuarios sin fragmentar o reducir la descentralización del consenso. Flow canaliza el trabajo de un minero o validador de la cadena de bloques a través de cuatro funciones diferentes que requieren una puesta en juego; una separación de preocupaciones que reduce significativamente el esfuerzo redundante. Las épocas reflejarán los planes esbozados en este documento – Incentivos en una Blockchain de múltiples roles mientras que el arbitraje de retos en Flow se describe en este documento técnico – Verificación de la ejecución.
Programación orientada a los recursos
Los contratos inteligentes en Flow están escritos en Cadence, un nuevo lenguaje de programación para criptoactivos y aplicaciones que se basa en los conceptos de la programación orientada a recursos que prioriza la facilidad de uso para los desarrolladores. Utilizando Cadence, los desarrolladores podrán crear artefactos digitales únicos y duraderos cuya propiedad es rastreada por el propio lenguaje. Flow prevé que este diseño permitirá una nueva y potente categoría de aplicaciones. Los desarrolladores pueden probar Cadence en el Flow Playground.
Ergonomía del desarrollador
Flow incluye una serie de características informadas por la experiencia de Dapper Labs en la construcción de algunas de las dapps más utilizadas de todos los tiempos, incluyendo CryptoKitties. Por ejemplo, Flow permite contratos inteligentes actualizables para permitir a los desarrolladores desplegar contratos inteligentes en la red principal en un «estado beta», donde el código puede ser actualizado de forma incremental por los autores originales. Los usuarios serán alertados de la naturaleza inacabada de este código, y pueden elegir esperar hasta que el código esté finalizado antes de interactuar con él. Una vez que los autores están seguros de que su código es seguro, pueden liberar irrevocablemente su control sobre el contrato, y entonces permanece inmutable en la blockchain de Flow para siempre. Esto equilibra las mejores prácticas de desarrollo de productos (iteración temprana y refinamiento) con los beneficios de los contratos inteligentes de código inmortal y sin confianza.
Incorporación del consumidor
El modelo de cuenta nativa en Flow está diseñado para proporcionar una serie de beneficios para mejorar la experiencia de todos los usuarios, desde los principiantes hasta los expertos. Por ejemplo, hay ganchos integrados en el protocolo para permitir flujos de recuperación de cuentas para los usuarios que pierden sus claves y un soporte opcional multi-sig con la capacidad de ciclar frecuentemente las claves para casos de uso avanzado.
Visión general de la pila tecnológica
Todo el software del nodo está escrito actualmente en el lenguaje de programación Go. Esto incluye el almacenamiento básico (BadgerDB), la red (libp2p), el algoritmo de consenso (HotStuff auto implementado), el almacenamiento de la ejecución (árbol Merkle binario auto implementado), el entorno de ejecución (Cadence) y todos los componentes de apoyo.
El código base se divide generalmente en secciones relacionadas con cada uno de los roles: Acceso, Recogida, Consenso, Ejecución y Verificación, con la excepción de los componentes compartidos, como el almacenamiento en caché, la red y la criptografía.
El lenguaje de programación de la cadena de bloques Flow, Cadence, vive en un repositorio separado y se mantiene por separado.
Gobierno
La Blockchain de Flow se gobierna de una manera progresivamente descentralizada en la que ninguna parte tiene una influencia excesiva sobre la dirección de la red. El Ecosistema Flow toma las decisiones que afectan al protocolo técnico central de la Flow Blockchain, que seguirá un camino similar a las prácticas de desarrollo de código abierto generalmente aceptadas:
- Los usuarios pueden presentar propuestas para modificar la Blockchain de Flow en el repositorio GitHub de Flow. El repositorio GitHub de Flow está actualmente bajo el control del Equipo Central.
- Los miembros del Ecosistema Flow discuten una propuesta presentada; durante este proceso, cualquiera puede proponer modificaciones a la propuesta originalmente presentada
- Finalmente, se determina si existe un consenso de la comunidad para implementar una propuesta determinada
- Si y una vez que se forma el consenso de la comunidad en torno a una propuesta, el Equipo Central autoriza e implementa los cambios en un conjunto de definiciones de protocolo e implementaciones de software compatibles para que puedan ser desplegados por los Validadores que mantienen la Blockchain de Flow. Los Validadores eligen qué versión de protocolo utilizar.
Detalles de la gobernanza en la cadena
Los mecanismos de gobierno en la cadena se están formando junto con la comunidad de Flow y aún no se han finalizado. Los titulares de los tokens tendrán derecho a votar sobre las propuestas presentadas por el órgano de gobierno.