Bloque
Se llama bloque a los archivos grabados permanentemente en un blockchain que contienen información sobre transacciones producidas. Un bloque es el registro de cada transacción reciente o su parte que no se ha registrado en los bloques anteriores. Prácticamente en todos los casos, los bloques son agregados al final de la cadena, que contiene todas las transacciones y se le conoce como blockchain. Cuando se agrega un bloque al final de la cadena, no se puede cambiar. Cada bloque contiene información sobre todo lo que sucedió en bloques anteriores antes de que se creara. Ejemplificando, los bloques pueden ser visto como paginas individuales de un libro que registra transacciones bursátiles en la bolsa de valores. Los bloques son organizados en una secuencia lineal a medida que pasa el tiempo. Las nuevas transacciones son procesadas por mineros en nuevos bloques que son agregados al final de la cadena, que no pueden ser ni cambiados ni removidos una vez aceptados por la red.
Contenido
Estructura del bloque
![Bloque.jpg](http://bitcoinwiki.org/wp-content/uploads/2023/12/300px-Bloque.jpg)
Línea | Descripción | Tamaño |
---|---|---|
Magic no. | El valor siempre es 0xD9B4BEF9 | 4 bytes |
Tamaño del bloque (blocksize) | Se debería agregar la cantidad de bytes al final del bloque | 4 bytes |
Título del bloque (blockheader) | Consta de 6 componentes | 80 bytes |
Calculador de transacciones (transaction counter) | Entero positivo VI = VarInt | 1 – 9 bytes |
Transacciones | Lista de transacción | Transacciones múltiples |
Descripción
Cada bloque, además de otros componentes, contiene en su encabezado el registro de diferentes o todas las transacciones recientes y registra el bloque que vino justo antes del actual. Para crear un nuevo bloque, el minero tiene que resolver la tarea que proporciona la red. Cada bloque tiene su solución única, que también está escrita en el bloque de blockheader. Esta tarea es difícil de resolver y lleva mucho tiempo, sin embargo, tan pronto como uno de los usuarios (mineros) resuelve la tarea, la red confirma rápidamente que la solución es la correcta. Existen multiples soluciones validas para cualquier bloque dado – solo una de las soluciones debe ser encontrada para resolver el bloque en cuestión.
Dado que existe una recompensa por resolver cada bloque, cada bloque también contiene un registro de la dirección a la cual debe ir dicha recompensa. Dicho registro se conoce como la generación de una transacción, o una transacción coinbase, que no es mas que la primera transacción en aparecer en cada bloque. En el caso de la Bitcoin, por ejemplo, la cantidad de bitcoins generada por bloque partió en 50 y es cortada a la mitad cada 210.000 bloques (aproximadamente cada 4 años). La recompensa actual (a Abril de 2018) se encuentra en 12,5 BTC.
Siguiendo con la bitcoin, las transacciones en el blockchain de esta criptodivisa son transmitidas a la red por el emisor, y todos los participantes intentando resolver bloques recolectan los registros de las transacciones para añadirlas a un bloque que están intentando resolver. Los mineros incluyen dichas transacciones en sus bloques dada la comisión que pueden ganar por procesar la transacción.
La dificultad del problema matemático a resolver es automáticamente ajustada por la red, para que tenga como objetivo resolver alrededor de seis bloques por hora (10 min. por bloque). Cada 2016 bloques (resueltos en aproximadamente dos semanas), todos los clientes de la red bitcoin comparan el numero actual creado con su objetivo para así modificar dicho objetivo en razón del porcentaje que este ha variado. Con esto, la red llega a un consenso y automáticamente incrementa (o disminuye) la dificultad de generar bloques.
Dado que cada bloque contiene referencia a un bloque anterior, se dice que la colección de todos los bloques en existencia forman una cadena. Sin embargo, es posible que la cadena presente divisiones temporales – por ejemplo, si dos mineros llegan a dos soluciones validas pero diferentes para el mismo bloque al mismo tiempo sin que ninguno de los dos sepa que el otro también resolvió el bloque en cuestión. La red P2P esta diseñada para resolver estas divisiones en un periodo muy corto de tiempo, para que así solo una rama de la cadena sobreviva.
El cliente acepta la cadena mas larga de bloques como aquella que es válida. La longitud de toda la cadena de bloques se refiere a la cadena con la mayor dificultad combinada, que no debe ser confundida con la cadena que contiene la mayor cantidad de bloques. Por su lado, esto previene que alguien desvíe la cadena para así crear un largo número de bloques de baja dificultad que pueda ser aceptado por la red como «el mas largo».
Complejidad
Bitcoin regula la complejidad de la tarea, por lo que se puede encontrar en promedio 6 bloques por hora (1 bloque en 10 minutos). Cada bloque de 2016 (aproximadamente cada 2 semanas) está cambiando la complejidad de la red: cada cliente de Bitcoin compara la cantidad de bloques más rápidos (más lentos) en comparación con los valores estándar y, según estos datos, la complejidad se regula en el lado superior (inferior).
Variante
Como cada bloque tiene una referencia al bloque anterior en su título, podemos decir que forman una cadena. Está la posibilidad de que la cadena se pueda dividir, por ejemplo, si 2 mineros encuentran simultáneamente una solución para un nuevo bloque. El sistema Bitcoin está configurado para resolver dicha ramificación de cadena tan pronto como sea posible, dejando solo una rama. No se cobra la recompensa que se ha abonado por el bloque.
El cliente de Bitcoin percibe la blockchain más extensa como la correcta. Se calcula la «longitud» de toda la blockchain como la suma de las complejidades de todos los bloques de la cadena, pero no de la suma de los bloques. Tal método de cálculo no permite a nadie hacer la cadena «principal» con una gran cantidad de bloques con baja dificultad que previene la falsificación de transacciones.