---
title: "O que é OpenZeppelin? Guia para desenvolvedores"
description: "Segurança para projetos Web3"
---

## O que é a OpenZeppelin?

<ImageBlock
  src="https://media.alchemy.com/1704159586-openzeppelin-logo.png"
  alt="Logo da OpenZeppelin"
  width={500}
  height={250}
  priority
/>

A [OpenZeppelin](https://www.alchemy.com/dapps/openzeppelin) é uma empresa de tecnologia e serviços de cibersegurança para cripto. Ela oferece um framework open-source para construir smart contracts seguros, além de auditorias de segurança abrangentes para alguns dos maiores projetos de DeFi e NFT. Entre seus clientes estão projetos conhecidos como a Ethereum Foundation, a Coinbase e a Brave.

Além das auditorias, a OpenZeppelin busca trazer mais segurança ao ecossistema DeFi fornecendo aos desenvolvedores de smart contracts uma biblioteca de ferramentas de segurança. Esses produtos permitem que os desenvolvedores foquem mais no deployment e menos na segurança, possibilitando lançamentos mais rápidos e maior confiabilidade.

Hoje, a OpenZeppelin dá suporte a mais de 3.000 projetos públicos com seus produtos.

## O que são smart contracts?

Smart contracts são programas armazenados e executados na blockchain. Assim como contratos do mundo real, eles descrevem acordos e estabelecem regras. No entanto, também podem aplicá-los automaticamente.

Esse comportamento "inteligente" é possível porque os termos desses acordos são escritos e executados como código na blockchain. Na Ethereum, a plataforma de smart contracts mais popular, os smart contracts funcionam como qualquer conta, no sentido de que têm seu próprio saldo e podem criar transações.

Outros usuários também podem enviar e receber fundos desses smart contracts. Diferente dos contratos normais, esses smart contracts geralmente são irreversíveis e não podem ser excluídos depois de deployed.

Smart contracts são o que permite aos desenvolvedores criar aplicações descentralizadas e tokens. Grande parte da infraestrutura necessária para finanças descentralizadas é baseada em smart contracts, o que torna possíveis processos financeiros complexos como seguros ou empréstimos.

## Por que precisamos da OpenZeppelin?

É evidente que a segurança é fundamental para qualquer aplicação descentralizada.

Antes, as equipes de projeto frequentemente precisavam escrever sua própria infraestrutura de segurança, o que levava os desenvolvedores a "reinventar a roda".

Embora escrever smart contracts do zero possa ser um bom exercício de aprendizado, isso pode ser uma prática perigosa em produção. Para que smart contracts sejam seguros, eles precisam ser robustos, e isso não pode ser alcançado no vácuo. É preciso tempo e uso para garantir a confiabilidade, algo que não é alcançável desde o início, especialmente para projetos menores.

<ImageBlock
  src="https://media.alchemy.com/1704159809-cyber-security.jpg"
  alt="Arte conceitual de cibersegurança representando riscos de segurança em smart contracts"
  width={1600}
  height={955}
/>

Sem um padrão claro de segurança para DeFi, torna-se difícil reconhecer um projeto seguro. Com cada protocolo trazendo sua própria implementação de contrato, fica difícil verificar ou reconhecer se um protocolo é sequer seguro.

Além disso, dado o quanto os projetos DeFi podem ser lucrativos, não é incomum que desenvolvedores deixem a segurança de lado em favor de um lançamento rápido.

Um exemplo clássico é o YAM Finance, o agora notório fenômeno de yield farming, que decidiu abrir mão de uma auditoria de segurança cara. O protocolo YAM Finance foi criado em apenas 10 dias e, 48 horas após seu lançamento, já havia acumulado $600M em ativos.

No entanto, devido a uma vulnerabilidade de segurança encontrada em seu protocolo de smart contract, ele teve que ser desligado. Considerando que os fundos dos usuários estão em jogo, a falta de rigor em segurança pode ser desastrosa.

Embora as auditorias de segurança sejam essenciais para minimizar potenciais vulnerabilidades, elas não são suficientes, especialmente no caso do YAM Finance. Projetos feitos rapidamente como o YAM raramente passam por auditorias de segurança devido ao custo, tornando importante que os desenvolvedores tenham as ferramentas de segurança certas desde o início.

## Que funcionalidades a OpenZeppelin oferece?

A OpenZeppelin mitiga eventos como esses fornecendo aos desenvolvedores ferramentas e infraestrutura de segurança prontas para uso. Esses produtos permitem que os desenvolvedores de smart contracts continuem focando no deployment, em vez de reinventar a roda com sua própria infraestrutura de segurança.

A equipe da OpenZeppelin costuma dizer que agora uma base de segurança sólida pode "levar minutos em vez de meses".

A OpenZeppelin tem dois produtos principais: Contracts e Defender.

O _Contracts_ da OpenZeppelin é uma [biblioteca de smart contracts seguros](https://docs.openzeppelin.com/contracts/4.x/) para Ethereum e outras blockchains, de uso livre para desenvolvedores.

Esses templates open source são revisados pela comunidade e usam as práticas de segurança mais atualizadas. Uma forma pela qual a OpenZeppelin alcança isso é por meio de seu programa de bug bounty, no qual a comunidade pode ser recompensada por encontrar vulnerabilidades de segurança nos contratos da OpenZeppelin.

Ao reutilizar contratos auditados da OpenZeppelin, projetos podem reduzir bastante sua superfície de ataque. Superfície de ataque é o número de pontos diferentes em que uma parte não autorizada poderia, teoricamente, atacar. Além disso, dada sua modularidade e padronização, a colaboração e as auditorias se tornam significativamente mais fáceis.

<ImageBlock
  src="https://media.alchemy.com/1704159957-openzeppelin-contracts-wizard.png"
  alt="Interface do OpenZeppelin Contracts Wizard para gerar código de smart contracts"
  width={1460}
  height={1054}
/>

A OpenZeppelin também oferece um gerador interativo de contratos com o Contracts Wizard. Os desenvolvedores podem usar o Wizard para criar contratos usando componentes da OpenZeppelin. Além disso, o Wizard permite especificar o tipo de contrato \(ex. [ERC20](https://www.alchemy.com/overviews/erc20-solidity)\), parâmetros e funcionalidades.

Ao finalizar, o Wizard gera o código correspondente, pronto para ser deployed.

Aqui estão alguns exemplos das muitas funcionalidades integradas da OpenZeppelin:

- **Access Control**: o access control da OpenZeppelin permite que desenvolvedores configurem facilmente quem tem permissão para fazer o quê em seu sistema. Essa infraestrutura é crítica para a segurança de qualquer projeto, já que uma falha pode levar a [um sistema sendo efetivamente roubado](https://blog.openzeppelin.com/on-the-parity-wallet-multisig-hack-405a8c12e8f7/).

O OpenZeppelin Contracts oferece tanto a funcionalidade simples de propriedade com um único administrador quanto o [Role-Based Access Control](https://en.wikipedia.org/wiki/Role-based_access_control), flexível. Usando esses recursos, desenvolvedores podem atribuir com segurança quem pode fazer mint de tokens, votar em propostas, congelar transferências e outras funções protegidas.

- **Governance**: o contrato Governor da OpenZeppelin oferece um protocolo de governança pronto para uso. A governança on-chain é necessária para protocolos verdadeiramente descentralizados e se tornou um componente central de muitos deles. A governança comunitária pode decidir questões importantes, como ajuste de parâmetros, upgrades de smart contracts, integrações com outros protocolos, gestão de tesouraria, grants, etc. Como os Contracts da OpenZeppelin são altamente modulares, mudanças muitas vezes podem ser introduzidas por meio da criação de novos módulos usando herança do [Solidity](https://www.alchemy.com/overviews/solidity), eliminando a necessidade de um hard fork.

<ImageBlock
  src="https://media.alchemy.com/1704160046-erc-20.jpg"
  alt="Ilustração representando o padrão de token ERC-20 no Ethereum"
  width={1171}
  height={706}
/>

- **Tokens:** a OpenZeppelin tem contratos de token para muitos dos padrões Ethereum mais comuns, como ERC20 e ERC721. Usando essa infraestrutura, desenvolvedores podem fazer deploy de seus próprios tokens, além de contarem com muitas outras capacidades, como monitoramento de preço, métodos específicos de transferência de token, autenticação de compra, etc.

‍

Defender é a plataforma de operações de segurança \(SecOps\) baseada na web da OpenZeppelin. O [Defender](https://openzeppelin.com/defender/) simplifica o deployment e a administração de smart contracts, ajudando desenvolvedores a automatizar boa parte das operações associadas à execução de aplicações descentralizadas na Ethereum.

A plataforma vem com muitos recursos, como integrações de back-end baseadas na web, tarefas automatizadas e interação manual com contratos. Desenvolvedores podem construir diretamente na plataforma Defender, o que lhes dá uma base sólida de segurança desde o início.

<ImageBlock
  src="https://media.alchemy.com/1704160385-openzeppelin-defender.png"
  alt="Painel da plataforma de operações de segurança OpenZeppelin Defender"
  width={1580}
  height={1232}
/>

> "Diversos exploits que vimos em DeFi este ano, como os do YAM, [Uniswap](https://www.alchemy.com/dapps/uniswap), [dForce](https://www.alchemy.com/dapps/dforce) e Hegic, poderiam ter sido evitados ou reduzidos seguindo um processo de segurança cuidadoso, mas as equipes carecem de um sistema abrangente que as informe completamente sobre as melhores práticas de segurança e como avaliar risco." -Jonathan Alexander, Chief Technology Officer da OpenZeppelin

De acordo com a OpenZeppelin, os fundos de usuários perdidos em grandes exploits como os hacks da bZx e da Opyn poderiam ter sido reduzidos com o tipo de ferramenta de resposta rápida possível com o Defender.

## O que a OpenZeppelin contribui para o DeFi?

<ImageBlock
  src="https://media.alchemy.com/1704160156-defi-crybersecurity.jpeg"
  alt="Ilustração representando proteções de cibersegurança para aplicações DeFi"
  width={1024}
  height={538}
/>

A OpenZeppelin está estabelecendo as bases para aplicações descentralizadas mais seguras, eliminando a necessidade de os desenvolvedores lidarem com sua própria segurança. Com funcionalidades de segurança já embutidas, os desenvolvedores poderão continuar construindo rápido, sem custo para a segurança. Isso é extremamente importante à medida que os ataques e os sistemas DeFi se tornam mais complexos.

À medida que a OpenZeppelin se estabelece como um padrão de segurança para smart contracts, ela ajuda a minimizar a confiança necessária em todo o DeFi. As pessoas costumam falar em 0% de confiança, ou seja, em que nenhuma confiança seria necessária entre as partes. No caso dos protocolos DeFi, isso é irrealista.

Você sempre está confiando em alguma parte, seja uma equipe, uma DAO ou um auditor. Embora isso possa soar problemático, comparado ao setor bancário tradicional, esse é um processo muito mais transparente, já que no DeFi você sempre pode ler o código.

Damian Bermer, CEO da OpenZeppelin, argumenta que devemos buscar um objetivo de minimização de confiança em vez de 0%.

> A minimização de confiança reduz as partes em que estamos confiando e que não conseguimos ver. Conseguimos ver o código executado on-chain. Mas mesmo com as plataformas DeFi de confiança mais minimizada, em que coisas ainda precisamos confiar? A melhor forma de escalar o DeFi é chegar a um ponto de minimização massiva de confiança. -Damian Bermer

Ao fornecer recursos de segurança open source, a OpenZeppelin consegue minimizar a confiança necessária no ecossistema, já que menos código novo é criado para cada protocolo. Com a infraestrutura de segurança se tornando mais confiável, muito menos incerteza permanecerá quanto à segurança de projetos DeFi, permitindo maior adoção e escala.

## Faça o deploy do seu próprio smart contract com a Alchemy

Os smart contracts da OpenZeppelin são seguros, validados pela comunidade e testados em produção. Cadastre-se na Alchemy e [comece a fazer deploy do seu primeiro smart contract](https://www.alchemy.com/?a=fd92c87506) hoje mesmo!
