El Bitcoin

in #bitcoin7 years ago

El bitcoin (signo: BitcoinSign.svg; abr.: BTC, XBT)3​ es una criptomoneda concebida en 2009.4​ El término se aplica también al protocolo y a la red P2P que lo sustenta, y de forma común se denomina como una moneda digital.5​ Generalmente se usa Bitcoin para referirse a la red o al protocolo y bitcoin (también recomendado en español bitcóin,6​ plural bitcoines) para referirse a las unidades monetarias.

Bitcoin se caracteriza por ser descentralizado, es decir, no está respaldado por ningún gobierno ni depende de la confianza en un emisor central.7​8​ Por el contrario, utiliza un sistema de prueba de trabajo para impedir el doble gasto y alcanzar el consenso entre todos los nodos que integran la red intercambiando información sobre una red no confiable y potencialmente comprometida (resuelve el problema de los generales bizantinos).9​ De igual forma, las transacciones no necesitan de intermediarios y el protocolo es código abierto.

Bitcoin es un proyecto innovador en constante evolución y cambio. Si bien los desarrolladores recomiendan investigar cómo funcionan antes de invertir en ellos o abrir una cartera para utilizarlos, también consideran que tiene la capacidad de cambiar el mundo en términos económicos.10​

Screenshot_of_Bitcoin-qt-0.5.2.png

Principios fundamentales:

21 millones: la cantidad de unidades nunca podrá exceder los 21 millones de bitcoins.
Sin censura: nadie puede prohibir o censurar transacciones válidas.
Código abierto: el código fuente de Bitcoin siempre debe ser accesible para todos.
Sin permiso: nadie puede impedir la participación en la red.
Pseudoanónimo: no se requiere identificación para participar en la red Bitcoin.
Permutable: cada unidad es intercambiable.
Pagos irreversibles: las transacciones confirmadas no pueden ser modificadas ni eliminadas. La historia es imborrable.

Historia

Cronología

Desde la década de 1970, la utilización de firmas digitales basadas en criptografía de clave pública ha proporcionado un fuerte control de propiedad.11​Nota 1​ Sobre la base de la criptografía de clave pública, en 1998 Wei Dai describe b-Money,12​ una solución descentralizada al problema de pagos electrónicos. Posteriormente, Nick Szabo y Hal Finney extienden y complementan el trabajo de Wei Dai.

En 2008, Satoshi Nakamoto publicó un artículo en la lista de criptografía de metzdowd.com donde describe el protocolo Bitcoin.11​13​14​

El 3 de enero de 2009 la red P2P de Bitcoin entra en funcionamiento con la publicación del primer programa cliente, de código abierto, y la creación de los primeros bitcoins.15​ Hasta la invención de bitcoin era obligado que todos los pagos en el comercio electrónico se canalizaran a través de entidades centralizadas de confianza,16 generalmente bancos y otras empresas financieras, que gestionaban el seguimiento de todas las transacciones.

Protocolo

El protocolo Bitcoin se apoya sobre la pila de protocolos TCP/IP aprovechando los servicios de TCP, normalmente a través del puerto 8333 aunque se puede cambiar.17​ A partir de este protocolo se construye una red de nodos superpuesta a Internet. Los nodos de la red forman una red de pares donde todos los nodos pueden igualmente proveer y consumir servicios mientras colaboran vía un servicio de consenso.18

Direcciones

Todo participante de la red Bitcoin tiene una cartera electrónica que contiene un número arbitrario de claves criptográficas. A partir de la clave pública, se obtiene la dirección Bitcoin, que funciona como la entidad remitente y receptora para todos los pagos. Su clave privada correspondiente autoriza el pago solo para ese usuario. Las direcciones no tienen ninguna información sobre su dueño, son generalmente anónimas y no requieren de ningún contacto con los nodos de la red para su generación.19​

Las direcciones son secuencias alfanuméricas aleatorias de 33 caracteres de longitud, en formato legible para personas, como puede verse en este ejemplo: 1LtU9rMsQ41rCqsJAvMtw89TA5XT2dW7f9. Utilizan una codificación en Base58, que resulta de eliminar los siguientes seis caracteres del sistema Base64: 0 (cero), I (i mayúscula), O (o mayúscula), l (L minúscula), + (más) y / (barra). De esta forma, se componen únicamente de caracteres alfanuméricos que se distinguen entre sí en cualquier tipo de letra. Las direcciones Bitcoin también incluyen una suma de verificación de 32 bitsNota 2​ para detectar cambios accidentales en la secuencia de caracteres.20​

Transacciones

Los bitcoins contienen la dirección pública de su dueño. Cuando un usuario A transfiere algo a un usuario B, A entrega la propiedad agregando la clave pública de B y firmando con su clave privada.21​ A entonces incluye esos bitcoins en una transacción, y la difunde a los nodos de la red P2P a los que está conectado. Estos nodos validan las firmas criptográficas y el valor de la transacción antes de aceptarla y retransmitirla. Este procedimiento propaga la transacción de manera indefinida hasta alcanzar a todos los nodos de la red P2P. Finalmente la transacción es validada por un nodo minero y es incluida en un bloque de transacciones que es agregado a la cadena de bloques. Una vez que se encuentra en la cadena de bloques y ha sido confirmada por un número suficiente de bloques subsecuentes, la transacción es una parte permanente de la cadena de bloques y es aceptada por todos los participantes.22​

En la validación de una transacción se verifica la existencia de fondos suficientes. Para ello se tendría que recorrer toda la cadena de bloques hasta encontrar el que contiene la transacción origen. Después se tendría que recorrer todos los bloques posteriores para asegurar que esa transacción no se ha utilizado anteriormente. Todo este proceso requeriría recursos computacionales importantes. Para optimizarlos, los nodos crean una tabla de salidas de transacción no gastadas (UTXO, del inglés unspent transaction output) que funciona como una caché. Una UTXO solo puede ser gastada por un dueño específico (el que posee la clave privada), está almacenada en la cadena de bloques y es reconocida por toda la red. Los nodos de la red llevan un seguimiento de las UTXO. Para ello realizan un barrido de la cadena de bloques verificando las transacciones y se anotan en esta caché las transacciones de salida que no han sido gastadas. Para cada transacción se borran de la caché las transacciones de entrada y se añaden las de salida dejando la caché como una lista actualizada de todas las transacciones de salida utilizables. Con esta lista ya no es necesario recorrer nuevamente la cadena de bloques, basta con verificar si la transacción de salida que se quiere usar está en la caché .23​22​

El concepto de balance total de un usuario no existe, solo existe un conjunto de UTXO distribuidas a lo largo de la cadena de bloques las cuales pueden ser transferidas por el usuario que posea la clave privada. Los programas de cartera calculan el balance al recorrer la cadena de bloques y agregar cada UTXO que le pertenezca al usuario. 22​

Una UTXO puede tener un valor arbitrario y este valor es indivisible. Si una UTXO es mayor que el valor que se desea transferir, esta se debe consumir en su totalidad y el cambio correspondiente, otra UTXO, se debe generar en la transacción. Las UTXO gastadas en la transacción son llamadas entradas y las generadas por la misma transacción son llamadas salidas. La excepción a la cadena de salidas y entradas es un tipo especial de transacción llamada de acuñado o de coinbase, la cual es la primera transacción de cada bloque. Esta es colocada por el minero ganador y crea una nueva moneda que se entrega como recompensa por el minado.22​

Construcción de la cadena de bloques

La cadena principal (negro) es la serie más larga desde el origen (verde). Los bloques huérfanos aparecen en lila.
Todos los nodos que forman parte de la red Bitcoin mantienen una lista colectiva de todas las transacciones conocidas en una cadena de bloques. Para ello los nodos generadores de los bloques, también llamados mineros meten en la cabecera de dichos bloques el hash o resumenNota 3​ del último bloque de la cadena más larga de la que tienen conocimiento,24​ así como las nuevas transacciones publicadas en la red. Cuando un minero encuentra un nuevo bloque, lo transmite al resto de los nodos a los que está conectado. En el caso de que resulte un bloque válido, estos nodos lo agregan a la cadena y lo vuelven a retransmitir. Este proceso se repite indefinidamente hasta que el bloque ha alcanzado todos los nodos de la red. Por tanto la cadena de bloques contiene el historial de posesión de todas las monedas desde la dirección-creadora a la dirección del actual dueño.25​ Por lo tanto, si un usuario intenta reutilizar monedas que ya usó, la red rechazará la transacción.
102px-Blockchain.svg.png

Minado

A la generación de bloques se le conoce como minado o extracción como analogía con la minería del oro.11​ Todos los mineros de la red compiten para ser los primeros en encontrar la solución al problema criptográfico de su bloque candidato actual, mediante un sistema de pruebas de trabajo, resolviendo un problema que requiere varios intentos repetitivos, por fuerza bruta,Nota 4​ no determinista, de manera que se evita que mineros con gran nivel de procesamiento dejen fuera a los más pequeños. De esta forma, la frecuencia de localización de cada bloque sigue una distribución de Poisson y la probabilidad de que un minero lo encuentre depende del poder computacional con el que contribuye a la red en relación al poder computacional de todos los nodos combinados,26​ lo que permite que el sistema funcione de manera descentralizada. Los nodos que reciben el nuevo bloque solucionado lo validan antes de aceptarlo, agregándolo a la cadena. La validación de la solución proporcionada por el minero es trivial y se realiza inmediatamente.

El objetivo concreto de los mineros es buscar un nonce correcto para el bloque de forma que el bloque completo satisfaga cierta condición. Esta condición es que el doble hash SHA-256 del bloque tenga un cierto número de ceros iniciales.

Todo este proceso de prueba-error es simplemente para hacer difícil la generación de bloques. Podría usarse cualquier otro mecanismo. La energía usada para reintentar hasta encontrar el nonce se pierde para siempre. Es simplemente una prueba de trabajo. Normalmente para hallar un nonce se comienza en 0 y se va incrementando en uno cada hash hasta que se desborda el valor del nonce (4 bytes). Cuando se desborda se varía el valor de hash de la raíz del árbol de Merkle.

Regulación de dificultad de minado

Según el protocolo solo debe salir un bloque válido cada diez minutos independientemente de cuánto trabajo haga la red. Así que la red tiene que actualizar la dificultad de forma que los futuros bloques requieran condiciones más o menos estrictas. Para calcularlo se mide el tiempo que se tardó en encontrar los últimos 2.016 bloques, se compara con el tiempo de 20.160 minutos. Se calcula de este modo la relación entre el intervalo de tiempo real y el intervalo de tiempo y realiza el ajuste correspondiente de la dificultad, hacia arriba o hacia abajo. Al ser la red Bitcoin una red descentralizada de nodos, la reasignación de la dificultad se produce de forma automática y en cada nodo independientemente. Cada 2.016 bloques, todos los nodos reorientan la dificultad

Para evitar la volatilidad extrema en la dificultad, el ajuste de reasignación de la dificultad como máximo puede ampliarse en cada ciclo de 2016 bloques por un factor de cuatro. Por ello, si se da el caso de que la dificultad requerida durante un ciclo es mayor que un factor de cuatro, se ajustará por el máximo, pero nunca más. Cualquier otro ajuste se llevará a cabo en el próximo ciclo. Esto evita la volatilidad extrema en la dificultad, pero como consecuencia, provoca también que las grandes discrepancias entre el poder de hash y la dificultad puedan tardar varios ciclos en equilibrarse.

En la dificultad actual, la posibilidad de un hash tener éxito es un poco menos de uno de cada {\displaystyle 10^{19}} {\displaystyle 10^{19}}. Encontrar un hash de éxito es más difícil que encontrar un grano particular de arena de todos los granos de arena en la Tierra. Para medir la capacidad de un equipo para generar hashes o resúmenes de los datos, se utiliza la medida hash/segundo. Actualmente, los mineros de la red Bitcoin están haciendo cerca de tres mil millones gigahashes por segundo.

Financiación de la minería

La minería está financiado en su mayoría por la recompensa 12.5 BTC por bloque (este valor se reducirá a la mitad cada 210 000 bloques), y un poco por las comisiones voluntarias de transacción (tasas pagadas por los usuarios que envían las transacciones para incentivar para que el minero incluya la transacción en su bloque), unos 1.3 bitcoins por bloque. En los sistemas de cambio actuales la recompensa minera resuelve a cerca de 15 000 dólares por bloque. Por cada transacción, los mineros están recibiendo alrededor de 34 dólares en recompensa 0.65 dólares en honorarios

Como el premio por bloque disminuye con el paso del tiempo, en el largo plazo la gran parte de la las recompensas de los mineros provendrán únicamente de las tarifas de transacción.19​

Minería colaborativa

Debido a la alta dificultad, la minería normalmente se realiza en piscinas de minería, donde un grupo de mineros comparte el trabajo y beneficios. Si uno mina por su cuenta, es posible extraer con éxito un bloque y obtener sus 12,5 bitcoins más comisiones al cabo de unos años. En la minería como parte de un grupo, se puede obtener una fracción de un bitcoin todos los días en su lugar, que para la mayoría de la gente es lo preferible.

Rendimiento computacional de la minería

Dificultad relativa de minería,Nota 5​ la escala es logarítmica.27​
Las estrategias para la extracción de bitcoins se han ido perfeccionando progresivamente. En los primeros meses de funcionamiento de la red era posible extraer en solitario con una CPU estándar y obtener un bloque y sus 50 BTC asociados con una frecuencia relativamente alta. Posteriormente, la aparición de software de minería adaptado a tarjetas gráficas, mucho más eficiente, desplazó completamente a las CPU. La minería por GPU se fue profesionalizando, con grandes instalaciones en países con energía barata, configuraciones personalizadas realizando subidas de frecuencias de manera generalizada a los procesadores y sistemas especiales de refrigeración. Con el aumento sostenido de la dificultad, los mineros comenzaron a organizarse en grupos independientes o pools para extraer de manera colectiva,28​ desplazando así a los mineros en solitario que podían tardar meses o incluso años en encontrar un bloque de manera individual. El propietario del pool se lleva una comisión por encontrar un bloque. Los pools también compiten entre ellos para intentar atraer al mayor número de mineros.

Durante el año 2013 se inició la distribución de diversas FPGA y ASIC para extraer bitcoins de manera más eficiente.29​ Si con la minería con CPU y tarjetas gráficas, el coste de explotación provenía fundamentalmente del gasto energético, la comercialización de equipos especializados de bajo consumo está desplazando las inversiones de los mineros hacia hardware más sofisticado, e indirectamente hacia la investigación necesaria para el desarrollo de estos productos.

En enero de 2016, la dificultad alcanzó por primera vez el valor de 100 000 millones,30​ superando también por primera vez una potencia de procesamiento de 1 exahash por segundo31​ (1 000 000 000 000 000 000 de hashes por segundo).

Entre enero de 2010 y febrero de 2016 la potencia de procesamiento se ha multiplicado por 150 000 millones.32​

![History_of_Bitcoin_difficulty.svg.png]
()

Motivación del minado

Bitcoin podría operar perfectamente sin prueba de trabajo, siempre que todos los participantes fueran perfectamente honestos y altruistas. La prueba de trabajo es un método para establecer un consenso entre un número de personas interesadas, ninguna de las cuales está subordinada a otra, y existen incentivos considerables para resistirse a dicho consenso.

Antes de que un bloque nuevo sea generado, puede que haya muchos pagos pululando por la red sin existir respuesta objetiva acerca de qué pagos deberían ser validados. Algunos podrían ser inválidos, así que todos deben ser comprobados. Algunos pueden no incluir una tasa de transacción, así que debe decidirse si dejar a estos gorrones pasar, o si ignorarlos. Finalmente, podría haber un conjunto de 2 o más pagos que no pueden ser válidos simultáneamente. Por ejemplo, si alguien intenta gastar los mismos bitcoins en dos transacciones que aún no han sido confirmadas, habría que tomar una decisión sobre qué pago permitir.

De este modo, para un conjunto de pagos dado, pueden existir muchos bloques posibles que pueden construirse con ellos, ninguno de los cuales es objetivamente el más correcto. Tampoco habrá necesariamente un acuerdo acerca de qué resultado es preferible, porque los distintos bloques posibles benefician a distintas personas. Primeramente, está el beneficio que surge de generar un bloque en forma de nuevos bitcoins. Esto es necesario porque, si no existiera, habría muy poco incentivo para hacer la contabilidad para empezar. Con esta recompensa, cada minero naturalmente prefiere que el nuevo bloque sea su propuesta, y no la de cualquier otro.

Además puede haber comportamientos malintencionados. Por ejemplo un minero podría negarse a validar las transacciones procedentes de su enemigo, o podría mostrarse más o menos altruista con las tarifas por transacción que aceptará. Podría incluso proponerse estafar a alguien mediante el doble gasto: él mandaría un pago a la víctima a cambio de un bien determinado, pero solo confirmaría otro pago que hace a una cartera de su propiedad y que está en conflicto con el primero; esto invalidaría el primer pago, y acabaría quedándose con un bien por el que no ha pagado.

Para evitar que se hagan manipulaciones interesadas Bitcoin añade requerimientos extra al protocolo que incrementan enormemente el coste de la deserción. Los bloques se generan aleatoriamente mediante un cálculo muy difícil, que requiere muchos recursos computacionales, y solo se propone un único bloque a la vez. Es anunciado y verificado por la mayoría de otros nodos (lo cual es fácil verificando los hashes o resúmenes). Cuando un bloque ha sido propuesto, los mineros tienen la opción de continuar buscando un bloque alternativo que les sea más favorable, o aceptar la propuesta (dar por verificado) y luego pasar a buscar el siguiente. Alguien que acepta el último bloque propuesto entiende que está siguiendo un proceso de consenso natural y que, si tiene la suerte de generar el siguiente bloque, será probablemente aceptado por las mismas razones que él aceptó el anterior. Por el otro lado, la opción de esperar e intentar encontrar un bloque más favorable para él es muy arriesgada, porque entonces tendría que convencer a un número suficiente de mineros de que podrá establecer un nuevo consenso, para que le sigan.

La regla general es que el primer bloque minado nunca es egoísta, porque nadie puede planear ser el primero en resolverlo. Uno solo puede ser el primero con suerte. Cualquiera que se desmarque de ese bloque levantará sospechas, porque tiene que rechazar una alternativa perfectamente válida y supuestamente altruista, y convencer a los demás de que hagan lo mismo; algo nada fácil de hacer.

La fortaleza de la firma realizada por la red Bitcoin es directamente proporcional al poder computacional total de todos los mineros. Cuanto mayor sea más difícil será (más poder computacional) cambiar la cadena de consenso. En esto se basa el protocolo de consenso de bitcoin, el cual puede manejar fallos bizantinos.

Si se quiere cambiar un bloque de la cadena, cada bloque que viene después de ese bloque tiene que volver a hacerse su hash y rehacer el trabajo. Esto hace que sea esencialmente imposible modificar un bloque.

Críticas

Concentración del poder de creación de bloques: la especialización del proceso de minado, para hacerlo rentable, está provocando que el poder para crear bloques se esté centralizando en aquellos que emplean economías de escala para competir33​ y que además estas entidades no tienen por qué tener muchos BTC por lo que pueden no estar involucradas en el buen funcionamiento de la red. Este es el origen del uso de protocolos de consenso por prueba de participación.34​ Otra solución sería usar algoritmos por prueba de trabajo resistentes a tecnologías ASIC por ejemplo basándose en gastar recursos de almacenamiento en lugar de en recursos de CPU.35​
Despilfarro de recursos en la minería: la cantidad de trabajo computacional que hoy día se gasta en el proceso de minería es extraordinario. Se critica del algoritmo de consenso de Bitcoin que todo ese trabajo que se realiza no se malgaste inútilmente reintentando hasta conseguir un valor hash con ciertas propiedades. Se podría aprovechar los cálculos para obtener algún beneficio para la sociedad. Se diría que se tiene un algoritmo de prueba de trabajo útil. Por ejemplo el algoritmo de consenso de Primecoin (buscan primos con ciertas características) y de Permacoin (basado en almacenamiento distribuido de información).35​

Redes superpuestas

Sobre las facilidades que ofrece el protocolo Bitcoin, se han construido redes superpuestas (usan protocolo superpuesto al de Bitcoin) para desarrollar tareas que el protocolo Bitcoin no puede desarrollar, añadiendo así nuevas características y funciones. La principal ha sido poder emitir, monitorear y transferir representaciones virtuales de activos externos a la cadena de bloques dando lugar los servicios de la llamada Blockchain 2.0. Todas estas redes usan cadena de bloques de Bitcoin para distintas tareas como por ejemplo sello de tiempo o validar su trabajo. Todas las redes superpuestas sobre el protocolo bitcoin tienen en común su conexión a la cadena de bloques de bitcoin, de la cual aprovechan su efecto red para lograr liquidez sin tener que arrancar su propia criptomoneda y/o cadena de bloques tal y como requieren otras soluciones como Ethereum.36​37​

Tipos de estas redes superpuestas son:38​39​40​

Las monedas coloreadas son pequeñas fracciones de bitcoin a los que se les ha dado una especial significado añadiéndole un atributo, al que metafóricamente se le llama 'color'. De esta forma se permite que esa cantidad de bitcoin represente un activo específico. En las monedas coloreadas solo requiere el uso de bitcoins. El activo que representan puede ser una acción de una empresa, un lingote de oro, un dólar o un euro, un derivado, el título de propiedad de una casa, un voto o en general cualquier cosa. La fracción de bitcoin sigue siendo válida y se podría usar, sin embargo no se suele usar como moneda porque tiene más valor como certificado que representa a un activo para comerciar con él.41​
Otras redes superpuestas introducen activos del mundo real en la cadena de bloques de Bitcoin, pero para ello, en lugar de usar directamente fracciones de bitcoin como hacen las monedas coloreadas, introducen el uso de otras monedas a las que se llama metacoin, aunque las transacciones finales sí quedan registradas en la cadena de bloques de Bitcoin. Ejemplos de este tipo de redes son Counterparty y Mastercoin.
Las llamadas cadenas laterales son redes superpuestas que tienen su propia cadena de bloques pero que están conectadas a la de Bitcoin. Ejemplos de este tipo de redes son Liquid y RootStock.
Algunos agrupan las redes con monedas coloreadas y las que usan metacoins en la denominación tókenes con marca de agua (en inglés watermarked token), queriendo indicar que se trata de una cantidad concreta de bitcoin que es rastreada sobre la cadena de bloques y actúa como una representación de un activo exógeno a la cadena misma (representan un valor externo).37​

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 68373.55
ETH 2650.22
USDT 1.00
SBD 2.71