Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Introducción a la Tecnología Blockchain

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 38 Anuncio
Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Introducción a la Tecnología Blockchain (20)

Anuncio

Más reciente (20)

Introducción a la Tecnología Blockchain

  1. 1. INTRODUCCIÓN A LA TECNOLOGÍA BLOCKCHAIN Noviembre 2018 CNTI/GTO
  2. 2. TECNOLOGIA BLOCKCHAIN Como su nombre lo indica, el Blockchain es una "cadena de bloques", donde un bloque es un grupo de registros de transacciones agregadas. ¿Qué es?
  3. 3. TECNOLOGÍA BLOCKCHAIN ¿Qué es? ✔ La secuencia de cada transacción y cada "moneda/token/activo", se registra en un libro mayor electrónico de acontecimientos digitales compartido y distribuido entre muchas partes diferentes, y es por ello que este paradigma de tecnología suele llamarse DLT (DLT, según las siglas en inglés de Distributed Ledger Technology). ✔ El libro es un registro inmutable, inviolable y no censurable de todas las transacciones desde la primera transacción de "génesis". ✔ La seguridad se maneja mediante protocolos criptográficos y técnicas que aseguran la permanencia, resiliencia e inmutabilidad de los datos. Usando la criptografía, las transacciones se registran cronológica y públicamente, cada una identificada con marca de tiempo y vinculada a la anterior. ✔ Los libros distribuidos, tienen el potencial de permitir el intercambio de cualquier forma de valor entre las partes que no son de confianza en un formato encriptado, sin la necesidad de intermediación por parte de una autoridad centralizada y es por ello que la cadena de bloques puede usarse para almacenar todo tipo de información digital, incluido fragmentos de código informático. ✔ Los sistemas Blockchain/DLT tienen que lidiar con la latencia de la red, errores de transmisión, errores de software, agujeros de seguridad y amenazas de hackers y es por ello que antes de registrar una transacción, los participantes entran en consenso sobre la veracidad de la misma.
  4. 4. ● Cifrado : Hash y Criptografía de clave pública (asimétrica) ● Base de Datos Distribuida ● Algoritmo / Protocolo de Consenso TECNOLOGÍA BLOCKCHAIN Elementos Entre las características que convierten a Blockchain en una herramienta útil pueden destacarse transparencia, descentralización y no necesidad de intermediarios.
  5. 5. ● Hash: el hashing es una función matemática que toma una entrada de cualquier longitud y utiliza una fórmula para crear una salida aparentemente aleatoria alfanumérica de tamaño fijo. ● Todas las funciones hash (incluidas SHA 1, SHA 256, MD 5, Keccak- 256, etc.), se adhieren a algunas reglas importantes. ➢ La misma entrada siempre debe crear la misma salida. ➢ Dos entradas diferentes no pueden producir la misma salida. ➢ Debe ser imposible determinar la entrada dada la salida. ➢ Un ligero cambio en la entrada debe cambiar completamente la salida. TECNOLOGÍA BLOCKCHAIN Hash
  6. 6. ● Los usuarios difunden ampliamente la clave pública pero nunca comparten la clave privada. ● Las dos claves están vinculadas matemáticamente, lo que significa que el contenido que se cifra con la clave pública solo se puede descifrar con la clave privada. TECNOLOGÍA BLOCKCHAIN Cifrado de clave pública / privada (Asimétrico)
  7. 7. ● Proceso de Firma digital (haciendo uso del hash y el cifrado asimétrico): ➢ Primero, el remitente toma su mensaje y crea un hash de él. ➢ Segundo, el remitente encripta el archivo hash usando su clave privada y envía el documento al receptor. ➢ En tercer lugar, el receptor descifra el mensaje utilizando la clave pública del remitente. Esto permite al receptor obtener el hash del archivo. ➢ En cuarto lugar, el receptor toma el documento totalmente descifrado y genera un hash del mismo. ➢ En quinto lugar, el receptor compara los dos hashes y confirma que coinciden. TECNOLOGÍA BLOCKCHAIN Firma Digital
  8. 8. ● Los algoritmos de consenso son la forma en que los participantes de la red acuerdan una "versión única de la verdad". Los participantes de la red utilizan algoritmos de consenso para confirmar que las transacciones propuestas son válidas y que una persona que envía un activo en realidad posee ese activo en primer lugar. ● El protocolo de consenso es el procedimiento mediante el cual se elige a un nodo para proponer un nuevo bloque. Se pretende que esta elección sea aleatoria ● Estos mecanismos son importantes porque son la forma en que las redes de blockchain resuelven el problema del doble gasto. El problema del doble gasto se refiere esencialmente a la idea de que los activos digitales son fáciles de replicar, por lo que existe la posibilidad de que alguien intente copiar un activo digital y usarlo dos veces TECNOLOGÍA BLOCKCHAIN Algoritmos de Concenso
  9. 9. ● Proof-of-Work (PoW): donde se exige un esfuerzo a los participantes en el sorteo para determinar quién propone el siguiente bloque, y se da una recompensa al ganador. El esfuerzo aquí consiste emplear capacidad computacional para encontrar el código hash que valide el bloque anterior. ● Proof-of-Stake (PoS): Consiste en asignar mayor probabilidad de ganar el sorteo a aquellos que tienen más activos en la red. ● Leased-Proof-of-Stake (LPoS). Una variación de PoS en la que usuarios con poco capital pueden ceder sus probabilidades de ganar el sorteo. En caso de que el nodo en el que hayan delegado resulte el ganador y haya algún tipo de recompensa por el minado, se reparte proporcionalmente entre él y las personas que lo apoyaron. ● Proof of Importance (PoI). Funciona como PoW pero asignando la probabilidad de ser elegido en función de la actividad -transacciones, balance o reputación- en la red del nodo en lugar de su dinero. La idea es la misma, premiar con el derecho de proposición de bloques a las personas que más interesadas están en el buen funcionamiento de la cadena, de forma que no les convenga proponer bloques maliciosos que puedan perjudicarla. ● Delegated-Proof-of-Stake (DPoS). DPoS una variación de PoS en la que los nodos pueden proponer a cualquier otro nodo bien para validar bloques -a los que se conoce como testigos- o bien para decidir sobre las características, como tiempo entre bloques o tamaño del bloque, de la propia red -a los que se conoce como delegados TECNOLOGÍA BLOCKCHAIN Protocolos de Consenso
  10. 10. BLOCKCHAIN - ¿Cómo Trabaja?
  11. 11. TECNOLOGÍA BLOCKCHAIN El Libro Mayor
  12. 12. TECNOLOGÍA BLOCKCHAIN Modelos de Governanza ● Públicas: Son aquellas a las que cualquier persona tiene acceso. ● Federadas: No son públicas, sino que un número determinado de organizaciones, entidades o compañías se encargan de administrar la red y mantener copias sincronizadas del blockchain ● Privadas: Son aquellas en los que el control está reducido a una única entidad que se encarga de mantener la cadena, dar permisos a los usuarios que se desea que participen, proponer transacciones y aceptar los bloques. ● Blockchain as a Service (BaaS): Algunas grandes compañías ofrecen servicios de blockchain en la nube. Algunos ejemplos son IBM especializada en Hyperledger Fabric, Amazon colaborando con Digital Currency Group, o R3, Hyperledger Fabric o Quorum, entre otras.
  13. 13. TECNOLOGÍA BLOCKCHAIN Modelo de Governanza Permiso no requerido (Permissionless) Permiso requerido (Permissioned) Públicas Bitcoin, Ethereum, IOTA NEM, Litecoin Sovrin, Mijin, IPDB Privadas Hyperledger Sawtooth Hyperledger (Sawtooth, Fabric, Iroha), R3 Corda CU Ledger Federadas Hyperledger, Corda, Quorum BaaS IBM, Microsoft, Amazon Validación Acceso
  14. 14. APLICACIONES DE BLOCKCHAIN Casos de Uso
  15. 15. APLICACIONES COMUNES DE BLOCKCHAIN
  16. 16. APLICACIONES DE BLOCKCHAIN Contratos Inteligentes
  17. 17. APLICACIONES DE BLOCKCHAIN Contratos Inteligentes ➢ Los Contratos Inteligentes son un elemento fundamental de la tecnología blockchain, ya que establecen y definen cómo y quién puede llevar a cabo qué transacciones. Son contratos en los que se definen y especifican una serie de cláusulas, como los controles a cumplir por la mercancía mencionados en la sección previa y el pago final acordado en caso de que estos sean superados. ➢La diferencia con los contratos usuales es que estos son incorporados a un blockchain o cadena de bloques en la red, que garantiza su seguridad y proporciona el entorno adecuado para su procesamiento automático.
  18. 18. APLICACIONES DE BLOCKCHAIN ➢ Blockchain es una herramienta, cuyo uso requiere de un estudio y comprensión de las necesidades del proyecto y de la oportunidad de uso real de tecnología, la identificación del grado de transparencia y descentralización, la determinación de los miembros que actuarán como nodos y el establecimiento de la estructura de blockchain adecuada. ➢ Blockchain será útil en la medida que el caso de uso tenga necesidad de descentralización registro inmutable, transparencia, consenso y validación.
  19. 19. APLICACIONES DE BLOCKCHAIN Un enfoque práctico de Blockchain exige una comprensión clara de: ✔ Las capacidades y limitaciones de Blockchain y los riegos potenciales de su adopción (p.e: características específicas/ paradigmas del contexto organizacional, la gestión de la información y aspectos legales). ✔ Una arquitectura de confianza y las habilidades de implementación necesarias. ✔ Los conocimiento y habilidades del equipo en la tecnología y sus usos reales. ✔ Identificar los puntos de integración con las infraestructuras existentes y controlar la evolución y maduración de la plataforma. ✔ La gobernanza, la auditabilidad y el control de las redes y los componentes de blockchain que los respaldan que son es un desafío para la gestión de los riesgos.
  20. 20. COMO INICIAR APLICACIONES: ● Blockchain no es una solución sino una herramienta. Para construir la solución es fundamental: el entendimiento del problema, la identificación de los actores, la selección de la tecnología y la implementación de la misma. ● Antes de iniciar una aplicación, se recomienda la formulación de las siguientes preguntas: (a) ¿Cuál es el problema que se está tratando de resolver? (b) ¿Quién va a tener acceso a la red blockchain? ¿Quién va a administrar los permisos?. (c) ¿Los participantes son de diferentes categorías (gobiernos, empresas, trabajadores, ...)? (d) ¿Confían los distintos participantes unos en otros? En caso contrario, ¿cuáles son las causas de disputa? ¿Tienen intereses diferentes? (e) ¿Hay intermediarios involucrados? ¿Quién o quiénes serán encargados de validar? ¿Cuáles son las reglas para validar? - Muy importante aspecto para prevenir la corrupción (f) ¿Cuál es el presupuesto del proyecto?
  21. 21. COMO INICIAR APLICACIONES: ➢Una vez se haya definido con claridad el problema a resolver; se haya analizado el grado de descentralización, transparencia, consenso y validación; se hayan identificado los participantes y se haya llegado a la conclusión de que Blockchain es la herramienta adecuada para resolver el problema, hay que definir 3 elementos: ✔ Participantes: Aquellos colectivos que van a jugar un papel, desde los que administran la red -en el caso de que las haya- hasta los usuarios de a pie, pasando por entidades auditoras, instituciones financieras. ✔ Activos/Haberes/Valores: Una vez tenemos claro quién va a participar, necesitamos saber qué van a intercambiar. ✔ Transacciones: Son las reglas del juego u operaciones mediante las cuales los participantes crean, intercambian, modifican o destruyen activos. Además, al definir las transacciones podemos también especificar qué participantes tienen permisos para realizar una determinada transacción y cuáles son las validaciones necesarias para que esa transacción se procese y se añada al Blockchain
  22. 22. ARQUITECTURA: ● En una solución que utilice blockchain, será frecuente encontrarse con otros dos componentes además del blockchain, a saber, interfaz web y base de datos.
  23. 23. EJEMPLOS DE TECNOLOGÍAS BLOCKCHAIN
  24. 24. EJEMPLOS DE TECNOLOGÍAS BLOCKCHAIN Tecnología Descripción Ethereum Wallet v0.9.2 (Estable) Es una puerta de entrada a la cadena de bloques de Ethereum, que permite escribir, implementar y usar contratos inteligentes. Ethereum utiliza el lenguaje LLL, Serpent y Solidity y el API JavaScript (web3.js) con interfaz JSON RPC Hyperledger Sawtooth Proyecto de Hyperledger hospedado por Linux Foundation (originalmente contribuido por Intel), que incluye una función de consenso dinámico que permite el intercambio en caliente de algoritmos de consenso (Dev_mode, PoEt, PoEt Simulator, RAFT – por defecto PoEt o "Prueba de tiempo transcurrido" que usa el SGX de Intel). Admite contratos inteligentes de Ethereum a través de "seth" (un procesador de transacción “seth-tp” que integra Hyperledger Burrow EVM para el soporte de solidity – a través de un un servidor` seth-rpc` compatible con las interfaces Public Ethereum y Burrow JSON-RPC ). Incluye SDK para Python, Go, Javascript, Rust, Java y C + + Hyperledger Fabric Proyectos de Hyperledger hospedado por Linux Foundation (originalmente aportado por IBM y y Digital Asset). No utiliza criptomonedas / token, usa redes autorizadas por una entidad certificadora o servicios de membresía (CA). El consenso es configurable. La aplicación cliente usa Hyperledger Fabric SDK o el servicio web REST para interactuar con la red, los Smart Contracts se denominan Chaincodes desarrollados en Golang o Java y desplegados en una Ethereum EVM. NEM Es una plataforma peer to peer y proporciona servicios como pagos, mensajería, creación de activos y sistema de nomenclatura que usa un protocolo de consenso basado en el algoritmo de Prueba de Importancia.
  25. 25. NEM - Arquitectura Los nodos proporcionan una puerta de enlace mediante una API basada en JSON para que las aplicaciones puedan comunicarse con la blockchain
  26. 26. NEM - Características ●Namespaces: Similares a los nombres de dominios en la web. Podemos encontrar namespaces raíz y subnamespaces (gestión de nombres de dominio únicos). ●Mosaics: Representan activos digitales, que se encuentran almacenados bajo un namespace y subnamespace. XEM es a su vez un mosaico (incluye descripciones, gravámenes y derechos de transferencia). ●PoI (Proof of Importance): Es el algoritmo usado en NEM. La importancia de un usuario depende del número de monedas que posee (y el tiempo) y del número de transacciones que ha realizado con su wallet (de entrada y de salida). ●Harvesting: Es la tarea de crear los bloques de la red NEM. Para poder realizar esta tarea se necesitan en la cuenta 10000 XEM. ●Mensajes en las transacciones: Es posible incluir mensajes (incluso encriptados) en las transacciones. ●Transacciones multifirma: Una de las características de NEM es que podemos crear transacciones multifirma. ●Wallet: Tiene su propia wallet, que se llama "nanoWallet" y está desarrollada en Javascript.
  27. 27. NEM Apostillado NEM incluye un servicio de autorización o “apostillado” de blockchain, que busca proporcionar las funcionalidades inherentes a los servicios notariales tradicionales, que incluyen verificabilidad, transferibilidad (propia o certificación de terceros) y actualización, aprovechando el servicio de nombres de NEM, cuentas de múltiples firmas, mensajería y activos de blockchain (mosaico). El Servicio Apostilla se utiliza para registrar documentos importantes que necesitan un certificado de origen y contenido (p.e: títulos de propiedad, contratos comerciales, seguimiento de artículos en la cadena logística, certificados, boletos y prevención de falsificaciones) y permite legalizar y verificar la autenticidad de los archivos notariados en la cadena de bloques NEM.
  28. 28. NEM Apostillado El servicio Apostilla, crea una clave privada única y exclusiva para el documento. Las apostillas no llevan un timestamp permanente y estático, sino valores dinámicos, cambiantes y actualizables en la blockchain; pueden ser certificadas por terceros y/o ser de propiedad conjunta. Después de un apostillado exitoso, NEM entrega un archivo en formato comprimido .zip que contiene el archivo .pdf asociado al certificado (apostilla) junto con al archivo original con su hash, y un archivo .nty actualizado que es su historial del apostillado.
  29. 29. NEM - Framework
  30. 30. NEM – RED PUBLICA/RED PRIVADA CATAPULT
  31. 31. HYPERLEDGER FABRIC ●Activos: se representan como pares clave-valor, con cambios de estado registrados como transacciones (formato binario y / o JSON). ●Chaincode: software que define uno o mas activos, y las instrucciones de transacción para su modificación. ●Libro mayor: registro secuencial e inmutable de todas las transiciones de estado (resultado de las invocaciones de "chaincode" - "transacciones"). ●Nodos: entidades de comunicación de la cadena de bloque ●Privacidad a través de los canales: Los canales permiten transacciones multilaterales con altos grados de privacidad y confidencialidad. Hay un libro de contabilidad por canal. ●Servicios de seguridad y membresía: la membresía autorizada proporciona una red blockchain de confianza, donde los participantes saben que todas las transacciones pueden ser detectadas y rastreadas por reguladores y auditores autorizados. ●Consenso: Práctica de tolerancia de faltas bizantinas (PBFT). Compuesto de tres fases: Endorsement, Ordering y Validation.
  32. 32. HYPERLEDGER FABRIC
  33. 33. HYPERLEDGER SWTOOTH - Características El protocolo de consenso por defecto es PoET, que utiliza el entorno de ejecución Intel Software Guard Extensions (SGX) para garantizar la seguridad y la aleatoriedad del proceso de elección del líder sin requerir la inversión costosa de energía y hardware especializado. Hace uso de familias de transacciones para encapsular la lógica de negocio, las cuales pueden ser simples o complejas. Se proveen tres por defecto: ●EndPointRegistry: para registrar servicios contables. ●IntegerKey: para probar los libros contables implementados. ●MarketPlace: para comprar, vender y comercializar activos digitales. La arquitectura segrega la definición de la carga útil de la transacción, la validación y la lógica de administración del estado, del sistema central. El motor de ejecución permite que las transacciones se procesen en paralelo, lo que aumenta el rendimiento general de la red
  34. 34. HYPERLEDGER SWTOOTH - Características Los SDK del procesador de transacciones están disponibles para diferentes lenguajes: Python, JavaScript, Go, C ++, Java y Rust e incluye un API REST . El sistema central es responsable de la gestión de mensajes, la publicación / validación del bloque, el consenso y la gestión global del estado El validador es el componente central para ejecutar un Libro mayor distribuido y orquesta el procesamiento de transacciones, la comunicación entre pares dentro de una red y el consenso entre pares con respecto al resultado de las transacciones. El procesamiento de transacciones se gestiona a través de una red de componentes locales mediante un protocolo Gossip. El motor de ejecución permite que las transacciones se procesen en paralelo, lo que aumenta el rendimiento general de la red Incluye soporte para Ethereum a través de la ejecución de contratos inteligentes de Solidity y habilitación de herramientas Ethereum (conocida como Seth).
  35. 35. HYPERLEDGER SWTOOTH
  36. 36. HYPERLEDGER SWTOOTH
  37. 37. HYPERLEDGER SWTOOTH

×