Skip to content
This repository has been archived by the owner on Jun 29, 2023. It is now read-only.

Latest commit

 

History

History
69 lines (39 loc) · 5.01 KB

What-is-Celo.md

File metadata and controls

69 lines (39 loc) · 5.01 KB

What is Celo?

Motivation

6.6 billion people, or roughly 83% of the world's population, have access to mobile phones. With web3 on it's way to becoming mainstream, future developers will need a way to easily create applications that integrate key features such as being able to send payments to someone's phone number, receiving payments before an account is created by the recipient, etc.

Introduction

Celo is a Proof of Stake Layer-1 EVM compatible blockchain, optimized for DeFi, which is designed to be mobile-first and climate friendly. With it's mobile-first design, it aims to bring the benefits of DeFi to the 6 billion+ market of smartphones in the world.

Being fully EVM compatible, developers can port their Solidity dApps to Celo easily, just by changing the RPC URL during deployment.

Celo also uses an ultralight client, which utilizes Zero-Knowledge proofs, to allow for syncing with the Celo blockchain extremely fast. The ZKP allows for quick verification of the chain syncing computation, without having to sync the entire chain locally.

The Celo Blockchain and Celo Core Contracts (a set of smart contracts deployed by the Celo team) form together the Celo Protocol. Let's take a deeper look at what that implies.

Celo Protocol

Consensus Algorithm

Celo uses a Proof of Stake consensus algorithm, which allows for cheap and fast transactions on the network. It is fault-tolerant upto 66%, i.e. it can handle upto 1/3rd of the network validators being malicious.

Anyone can stake their CELO tokens and earn rewards by participating in validator elections and governance proposals. Validators also earn additional rewards in Celo Dollars (cUSD).

Stable Cryptocurrencies

Celo provides native support for a family of stablecoins that track the value of fiat currencies. Currently, it supports the Celo Dollar (cUSD) and the Celo Euro (cEUR).

The CELO token, and other assets like BTC and ETH, serve as collateral for these stablecoins. These stablecoins can easily be traded for the CELO token through Celo's own reserve contracts that allow users to mint new cUSD and cEUR by sending CELO to the contract, or to burn cUSD and cEUR to redeem CELO tokens.

But, the interesting part comes from the fact that on the Celo blockchain, you can pay gas fees in these stablecoins. A user can perform any transaction and pay for gas with cUSD or cEUR, without needing to hold any CELO tokens in their wallet for gas.

On-Chain Governance

Unlike Ethereum, where on-chain upgrades happen through forking and community consensus on which fork to follow, Celo uses an on-chain governance mechanism for aspects of the protocol that reside in the Celo Core Contracts and for a number of parameters used by the Celo blockchain.

This includes things like upgrading the core smart contracts, adding new stablecoins, changing how validators are elected, etc.

Proposals in the governance contract are selected and voted on by CELO token holders, and the governance contract can execute the relevant code if the proposal passes.

Mobile-first Identity Layer

Celo offers a lightweight identity layer that allows users to identify and securely transact with other users via their phone numbers. Celo Wallet enables payments directly to users listed in the devices' contact list.

A user can request to link their phone number to their address through the Attestations contract. The contract uses a decentralized source of randomness through Oracles to pick a few validators who produce and send signed secret messages over SMS. The user then submits these back to the Attestations contract, and if successfully verified, adds a mapping from the phone number to the user's account.

Rich Transactions

Compared to Ethereum, Celo provides a few advantages in how it deals with transactions.

Firstly, the CELO token, while being the native token of the Celo blockchain, is also an ERC-20 token. This means no more wrapped assets! No more WETH like on Ethereum, because ETH does not behave as an ERC-20 token. This simplifies the life of application developers.

Secondly, as mentioned before, transaction fees on Celo can be paid using the stablecoins.

Thirdly, an Escrow contract allows users to send payments to phone numbers who don't yet have an account on the Celo blockchain. Payments are sent to the Escrow contract, and can be withdrawn by the intended recipient after they create an account and link their phone number to their address.

All these features allow for an easier on-ramp to Celo and also makes life easier for application developers.