Skip to main content

Descripción General de Celo

El objetivo de Celo es empoderar a cualquier persona con un teléfono inteligente en cualquier lugar del mundo para tener acceso a servicios financieros, enviar dinero a números de teléfono y pagar a comerciantes -- en una plataforma descentralizada que es operada por una comunidad de usuarios.

Para lograr esto, Celo es una pila completa de software blockchain nuevo, bibliotecas centrales que corren en esa cadena de bloques, y aplicaciones de usuario final, incluyendo una aplicación de billetera que se comunica con esa lógica.

Esta página proporciona algunos antecedentes sobre la tecnología blockchain y explora la pila de software de Celo.

Antecedentes y Conceptos Claves#

Una blockchain o red criptográfica es un término amplio utilizado para describir una base de datos mantenida por un conjunto distribuido de computadoras que no comparten una relación de confianza o posesión común. Se refiere a esta estructura como descentralizada. El contenido de la base de datos de un blockchain, o ledger, está autenticado usando técnicas criptográficas, impidiendo que sus contenidos sean añadidos, editados o eliminados, excepto de acuerdo a un protocolo operado por la red en su conjunto.

El código de la Blockchain Celo tiene ascendencia compartida con Ethereum, un software blockchain para construir aplicaciones descentralizadas de propósito general. Celo difiere de Ethereum en varias áreas importantes como se describe en las siguientes secciones. Sin embargo, hereda una serie de conceptos clave.

warning

A pesar de su similitud con Ethereum, Celo es un blockchain y protocolo completamente diferente, y los activos de Celo no pueden ser accedidos en la red Ethereum.

Las aplicaciones Ethereum se construyen utilizando contratos inteligentes. Los contratos inteligentes son programas escritos en idiomas como Solidity que producen código de byte para la Máquina Virtual de Ethereum o EVM, un entorno de ejecución. Los programas codificados en contratos inteligentes reciben mensajes y manipulan el ledger o libro principal de la cadena de bloques y se llaman en cadena.

Celo tiene una unidad nativa de contabilidad, la criptomoneda CELO, comparable a Ether en Ethereum. El leger de Celo consiste en cuentasidentificadas por una dirección. Hay dos tipos de cuentas. Las cuentas de propiedad externa tienen un saldo CELO asociado y son controladas por un usuario en posesión del par de claves público-privada asociadas. Las cuentas de contrato contienen el código y los datos de un único contrato inteligente que puede ser llamado y manipula sus propios datos almacenados.

ERC-20 es un estándar de interfaz para implementar criptomonedas o monedas como contratos, en lugar de a través del saldo de la cuenta. Para obtener información adicional sobre esto, consulte Celo para desarrolladores de Ethereum. En Celo, CELO tiene una dualidad como moneda nativa y un token compatible con ERC-20 en la cadena de bloques de Celo.

warning

Los activos de Celo existen en una cadena de bloques independiente, y no se pueden acceder a través de billeteras que se conectan a la red Ethereum. Sólo utiliza carteras diseñadas para trabajar con la red de Celo. No envíes tus activos de Celo a tu billetera Ethereum ni envíes tus activos de Ethereum a tu billetera de Celo.

Los usuarios interactúan con la cadena de bloques creando transacciones firmadas. Estas son solicitudes para hacer un cambio en el ledger. Estas pueden: transferir valor entre cuentas; ejecutar una función en un contrato inteligente y pasar argumentos (tal vez causando que otros contratos inteligentes sean llamados, actualizar su almacenamiento o transferir valor); o crear un nuevo contrato inteligente.

El blockchain se actualiza mediante un protocolo que toma el estado actual del ledger, aplica un número de transacciones a su vez, cada una de las cuales puede ejecutar código y resultar en actualizaciones al estado global. Esto crea un nuevo bloque ** que consiste en un encabezado**, que identifica el bloque anterior y otros metadatos, y una estructura de datos que describe el nuevo estado.

Para evitar ataques de denegación de servicio y asegurar la terminación de llamadas al código de contrato inteligente, la cuenta que envía una transacción paga comisiones de transacción por sus pasos de ejecución usando su propio saldo. Las transacciones especifican un máximo de gas que limita los pasos de ejecución antes de que se revierta una transacción. Un precio de gas determina el precio unitario para cada paso, y se utiliza para priorizar qué transacciones aplica la red. (En Celo las tasas de transacción pueden ser pagadas en monedas ERC y los precios del gas funcionan de forma diferente a Ethereum).

Para una explicación más detallada de Ethereum, consulte el Libro Blanco de Ethereum o su documentación.

La Pila 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. Para lograr esto, Celo adopta un enfoque de pila completa, en el que cada capa de la pila 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.

La pila de Celo está estructurada en las siguientes capas lógicas:

  • Blockchain Celo: un protocolo criptográfico abierto que permite a las aplicaciones realizar transacciones 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, la prueba de participación y la gobernanza. Estos contratos inteligentes son actualizables y gestionados por un proceso de gobierno descentralizado.
  • Aplicaciones: Aplicaciones para usuarios finales construidas en la plataforma 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 centrales 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 Celo, juntos comprenden el Protocolo Celo.

Topología de una Red 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 las máquinas que ejecutan el software Celo Blockchain no están configuradas para ser validadoras o no se eligen como estas. 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 moneda. Los nodos completos mantienen al menos el historial parcial de la cadena de bloques 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 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.

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 unos pocos 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.

El Protocolo de Celo#

El Blockchain Celo y los Contratos Principales Celo, juntos comprenden el Protocolo Celo. Este término describe tanto los servicios que proporciona la red descentralizada de Celo a las aplicaciones como la forma en que los nodos de la red cooperan para lograrlo. Esta sección introduce algunos de estos servicios.

Consenso y Prueba de Participación#

Celo es un blockchain de prueba de participación. En comparación con los sistemas de Prueba de trabajo como Bitcoin y Ethereum, esto elimina el impacto ambiental negativo y significa que los usuarios pueden realizar transacciones que son más baratas, más rápidas y cuyo resultado no se puede cambiar una vez que se completan.

Celo Blockchain implementa un algoritmo de consenso Byzantine Fault Tolerant \ (BFT ) en el que un conjunto bien definido de nodos validadores transmiten mensajes firmados entre ellos en una secuencia de pasos para llegar a un acuerdo incluso cuando hasta un tercio del total de nodos están fuera de línea, defectuosos o sean maliciosos. Cuando un quórum de validadores ha alcanzado un acuerdo, esa decisión es definitiva.

Celo utiliza un mecanismo de prueba de participación para seleccionar el conjunto de validadores para un período fijo llamado epoch. Cualquiera puede ganar recompensas bloqueando CELO y participando en las elecciones de validadores y propuestas de gobernanza. Inicialmente, el número de validadores será limitado a cien nodos elegidos por los poseedores del CELO. Los validadores ganan recompensas fijas adicionales en Celo Dólares para cubrir sus costos y su margen.

success

Hoja de ruta: Celo es pionero en un algoritmo de consenso BFT sin permiso altamente escalable que, a largo plazo, dará como resultado cambios sustanciales en el mecanismo de prueba de participación que se describe acá.

Gobernanza en Cadena#

Celo utiliza un mecanismo de gobernanza en cadena para gestionar y actualizar aspectos del protocolo que residen en los Contratos Principales del Celo, y para una serie de parámetros utilizados por el Blockchain Celo. Esto incluye operaciones como la actualización de contratos inteligentes, la adición de nuevas monedas estables, la modificación del objetivo de reserva de asignación de activos y el cambio de cómo se deciden las elecciones de validadores.

El contrato de Gobernanza se establece como “propietario” de todos los Contratos Principales de Celo. Esto permite que el protocolo lleve a cabo propuestas de gobernanza acordadas mediante la ejecución del código en el contexto del contrato de gobernanza. Las propuestas son seleccionadas para su consideración y votadas por los poseedores de CELO utilizando un voto ponderado basado en el mismo compromiso CELO bloqueado utilizado para votar para elegir validadores.

Sincronización Ultraligera#

Celo proporciona una sincronización extremadamente rápida y segura para permitir que los clientes ligeros comiencen a rastrear el estado actual del ledger del blockchain Celo casi inmediatamente. Esto significa que incluso usuarios de billeteras con alta latencia, bajo ancho de banda o tarifas de datos de alto costo pueden usar Celo.

En Ethereum, verificar si los datos recibidos de un nodo completo no confiable realmente representan el estado actual de una cadena de bloques requiere obtener cada cabecera de bloque producida para confirmar que forman una cadena criptográficamente segura. Una consecuencia de Celo usando un algoritmo de consenso BFT es que puede hacer esa verificación mediante la construcción de una cadena sólo de cambios en el conjunto de validadores, no cada bloque individual.

success

Hoja de ruta: El rendimiento de sincronización se mejorará aún más con la agregación de firmas de BLS y el sucinto conocimiento cero, a través de zk-SNARKs.

Incentivos para la Operación de Nodos Completos#

En Ethereum, hay pocos incentivos para correr un nodo completo que no esté minando. Pocos nodos sirven a clientes ligeros, y esto resulta en una mala experiencia para las billeteras móviles.

Celo introduce un esquema que incentiva a los usuarios a operar nodos regulares. Los clientes ligeros pagan comisiones de transacción a nodos completos. Los clientes incluyen en cada transacción la dirección de un nodo que, cuando la transacción es procesada, recibe el honorario. Mientras que un nodo completo proporciona otros servicios por los que no reciben ningún cargo específico, se espera que al no atender estas peticiones los clientes busquen otros nodos completos que lo hacen, quién recibirá las comisiones cuando la próxima vez hagan una transacción.

Dado que los clientes ligeros no necesitan confiar en los nodos completos, ya que pueden verificar su trabajo, esto también proporciona la 'permissionless on-ramp' para que los usuarios reciban CELO o Celo Dollars sin tenerlo ya que falta en otras redes de prueba de participación.

Criptomonedas Estables#

Celo habilita una familia de monedas estables que rastrean el valor de cualquier activo, incluyendo monedas fiduciarias, materias primas e incluso recursos naturales. Las monedas estables soportadas incluyen el Celo Dólar (cUSD) y el Celo Euro (cEUR), que rastrean el valor de los EE.UU. Dólar y Euro respectivamente. CELO y una canasta de otros activos incluyendo BTC y ETH sirven como garantía para estas monedas estables. Estas monedas estables son redimibles por CELO, asegurando que las transacciones pueden ocurrir de forma rápida, barata y confiable en cadena.

El mecanismo de estabilidad de Celo permite a los usuarios crear un nuevo Celo Dólar enviando a la reserva 1 dólar estadounidense por valor de CELO o quemar un Dólar de Celo redimiéndolo por un valor de 1 Dólar US en CELO.

Este mecanismo se basa en una serie de oráculos, o fuentes de información de intercambios externos a la red, para informar el CELO a las tasas de mercado del dólar estadounidense. Para minimizar el riesgo de una ejecución en la garantía de CELO cuando estos valores informados son inexactos o están desactualizados, Celo utiliza un modelo de creador de mercado de productos constantes en cadena, inspirado en [Uniswap ](https: // sistema uniswap.io/). Este mecanismo ajusta el precio de redención de CELO hasta que se produzca el arbitraje (de modo que el precio en cadena se ajusta dinámicamente hasta que la tasa ofrecida coincide con la tasa externa) o los Oráculos restablezcan el precio en cadena.

El protocolo de Celo asegura que haya suficiente colateral de CELO para canjear la cantidad de CELO en circulación a través de varias fuentes. Estos incluyen una tarifa de estabilidad aplicada a los saldos de Celo Dollar, una transferencia desde [ recompensas de época ](celo-codebase / protocol / proof -of-stake / community-fund.md # reforzando-la-reserva), más las ganancias del diferencial al interactuar con el mecanismo de creación de mercado en cadena.

Además, una reserva de respaldo de criptomonedas se mantiene fuera de la cadena. Esta reserva fuera de la cadena se administra para preservar el valor y minimizar la volatilidad al mantener una cartera diversificada de criptomonedas a través de operaciones de reequilibrio algorítmico y "completar" periódicamente la garantía CELO disponible para garantizar que exceda la cantidad requerida para canjear Celo Dollars en circulación. Las criptomonedas aprobadas, las proporciones de distribución y el período de reequilibrio están sujetos a la gobernanza en cadena.

success

Hoja de ruta: Celo prevé una serie de monedas estables que rastrean diferentes monedas fiduciarias, así como recursos naturales como los bosques. Además, una vez que los puentes entre otras cadenas y la cadena de bloques Celo están completamente desarrollados, y se produzca el comercio líquido en los intercambios descentralizados, el reequilibrio se podrá manejar de forma transparente en cadena.

Identidad Ligera#

Celo ofrece una capa de identidad ligera que permite a los usuarios de aplicaciones, incluyendo la Billetera Celo, identificar y realizar transacciones de forma segura con otros usuarios a través de los números de teléfono de sus contactos. La Billetera Celo permite pagos directamente a los usuarios listados en la lista de contactos de su dispositivo.

El contrato de Atestaciones permite a un usuario solicitar atestaciones a su número de teléfono por una pequeña tarifa. Se utiliza una fuente descentralizada segura de aleatoriedad para elegir una serie de validadores que producirán y enviarán por SMS mensajes secretos firmados que actúan como certificaciones de propiedad del número de teléfono. Luego, el usuario los envía de vuelta al contrato de atestaciones que los verifica e instala un mapeo para el número de teléfono en la cuenta del usuario.

Transacciones Enriquecidas#

Celo proporciona una serie de mejoras a las transacciones regulares conocidas por los desarrolladores de Ethereum.

El activo nativo de Celo tiene una dualidad tanto como la moneda nativa y es también una moneda ERC-20, simplificando el trabajo de los desarrolladores de aplicaciones.

warning

Los activos de Celo existen en una cadena de bloques independiente y no se puede acceder a ellos a través de billeteras que se conectan a la red Ethereum. Sólo utiliza carteras diseñadas para trabajar con la red de Celo.

En Celo, las comisiones de transacción se pueden pagar en criptomonedas estables. Un usuario que envíe Celo Dólares podrá pagar su tarifa de transacción con su saldo de Celo Dólares, por lo que no necesita tener un saldo separado de CELO para realizar transacciones. El protocolo mantiene una lista de monedas que pueden ser utilizadas para pagar las tasas de transacción. Estos contratos inteligentes implementan una extensión de la interfaz ERC-20, con funciones adicionales que permiten que el protocolo cargue y abone las tarifas de transacción.

El contrato de Depósito permite a los usuarios enviar pagos a otros usuarios que pueden ser identificados por un número de teléfono pero que aún no tienen una cuenta. Estos pagos se almacenan en este contrato y pueden ser retirados por el destinatario previsto después de crear una cuenta y dar fe de su identidad, o pueden ser reclamados por el remitente.

Las transferencias entre dos cuentas con identidades asociadas soportan comentarios cifrados de extremo a extremo. Se pasa un comentario encriptado a la clave pública de la identidad al realizar la transferencia y se incluye en un evento que se puede ubicar en el ledger del blockchain.