📖
Horizonte Bitcoin
  • Horizonte Bitcoin
  • Introducción
    • Prólogo
    • Sumario
  • parte 1
    • 1.1 El Dinero
      • Antes del dinero
      • ¿Que es el dinero?
      • El descubridor de precios
      • La religión del dinero
    • 1.2 La Pirámide
      • Deuda y humo
      • Economía Piramidal
      • Encadenamiento Digital
      • Dinero infinito, precios infinitos
    • 1.3 El Cartel
      • Cartel Global
      • Un patrón de medida inservible
      • Rebelión Criptográfica
  • parte 2
    • 2.1 Bitcoin y bitcoin
      • Alumbramiento en la red
      • Consenso Distribuido
      • Escasez digital
    • 2.2 Valor Distribuido
      • Hashing
      • Prueba de Trabajo
      • La cadena de Bloques
      • Reglas sin gobernador
    • 2.3 La Propiedad Definitiva
      • Transacciones de bitcoin
      • Billeteras
      • Inconfiscable: Las llaves privadas
  • parte 3
    • 3.1 ¿Cuanto vale un Bitcoin?
      • El mejor dinero
      • El valor de un bitcoin
      • Los ciclos del mercado
      • El precio final del Bitcoin
    • 3.2 Legalidad y subsistencia del Bitcoin
      • La ultra-legalidad del Bitcoin
      • Monedas de delincuentes
      • Juegas o pagas
      • Homo Continiens
    • 3.3 El nuevo Horizonte
      • Abominaciones criptográficas
      • En la agonía del nacimiento
      • Horizonte de posibilidades
Powered by GitBook
On this page
  1. parte 2
  2. 2.2 Valor Distribuido

La cadena de Bloques

El hash del bloque génesis es parte de la información que es utilizada por los mineros para determinar el nonce que valida el siguiente bloque, osea el bloque 2 se refiere al bloque 1 (génesis) y de la misma manera el bloque 3 se refiere al bloque 2; la cadena de bloques o blockchain es una lista de bloques de transacciones retro-conectada, cada bloque en la cadena está identificado por un hash que es generado usando el algoritmo criptográfico SHA256 en la cabecera del bloque y cada bloque se refiere al bloque anterior (bloque madre/padre) a travez del hash del bloque anterior o hash paterno en la cabecera del bloque anterior, o sea que cada bloque contiene el hash de su padre dentro de su propio hash. Las secuencia de hashes que enlaza cada bloque a su bloque padre crea una cadena que retrocede hasta el primer bloque creado, el Bloque Génesis.

Una forma común de visualizar esta cadena es imaginarla como una torre vertical de bloques individuales, uno puesto encima del otro con el bloque génesis haciendo de cimiento y con cada bloque la torre se va haciendo mas alta, por lo que se conoce como altura a la distancia desde el primer bloque y el tope a el bloque mas reciente que ha sido agregado.

El hash del bloque anterior, el timestamp, la dificultad, el nonce, y otros detalles son el encabezado de los bloques, pero esta información está ahí con el fin de lograr la efectiva verificación y registro de las transacciones de manera descentralizada; por lo tanto la mayor cantidad de información contenida en los bloques son las transacciones.

Comisiones de transacción

Para balancear, el tiempo de propagación, la escalabilidad y los recursos de almacenamiento y procesamiento del Bitcoin, Nacamoto estableció el tamaño de los bloques con un máximo de 1MB que equivale a 8 millones de bits (un byte equivale a 8 bits). Esta limitación en la cantidad de datos que puede contener el bloque implica que un bloque solo puede contener un número limitado de transacciones. La cantidad de datos o el tamaño de una transacción puede variar de una a otra por factores que exploraremos en el próximo capítulo, pero parte de la información contenida en la transacción incluye una comisión como forma de compensación para el minero de Bitcoin por el trabajo de asegurar la red, esta transacción es un pago adicional al premio que se recibe por minar el bloque.

Las comisiones cumplen varias funciones, una de estas es la de actuar como un mecanismo de seguridad, ya que el pago de comisiones hace económicamente inviable atacar al Bitcoin inundando o saturando la red con transacciones. Además, las comisiones sirven como incentivo para incluir la transacción en el siguiente bloque por minar, estas operan como un mercado que le da al remitente la opción de determinar la prioridad de la transacción, si este quiere que su transacción sea verificada en el siguiente bloque puede pagar una comisión alta, si no hay prisa puede pagar una comisión mas baja y los mineros la incluirán en un periodo de baja demanda; por lo tanto las comisiones son ajustadas por las fuerzas del mercado según la demanda de uso de la red de Bitcoin.

Aunque las comisiones por transacción no son obligatorias, una transacción sin comisión implica que los mineros no estarían alentados a minarla.

Las comisiones son calculadas basadas en el tamaño de la transacción y no están ligadas a la cantidad de bitcoin siendo transferido, una transacción de 10 bitcoin podría pagar lo mismo o menos que una de 100 satochis. Por lo general, cualquier servicio que cree transacciones de bitcoin como billeteras, intercambios, aplicaciones de comercios minoristas u otras, implementan comisiones dinámicas. Estas pueden ser implementadas a través de un servicio de estimación de comisiones que provee un tercero o con un algoritmo incorporado que haga la estimación.

Mempool

Antes de que una transacción sea verificada en un bloque esta es propagada en la red de nodos, recordemos que un nodo no es necesariamente un nodo-minero. Para iniciar una transacción, una billetera de bitcoin crea y envía la transacción a un nodo en la red, este se encarga de validarla antes en compartirla con el resto de los nodos.

Para validar las transacciones los nodos verifican ciertos criterios:

  • verifican que la estructura de la transacción sea correcta, que los scripts de las transacciones (el lenguaje en el que se comunica la red de Bitcoin) estén correctamente formados y se ejecuten sin errores.

  • verifican las firmas digitales en las transacciones las cuales aseguran que el remitente tiene la autoridad para gastar los bitcoins y que los datos de la transacción no han sido alterados después de ser firmados.

  • comprueban que todos los inputs (entradas) de la transacción se refieran a salidas no gastadas anteriores (UTXO). Esto asegura que los bitcoins realmente existen y están disponibles para ser gastados.

  • revisan que ninguna de las entradas haya sido previamente gastada. Si una entrada se detecta en más de una transacción pendiente de confirmación, solo una puede ser validada.

  • verifican que todos los montos de las transacciones sean mayores que cero y no excedan la cantidad máxima permitida. También se aseguran de que el total de las salidas no supere el total de las entradas.

  • aseguran que las transacciones cumplan con todas las reglas de consenso de la red de Bitcoin. Esto incluye reglas sobre el tamaño de la transacción, la estructura de los bloques, y otras restricciones técnicas.

De ser validada, el nodo agrega la transacción a una lista de espera para las transacciones llamada mempool y envía la transacción a los otros nodos, en unos 15 segundos la transacción se esparcirá por toda la red y todos los nodos la tendrán listada en su propio mempool. Cada nodo en el sistema tiene su propio mempool, el nodo-minero busca en el mempool las transacciones con mayor comisión para llenar el bloque y una vez formado el bloque con sus transacciones, timestamp y el resto de los detalles procede a buscar un nonce que cumpla con el criterio de seguridad, osea a minar.

Bifurcaciones (Forks)

Cuando un bloque es exitosamente minado este es publicado en la red y validado por los nodos agregan el nuevo bloque a la cadena de bloques, de la cual cada nodo lleva un registro completo o parcial dependiendo dependiendo del tipo del nodo. Además de esto los nodos actualizan el mempool removiendo las transacciones que acaban de ser validadas; simultáneamente el resto de los nodos-mineros descartan el bloque que hasta el momento estaban minando y crean un nuevo bloque para minar tomando las transacciones del mempool ahora actualizado y el nuevo hash del bloque padre que fue recientemente minado. La cadena de bloques que los nodos comparten es de acceso libre o público y almacena todos los datos que cada bloque anteriormente minado contiene: las transacciones, el hash de cabecera, el nonce, etc.

Ocasionalmente dos bloques son minados de manera simultanea por mineros diferentes y ambos bloques son válidos, estos bloques comparten el mismo el mismo hash del bloque padre, pero el resto de los datos son diferentes. Esto crea una bifurcación temporal en la que dos cadenas existen simultáneamente ya que el bloque padre tiene dos bloques hijos.

Para resolver esta situación la red espera a que se mine el siguiente bloque en cualquiera de las dos cadenas existentes, una vez que esto sucede la cadena que se extienda primero sera validada por los nodos y otra la cadena quedará descontinuada, las transacciones del bloque en la cadena invalidada que no se encuentren en la cadena mas extensa quedan por lo tanto en un estado no verificado.

Por esta razón se recomienda esperar por tres o varias confirmaciones en transacciones importantes, ya que una sola transacción podría ser temporalmente revertida en caso de un fork. De hecho una de la reglas en el protocolo del Bitcoin es que un minero que mina un bloque solo puede gastar el bitcoin que recibió como premio después de 100 bloques ya que a esta profundidad en la cadena la información es para cualquier efecto práctico totalmente inmutable.

PreviousPrueba de TrabajoNextReglas sin gobernador

Last updated 1 month ago