Ir al contenido principal

Arquitectura

Resumen del Stack de Celo, incluyendo su blockchain, contratos principales y aplicaciones.


Introducción al Stack de Celo

Celo está orientado a brindar la experiencia más simple posible para los usuarios finales, que pueden no estar familiarizados con las criptomonedas y pueden estar utilizando dispositivos de bajo costo con conectividad limitada.

Un enfoque al stack completo

Para lograr esto, Celo adopta un enfoque completo, en el que cada capa del stack se diseña teniendo en cuenta al usuario final mientras se considera a otras partes interesadas (por ejemplo, operadores de nodos en la red) involucradas en habilitar la experiencia del usuario final.

Blockchain de Celo

Un protocolo criptográfico abierto que permite a las aplicaciones realizar transacciones con este y ejecutar contratos inteligentes de forma segura y descentralizada. El código del Blockchain Celo tiene ascendencia compartida con Ethereum y mantiene la compatibilidad total con EVM para contratos inteligentes. Sin embargo, utiliza un mecanismo de consenso Tolerante a fallas bizantinas (BFT) en lugar de Prueba de Trabajo, y tiene diferentes formatos de bloque, formato de transacción, protocolos de sincronización de clientes, y mecanismos de pago y precios de gas.

Contratos Principales de Celo

Un conjunto de contratos inteligentes que se ejecutan en el Blockchain Celo que comprenden gran parte de la lógica de las características de la plataforma, incluidas las monedas estables ERC-20, las atestaciones de identidad, su prueba de participación y gobernanza. Estos contratos inteligentes son actualizables y gestionados por un proceso de gobierno descentralizado.

Aplicaciones

Aplicaciones para usuarios finales construidas en la Plataforma de Celo. La aplicación de billetera Celo, la primera de un ecosistema de aplicaciones, permite a los usuarios finales gestionar cuentas y realizar pagos de forma segura y sencilla aprovechando las innovaciones del protocolo Celo. Las aplicaciones toman la forma de software externo móvil o backend: interactúan con el Blockchain Celo para emitir transacciones e invocar el código que forma la API de los Contratos Principales de Celo. Los terceros también pueden implementar contratos inteligentes personalizados que sus propias aplicaciones pueden invocar, lo que a su vez puede aprovechar los contratos principales de Celo. Las aplicaciones pueden utilizar servicios centralizados en la nube para proporcionar alguna de sus funcionalidades: en el caso de la billetera de Celo, las notificaciones push y un feed de actividad de transacción.

El Blockchain Celo y los Contratos Principales de Celo, juntos comprenden el Protocolo Celo.

Topología de Red de Celo

La topología de una red Celo consiste en máquinas que corren el software del Blockchain Celo en varias configuraciones distintas:

Validadores

Los validadores recopilan transacciones recibidas de otros nodos y ejecutan cualquier contrato inteligente asociado para formar nuevos bloques, luego participan en un protocolo de consenso Byzantine Fault Tolerant (BFT) para avanzar en el estado de la red. Dado que los protocolos BFT pueden escalar solo a unos pocos cientos de participantes y pueden tolerar que como máximo un tercio de los participantes actúen maliciosamente, un mecanismo de prueba de participación admite solo un conjunto limitado de nodos para este rol.

Nodos completos

La mayoría de los computadores que ejecutan el software del Blockchain de Celo no están configurados para ser validadores o no se eligen como tales. Los nodos de Celo no "minan" como en las redes de Prueba de Trabajo. Su función principal es atender peticiones de clientes ligeros y reenviar sus transacciones, por las que reciben los honorarios asociados a dichas transacciones. Estos pagos crean una “rampa sin permiso” para que los individuos de la comunidad ganen monedas. Los nodos completos mantienen al menos un historial parcial del blockchain transfiriendo nuevos bloques entre sí, y puede unirse o salir de la red en cualquier momento.

Clientes ligeros

Las aplicaciones incluyendo la Billetera Celo también se ejecutarán en cada dispositivo una instancia del software del Blockchain de Celo que funciona como un "cliente ligero". Los clientes ligeros se conectan a nodos completos para realizar solicitudes de datos de cuentas y transacciones y para firmar y enviar nuevas transacciones, pero no reciben ni retienen el estado completo de la cadena de bloques.

Billetera de Celo

La aplicación de Billetera Celo es una billetera totalmente no administrada que permite a los usuarios custodiar ellos mismos sus fondos usando sus propias claves y cuentas. Todas las funciones críticas, como el envío de transacciones y la verificación de saldos, se pueden realizar sin confianza utilizando el protocolo de cliente ligero punto-a-punto. Sin embargo, la billetera utiliza algunos servicios centralizados en la nube para mejorar la experiencia del usuario cuando sea posible, por ejemplo:

  • Servicios Google Play: para precargar las invitaciones en la aplicación
  • Servicio de Notificación de Billetera Celo: envía notificaciones push al dispositivo cuando un usuario recibe un pago o solicitudes de pago
  • API del Blockchain de la Billetera Celo: proporciona una API GraphQL para consultar transacciones en la cadena de bloques por cuenta, que se utiliza para implementar un feed de actividad de los usuarios.

Cuando un usuario final descarga la billetera Celo, por ejemplo, Google Play Store, los usuarios confían en cLabs (o en la entidad que ha puesto la aplicación disponible en Play Store) y Google para entregar un binario correcto, y la mayoría de los usuarios sentirían que depender de estos servicios centralizados para proporcionar esta funcionalidad adicional vale la pena.