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

El nuevo Internet

PreviousModelos de ConsensoNextWeb 3

Last updated 8 months ago

Was this helpful?

Bitcoin es una blockchain especializada en la creación de una moneda (bitcoin), así como en el registro de las transacciones que se realizan con ella. En su momento, algunos pioneros reconocieron que se podía utilizar esta tecnología para otras aplicaciones diferentes. Por ejemplo el proyecto Colored Coins buscaba gestionar activos del mundo real (acciones, monedas, propiedades inmobiliarias) en forma de tokens sobre la red de Bitcoin. Así como en este caso, se empezaron a desarrollar aplicaciones específicas para cada caso de uso sobre Bitcoin, utilizando el lenguaje de programación de este protocolo (Bitcoin Script) y llevando al protocolo de Bitcoin al límite de su potencial.

Pero Bitcoin Script tiene sus limitaciones, no es un lenguaje de programación Turing-complete, pues le falta funciones tan comunes como los loops que permiten realizar una misma instrucción muchas veces utilizando un contador. Tiene sentido restringir esta funcionalidad en una blockchain de uso específico para controlar dinero digital. No queremos por ejemplo que alguien por error o con mala intención genere un loop infinito que haga caer la red; pero no tiene sentido para crear aplicaciones que vayan más allá de controlar transacciones de dinero. Así que estos pioneros tenían que desarrollar sus ideas utilizando un lenguaje de programación limitado y fabricando cada uno sus propias navajas suizas, útiles para un número limitado de casos de uso. En el 2013, un joven ruso-canadiense de 19 años, estudiante de la Universidad de Waterloo en Canadá, llamado Vitalik Buterin, solicitó a su universidad tomarse un año sabático para trabajar en proyectos de criptomonedas. Inició una gira por diferentes lugares del mundo como Estados Unidos, Holanda e Israel, en los que tenía amigos trabajando en la frontera del potencial de Bitcoin.

En Israel había dos proyectos muy innovadores llamados Colored Coins y Mastercoin. Pudo colaborar con ellos pero se dio cuenta rápidamente que el enfoque que utilizaban para el desarrollo no era el adecuado, no se trataba de crear navajas suizas, útiles para propósitos limitados, sino que era mejor crear bloques de LEGO para que cada uno pueda construir lo que quisiera.

Su idea no fue tan bien recibida como él esperaba, pues los líderes de los proyectos a los que hizo su propuesta priorizaban más la oportunidad de salir al mercado con lo que ya tenían, en lugar de aventurarse a alguno nuevo.

Dado que Vitalik no tuvo eco, decidió crear una nueva blockchain que fuera de propósito general, en la que se pudiera programar lo que uno quisiera. Para ello escribió el White Paper de Ethereum «Una plataforma de siguiente generación para smart contracts y aplicaciones descentralizadas» donde describió las especificaciones de una tecnología que revolucionaría el mundo, como años atrás lo había hecho Satoshi Nakamoto.

El de Vitalik publicado en el 2013 capturó el interés de un grupo de colaboradores, entre los que destacan Gavin Wood, Charles Hoskinson, Mihai Alisie, Anthony Di Iorio y Joseph Lubin. En el 2014 obtuvieron el financiamiento para el proyecto bajo una forma de crowdfunding y en el 2015 pudieron poner en funcionamiento Ethereum gracias al esfuerzo de un ejército de colaboradores a nivel mundial.

Ethereum es una evolución de Bitcoin, que incorpora un lenguaje de programación Turing complete y la posibilidad de ejecutar código que se guarda en la propia blockchain.

Es una gran computadora mundial capaz de ejecutar contratos inteligentes y aplicaciones descentralizadas.

Estas aplicaciones funcionan exactamente como están programadas, sin posibilidad de censura, fraude o interferencia de terceros, ya que el código fuente del contrato inteligente es inmutable.

WhitePaper