ETH Kipu
  • Ethereum Developer Pack
  • Módulo 1
    • Intro a Smart Contracts
      • Fundamentos de Blockchain
        • Antecedentes
        • Bitcoin
        • Qué es Blockchain
        • Conceptos Clave en Blockchain
        • Cómo funciona la Blockchain
        • Tipos de Blockchain
        • Modelos de Consenso
      • El nuevo Internet
        • Web 3
        • Elementos Fundamentales
        • Impacto de Ethereum en Diversos Sectores
      • Wallets
        • Componentes de una wallet
        • Tipos de Wallet
        • Códigos mnemónicos
      • Ethereum 101
        • Smart Contracts
        • Cuentas
          • Tipos de cuentas
          • Contenido de cuentas
        • Transacciones
          • Componentes
          • Ciclo de vida
        • Gas
        • Solidity
        • EVM
          • La máquina de estados
          • Opcodes
          • Cómo funciona la EVM
          • Clientes de ejecución
          • DApps
      • Blockchain Explorer
        • Funciones de un blockchain explorer
        • Beneficios de utilizar un blockchain explorer
      • Remix
        • Características de Remix
        • Workspaces o espacios de trabajo
        • Cargar y compilar un contrato
        • Desplegar en la máquina virtual de Remix (Remix VM)
        • Interactuando con funciones
        • Desplegar en una red pública
      • Crea tu primer Smart Contract
  • Módulo 2
    • Fundamentos de Solidity
      • Hello World
      • Tipos de Datos
      • Funciones
      • Variables
        • Ejercicio 1
      • Operadores
        • Ejercicio 2
      • Constructor
        • Ejercicio 3
      • Convenciones de nomenclatura
      • Tipos de almacenamiento para variables
      • Estructuras de Control
        • Ejercicio 4
      • Modificadores
      • Eventos
        • Ejercicio 5
      • Tipos de Referencia
        • Arrays
          • Ejercicio 6
        • Mappings
          • Ejercicio 7
        • Structs
          • Ejercicio 8
      • Address Payable
      • Cómo reciben Ether los contratos y funciones
      • Transferencias de Ether
      • Conceptos Avanzados
        • Codificación ABI
        • Hashing
        • This
        • Herencia
        • Abstract
        • Interface
        • Llamadas entre contratos
        • EVM
        • ABI
        • Bytecode
        • Opcodes
  • Módulo 3
    • Estándares, Librerías y Patrones
      • Buenas Prácticas de Diseño
      • Patrones de Diseño
      • EIP y ERC
      • ERC-20
      • ERC-721
      • Open Zeppelin
      • Crea un Token ERC-20
      • Almacenamiento Descentralizado: IPFS
      • Crea un Token ERC-721
      • DeFi
  • Módulo 4
    • Toolkit para desarrollo en Ethereum
      • Requisitos para el módulo 4
        • Terminal
        • Git y Github
        • Node.js y npm
        • Visual Studio Code para Solidity
      • Toolkit
        • JSON-RPC
        • Ethers.js
          • Ejercicio
        • Hardhat
          • Despliegue de un contrato en Hardhat
          • Despliegue de un contrato en una red pública
        • Scaffold-ETH
          • Características
          • Cómo instalar Scaffold-ETH
  • Módulo 5
    • Seguridad, Pruebas y Auditoría
      • Pruebas
        • Importancia de realizar pruebas
        • Métodos para probar contratos inteligentes
          • Pruebas automatizadas
          • Pruebas manuales
        • Conceptos importantes en testing
        • Herramientas para testing
        • Testing con Hardhat
        • Recursos adicionales
      • Seguridad
        • Una mentalidad distinta de diseño
        • Principais vulnerabilidades em contratos inteligentes
          • Ataque de reentrância (Reentrancy attack)
          • Ataque de repetição (Replay attack)
          • Manipulação de Oráculos de Preços (Price Oracle Manipulation)
          • Falta de Controle de Acesso (Missing Access Control)
          • Manipulação de Recompensas (Reward Manipulation)
          • Falha na Inicialização (Failure to Initialize)
          • Front-running
          • Invariant Breaks (Ruptura de invariantes)
          • Mishandling of ETH (Mal manejo de ETH)
          • Denial of Service (DoS - Denegación de Servicio)
          • Integer overflow and underflow (desbordamiento y subdesbordamiento de enteros)
          • Phishing y Typosquatting
        • Recursos adicionales
      • Auditoría de smart contracts
        • Proceso de Auditoría
        • Herramientas
        • Cómo prepararse para una auditoría
        • El test Rekt
        • Retos
        • Recursos adicionales
  • Contribuye
    • Kipu Explorer
Powered by GitBook
On this page

Was this helpful?

  1. Módulo 5
  2. Seguridad, Pruebas y Auditoría
  3. Seguridad
  4. Principais vulnerabilidades em contratos inteligentes

Manipulação de Oráculos de Preços (Price Oracle Manipulation)

É um risco comum em contratos inteligentes que dependem de oráculos externos para obter dados de preços, como os de criptomoedas ou ativos do mundo real. Essa vulnerabilidade ocorre quando um invasor manipula os dados fornecidos pelo oráculo para influenciar o comportamento do contrato inteligente, resultando em perdas financeiras ou comportamentos inesperados.

Exemplo: Suponha que um contrato inteligente de empréstimos descentralizados (DeFi) utilize um oráculo para determinar o preço de um token específico (por exemplo, um token X) a fim de calcular o colateral necessário para um empréstimo. Se um invasor conseguir manipular o preço do token X fornecido pelo oráculo, ele pode inflar artificialmente o preço de X no oráculo.

Com o preço inflado, o invasor poderia tomar emprestada uma grande quantidade de outro ativo (por exemplo, ETH) utilizando uma quantidade relativamente pequena de X como garantia. Posteriormente, o atacante poderia manipular novamente o preço para baixo e liquidar a posição a um valor muito menor, causando prejuízos ao protocolo e aos demais usuários.

Mitigação:

  • Uso de Oráculos Descentralizados: Em vez de depender de um oráculo centralizado, utilizar oráculos descentralizados que coletam dados de várias fontes confiáveis. Isso dificulta a manipulação, pois o invasor precisaria comprometer múltiplas fontes independentes.

  • Média de Preços de Múltiplas Fontes: O contrato inteligente pode calcular a média dos preços provenientes de diferentes fontes para reduzir o impacto de uma única fonte manipulada.

  • Implementação de TWAP (Time-Weighted Average Price): Utilizar um preço médio ponderado pelo tempo em vez de um preço instantâneo. Isso reduz a eficácia de manipulações de curto prazo ao suavizar variações abruptas.

  • Verificações de Coerência: Implementar mecanismos que validem se os preços recebidos estão dentro de um intervalo aceitável, com base em históricos ou mercados alternativos. Preços fora do padrão podem ser rejeitados ou verificados com outras fontes.

  • Auditorias e Testes Rigorosos: Auditar e testar os contratos inteligentes de forma abrangente para identificar vetores de ataque relacionados a oráculos. Os testes devem simular cenários de manipulação para garantir que o contrato reaja adequadamente a situações adversas.

PreviousAtaque de repetição (Replay attack)NextFalta de Controle de Acesso (Missing Access Control)

Last updated 25 days ago

Was this helpful?