Blockchain Ethereum.

Slides:



Advertisements
Presentaciones similares
Control de errores visual basic
Advertisements

SOLUCIONES TECNOLÓGICAS Protección de las comunicaciones en internet
Salvador Casquero Algarra 1 Blockchain & bitcoin - ¿ Oportunidad o amenaza ? 21 abril 2016 Dirección de Tesorería y Mercado de Capitales.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
¡LOS SERVIDORES DE FTP Y NUBE!
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Código Hamming Benemérita universidad autónoma de puebla
BITCOIN.
Nuevas Tecnologías aplicadas a los servicios de pago
Javier González Granado Notario de Formentera
Un universo de información
¿Qué es Bitcoin?. Bitcoin es una criptomoneda. Esto quiere decir que es una moneda virtual y también intangible. Es decir, no es algo físico, por lo que.
ARQUITECTURA BÁSICA DE UN ORDENADOR
Multiplexación y encriptación
Base de Datos Conjunto de información, la cual ha sido organizada y presentada para servir un propósito específico.
Programación Avanzada
ACCESIBILIDAD WEB.
Protocolo de comunicación
U.T. 11: Introducción A Las Bases De Datos
Tcman TCMAN MANUAL GIM 2014 GIM ANDROID VERSION 2.0.
Big Data, Internet de las Cosas
BASES DE DATOS.
Los sistemas de información en las empresas y los demás sistemas.
EL MODELO RELACIONAL Creado por Edgar Codd, 1970:
Sistema de Bases de Datos
UNIVERSIDAD ICEP INTELIGENCIA ARTIFICIAL INGENIERÍA EN SISTEMAS COMPUTACIONALES Martes, 24 de Octubre de 2017 REPRESENTACIÓN DEL CONOCIMIENTO Y RAZONAMIENTO.
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Novell Netware Autores: Cerrina Maria Josefina, Coto Marcelo,
TIPO DE DATOS EN ACCESS 2010 TEXTO, MEMO, NUMERO, FECHA/HORA, MONEDA, AUTONUMERACION, SI/NO, OBJETO OLE, HIPERVINCULO, DATOS ADJUNTADOS, CALCULADO Y ASISTENTES.
Minería de criptodivisas
Tema 3. Lenguaje unificado de modelado UML
QUE ES UN SERVIDOR DE CORREO
HERRAMIENTAS BÁSICAS PARA ESTUDIO VIRTUAL
SMART CONTRACTS & ICOs Cristina Carrascosa Cobos Cris Carrascosa
QUE ES EL SOFTWARE Es un conjunto de programas de computo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones.
ICAS REDES Y SUBREDES LIA. Reginaldo Sánchez Carranza.
PROCESOS COMENZAR.
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
Retiro Técnico Puerto Vallarta 2017
Programación Orientada a Objetos
Conceptos Relacionados Unidad I. Parte A.
¿Son legales las criptomonedas?
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
1 Dirección IP - Características Las direcciones IP se denominan direcciones lógicas. Tienen un direccionamiento Jerárquico. Representan una conexión de.
UNFV-FIC TEMA: EL BITCOIN ALUMNO : ESPINOZA VILLACORTA ALEX MGUEL CODIGO: CURSO: DEFENSA NACIONAL DOCENTE: RAMOS FLORES MIGUEL ANGEL AÑO :
Presentación SIC-CEIC v3.1
Punto 4 – Componentes del servicio DNS
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
“Blockchain - Conceptos” Rogelio Ferreira Escutia
Bases de Datos Distribuidas Ing. Fernando Ortiz Ahumada
Sistema de deposito de dinero ECD10 / ECD20
CAPA FÍSICA DEL MODELO OSI La capa física: Señales de comunicación.
Lenguajes del lado del cliente
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
SERVICIOS DE ALMACENAMIENTO EN LA NUBE DE QUE SE TRATA El Almacenamiento en la Nube consiste en guardar archivos en un lugar de Internet. Esos lugares.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Curso Básico de Blockchain Blockchain Hecho Facil.
LA NUBE: ¿QUÉ ES? Es el servicio virtual que sirve para guardar tus archivos en Internet, siempre dispuesto para ti sin necesidad de descargar, traer tus.
ANÁLISIS Y DISEÑO DESDE UNA PERSPECTIVA ORIENTADA A OBJETOS Alan Vargas.
INTERNET Cuando la gente hace referencia a Internet se está refiriendo normalmente a esta red y a un conjunto de servicios y aplicaciones que permiten.
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU FACULTAD DE INGENIERIA DE MINAS HUANCAYO I MODELO DE REDES Ing. Eli Teobaldo Caro Meza CURSO: INVESTIGACION.
Access Este programa permite manipular datos en forma de tablas, realizar cálculos complejos con fórmulas y funciones, incluso dibujar distintos tipos.
UNIDAD II Generalidades sobre Algoritmos
Cliente Servidor Petición Respuesta Aplicaciones Cliente-Servidor.
SERVICIOS QUE OFRECEN LAS PRINCIPALES OPERADORAS DE TELEFONIA MOVIL EN EL PERU.
“Blockchain - Conceptos” Rogelio Ferreira Escutia
Medios. Transmisión a través de ondas de radio de alta frecuencia (En el rango de 1 a 30 GigaHertz) para comunicaciones de banda ancha. Requiere una estación.
Transcripción de la presentación:

Blockchain Ethereum

Richard Buckminster Fuller No es posible cambiar las cosas luchando con la realidad. Para cambiar algo, construye un modelo nuevo que deje obsoleto el modelo existente. Richard Buckminster Fuller

Bitcoin: sistema de dinero en efectivo electrónico Inicio Blockchain ¿Quién? Artículo en 2008 Bitcoin Satoshi Nakamoto Bitcoin: sistema de dinero en efectivo electrónico peer-to-peer Nace en 2009

Blockchain Ledger o registro de transacciones y eventos digitales Red Descentralizada BD distribuida que almacena cualquier transacción que represente valor

Características Imparable: Nadie tiene el control sobre la cadena de bloques. Accesible: Cualquier persona con acceso a internet puede interactuar en ella. Peer-to-Peer: El propio usuario que utiliza y comparte la red al mismo tiempo. Sistema Distribuido: Toda la información se almacena por igual en cada nodo de la red. Seguridad: Al estar la información en toda la red es prácticamente imposible de modificar la información. Inmutabilidad de los datos: Escritos los datos, jamás se pueden borrar o cambiarlos, beneficiando su propia auditoría. Democrático: La información se aprueba por consenso por los nodos.

¿Cómo funciona? Transacción es: Guarda los datos en la transacción. “Cada blockchain tiene su manera” Pasan a la red Peer-to-Peer La transacción se ejecuta y valida según los contratos y scripts precompartidos por la red. Nodos mismas reglas Transacción es: Es Atómica. Resultado se agrega a la blockchain Es Independiente a otras operaciones. Es Inmortal a no ser que esté la función eliminar programada.

¿Actores en Blockchain? Mineros: son un tipo de usuario que mediante al poder computacional de sus máquinas les permite participar en la verificación de bloques a través de la competición de prueba de trabajo (Proof or Work) Desarrolladores: son un grupo de personas encargadas de desarrollar el software que implementa el protocolo. Usuarios: son un grupo de personas que ejecutan un software en sus dispositivos, que les asigna una cuenta y pueden: Enviar o recibir divisas. Ejecutar transacciones. Sincronizar datos con el resto de la red.

Hashing Consiste en ejecutar un algoritmo matemático que crea un resultado con una longitud dada totalmente independiente al input. ¿Qué es el HASH? Es una función unidireccional que devuelve siempre resultado a una misma entrada, pero jamás permite averiguar la entrada según el resultado del algoritmo. Características: Seguridad Fácil comparación Consistencia Proceso rápido de calculo Ethereum usa el algoritmo KECCAK-512 KECCAK indica la familia del algoritmo 512indica la complejidad.

Bloque Agrupa transacciones en un orden temporal. Bloque X-1 Bloque X Cabecera: Hash bloque X-2 Timestamp Nonce Difficulty Merkle Root Proof of work Cabecera: Hash bloque X-1 Timestamp Nonce Difficulty Merkle Root Proof of work Cabecera: Hash bloque X Timestamp Nonce Difficulty Merkle Root Proof of work Lista de transacciones Lista de transacciones Lista de transacciones Hash bloque X-1 Hash bloque X Hash bloque X+1

Principales campos de un Bloque Timestamp: Fecha y hora en la cual se generó el bloque. Nonce: Solución aportada por el minero para encontrar un hash por debajo de la dificultad del bloque y asi resolver el problema matemático. Difficulty: Valor dificultad que tiene un cada bloque Transactions: Listado de las transacciones de un bloque. Hash: Identificador único del bloque. Mined By: Dirección Ethereum del minero que ganó el algoritmo de consenso (Proof of work). Gas used: Gas total gastado en comisiones por las transacciones del bloque. Gas Limit: Límite máximo establecido en el bloque. Block reward: Es la cantidad de ether y gas used ganada por el minero al validar el bloque.

Cálculo Hash para un bloque Función unidireccional que devuelve siempre resultado a una misma entrada, pero jamás permite averiguar la entrada según el resultado del algoritmo. Difficulty Target: es la dificultad que puede tener un Hash establecido en cada bloque. Nonce: número arbitrario que tiene cada bloque. ¿Cómo calculamos un hash? Consiste en cambiar el valor del Nonce hasta tener un valor del hash resultante inferior a la dificultad objetivo. Hash= contenido del bloque + Nonce If (hash < dificulty target) return BloqueValido

Proof of Work Consiste cuando los mineros resuelven complicados acertijos criptográficos para validar transacciones y agregar un nuevo bloque a la cadena. En Ethereum cada 15 segundos se agrega un nuevo bloque a la cadena de bloques donde los mineros buscan un nonce que ayuda a generar un valor de hash de bloque.  El sistema de manera autónoma aumenta o disminuye la dificultad de cada bloque en función del tiempo de resolución. Mayor tiempo de resolución menor dificultad del bloque. Menor tiempo de resolución mayor dificultad del bloque. Este sistema es eficaz porque proporciona seguridad a la red y consistencia de los datos, pero no es tan eficiente en la utilización óptima de los recursos (gran consumo de energía). 

Los Mineros Nonce Encuentran Envían a la red y los nodos lo verifican Insert Coin Es correcto Gana el block reward Introduce una transacción en el bloque

Transacciones y Estructura Una transacción consiste en un paquete de datos firmados que almacena un mensaje enviado desde una cuenta externa. Estructura: El receptor del mensaje. Firma digital que identifica al emisor. Cantidad de fondos ether que se transfieren desde la cuenta del emisor a la del receptor. Un campo opcional de datos. Valor STARTGAS: máximo número de pasos computacionales que se permite ejecutar a la transacción. Valor GAS PRICE.

Smart Contract Según sus fundadores un Smart Contract es: “Los smart contracts son una forma para que personas de todo el mundo hagan negocios entre sí, incluso si no hablan el mismo idioma o no utilizan la misma moneda”. En otras palabras podemos definirlos como programas que se almacenan dentro de una cada de bloques. Estos programas se componen de una serie de reglas que una vez desplegadas en la red no pueden ser modificados.

Cómo desarrollar Smart Contract en Ethereum Convierte a Con una transacción se instancia Ejecuta ByteCode Solidity Código Máquina Red Ethereum Ethereum VM

Remix Calculadora en Solidity pragma solidity ^0.4.24;      contract Calculator {     //Atributos     int private _suma;     int private _resta;     int private _multipli;     int private _div;     address private _owner;         //Constructor     constructor() public {         _owner=msg.sender;     }     //Metodos     function getSuma()  public view returns(int) {         return _suma;     function getresta()  public view returns(int) {         return _resta;     function getMultipli()  public view returns(int) {         return _multipli;     function getDiv()  public view returns(int) {         return _div;     function getOwner() public view returns(address) {         return _owner;     //Funciones     function add(int a, int b)   public returns (int) {_suma=a + b;}     function resta(int a, int b) public returns (int) {_resta=a - b;}     function multi(int a, int b) public returns (int) {_multipli= a * b;}     function div(int a, int b)   public returns (int) {_div= a / b;} } Calculadora en Solidity

¿Pública o Privada? Publica: Privada: Democrática Disponible para todo el mundo Difícil de atacar Consenso de la comunidad Elevado coste transacciones y almacenamiento Privada: Semejanza a bases de datos distribuidas y compartidas Se tiene el control sobre quién accede a la blockchain Menos nodos, más fácil de atacar Costes controlados al ser cada uno el propietario Ayuda al control del almacenamiento de datos confidenciales

IoT Usos del Blockchain Certificaciones Productos Digitales Monedas digitales Vida Útil de Productos Certificaciones Productos Digitales IoT

GRACIAS