🇧🇷
Ethereum Developer Pack - PT
  • Ethereum Developer Pack - PT
  • MĂłdulo 1
    • Introdução a Smart Contracts
      • Fundamentos de Blockchain
        • HistĂłrico
        • Bitcoin
        • O que Ă© Blockchain
        • Conceitos-chave em Blockchain
        • Como funciona a Blockchain
        • Tipos de Blockchain
        • Modelos de Consenso
      • A nova Internet
        • Web 3
        • Elementos Fundamentais
        • Impacto do Ethereum em Diversos Setores
      • Wallets
        • Componentes de uma wallet
        • Tipos de Wallet
        • CĂłdigos MnemĂ´nicos
      • Ethereum 101
        • Smart Contracts
        • Contas
          • Tipos de contas
          • ConteĂşdo das contas
        • Transações
          • Componentes
          • Ciclo de vida
        • Gás
        • Solidity
        • EVM
          • A máquina de estados
          • Opcodes
          • Como funciona a EVM
          • Clientes de execução
          • DApps
      • Blockchain Explorer
        • Funções de um blockchain explorer
        • Beneficios de utilizar um blockchain explorer
      • Remix
        • CaracterĂ­sticas do Remix
        • Workspaces ou espaços de trabalho
        • Carregar e compilar um contrato
        • Implantar na máquina virtual do Remix (Remix VM)
        • Interagindo com funções
        • Deployar em uma rede pĂşblica
      • Crie seu primeiro Smart Contract
  • MĂłdulo 2
    • Fundamentos de Solidity
      • Hello World
      • Tipos de Dados
      • Funções
      • Variáveis
        • ExercĂ­cio 1
      • Operadores
        • Ejercicio 2
      • Constructor
        • ExercĂ­cio 3
      • Convenções de nomenclatura
      • Tipos de armazenamento para variáveis
      • Estruturas de Controle
        • ExercĂ­cio 4
      • Modificadores
      • Eventos
        • ExercĂ­cio 5
      • Tipos de Referencia
        • Arrays
          • ExercĂ­cio 6
        • Mappings
          • ExercĂ­cio 7
        • Structs
          • ExercĂ­cio 8
      • Address Payable
      • Como os contratos e funções recebem Ether.
      • TransferĂŞncias de Ether
      • Conceitos Avançados
        • Codificação de ABI
        • Hashing
        • This
        • Herança
        • Abstract
        • Interface
        • Chamada entre contratos
        • EVM
        • ABI
        • Bytecode
        • Opcodes
  • MĂłdulo 3
    • ERCs, Bibliotecas e Padrões de Desenvolvimento
      • Boas Práticas de Desenvolvimento
      • Padrões de Desenvolvimento
      • EIP & ERC
      • ERC-20
      • ERC-721
      • Open Zeppelin
      • Crie um Token ERC-20
      • Almacenamiento Descentralizado: IPFS
      • Crea un Token ERC-721
      • DeFi
  • MĂłdulo 4
    • Kit de ferramentas para desenvolvimento na Ethereum
      • Requisitos para o mĂłdulo 4
        • Terminal
        • Git e Github
        • Node.js e npm
        • Visual Studio Code para Solidity
      • Toolkit
        • JSON-RPC
        • Ethers.js
          • ExercĂ­cio
        • Hardhat
          • Implantação de um contrato no Hardhat
          • Implantação de um contrato em uma rede pĂşblica
        • Scaffold-ETH
          • CaracterĂ­sticas do Scaffold-ETHCaracterĂ­sticas
          • Como instalar o Scaffold-ETH
  • MĂłdulo 5
    • Segurança, Testes e Auditorias
      • Testes
        • Importância de realizar testes
        • MĂ©todos para testar contratos inteligentes
          • Testes automatizados
          • Testes manuais
        • Conceitos importantes em testes
        • Ferramentas para testes
        • Testes com Hardhat
        • Recursos adicionais
      • Segurança
        • Uma mentalidade diferente de design
        • Principais vulnerabilidades em contratos inteligentes
          • Reentrancy attack (ataque de reentrada)
          • Replay attack (ataque de repeticiĂłn)
          • Price Oracle Manipulation (ManipulaciĂłn de Oráculos de Precios)
          • Missing Access Control (PĂ©rdida de Control de Acceso)
          • Reward Manipulation (ManipulaciĂłn de Recompensas)
          • Failure to Initialize (Falla al Inicializar)
          • Front-running
          • Invariant Breaks (Quebra de Invariantes)
          • Mishandling of ETH (Má gestĂŁo de ETH)
          • Denial of Service (DoS - Negação de Serviço)
          • Integer overflow and underflow (Overflow e Underflow de inteiros)
          • Phishing y Typosquatting
        • Recursos adicionais
      • Auditoria de smart contracts
        • Processo de Auditoria
        • Ferramentas
        • Como se preparar para uma auditoria
        • O teste Rekt
        • Desafios
        • Recursos adicionais
  • Contribuye
    • Kipu Explorer
Powered by GitBook
On this page
  • Ethereum Ă© um computador
  • Ethereum Ă© um computador
  1. MĂłdulo 1
  2. Introdução a Smart Contracts

Ethereum 101

PreviousCĂłdigos MnemĂ´nicosNextSmart Contracts

Last updated 23 days ago

Ethereum Ă© um computador

O Bitcoin, a primeira blockchain, estabeleceu a ideia de uma moeda digital descentralizada, mas o Ethereum levou essa visão um passo adiante. Em vez de se limitar a ser apenas uma moeda digital, o Ethereum propôs ser uma plataforma que possibilitasse a execução de contratos inteligentes e aplicativos descentralizados (DApps). Essa visão ambiciosa se concretizou com a criação de uma linguagem de programação Turing-complete no Ethereum, permitindo a criação de contratos inteligentes que vão além de simples transações de valor.

Nesse sentido, o Ethereum Ă© um computador mundial descentralizado.

Ethereum Ă© um computador

O Bitcoin, a primeira blockchain, estabeleceu a ideia de uma moeda digital descentralizada, mas o Ethereum levou essa visão um passo adiante. Em vez de se limitar a ser uma simples moeda digital, o Ethereum se propôs a ser uma plataforma que permitisse a execução de contratos inteligentes e aplicativos descentralizados (DApps). Essa visão ambiciosa se concretizou com a criação de uma linguagem de programação Turing-complete no Ethereum, permitindo a criação de contratos inteligentes que vão além de simples transações de valor.

Nesse sentido, o Ethereum Ă© um computador global descentralizado.

Dizemos que Ă© um computador porque possui os mesmos componentes de um computador tradicional:

  • Processador e memĂłria. Os nĂłs que compõem a rede Ethereum executam um software chamado cliente de execução, que habilita a Máquina Virtual Ethereum (Ethereum Virtual Machine - EVM). A EVM Ă© o componente responsável por processar as transações que circulam pela rede P2P e utiliza uma memĂłria temporária.

  • Armazenamento ou Storage. O Ethereum tambĂ©m armazena os programas, os dados associados a eles, as transações e outras informações no armazenamento da blockchain.

  • Interface. A interação com esse computador ocorre por meio da internet, wallets e aplicativos descentralizados.

Adicionalmente a esses componentes e, diferentemente de um computador convencional, o Ethereum possui um protocolo de consenso que permite que os nós que compõem a rede distribuída entrem em acordo, em cada momento, sobre qual é o estado atual da rede. Isso significa determinar o estado da blockchain e as transações que foram realizadas. O consenso é essencial em ambientes descentralizados como o Ethereum, onde não existe uma autoridade central que defina as regras. O protocolo de consenso utilizado é o Proof of Stake (POS).

A EVM constitui a camada de execução, o armazenamento é a camada de disponibilidade de dados (Data Availability) e o POS é a camada de consenso.

O computador Ethereum possui os seguintes atributos:

  • É descentralizada, com milhares de nĂłs validadores em todo o mundo.

  • NĂŁo se requer ter um permissĂŁo para acessá-la (permissionless).

  • É uma sĂł computadora para todo o planeta. NĂŁo há uma computadora em cada nĂł.

  • É verificável. Tanto o software que a suporta (clientes de execução e consenso), como os programas que se executam sobre ela sĂŁo de cĂłdigo aberto. AlĂ©m disso, todas as transações que se realizam nela podem ser rastreadas.

  • É imutável. Ethereum, assim como Bitcoin, Ă© imutável, o que significa que uma vez que se registra uma transação ou um contrato inteligente, nĂŁo pode ser alterado nem apagado. Isso cria um registro histĂłrico transparente e resistente Ă  manipulação, gerando confiança em um entorno digital onde a confiança Ă©, frequentemente, escassa.

Dizemos que o Ethereum Ă© um computador porque possui os mesmos componentes de um computador tradicional:

  • Processador e memĂłria. Os nĂłs que formam a rede do Ethereum executam um software chamado cliente de execução, que habilita a Máquina Virtual do Ethereum (Ethereum Virtual Machine - EVM). Este Ă© o componente responsável por processar as transações que circulam pela rede P2P e que utiliza uma memĂłria temporária.

  • Armazenamento ou storage. O Ethereum tambĂ©m armazena os programas, os dados associados a eles, as transações e outras informações no armazenamento da blockchain.

  • Interface. A forma de interagir com esse computador Ă© atravĂ©s da internet, carteiras (wallets) e aplicativos descentralizados (DApps).

Além desses componentes e ao contrário de um computador convencional, o Ethereum possui um protocolo de consenso que permite que os nós que formam a rede distribuída se acordem, a todo momento, sobre qual é o estado da rede, ou seja, sobre o estado atual da blockchain e as transações realizadas. O consenso é essencial em ambientes descentralizados como o Ethereum, onde não há uma autoridade central que dite as regras. O protocolo de consenso é Proof of Stake (POS).

A EVM constitui a camada de execução, o armazenamento é a camada de disponibilidade de dados (Data Availability) e o POS é a camada de consenso.

A computadora Ethereum possui os seguintes atributos:

  • É descentralizada, com milhares de nĂłs validadores em todo o mundo.

  • NĂŁo Ă© necessário ter permissĂŁo para acessá-la (permissionless).

  • É um Ăşnico computador para todo o planeta. NĂŁo há uma máquina em cada nĂł.

  • É verificável. Tanto o software que a suporta (clientes de execução e consenso), quanto os programas que sĂŁo executados sobre ela, sĂŁo de cĂłdigo aberto. AlĂ©m disso, todas as transações realizadas nela podem ser rastreadas.

  • É imutável. O Ethereum, assim como o Bitcoin, Ă© imutável, o que significa que uma vez registrada uma transação ou um contrato inteligente, ela nĂŁo pode ser alterada nem excluĂ­da. Isso cria um registro histĂłrico transparente e resistente Ă  manipulação, gerando confiança em um ambiente digital onde a confiança Ă© muitas vezes escassa.