jueves, 4 de enero de 2018

Concepto de Bitcoin. Aspectos técnicos

Bitcoin Concepto. Aspectos técnicos.

Concepto

¿Qué es bitcoin? Etimológicamente se compone de las palabras bit que es el acrónimo en inglés de Binary Digit o digito binario en español y la palabra coin que se traduce como moneda. En otras palabras un bitcoin es el término utilizado para referirse a una moneda digital.
 “se trata de una red consensuada que permite un nuevo sistema de pago y una moneda completamente digital”, bitcoin.org
Técnicamente un bitcoin es un conjunto de caracteres cifrados con e luso de una clave privada y un algoritmo de encriptación tipo hash como SHA-256 que lo hace único. En la práctica uno de cada 140.000.000.000.000.000.000 hashes es correcto, porque se asume que los hashes mas raros, aquellos que inician con un número significativo de ceros (17 o más), son los elegidos para los bitcoins.

Estructura de un bitcoin

Un bloque de bitcoin esta compuesto por 80 bytes distribuido de la forma siguiente:
Campo
Descripción
Tamaño/bytes
Versión
Versión del bloque, relativo al software que lo creo
4
Digest
Hash del bloque procesado
32
Merkle Root
Hash del nodo raíz al que pertenece el bloque
32
Timestamp
Registro de la fecha y hora de creación del bloque
4
Targuet
Calculo del grado de dificultad del bloque
4
Nounce
Valor utilizado para generar el bloque, permite variar y generar diferentes hashes
4

La siguiente imagen muestra la estructura de un bloque real
Fuente: http://static.righto.com/images/bitcoin/block_diagram_ghash-w550.png

Minar bitcoins

¿Cómo se genera un bitcoin?
Para minar bitcoins, primero se agrupan un conjunto de transacciones en un bloque, posteriormente se le aplica un ciclo repetitivo de la función criptografica hash hasta obtener un hash extremadamente raro, como se mencionó anteriormente.
La siguiente imagen muestra los valores de la aplicación GuiMiner corriendo en la laptop de trabajo donde se está creando este documento.


La velocidad de procesamiento de los bloques se mide en hash/s, haciendo un simple cálculo con los valores de Guiminer, en esta laptop se requerirán de aproximadamente 1545 días ininterrumpidos  para minar un bitcoin, por lo tanto no es aconsejable dedicarse a esta tarea con un equipo de similares prestaciones.
No obstante con los equipos de minería actuales que procesan 14Th/s, el tiempo disminuye a minutos, lo cual es bastante aceptable, pero este sería el lapso más pesimista dado que el equipo tendría que generar todos las combinaciones de hash, la realidad supone que es un proceso aleatorio ya que bloque válido puede ser generado en cualquier iteración por lo que es de suponer que los tiempos serán menores, adicionalmente los mineros cuentan con pools de equipos dedicados exclusivamente a esta actividad. 

Estas cantidades astronómicas son la clave principal para garantizar la seguridad y así evitar que un atacante o grupo de ellos interfieran en el sistema y lo pongan a funcionar para su beneficio.

Referencias

S. Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System”, http://nakamotoinstitute.org/bitcoin/#selection-7.4-9.39. 2008.

K. Shirriff,Mining Bitcoin with pencil and paper: 0.67 hashes per day”, http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html. 2014

“Bticoin Developer References”, https://bitcoin.org/en/developer-reference#block-chain. 2017