Tema 4: Blockchain. Fundamentos y aplicaciones Flashcards
Blockchain. Visión general.
Red distribuida de nodos que mantienen
una copia común del estado del sistema.
La adición de información se produce
mediante consenso entre los nodos
La información añadida no puede ser
modificada posteriormente
Cualquier parte puede auditar, en
cualquier momento, el estado del sistema.
De forma singular, ninguno de los nodos
es plenamente confiable
Oráculos.
Herramienta externa a la Blockchain para :
proporcionar información confiable (resultados deportivos,
creación de aleatoriedad, etc.)
Pruebas criptográficas de inalterabilidad
Externalizar cómputos que serían inviables en la propia Blockchain
Tres tipos
Publish-subscribe
On-demand
Request-response
Ejemplos
Provable (antes Oraclize)
ChainLink (descentralizado)
Tipos de blockchain (privadas o públicas)
Blockchain pública: cualquier entidad tiene acceso.
Blockchain privada: destinada a ser empleada de forma interna (para sistemas de información corporativos).
Tipos de blockchain (según el rol de los participantes)
Blockchain con permisos: cada participante tiene una serie de
atribuciones en función de su rol
Sólo un subconjunto de los nodos mantiene la blockchain (e.g.,
minado)
Blockchain sin permisos: Todos los nodos son iguales y efectúan las
mismas tareas.
Bloque.
Cantidad mínima de almacenamiento de información
Están enlazados, habitualmente mediante mecanismos criptográficos, con el bloque anterior (y a veces con el siguiente)
Transacción
Unidad mínima de transferencia de información entre nodos
Un bloque puede contener una o más transacciones.
Fork
Alteración en las normas de funcionamiento de la Blockchain.
Hard: incompatible con lo anterior, causa una ramificación
Soft: cambio menor, compatible con la cadena anterior
Master node.
Mantienen una copia de la Blockchain.
Requisitos:
tener un computador con disponibilidad 24/7
(a veces) una cantidad de monedas congeladas.
Reciben una cierta cantidad de recompensa de todas las transacciones
Minero
Se encarga de la validación de la transacción
Tanto la cantidad de mineros como la tarea a realizar vienen determinados
por el tipo de Blockchain.
Prueba de esfuerzo (Proof of Work)
El nodo encargado de la tarea debe demostrar que ha resuelto un
problema para el que es necesario invertir una cierta cantidad de recursos
computacionales.
Mecanismos de seguridad de la blockchain.
- Integridad
- Disponibilidad
Prueba de interés (Proof of Stake).
El nodo encargado de la tarea debe demostrar que tiene un cierto nivel de
interés en el adecuado resultado de la misma.
En Blockchain financieras, este interés se suele representar con al
cantidad de dinero poseído por dicho nodo
Ventajas y desventajas de Proof of Work.
- Ventajas:
· Evita el control centralizado de la red.
· Promueve la convergencia a una misma cadena (sin forks). - Desventajas:
· Problemas de eficiencia energética (muchos nodos invierten recursos para tratar de resolver el problema).
· Problema del 51%
Protocolo Casper (Ethereum).
Problema de fondo: en un fork, el validador puede apostar por ambas
ramas sin temor a pérdidas (Nothing At Stake, NAS).
- Pasos:
Los validadores reservan parte de sus monedas
Apuestan por el nuevo bloque que podría incluirse en la cadena
Si su bloque “gana”, obtienen un beneficio proporcional a la apuesta
Si algún nodo intenta un ataque de NAS, pierde su reserva de monedas.
· Se penaliza a los validadores que no estén disponibles.
2 versiones de Casper:
- Casper Ghost
- Casper FFG:
Los bloques se validan mediante PoW
Cada 50 bloques, se valida uno mediante PoS
Ese bloque sirve de punto de referencia inalterable: todo lo anterior no se
puede deshacer
Ventajas y desventajas de proof of stake.
- Ventajas: no hay desperdicio de recursos.
- Desventajas: El rico tiende a ser más rico (concentración de poder).
Tipos de ataques.
- Transaction malleability:
Modificar la transacción de modo que el validador o incluso el receptor resulten afectados (ocurre justo antes de que se valide la transacción y de que sea introducida en la blockchain). - Finney Attack:
transacción con double spending - Race Attack: enviar dos transacciones de forma simultánea (al legítimo receptor y a otro nodo que controle el emisor).
Similar a Finney Attack pero sin preminado. - Punitive and Feather Forking: busca aislar algunas direcciones -> crear fork donde no se incluyan las direcciones de esas transacciones.
- Selfish mining attack: los mineros egoístas trabajan en privado -> se desperdicia la capacidad de cómputo de los mineros honestos.
- Sybil attack: crear múltiples identidades.
Contrato inteligente (Smart Contract).
Porción de código incluida en la Blockchain con la que se puede
interactuar con el fin de ejecutar sus funciones y, posiblemente,
desencadenar otros eventos o transacciones.
Su código se ejecuta en los equipos de los mineros
Gas.
Coste por unidad de computación de una operación de un contrato
inteligente
Hay dos parámetros relacionados:
Cuánto gas quiero pagar (gas Price)
Límite que estamos dispuestos a pagar (gas limit) por un
determinado contrato.
Aplicaciones de blockchain.
- Criptomonedas
- Gestión documental
- Procesos electorales
- Contratación (contratos inteligentes)
- Ámbito financiero
- Ciberseguridad