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
        • Principales vulnerabilidades en smart contracts
          • 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 (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 1
  2. Intro a Smart Contracts
  3. Ethereum 101
  4. EVM

Opcodes

Para que la EVM pueda ejecutar transacciones que llaman a un smart contract debe convertir el bytecode del smart contract a opcodes.

Los opcodes son instrucciones que la Ethereum Virtual Machine (EVM) puede ejecutar. Los opcodes se utilizan para realizar operaciones básicas, como sumar, restar, comparar y asignar valores. También se utilizan para ejecutar operaciones más complejas, como crear contratos inteligentes y llamar a funciones.

Los opcodes de Ethereum se codifican como un byte (2 caracteres hexadecimales). Cada opcode tiene un significado específico. Por ejemplo, el opcode ADD se utiliza para sumar dos valores, el opcode SUB se utiliza para restar dos valores y el opcode EQ se utiliza para comparar dos valores.

La EVM tiene un conjunto de 144 opcodes. Los opcodes se dividen en las siguientes categorías:

  • Operaciones aritméticas. Se utilizan para realizar operaciones básicas, como sumar, restar, multiplicar y dividir.

  • Operaciones lógicas. Se utilizan para realizar operaciones lógicas, como AND, OR y NOT.

  • Operaciones de comparación. Se utilizan para comparar dos valores.

  • Operaciones de asignación. Se utilizan para asignar un valor a una variable.

  • Operaciones de control de flujo. Se utilizan para controlar el flujo de ejecución de un contrato inteligente.

  • Operaciones de memoria. Se utilizan para manipular la memoria de la EVM.

  • Operaciones de llamadas. Se utilizan para llamar a funciones de contratos inteligentes.

  • Operaciones de creación de contratos. Se utilizan para crear nuevos contratos inteligentes.

Ejemplos de opcodes

Aquí hay algunos ejemplos de cómo se utilizan los opcodes de Ethereum:

Para sumar dos valores, se puede utilizar el opcode ADD. Por ejemplo, el siguiente código sumará los valores de las variables x e y:

x = 10 y = 20

z = ADD(x, y)

Para comparar dos valores, se puede utilizar el opcode EQ. Por ejemplo, el siguiente código comparará los valores de las variables x e y:

x = 10 y = 20

z = EQ(x, y)

Para asignar un valor a una variable, se puede utilizar el opcode MSTORE. Por ejemplo, el siguiente código asignará el valor 10 a la variable x: x = 10

PreviousLa máquina de estadosNextCómo funciona la EVM

Last updated 8 months ago

Was this helpful?

Una muy buena referencia para entender el funcionamiento de los opcodes es la página donde puedes ver la relación entre el código de un smart contracts y sus opcodes.

EVM Opcodes