Criptomonedas para dummies
Logroño, 13 de Diciembre de 2016
Miguel Angel Marco Buzunariz
Soluciones electrónicas hasta ahora
- Una autoridad central lleva la contabilidad
- El pagador ordena el pago a la autoridad
- La autoridad lo autoriza, y lo notifica al cobrador
Resolver el problema de la confianza
Sustituir la autoridad por una red
- Abierta a que cualquiera participe
- P2P
- Va a tener latencia
- Debe guardar el estado actual
- Que se guarde el historial es inevitable
- Validar un pago no puede depender de toda la red
- Si cualquiera puede unirse y deconectar de la red, no está definida
- Cada nodo debe contener todos los datos relevantes (para evitar el doble pago)
- Claves públicas:
- Sólo el usuario legítimo puede autorizar un pago (información secreta)
- Cualquera debe poder validarlo (información pública)
Resolver el problema de la confianza (2)
Problema: asegurar la consistencia de la red
- Mecanismo de consenso
- Dar incentivos a los nodos para ser honestos
Propuesta: transferencias
- Contienen:
- Entrada: salidas de transferencias anteriores (no usadas en otras)
- Prueba de autorización: generalmente firmas digitales
- Salida: pruebas que deben aportarse para usarse en futuras transacciones
- Generalmente claves públicas con las que se debe firmar
- Pueden ponerse otras condiciones (lenguaje de script)
- Se suele incluir una comisión para el minero
Bloques:
- Son "minados" por los miembros de la red (mineros)
- Contienen:
- El hash del bloque anterior
- El hash de un conjunto de transacciones
- Prueba de trabajo
- Hash de todo lo anterior suficientemente bajo
- El valor umbral se ajusta para que se valide un bloque cada 10 minutos en promedio
- Una transacción sin antecesor (premio para el minero)
- Las transacciones emitidas por los usuarios
- Los mineros compiten por ser el primero en encontrar una prueba de trabajo que valide
- Cuando lo encuentran lo añaden a su cadena y lo transmiten a los demás mineros
Sistema de consenso
- La regla es que, en caso de recibir dos cadenas distintas, se quedan con la que más dificultad acumule.
- Incentivo para minar sobre una cadena que va a ser aceptada por otros mineros.
- Optar por la "cadena perdedora" es mala estrategia
- Incentivo por aceptar lo que la mayoría va a aceptar
- Todos tienen incentivo para mantener el consenso (salvo ataques de mayoría)
- Pueden aparecer conflictos breves
- La garantía de que una transacción va a ser validada en la cadena aumenta con el número de bloques minados sobre ella
- Se recomienda esperar a 6 bloques para dar una transacción por validada (1 hora)
Limitaciones
- Promedio de 7 transacciones por segundo
- Una hora para validar transacciones
- No hay privacidad, solo pseudonimato (mixers)
- Mineros con ASIC dejan fuera de juego a los particulares
- Requiere mucho gasto de energía
Alternativas: otras monedas
- Otros tiempos promedios de minado
- Otros tamaños de bloque (o adaptativo)
- Sidechains
- Otros algoritmos de prueba de trabajo no aptos para ASIC o FPGA
- Prueba de participación en lugar de prueba de trabajo
Dash
- Dos redes
- Mineros: PoW
- Masternodes: PoS
- Los mineros funcionan como en bitcoin
- Los masternodes
- proporcionan mixing automático
- hacen de notarios para permitir transferencias instantáneas
Ethereum
- Lenguaje Turing-completo
- Permite contratos inteligentes
- Fork después del bug en TheDAO
Privacidad
- Dash: mixing automático
- Monero: firmas en anillo
- Zcash: pruebas de conocimiento cero