WEB3DEV

Anderson Campolina
Anderson Campolina

Posted on

O que é uma DAO e qual sua aplicaçāo no mundo real (com exemplo de smart contract!)

Time-de-futebol-real-no-Metaverso-1-1170x780.jpg.optimal.jpg

DAO, ou Decentralized Autonomous Organization, é uma organização descentralizada que é operada por código de computador. Em outras palavras, é uma organização sem um líder central, onde as decisões são tomadas pelos participantes através de mecanismos de votação e governança que são codificados no próprio software da DAO. A DAO é criada com base em uma cadeia de blocos, como o Ethereum, e os participantes interagem com ela através de contratos inteligentes.

Alguns dos conceitos básicos relacionados a uma DAO incluem:

Descentralização: A DAO é descentralizada porque não depende de um único indivíduo ou entidade para tomar decisões ou controlar os recursos. Em vez disso, as decisões são tomadas pelos participantes da DAO através de processos de votação e governança codificados no próprio software.

Autonomia: A DAO é autônoma porque é capaz de tomar decisões e realizar tarefas sem a intervenção humana, graças aos contratos inteligentes que controlam a organização.

Participação: Qualquer pessoa pode se tornar um participante da DAO e ter voz ativa na tomada de decisões, desde que cumpra os requisitos especificados pelos contratos inteligentes da DAO.

Transparência: As operações da DAO são totalmente transparentes, já que todas as transações são registradas na cadeia de blocos e podem ser verificadas por qualquer pessoa.

Segurança: As DAOs são seguras porque são baseadas em cadeias de blocos, que são resistentes a fraudes e alterações não autorizadas.

Ok, entendi, mas qual o verdadeiro PODER das DAOs?

Uma boa implementacao e explicacao de DAO para o mundo real, seria a criacao de um pool para contratacao de um jogador especifico. O time lancaria uma DAO em nome de algum jogador, como por exemplo, o Neymar. O "valor" do Neymar seria reprensentado entao, por milhares de tokens, vamos imaginar que o total supply seja 100000 (cem mil) tokens. Isso quer dizer, que agora podemos diluir o valor total do jogador em cem mil pequenas partes, possibilitando assim, que torcedores, que nao tem o poder aquisitivo de um time, tenha uma "fracao" do jogador Neymar. E como se Neymar fosse uma empresa, o time fosse detentor de 50% das acoes dessa empresa, e o restante dos 50% fossem diluidos em pequenas acoes para os torcedores poderem e comprar, bater no peito, e dizerem que sao, em parte, "donos" do Neymar, como jogador. Caso o Neymar melhore seu desempenho, a demanda pelos seus Tokens ira aumentar, e consequentemente seu valor, e vice-versa. Podemos dizer que no futuro, com as DAOs, poderemos dar valor a qualquer coisa que quisermos digitalizar.

Outra possibilidade, é criar sistemas de votacao para definir algo relacionado ao ativo, nesse caso, o Neymar, como por exemplo, votar se deve ou nao vende-lo para investir em algum outro jogador, ou se ele deve usar chuteira vermelha ou azul, etc.

Abaixo temos um exeplo de como seria uma DAO simples escrita em Solidy para administrar a contratacao de um jogador de futebol:

pragma solidity ^0.6.0;

// Estrutura de dados para armazenar informações sobre os participantes da DAO
struct Participant {
  address addr; // endereço Ethereum do participante
  uint votingPower; // poder de voto do participante
}

// Contrato principal da DAO
contract DAO {
  // Vetor de participantes da DAO
  Participant[] public participants;

  // Adiciona um novo participante à DAO
  function addParticipant(address _addr, uint _votingPower) public {
    // Cria um novo registro de participante
    Participant memory newParticipant = Participant(_addr, _votingPower);
    // Adiciona o novo participante ao vetor de participantes
    participants.push(newParticipant);
  }

  // Realiza uma votação para aprovar ou rejeitar uma proposta de aquisição de jogador
  function voteOnPlayerAcquisition(string _playerName, uint _cost, bool _approve) public {
    // Implementação da votação aqui...
  }

  // Executa uma proposta de aquisição de jogador aprovada
  function executePlayerAcquisition(string _playerName, uint _cost) public {
    // Implementação da execução da proposta aqui...
  }
}

Enter fullscreen mode Exit fullscreen mode

Este código define um contrato DAO que possui uma estrutura de dados para armazenar informações sobre os participantes da DAO e duas funções: uma para adicionar um novo participante à DAO e outra para realizar uma votação. O contrato também possui uma função para executar uma proposta aprovada pela votação.

Esse é apenas um exemplo básico de uma DAO e existem muitas outras coisas que você pode adicionar, como regras de governança mais complexas, mecanismos de distribuição de recompensas e outras funcionalidades.

Top comments (0)