La mineria de bitcoin explicada con sencillez…
El Bitcoin es una moneda digital relativamente nueva que se puede transmitir a través de Internet. Puedes comprar bitcoins con dólares u otro dinero tradicional de sitios como Coinbase y muchas otras casas de cambio, enviar bitcoins a otras personas, comprar cosas con ellos en algunos lugares e intercambiar bitcoins por dólares, etc.
Los bitcoins consisten en entradas en una base de datos distribuida que realiza un seguimiento de la propiedad de bitcoins. A diferencia de un banco, los bitcoins no están vinculados a usuarios o cuentas de usuario. En cambio, los bitcoins son propiedad de una dirección de Bitcoin, por ejemplo, 1KKKK6N21XKo48zWKuQKXdvSsCf95ibHFa. Esta dirección de bitcoin se suele domiciliar en algo que llamado monedero o wallet.
Una transacción es el mecanismo para gastar bitcoins. En una transacción, el propietario de algunos bitcoins transfiere la propiedad a una nueva dirección.
Una innovación clave de Bitcoin es cómo se registran las transacciones en la base de datos distribuida a través de la minería. Las transacciones se agrupan en bloques y cada 10 minutos se envía un nuevo bloque de transacciones, convirtiéndose en parte del registro de transacciones conocido como blockchain, que indica que la transacción se ha realizado como oficial.
La minería de Bitcoin es el proceso que coloca las transacciones en un bloque, para asegurarse de que todos tengan una vista coherente del registro de transacciones. Para explotar un bloque, los mineros deben encontrar una solución extremadamente rara para un problema criptográfico. Encontrar esta solución genera un bloque minado, que se convierte en parte de la cadena de bloques oficial.
La minería es también el mecanismo para que los nuevos bitcoins ingresen al sistema, es decir; a la cadena de bloques. Cuando un bloque se extrae con éxito, se generan nuevas bitcoins y se pagan al minero que las extrajo. Esta recompensa minera es grande, actualmente 25 bitcoins por bloque.
Además, el minero recibe cualquier tarifa asociada con las transacciones en el bloque. Debido a esto, la minería es muy competitiva con muchas personas que intentan explotar bloques. La dificultad y competitividad de la minería es una parte clave de la seguridad de Bitcoin, ya que garantiza que nadie pueda inundar el sistema con bloques defectuosos.
La red peer-to-peer: No hay un servidor centralizado de Bitcoin. En cambio, Bitcoin se ejecuta en una red de igual a igual. Si ejecuta un cliente de Bitcoin (monedero o wallet), se convierte en parte de esa red.
Los nodos en la red intercambian transacciones, bloques y direcciones de otros pares entre sí. Cuando se conecta por primera vez a la red, su cliente descarga la cadena de bloques de algunos nodos o nodos aleatorios. A su vez, su cliente puede proporcionar datos a otros nodos. Cuando crea una transacción de Bitcoin, la envía a un par que la envía a otros pares, y así sucesivamente, hasta que llega a toda la red.
Los mineros recogen su transacción, generan un bloque minado que contiene su transacción y envían este bloque extraído a sus pares. Eventualmente su cliente recibirá el bloqueo y su cliente muestra que la transacción fue procesada.
El Bitcoin utiliza firmas digitales para garantizar que solo el propietario de bitcoins pueda gastarlas. El propietario de una dirección de Bitcoin tiene la clave privada asociada con la dirección. Para gastar bitcoins, firman la transacción con esta clave privada, lo que prueba que son el propietario. Se asocia una clave pública con cada dirección de Bitcoin, que cualquier nodo puede usar para verificar la firma digital.
Los bloques y las transacciones se identifican mediante un hash criptográfico de 256 bits de sus contenidos. Este valor hash se usa en múltiples lugares en el protocolo Bitcoin. Además, encontrar un hash especial es la tarea difícil de extraer un bloque.
Resulta que usar el protocolo Bitcoin es más difícil de lo que se espera. El protocolo utiliza números de big-endian, números little-endian, números de longitud fija, números de longitud variable, codificaciones personalizadas, codificación DER y una variedad de algoritmos criptográficos.
La segunda complicación con el uso del protocolo de forma directa es que al ser criptográfica, es muy implacable. Si obtienes un byte incorrecto, la transacción se rechaza sin saber dónde está el problema.
La dificultad final es que el proceso de firmar una transacción es mucho más difícil de lo necesario, con muchos detalles que deben ser correctos. En particular, la versión de una transacción que se firma es muy diferente de la versión que realmente se usa.
A menudo se piensa que la minería de Bitcoin es la forma de crear nuevos bitcoins. Pero eso es solo un propósito secundario. La importancia principal de la minería es garantizar que todos los participantes tengan una visión coherente de los datos de Bitcoin. Esto debido a que Bitcoin es un sistema distribuido punto a punto, no existe una base de datos central que realice un seguimiento de quién posee bitcoins. En cambio, el registro de todas las transacciones se distribuye a través de la red.
El principal problema con un registro de transacciones distribuidas es; cómo evitar inconsistencias que podrían permitir que alguien gaste los mismos bitcoins dos veces. La solución en Bitcoin, es extraer las transacciones pendientes en un bloque de transacciones aproximadamente cada 10 minutos, lo que las hace oficiales. No se permiten transacciones conflictivas o no válidas en un bloque, por lo que se evita el problema del doble gasto.
Si bien las transacciones mineras en bloques evitan el doble gasto, plantea nuevos problemas: ¿qué impide que las personas extraigan bloques al azar? ¿Cómo decides quién consigue extraer un bloque? ¿Cómo se pone de acuerdo la red sobre qué bloques es válidos? La solución de esos problemas es una innovación clave de Bitcoin: la minería implementa una técnica llamada prueba de trabajo. Se necesita una gran cantidad de esfuerzo computacional para extraer un bloque, pero es fácil para los compañeros de la red verificar que un bloque haya sido extraído con éxito.
Cada bloque minado hace referencia al bloque anterior, formando una cadena ininterrumpida hasta el primer bloque de Bitcoin. Esta cadena de bloques asegura que todos estén de acuerdo en el registro de transacciones. También asegura que nadie pueda alterar los bloques de la cadena, ya que volver a minar todos los bloques siguientes sería inviable desde el punto de vista computacional.
Mientras nadie tenga más de la mitad de los recursos computacionales, la minería sigue siendo competitiva y nadie puede controlar la cadena de bloques. Como efecto secundario, la minería agrega nuevos bitcoins al sistema. Por cada bloque extraído, los mineros actualmente obtienen 25 nuevos bitcoins, lo que anima a los mineros a hacer el trabajo duro de los bloques de minería.
Cómo funciona la minería: La minería de Bitcoin usa criptografía, con una función de hash llamada doble SHA-256. Un hash toma un fragmento de datos como entrada y lo reduce a un valor hash más pequeño (en este caso, 256 bits).
Con un hash criptográfico, no hay forma de obtener un valor hash que desee sin probar muchas entradas. Pero una vez que encuentra una entrada que le da el valor que desea, es fácil para cualquier persona verificar el hash. Por lo tanto, el hash criptográfico se convierte en una buena forma de implementar la “prueba de trabajo” de Bitcoin.
Más detalladamente, para extraer un bloque, primero se recopilan las nuevas transacciones en un bloque. Luego se calcula un hash al bloque para formar un valor hash de bloque de 256 bits. Si el hash comienza con suficientes ceros, el bloque se ha extraído con éxito y se envía a la red Bitcoin y el hash se convierte en el identificador del bloque.
La mayoría de las veces el hash no es exitoso, por lo que modifica el bloque ligeramente y lo intenta de nuevo, una y otra vez, miles de millones de veces. Aproximadamente cada 10 minutos alguien minará con éxito un bloque, y el proceso comienza de nuevo. Cada vez que se hace el calculo del hash de bloque, se supone un gran esfuerzo de procesamiento y calculo; de allí que hablamos que se requiere poder de procesamiento para minar.
El siguiente diagrama muestra la estructura de un bloque específico, y cómo es hash.
La parte amarilla es el encabezado del bloque, y es seguido por las transacciones que entran en el bloque. La primera transacción es la transacción especial que otorga la recompensa minera al minero. Las transacciones restantes son transacciones estándar de Bitcoin que mueven bitcoins.
Si el hash del encabezado comienza con suficientes ceros, el bloque se extrae con éxito. Para el siguiente bloque, el hash es exitoso:
0000000000000000e067a478024addfecdc93628978aa52d91fabd4292982a50
El encabezado del bloque contiene un puñado de campos que describen el bloque. El primer campo en el bloque es la versión de protocolo. Le sigue el hash del bloque anterior en el blockchain, que asegura que todos los bloques formen una secuencia ininterrumpida en el blockchain.
El siguiente campo es la raíz de Merkle, un hash especial de todas las transacciones en el bloque. Esta es también una parte clave de la seguridad de Bitcoin, ya que garantiza que las transacciones no se puedan cambiar una vez que formen parte de un bloque.
A continuación se muestra una marca de tiempo del bloque, seguida de los bits de valor de dificultad de minería. Finalmente, el nonce; un valor arbitrario que se incrementa en cada intento de hash para proporcionar un nuevo valor de hash. La parte difícil de la minería es encontrar una fuente que funcione.
La dificultad de extraer un bloque es asombrosa. La posibilidad de que un hash tenga éxito es un poco menor que uno en 1019. Encontrar un hash exitoso es más difícil que encontrar un grano de arena particular de todos los granos de arena en la Tierra.
Para encontrar un hash cada diez minutos, la tasa de hash de Bitcoin debe ser increíblemente grande. Actualmente, los mineros en la red de Bitcoin están haciendo alrededor de 25 millones de gigahashes por segundo.
Se calcula que el hardware total utilizado para la minería de Bitcoin cuesta decenas de millones de dólares y usa tanta potencia como la generación total de nuestro país.
Tenga en cuenta que encontrar un hash exitoso es una tarea totalmente arbitraria que no logra nada útil en sí mismo. El único propósito de encontrar un hash pequeño es dificultar la minería, que es fundamental para la seguridad de Bitcoin.
La minería es financiada principalmente por la recompensa de 25 bitcoins por bloque, y ligeramente por las tarifas de transacción (alrededor de 0.1 bitcoins por bloque).
Apoyo Bibliografico: Ken Shirriff’s blog