Minando un bloque.
La minería es el mecanismo fundamental que habilita un consenso descentralizado a través de cuatro pilares fundamentales.
.
- Validación independiente de transacciones.
- Agregación independiente de transacciones en nuevos bloques.
- Verificación de nuevos bloques.
- Selección independiente de la cadena con más computación acumulada.
.
Políticas.
- Conjunto de reglas de validación que se aplican adicional al consenso sobre transacciones no confirmadas.
- No afecta las transacciones en bloques.
- Uso de recursos, heurísticas, reglas.
.
Coinbase Transcation.
- Transacción especial que contiene la recompensa por el proceso de minado.
- Solo tiene una salida.
.
Recompensas y Fees.
- Existen dos tipos de recompensas:
- Añadir un nuevo bloque a la cadena principal.
- Sumando las tarifas (fees) de las transacciones añadidas en el bloque.
- Tarifas totales = Suma (salidas) + Suma (entradas).
.
Estructura Coinbase Transaction Input.
Campo | Descripción | Tamaño (bytes) |
---|---|---|
Transaction Hash | Todos sus bits son cero, no tiene referencia a un hash de transacción. | 32 |
Output index | Todos los bit son unos: 0xFFFFFFFF | 4 |
Coinbase Data Size | Longitud de la información, de 2 a 100 bytes. | 1-9 bytes |
Coinbase Data | Información usada para un nonce extra y etiquetas de minería. | Variable |
Sequence number | 0xFFFF | 4 |
.
Estructura Transaction Input.
Campo | Descripción | Tamaño (bytes) |
---|---|---|
Transaction Hash | Referente a la transacción que contiene la UTXO a usarse. | 32 |
Output index | El índice de la UTXO. | 4 |
Unlocking-Script Size | Longitud del script, de 2 a 100 bytes. | 1-9 bytes |
Unlocking-Script | Script que satisface con las condiciones del script que bloquea la UTXO. | Variable |
Sequence number | 0xFFFF | 4 |
.
Construyendo el encabezado.
- Version.
- Previous block hash.
- Merkle Tree.
- Timestamp.
- Target.
- Nonce.
.
Minando un bloque.
- Pasar la cabecera de un bloque a través de una función de hashing hasta encontrar un valor válido.
- Proof-of-Work:
- SHA 256.
- Producir una salida que sea igual o menor que el objetivo.
- Objetivo alto, menor dificultad.
- Objetivo bajo, mayor dificultad.
- ¿Cuántos de los bits iniciales deben ser cero?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?