Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Blockchain 101 con Python

Blockchain 101 con Python

Bases de Blockchain. Implementación simple con Python

Avatar for Alejandro E. Rendon

Alejandro E. Rendon

August 08, 2018

Other Decks in Education

Transcript

  1. - Ing. Sistemas y Computación UTP - MSc(c) Ingeniería de

    Sistemas y Computación - Investigador Grupo Sirius UTP - Ingeniero de Desarrollo - Comunidades de Tecnología (Core team Python Colombia, Python Pereira, PerJS, Pereira Tech Talks, ML Pereira) Alejandro E. Rendón
  2. Qué es Blockchain - Manera de almacenar datos - Los

    datos pueden ser cualquier cosa - Datos == Transacciones
  3. - Los datos se almacenan en bloques - Se encadenan

    usando un hash (Por eso es una cadena de Bloques) Qué es Blockchain
  4. Características - Inmutabilidad del historial - “Un-hackability” del sistema -

    Persistencia de los datos - No hay un único punto de fallo
  5. Aplicación OBJETIVO: Crear una web que le permita a un

    usuario enviar información y la información se almacenará en una Blockchain
  6. Pasos 1. Almacenar transacciones en Bloques 2. Hacer el Bloque

    inmutable 3. Cadena de Bloques 4. Prueba de trabajo 5. Agregar Bloques 6. Crear interfaz
  7. - Que no se pueda alterar contenido ni orden Solución:

    HASH -> Asegura integridad “Es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija” 2. Hacer el Bloque Inmutable
  8. - Se puede asegurar la integridad de un bloque -

    Es en un único sentido => No se puede saber cuál es el contenido después de pasarlo por la función de transformación 2. Hacer el Bloque Inmutable
  9. Problema: Si cambiamos el bloque anterior, podemos volver a calcular

    los valores hash de todos los bloques siguientes con bastante facilidad y crear una cadena de bloques válida diferente. 4. Prueba de Trabajo
  10. Solución: - Agregar dificultad y aleatoriedad (Al hash) - En

    lugar de aceptar cualquier hash para el bloque, le agregamos alguna restricción. - e.g. Que comience con n ceros 4. Prueba de Trabajo
  11. Pero…¿Cómo cambiar el hash? - Una solución: Agregar una característica

    variable -> NONCE Nota: Fuerza Bruta! 4. Prueba de Trabajo
  12. 5.1. Revisar Prueba de Trabajo Comprobar si el bloque es

    válido 5.2. Minar Después de confirmar, agregar a la Blockchain 5. Agregar Bloques
  13. - Esta charla cubre únicamente la creación de una Blockchain

    pública en un sólo nodo(Servidor) - Falta distribuir la implementación Resumen