Avançar para o conteúdo principal

Governança

Visão geral da governança do Celo e como a rede é gerida utilizando o processo de proposta das partes interessadas.


O que é Governança Celo?

O Celo utiliza um mecanismo formal de governo em cadeia para gerenciar e atualizar o protocolo, como para atualizar contratos inteligentes, adicionar novas moedas estáveis ou modificar a alocação de ativo alvo de reserva. Todas as mudanças devem ser acordadas pelos titulares do CELO. Um modelo de quórum é utilizado para determinar o número de votos necessários para a aprovação de uma proposta.

Processo de proposta Stakeholder

As alterações são gerenciadas por meio do contrato inteligente Governance Celo. Este contrato atua como um "owner" para fazer modificações em outros contratos inteligentes de protocolo. Tais contratos inteligentes são considerados governáveis. O contrato de Governance é governável e é propriedade de si mesma.

O procedimento de mudança acontece nas seguintes fases:

  1. Proposta
  2. Aprovação
  3. Referendo
  4. Execução

Visão geral das Fases

Cada proposta começa na Proposal Queue onde pode receber votos positivos para mover para frente na fila em relação a outras propostas na fila. Os autores de propostas devem trabalhar para encontrar membros da comunidade para votar em suas propostas (os proponentes também podem votar em suas propostas). Até três propostas do topo da fila são depositadas na fila e promovidas automaticamente para a fase de aprovação por dia. Qualquer proposta que permaneça na fila durante 4 semanas expirará.

  • Approval dura 1 dia (24 horas), durante o qual a proposta deve ser aprovada pelo(s) Aprovador(es). As propostas aprovadas são promovidas na fase de referendo.
  • Referendum dura cinco dias, durante os quais proprietários de Locked Celo votam ou não a favor da proposta. Propostas que satisfazem o quórum necessário são promovidas para a fase de execução.
  • Execution dura até três dias, durante os quais qualquer pessoa poderá desencadear a execução da proposta.

Proposta

Qualquer usuário pode apresentar uma Proposta para o contrato inteligente Governance, juntamente com um pequeno depósito da CELO. Este depósito é necessário para evitar propostas de spam e é reembolsado ao proponente se a proposta chegar à fase de aprovação. Uma proposta consiste em uma lista de transações, e uma URL de descrição onde os eleitores podem obter mais informações sobre a proposta. Recomendamos que essa descrição do URL aponte para um documento CGP no repositório de celo-org/celo-proposals. Os dados da transação na proposta incluem o endereço de destino, dados e valor. Se a proposta passar, as transações incluídas serão executadas pelo contrato de Governance.

As propostas apresentadas são adicionadas à lista de propostas. Enquanto uma proposta estiver nesta fila, os eleitores podem usar seu Locked Celo para upvote na proposta. Uma vez por dia, as três principais propostas, por peso do Locked Gold, são enfileiradas e transferidas para a fase de aprovação. Note que se houver menos de três propostas na fila, todas podem ser desenfileiradas mesmo que elas não tenham votos a favor. Se uma proposta está na fila há mais de 4 semanas, expira e o depósito é perdoado.

Aprovação

Todos os dias as três principais propostas à frente da fila são postas à frente e mudam para a fase de aprovação. Neste momento, os proponentes iniciais são elegíveis para recuperar o seu depósito de Locked Gold. Nesta fase, a proposta tem de ser aprovada pelo aprovador. O aprovador é inicialmente 3 de 9 endereços de multi-assinatura mantidos por indivíduos selecionados pela Fundação Celo e passará a uma DAO no futuro. A fase de aprovação dura 1 dia e se a proposta não for aprovada nesta janela, é considerado expirado e não passa para a etapa "Referendum".

Referendo

Uma vez terminada a fase de aprovação, as propostas aprovadas são graduadas para a fase do referendo. Qualquer usuário pode votar "sim" ou abster-se nestas propostas. O peso do seu voto é determinado pelo peso do seu Locked Gold. Após término da fase de referendo, que dura cinco dias cada proposta é marcada como passada ou falhada como uma função dos votos e dos parâmetros de função de aprovação correspondente.

Para que uma proposta seja aprovada, ela deve atingir um limite mínimo de participatione um agreement:

  • Participação é a parte mínima do Locked Gold que tem de votar a favor de uma proposta para passar. Existe para evitar que as propostas passem com uma participação muito reduzida. A exigência de participação é calculada como uma parte governável da base da participação, que é uma média de movimento exponencial da participação final em propostas de governança anteriores.
  • O acordo é a parte dos votos expressos que devem ser votos "sim" para que uma proposta seja aprovada. Cada contrato e função podem definir um nível de contrato requerido. e o acordo necessário para uma proposta é o requisito máximo entre as operações que o constituem.

Execução

Propostas que se formam da fase de Referendo para a fase de Execução podem ser executadas por qualquer pessoa, Abrindo um call código de operação com os argumentos definidos na proposta originárias do contrato inteligente Governance. As propostas expiram desta fase após três dias.

Melhoria de Contrato Inteligente

  • contratos inteligentes implantados em uma blockchain como Celo são imutáveis. Para permitir melhorias, novos recursos e correções de bugs, a base de código Celo usa o padrão de atualização do Proxy. Todos os contratos de base pertencentes à governança são objeto de procuração. Assim, uma implementação de contrato inteligente pode ser atualizada usando o processo de governança padrão on-chain. ​

Atualização de riscos

『 Os contratos principais definem o comportamento crítico da rede Celo como o gerenciamento de ativos CELO e Celo Dollar ou as eleições e recompensas do validador. Erros contratuais maliciosos ou inadvertidos podem comprometer saldos de usuários ou potencialmente causar danos, irreversíveis sem uma fork de hard blockchain.

É preciso ter o maior cuidado em garantir que qualquer proposta de governança que modifique o código de contrato inteligente não quebre o sistema existente. Para esse fim, os contratos têm um processo de lançamentobem definido, o que inclui solicitar auditorias de segurança a auditores de terceiros respeitáveis.

Como Celo é uma rede descentralizada, todos os participantes da rede Celo são convidados para participar das discussões de propostas de governança no fórum .

Validador do processo de Hotfix

A cadência e a transparência do protocolo normalizado de governança on-chain tornam o documento inadequado para propostas que modificam questões que podem comprometer a segurança da rede, especialmente quando o patch revelaria um erro explorável em um dos contratos principais. Em vez disso, esse tipo de mudanças é mais adequado para o protocolo mais responsivo, e menos transparente, de hotfix.

Qualquer pessoa pode fazer uma proposta no protocolo de hotfix, submetendo o hash de sua proposta ao contrato inteligente de Governance. Se esse hash for aprovado pelo approver e por quórum de validadores, o proponente pode executar o conteúdo dessa proposta imediatamente.

Observe que isso significa que os validadores podem nem sempre saber o conteúdo da proposta em que estão votando. Revelando o conteúdo da proposta a todos os validadores pode comprometer a integridade do protocolo de hotfix como apenas um validador precisa ser malicioso para explorar a vulnerabilidade ou compartilhá-la publicamente. Ao invés disso, convencer os validadores de que o hash representa uma proposta que deve ser executada pelo protocolo hotfix, o proponente deve considerar entrar em contato com empresas de segurança conceituadas, terceiras e respeitáveis para comprovar publicamente o conteúdo da proposta.

Melhorias de Software Celo Blockchain

Algumas alterações não podem ser feitas apenas através do processo de governança em cadeia (através da proposta ou da hotfix). Exemplos incluem alterações no protocolo consensual subjacente e mudanças que resultariam em um fork duro. Quando as melhorias do software Celo Blockchain são necessárias para continuar operando corretamente na rede, um parâmetro "Minimum Client Version" está definido para indicar a versão mínima que ele exige.