Lección 13: Blockchain Flashcards

1
Q

¿Qué es bitcoin?

A
  • Bitcoin es una criptomoneda: Fragmento de código que representa la propiedad de un concepto digital.
  • Bitcoin es un protocolo de blockchain (red P2P distribuida que mantiene un registro de saldos de Bitcoin).
  • Seguridad basada en criptografía y mecanismo de consenso (PoW)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Beneficios de Bitcoin

A
  • Descentralizado: ninguna entidad controla la red
  • Suministro limitado: controlado por el algoritmo
  • Pseudo-anónimo: usuarios identificados por direcciones
  • Inmutable: las transacciones no pueden ser revertidas
  • Divisible: la unidad mínima es un satoshi (8º decimal)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿De que se compone Bitcoin?

A
  • Bitcoin protocol: red P2P descentralizada
  • Blockchain: registro público de transacciones.
  • Reglas de consenso: reglas de emisión y transmisión
  • Proof of Work: mecanismo de consenso global.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Direcciones y claves

A
  • Dirección proporciona identidad pseudoanónima única.
  • Basadas en criptografía asimétrica (clave pública y privada).
  • Clave privada (número aleatorio, se usan para firmar las transacciones.)
  • Clave pública: derivadas de la clave privada.
  • Dirección bitcoin: derivada de clave pública, caracteres alfanuméricos (siempre empieza por 1).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Creando y verificando direcciones

A
  • Dada la clave pública, cualquiera puede verificar si la dirección corresponde a la clave pública.
  • Símil dirección - cuenta bancaria.
  • La clase privada es la que permite desbloquear la cuenta para poder hacer transacciones desde esa dirección.
  • Se puede regenerar la clave pública a partir de la privada.
  • Sin la clave privada es imposible transferir dinero.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wallets

A

• Se utilizan para almacenar todas las nuestras claves (y direcciones).
• Se almacenan utilizando un cifrado simétrico con clave secreta.
• Contienen nuestro dinero actual (transacciones sin gastar de cuyas
direcciones tenemos la clave privada).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tipos de wallets

A

• No-deterministas: todas las claves privadas son generadas de forma aleatoria
• Deterministas: una clave privada aleatoria, el resto de claves son derivadas
- Web wallets (de custodia): se accede a través del navegador, son guardadas por una tercera parte.
- Software wallets (extensión en el navegador): el software y las claves privadas están en el equipo del cliente.
- Hardware wallets: las claves privadas se guardan en un dispositivo físico seguro.
- Cold wallets: las claves nunca han sido conectadas a ninguna red (ej. en papel).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Transacción de Bitcoin

A
  • Una transacción es un intercambio de Bitcoins entre direcciones.
  • No hay concepto de “balance por cuenta” (sólo transacciones, lo que implica que hay que enviarse el dinero sobrante de la transacción a una cuenta propia).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Modelo UTXO (Unspent Transaction Output)

A
  • Inputs:
  • Una o más “salidas sin gastar” (UTXOs) de transacciones anteriores.
  • Sin gastar es que no se ha utilizado como entrada de otra transacción.

• Outputs:
• El destino de la transacción son direcciones de destino.
• Si se quiere transferir “menos dinero”, al menos habrá 2 salidas,
destinatario(s) y dirección de cambio.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Comisión de transacción

A

• En teoría, las transacciones son procesadas de forma gratuita.
- Las comisiones de transacción no aparecen.
• No obstante, los usuarios pueden ofrecer una “recompensa” a los
mineros por validar su transacción.
• La comisión de transacción es la diferencia entre la suma los inputs
y los outputs (fees = inputs – outputs).
• Los mineros suelen priorizan transacciones en base a su comisión.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Prueba de “propiedad” de transacción

A

• La “prueba” se basa en firma digital. Se envía la transacción junto con
la firma digital para cada una de las entradas (si tienen direcciones
distintas).
• La firma incluye la clave pública de la dirección a la que pertenece.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Verificación de una transacción

A
  1. La clave pública corresponde con la
    dirección, repitiendo el proceso sobre la
    clave pública que genera una dirección
    unívoca.
  2. La clave pública permite verificar la
    firma, si permite verificarla el firmante
    es dueño de la transacción anterior.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Seguridad de la verificación

A

• La transacción contiene toda la información necesaria para su
verificación (no se necesita un certification authority)
- Nunca se comparten las claves privadas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cadena de bloques

A

• Cada bloque contiene un conjunto de transacciones.
• Cada bloque está ligado al bloque anterior.
• El primer bloque se denomina “génesis” y se crea manualmente.
• Se pueden añadir bloques a la cadena, pero no se pueden eliminar ni
modificar bloques existentes.
• Los bloques están ligados mediante mecanismos de criptografía de
forma que cualquiera pueda comprobar la veracidad de la cadena.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Estructura de un bloque de Bitcoin

A
- Cabecera del bloque (80 bytes)
• Versión (4 bytes)
• Hash del bloque anterior (32 bytes)
• Merkle root (32 bytes)
• Timestamp (4 bytes)
• Dificultad (4 bytes)
• Nonce (4 bytes)
  • Transacciones (variable)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Identificadores de bloque

A

• Hash de la cabecera del bloque: Hash SHA256 único generado
para cada bloque.
• Altura de bloque: Posición que ocupa el bloque en
la cadena.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Merkle Tree

A
  • Almacena un resumen de todas las transacciones en el bloque.
  • La cabecera del bloque incluye un Merkle Tree del bloque.
  • Las hojas del árbol son las hashes de las transacciones.
  • Los padres consisten en el hash de los hijos.
  • Se utiliza para pruebas de integridad y de pertenencia del bloque
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Bitcoin – Tipos de nodos

A
  • Completos
  • Ligeros
  • Mineros
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Nodos completos (full node)

A
  • Tienen almacenada toda la cadena de bloques de Bitcoin.
  • Cada vez que se “confirma” un nuevo bloque en la red, lo almacenan.
  • Pueden verificar de forma segura cualquier transacción o bloque.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Nodos ligeros (lightweight wallet)

A
  • Pueden verificar transacciones utilizando SPV (Simplified Payment Verification).
  • Almacenan las claves de usuario y sus transacciones.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Mineros (miners)

A
  • Únicamente realizan el “Proof of Work” de los bloques.

* Necesitan un “full node” para validar el bloque.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Simplified Payment Verification (SPV)

A

• Método para verificar si transacciones han sido incluidas en un
bloque utilizando sólo su cabecera.
• No hace falta descargarse el bloque entero.
• Una prueba de inclusión sólo necesita:
• Merkle Root del bloque (Merkle Tree de las transacciones del bloque)
• Hashes entre la transacción y la raíz (“sibling hashes”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Ciclo de vida de una transacción

A
  1. El cliente envía la transacción a la red para que la distribuya.
  2. Los nodos mineros reciben transacciones:
    a. Verifican las transacciones.
    b. Añaden las transacciones al “memory pool”.
  3. Los nodos mineros comienzan a “minar”:
    a. Validan transacciones y forman un bloque.
    b. Intentan resolver la “prueba de trabajo” (Proof-of-Work).
  4. Se mina un bloque y se redistribuye en la red (pueden ser varios bloques minados):
    a. Los Full-Nodes reciben y verifican el bloque nuevo.
    b. Si el bloque es correcto, lo almacenan y lo aceptan en su cadena de bloques.
24
Q

¿Qué es el minado?

A

• Proceso de “hashear” repetidas veces un bloque,
• cambiando un parámetro del bloque,
• hasta conseguir hash final con un valor o patrón objetivo.
• El hash final sólo puede ser generado mediante fuerza bruta
cambiando parámetros dentro del bloque.
• Los hashes finales no pueden ser determinados con antelación.

25
Q

Proof of Work (PoW)

A

• Bitcoin usa el algoritmo de minado “hashcash”.
• Es un proceso de creación de bloques basado en la resolución de
un problema matemático computacionalmente intensivo.
• Tiene 2 objetivos:
1. Emisión de moneda (BTC)
2. Confirmación de bloques sólo cuando se le haya dedicado suficiente
potencia computacional (mecanismo de consenso).

26
Q

¿Cómo funciona PoW en Bitcoin?

A

• Calcular un número (“nonce”) tal que hash final de la cabecera
del bloque tiene X número de ceros al principio (dificultad).
• El bloque incluye además una transacción de minado (“coinbase”)
con la recompensa del minero.
• El número (nonce) necesario es diferente para cada “minero”.
• Es muy complicado de resolver, pero muy sencillo de verificar

27
Q

Proof of Work: Dificultad

A

Cada bloque suele tener unas 2.000 transacciones.
• La dificultad del ”Proof of Work” se ajusta constantemente.
• El objetivo es que de media sean necesarios unos 10 minutos
para que algún minero resuelva el siguiente bloque.
• La dificultad se ajusta cada 2 semanas

28
Q

Los mineros

A

• Fundamentales en el mecanismo de consenso de Bitcoin (PoW).
• Cualquiera puede crear un nodo “minero”
- Reciben recompensa en forma de bitcoin.

29
Q

Emisión de moneda

A

• Cada vez que se “mina” un bloque sea crean nuevos Bitcoins (BTC).
• La cantidad viene dada por un algoritmo y se reduce a la mitad con
el tiempo (“halving”).
• Llegados a 21 millones de Bitcoins (BTC) ya no se generará dinero
nuevo.
• Posteriormente, los mineros únicamente ganarán dinero con
“transaction fees”

30
Q

Bitcoin Fork

A

• Las cadenas de bloques generan ”forks”, formando un árbol de bloques.
• En algún momento hay que desechar ramas del árbol para que todos los
nodos de la red sigan la misma cadena de bloques.

31
Q

Dificultad del “double spending”

A

• Para realizar este ataque la potencia computacional necesaria es
“enorme” y por tanto el coste es prácticamente inviable.

32
Q

El mecanismo de consenso de blockchain por “proof of stake” mueve el trabajo de confirmación de los nodos servidores a los nodos cliente. Un cliente aleatorio de entre los que tienen mas “colateral” debe realizar la confirmación, utilizando sus propios fondos como garantía.

Seleccione una:
Verdadero
Falso

A

Verdadero

33
Q

La dificultad del proof of work en bitcoin se ajusta automáticamente para que de media se necesiten unos 10 minutos para obtener un nuevo bloque. La dificultad se ajusta cambiando el numero de ceros que se necesitan como resultado de la función hash del “proof of work”

Seleccione una:
Verdadero
Falso

A

Verdadero

34
Q

En una transacción de Bitcoin las entradas sin gastar de las transacciones anteriores se deben consumir enteras. Si no queremos transferir todo el dinero, el dinero no indicado en la transacción se vuelve a asignar a nosotros.

Seleccione una:
Verdadero
Falso

A

Falso

35
Q

¿Por que utilizaríamos “proof of stake” como mecanismo de consenso en lugar de un “proof of work”?

Seleccione una o más de una:

a. Evita la necesidad de tener nodos mineros especializados para realizar el trabajo
b. Al igual que proof of work, es totalmente distribuido y no requiere de nodos centralizados
c. Requiere mucho menor trabajo computacional
d. La confianza está basada en el “colateral”, quien realiza la confirmación le interesa no hacer trampa para evitar perder el dinero

A

a. Evita la necesidad de tener nodos mineros especializados para realizar el trabajo
b. Al igual que proof of work, es totalmente distribuido y no requiere de nodos centralizados
c. Requiere mucho menor trabajo computacional
d. La confianza está basada en el “colateral”, quien realiza la confirmación le interesa no hacer trampa para evitar perder el dinero

36
Q

Un “Smart Contract” es un código de programación que se almacena y ejecuta dentro del Blockchain, almacenando su estado y código en el mismo y representando un flujo de negocio.

Seleccione una:
Verdadero
Falso

A

Verdadero

37
Q

Una cripto-moneda no es mas que un caso particular de un Smart Contract, pero estos últimos pueden representar flujos de negocio mucho mas complejos

Seleccione una:
Verdadero
Falso

A

Verdadero

38
Q

La “dirección” en Bitcoin se consigue creando un par de claves Pública/Privada y aplicando una función Hash a la clave privada seguida de una codificación a texto Base58 para lograr una cadena de texto.

Seleccione una:
Verdadero
Falso

A

Falso

39
Q

Para verificar una transacción en bitcoin debemos…

Seleccione una o más de una:

a. Comprobar que la dirección de destino existe
b. Comprobar que las entradas de la transacción están sin gastar y pertenecen a transacciones anteriores que existen en el blockchain
c. Comprobar que la clave pública corresponde con la dirección de origen de la transacción
d. Comprobar que la firma de la transacción se verifica contra la la clave pública

A

b. Comprobar que las entradas de la transacción están sin gastar y pertenecen a transacciones anteriores que existen en el blockchain
c. Comprobar que la clave pública corresponde con la dirección de origen de la transacción
d. Comprobar que la firma de la transacción se verifica contra la la clave pública

40
Q

El resultado de ejecución de un SmartContract debe ser determinista, de forma que todos los nodos que lo ejecuten obtengan el mismo resultado. Si no fuera así sería imposible que cualquier nodo pudiera validar una transacción sobre un contrato

Seleccione una:
Verdadero
Falso

A

Verdadero

41
Q

El resultado de ejecución de un SmartContract debe ser determinista, de forma que todos los nodos que lo ejecuten obtengan el mismo resultado. Si no fuera así sería imposible que cualquier nodo pudiera validar una transacción sobre un contrato

Seleccione una:
Verdadero
Falso

A

Verdadero

42
Q

Los bloques en blockchain no pueden ser modificados ya que contienen un hash de toda la información del bloque y además están firmados. Si se modificara cualquier valor alteraría el hash firmado con lo que sería fácilmente detectable.

Seleccione una:
Verdadero
Falso

A

Verdadero

43
Q

De los siguientes pasos, ¿cuales pertenecen al ciclo de vida de una transacción en Bitcoin?

Seleccione una o más de una:

a. Guardado del nuevo bloque minado en el blockchain
b. Minado del bloque y obtención del “proof of work”
c. Envío del bloque minado a la red y confirmación por parte de los “full nodes”
d. Confirmación del nuevo bloque por parte del nodo central validador de la red
e. Confirmación de los clientes del grupo de transacciones del bloque
f. Verificación de la transacción por parte de los nodos mineros (apoyados o no en Full node)
g. Envío de la transacción firmada a la red de bitcoin
h. Creación de un bloque de transacciones por parte de los mineros

A

b. Minado del bloque y obtención del “proof of work”
c. Envío del bloque minado a la red y confirmación por parte de los “full nodes”
f. Verificación de la transacción por parte de los nodos mineros (apoyados o no en Full node)
g. Envío de la transacción firmada a la red de bitcoin
h. Creación de un bloque de transacciones por parte de los mineros

44
Q

En Bitcoin el mecanismo de “proof of work” se utiliza para conseguir “consenso” entre los nodos de la red para poder confirmar las transacciones. Se hace de forma compartida, todos los nodos realizan parte del trabajo y comparten los resultados que finalmente dan lugar al “proof of work final”.

Seleccione una:
Verdadero
Falso

A

Falso

45
Q

Algunos sistemas de blockchain con Smart Contracts utilizan un mecanismo de pago por ejecución con dos fines:

  • Evitar ejecuciones infinitas que pudieran poner en peligro a la red.
  • Costear el mayor coste computacional de ejecutar contratos mas complejos.

Seleccione una:
Verdadero
Falso

A

Verdadero

46
Q

¿Por qué es tan importante el Blockchain respecto a los mecanismos de auditoría y regulación financiera?

Seleccione una o más de una:

a. Los auditores pueden tener toda la cadena del blockchain en tiempo real por lo que no necesitan pedir información para poder hacer una auditoría continua
b. Al ser el blockchain “público” los reguladores pueden acceder directamente a el para comprobar las transacciones
c. Las reglas de funcionamiento del blockchain son fijas en sus algoritmos y la criptografía permite detectar con facilidad si alguien está intentando “hacer trampa”
d. La naturaleza de blockchain hace que sea inmutable y contenga todas las transacciones desde que se creó, esto asegura a los auditores que la información que tienen es “cierta”

A

a. Los auditores pueden tener toda la cadena del blockchain en tiempo real por lo que no necesitan pedir información para poder hacer una auditoría continua
b. Al ser el blockchain “público” los reguladores pueden acceder directamente a el para comprobar las transacciones
c. Las reglas de funcionamiento del blockchain son fijas en sus algoritmos y la criptografía permite detectar con facilidad si alguien está intentando “hacer trampa”
d. La naturaleza de blockchain hace que sea inmutable y contenga todas las transacciones desde que se creó, esto asegura a los auditores que la información que tienen es “cierta”

47
Q

El proceso de minado en Bitcoin es necesario pero muy costoso. ¿Cómo se compensa a los mineros por su trabajo?

Seleccione una o más de una:

a. Un minero que genere un bloque, aunque no pertenezca finalmente a la cadena recibe una compensación ya que este bloque contribuye a la seguridad total de la cadena.
b. Todos los mineros reciben una compensación por su trabajo computacional en el proceso de minado.
c. El minero se quedan con los “transaction fee” de todas las transacciones que pertenecen al bloque que han minado.
d. El minero se queda con el dinero nuevo que se genera debido al minado de un bloque, este valor cada vez es menor en Bitcoin.

A

c. El minero se quedan con los “transaction fee” de todas las transacciones que pertenecen al bloque que han minado.
d. El minero se queda con el dinero nuevo que se genera debido al minado de un bloque, este valor cada vez es menor en Bitcoin.

48
Q

Para hacer trampas en bitcoin y lograr un “double spend” temporal necesitaríamos ser capaces de crear nuevos bloques mas deprisa que el resto de la red, de forma que podamos generar un “fork” con una cadena mas larga que la “oficial”.

Seleccione una:
Verdadero
Falso

A

Verdadero

49
Q

Si perdemos nuestras claves en Bitcoin podemos dar nuestras credenciales a un nodo validador central para recuperarlas.

Seleccione una:
Verdadero
Falso

A

Falso

50
Q

Para realizar una transacción en bitcoin desde una “dirección” necesitamos…

Seleccione una o más de una:

a. Transferencias anteriores a esa dirección con salidas “sin gastar”
b. Una dirección de destino
c. Consumir todas las salidas sin gastar que formen parte de la transacción de forma completa
d. Enviar la transacción firmada a la red
e. La clave privada de la dirección para poder firmar la transacción

A

a. Transferencias anteriores a esa dirección con salidas “sin gastar”
b. Una dirección de destino
c. Consumir todas las salidas sin gastar que formen parte de la transacción de forma completa
d. Enviar la transacción firmada a la red
e. La clave privada de la dirección para poder firmar la transacción

51
Q

¿De que está compuesto el sistema de moneda digital “bitcoin”? Selecciona las correctas.

Seleccione una o más de una:

a. Un blockchain público para almacenar transacciones
b. Un sistema de moneda basado en algoritmos matemáticos y criptografía
c. Un ente regulador que vela por el buen funcionamiento de la red
d. Un mecanismo distribuido para verificar transacciones y bloques
e. Un red de comunicación descentralizada punto a punto.
f. Un mecanismo de intercambio de bitcoin por dinero “real”

A

a. Un blockchain público para almacenar transacciones
b. Un sistema de moneda basado en algoritmos matemáticos y criptografía
d. Un mecanismo distribuido para verificar transacciones y bloques
e. Un red de comunicación descentralizada punto a punto.

52
Q

En que casos utilizaríamos un blockchain “privado” y que ventajas tiene respecto a uno “público”

Seleccione una o más de una:

a. Es posible introducir mecanismos de seguridad adicionales y controlar el acceso a la red
b. Es mucho mas sencillo introducir cambios o corregir bugs ya que podemos modificar todos los nodos de la red a la vez
c. Se suele utilizar con un grupo reducido de participantes y nodos controlados para intentar resolver un flujo de negocio de forma mas sencilla y descentralizada.
d. Tiempos de validación y confirmación mucho mas cortos
e. Menor coste de infraestructura y computación respecto a un público al contar con un menor número de nodos

A

a. Es posible introducir mecanismos de seguridad adicionales y controlar el acceso a la red
b. Es mucho mas sencillo introducir cambios o corregir bugs ya que podemos modificar todos los nodos de la red a la vez
c. Se suele utilizar con un grupo reducido de participantes y nodos controlados para intentar resolver un flujo de negocio de forma mas sencilla y descentralizada.
d. Tiempos de validación y confirmación mucho mas cortos
e. Menor coste de infraestructura y computación respecto a un público al contar con un menor número de nodos

53
Q

Una transacción en un Blockchain con Smart Contracts no es mas que una llamada a un “método” del contrato con unos parámetros específicos.

Seleccione una:
Verdadero
Falso

A

Verdadero

54
Q

El mecanismo de proof of work en Ethereum está pensado para que el utilizar hardware específico no ofrezca ninguna ventaja competitiva respecto a sistemas de computación tradicionales. Esto reduce los costes del minado y evita que se creen granjas de mineros especializadas.

Seleccione una:
Verdadero
Falso

A

Verdadero

55
Q

Cuando se ejecuta una transacción en un Smart Contract, el cliente realiza la ejecución del contrato y manda el resultado a la red para que sea confirmado.

Seleccione una:
Verdadero
Falso

A

Falso

56
Q

¿Cuales de las siguientes afirmaciones son ciertas cuando hablamos de un “fork” en bitcoin?

Seleccione una o más de una:

a. Tras un par de bloques confirmados podemos asumir que si hay un fork este ya ha sido resuelto
b. Produce una partición en la red, donde parte de los nodos tienen una cadena de bloques válida y parte otra
c. Una transacción se puede revertir si únicamente pertenece a un bloque de una cadena que se ha descartado debido a un fork
d. Se soluciona con el tiempo ya que siempre se descarta la cadena de bloques mas “corta”
e. Se producen cuando mas de un “minero” encuentra la solución al “proof of work” en un tiempo similar, de forma que la red tiene dos bloques válidos distintos.

A

b. Produce una partición en la red, donde parte de los nodos tienen una cadena de bloques válida y parte otra
c. Una transacción se puede revertir si únicamente pertenece a un bloque de una cadena que se ha descartado debido a un fork
d. Se soluciona con el tiempo ya que siempre se descarta la cadena de bloques mas “corta”
e. Se producen cuando mas de un “minero” encuentra la solución al “proof of work” en un tiempo similar, de forma que la red tiene dos bloques válidos distintos.