Ir al contenido

Protocolo Bitcoin

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 05:58 15 nov 2019 por DarthRoison (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
(difs.) ← Revisión anterior · Ver revisión actual (difs.) · Revisión siguiente → (difs.)

Bitcoin es un protocolo, proyecto de código abierto y red peer-to-peer que se utiliza como criptomoneda, sistema de pago[1]​ y mercancía.[2][nota 1]​.

El sistema bitcoin y usa la criptografía para controlar la creación y gestión descentralizada de fichas bitcoin, las cuales son consideradas activos digitales que sirven como medio de intercambio y almacén de valor.[3]

Software

Programas cliente

Captura de pantalla de Electrum.

Aunque existen monedas[4]​ y billetes fabricados por particulares y empresas, normalmente para poder comerciar con bitcoines se utilizan programas cliente,[nota 2]​ que pueden ser aplicaciones nativas o aplicaciones web.

Aplicaciones nativas

Las aplicaciones nativas[5][6]​ se instalan o se ejecutan directamente en ordenadores o en dispositivos móviles.[nota 3]​ También pueden ejecutarse automáticamente cuando el usuario clica en un navegador web sobre un enlace que cumple con el formato del URI scheme de bitcoin según la especificación registrada en IANA.[7]

Bitcoin Core es el único programa que implementa totalmente el protocolo, protegiendo la red, y se considera la referencia en la que se apoyan el resto de clientes existentes. Bitcoin Core necesita descargar completamente la cadena de bloques y almacenarla localmente, que a diciembre de 2018 ocupa aproximadamente 200 GB,[8]​ lo que puede llegar a tardar varios días. Su uso solo se recomienda para usuarios avanzados que deseen aportar a la estabilidad de la red.

Aplicaciones web

Las aplicaciones web solo necesitan de un navegador, y por tanto están accesibles desde todas las plataformas, ya sean de escritorio (Windows, Linux, Mac OS X) o móviles (Android, iPhone, BlackBerry, tabletas, etc).

Algunas aplicaciones web proporcionan seguridad adicional en el acceso a los bitcoines mediante la utilización de autenticación de dos factores con mensajes SMS, correo electrónico, dispositivos específicos y Google Authenticator.[9]

Comercio electrónico

Existen complementos para la mayor parte de las plataformas de comercio electrónico, como WordPress, Drupal, Zen Cart, PrestaShop, Magento y otras.[10]

A partir de una única semilla, algunos comerciantes generan carteras deterministas cuyas direcciones Bitcoin se pueden asignar a un pagador diferente para simplificar su seguimiento. Se utiliza el término cartera determinista para indicar que todas las direcciones de esa cartera están completamente determinadas por la semilla. Es decir, es suficiente con proteger la semilla para generar consistentemente la misma secuencia de direcciones Bitcoin de las que se tiene el control. Las direcciones generadas por una única semilla son virtualmente ilimitadas.[11]

Programación

Bitcoin Core proporciona una API en JSON-RPC para acceder a la red Bitcoin.[12]​ Es habitual que los desarrolladores prefieran programar en modo regtest, que permite desarrollar en una cadena de bloques privada con control total del entorno, creación de transacciones con confirmaciones instantáneas y sin necesidad de gastar bitcoines reales.[13]​ o la red testnet (mas cerca de la principal en cuanto a la experiencia), es una cadena de bloques publica idéntica al bitcoin pero con su propio tipo de direcciones, su propio registro de contabilidad y su propio ajuste de dificultad sencillo para los desarrolladores. En Testnet las direcciones no empiezan por “1” o “3” como en Bitcoin, sino por “m” o “2“. Ejemplos:

mvN7z3C3GNwTkeEY2tvAQzragtDoiQZ5CF / 2NEPMeQcRF7j3uZvQYqsEQxxdCqEnNgDyXd

BitcoinJ es una biblioteca popular para el lenguaje Java.[14][15][16]​ Se conecta directamente a la red Bitcoin, no necesita de entidades de confianza y descarga una versión reducida de la cadena de bloques. Forma parte del código de Multibit[17]​ y del Bitcoin Wallet para Android y Blackberry OS.[18]​ También se puede acceder a BitcoinJ en Ruby a través de JRuby.

Pycoin es una biblioteca popular para Python.[19]​ A su vez, BitcoinJS es una biblioteca popular para Javascript.[20]​ Bitcore proporciona una API para acceder a la red Bitcoin a través de Javascript y Node.js.[21][22]

Tratamiento de bitcoines

Intercambio

Cartera hardware Trezor

Todas las plataformas guardan la cartera electrónica en un fichero con extensión .dat. La mayor parte de los clientes actuales permiten el cifrado de este fichero, de forma que se limite que algún malware pueda tener acceso directo a las claves privadas contenidas en él. Sin embargo, su seguridad no es total, ya que es posible que keyloggers (capturadores de tecleos) maliciosos registren las pulsaciones del teclado para capturar la contraseña de cifrado y, en última instancia, tramiten el robo de fondos.

Para poder llevar a cabo transferencias completamente seguras, algunos clientes permiten firmar transacciones en modo desconectado, de forma que las claves privadas nunca estén conectadas a la red, y el riesgo de robo por software malicioso sea nulo.[23]

Por otro lado, el propio protocolo Bitcoin permite el uso de multifirma, que también reduce prácticamente a cero el riesgo de robo de fondos, ya que para poder lanzar una transacción se necesitaría más de una clave privada,[24]​ que pueden estar guardadas en dispositivos diferentes.

Almacenamiento

Además del uso habitual de los bitcoines como medio de intercambio, muchos usuarios también lo utilizan como almacén de valor. Para ello es obligado tomar precauciones similares con la cartera electrónica a las que se tendrían protegiendo el dinero en efectivo, ya que al igual que este último, los bitcoin tienen como beneficiario al portador y, al igual que aquel, es difícil seguirle la pista.

La forma más habitual de proteger los bitcoines es realizar varias copias idénticas de la cartera, cifradas con una contraseña fuerte, y guardarlas físicamente en varios soportes USB y en la nube. Algunos usuarios más avanzados prefieren el uso de herramientas para generar particiones secretas que permiten negación plausible, la aplicación de esteganografía, o incluso generar la clave privada únicamente a partir de una frase memorizada,[25]​ sin necesidad de ningún soporte físico.

Otros optan simplemente por imprimir en papel la clave privada en formato numérico o en QR y guardarla en un lugar seguro.[26]

Privacidad

Cajero automático

Si un usuario quiere funcionar de manera anónima en la red, es condición indispensable que no haga pública la relación entre su identidad en la vida real y sus direcciones Bitcoin.[27]​ Por otro lado, algunas organizaciones e individuos pueden asociar de manera intencionada sus identidades con sus direcciones para proporcionar un cierto grado de transparencia. Por esta razón, algunos autores prefieren clasificar a Bitcoin como una red basada en seudónimos en lugar de una red anónima. El uso de seudónimos, al contrario que el anonimato, ofrece la posibilidad de generar una reputación y confianza entre los usuarios.

Para facilitar el análisis de todos los movimientos, varios sitios web proporcionan información actualizada de todas las transacciones, incluyendo variables agregadas como el número de bitcoines en circulación, número de transacciones por hora y tarifas de transacción en cada instante.[28]​ La representación gráfica habitual para auditorías limitadas se hace a través de dendrogramas.[29]

Como el núcleo del protocolo Bitcoin no cifra ningún tipo de información, todas las transacciones son públicas[30]​ y cualquier observador externo puede analizar en cualquier momento su contenido, el origen y el destino de todos los mensajes. Esta característica contrasta con el modelo bancario tradicional que oculta las transacciones del escrutinio público.[30]

Protocolo

El protocolo Bitcoin se apoya sobre la pila de protocolos TCP/IP aprovechando los servicios de TCP a través del puerto 8333.[31]​ 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.[32]

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.[33]​ Un participante de la red Bitcoin puede tener varias direcciones de Bitcoin.[34]

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 bits[nota 4]​ para detectar cambios accidentales en la secuencia de caracteres.[35]

Transacciones

Los bitcoines 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.[36]A entonces incluye esos bitcoines 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.[37]

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 se han gastado. 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é .[38][37]

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.[37]

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.[37]

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 resumen[nota 5]​ del último bloque de la cadena más larga de la que tienen conocimiento,[39]​ 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.[40]​ Por lo tanto, si un usuario intenta reutilizar monedas que ya usó, la red rechazará la transacción.

Minado

A la generación de bloques se le conoce como «minado» o «extracción», por analogía con la minería del oro.[41]​ 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 6]​ 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,[42]​ 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. Este proceso de prueba-error hace difícil la generación de bloques.

Reajuste 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 2016 bloques, se compara con el tiempo de 20160 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 2016 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 que un hash tenga éxito es un poco menos de uno de cada . Para medir la capacidad de un equipo para generar hashes o resúmenes de los datos, se utiliza la medida hash/segundo.

Financiación de la minería

La minería está financiada en su mayoría por la recompensa de 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 bitcoines por bloque.

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.[33]

Minería colaborativa

Debido a la dificultad creciente de los protocolos de criptominado, la minería normalmente se realiza en fondos comunes de minería, donde un grupo de mineros aporta todo su trabajo al fondo y se reparten beneficios según su potencia de minado aportada. Si uno mina por su cuenta, es posible extraer con éxito un bloque y obtener sus 12.5 bitcoines 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 7]​ la escala es logarítmica.[43]

Las estrategias para la extracción de bitcoines 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 fondos comunes de minería (mining pools, pools o simplemente fondos) para extraer monedas de manera colectiva,[44]​ 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 fondo se lleva una comisión por encontrar un bloque. Los fondos 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 bitcoines de manera más eficiente.[45]​ 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 julio de 2019, la dificultad alcanzó por primera vez el valor de 9 billones,[46]​ superando por primera vez los 70 exahashes por segundo de potencia de procesamiento (70 000 000 000 000 000 000 de hashes por segundo).

Referencias

  1. Jerry Brito y Andrea Castillo (2013). «Bitcoin: A Primer for Policymakers». Mercatus Center. Universidad George Mason. Consultado el 4 de enero de 2018. 
  2. «CFTC Statement on Self-Certification of Bitcoin Products by CME, CFE and Cantor Exchange». Commodity Futures Trading Commission. 1 de diciembre de 2017. Consultado el 4 de enero de 2018. 
  3. Jerry Brito; Andrea Castillo (2013). «Bitcoin: A Primer for Policymakers». Mercatus Center. George Mason University. Consultado el 22 de octubre de 2013. 
  4. Mike Caldwell. «Monedas de Casascius». Consultado el 11 de octubre de 2012. 
  5. «Software cliente para Bitcoin». bitcoin.org. Consultado el 11 de octubre de 2012. 
  6. «Clientes Bitcoin de código abierto para PC». Archivado desde el original el 11 de octubre de 2012. Consultado el 11 de octubre de 2012. 
  7. IANA, ed. (23 de septiembre de 2012). «Scheme name de Bitcoin en IANA». Consultado el 23 de julio de 2013. 
  8. https://blockchain.info/charts/blocks-size?timespan=all
  9. blockchain.info (ed.). «Características de My Wallet». Archivado desde el original el 6 de septiembre de 2015. Consultado el 11 de octubre de 2012. 
  10. Bitpay.com (ed.). «Bitpay. Bitcoin shopping cart plugins». Consultado el 5 de febrero de 2013. 
  11. electrum.org (ed.). «Electrum. Seed.». Archivado desde el original el 14 de septiembre de 2013. Consultado el 11 de julio de 2013. 
  12. blockchain.info (ed.). «JSON RPC API. Bitcoind compatible RPC api». Consultado el 11 de julio de 2013. 
  13. bitcoin.org (ed.). «Bitcoin Developer Examples. Regtest Mode». Consultado el 24 de febrero de 2016. 
  14. Mike Hearn y otros. «Tutorial de BitcoinJ». Google Project Hosting. Consultado el 6 de julio de 2013. 
  15. Mike Hearn y otros. «Javadoc de la versión 0.9 de BitcoinJ». Consultado el 6 de julio de 2013. 
  16. Dirk Merkel (10 de enero de 2012). JavaWorld, ed. «Bitcoin for beginners: The BitcoinJ API». Consultado el 11 de julio de 2013. 
  17. «GitHub de Multibit». GitHub. Consultado el 11 de julio de 2013. «Proyecto público de carácter colaborativo para desarrollo del código de Multibit». 
  18. «Proyecto Bitcoin Wallet para Android y Blackberry OS». Consultado el 11 de julio de 2013. «Proyecto público de carácter colaborativo para desarrollo del código de Bitcoin Wallet». 
  19. «Pycoin en Github». Consultado el 24 de febrero de 2016. 
  20. «BitcoinJS». Consultado el 24 de febrero de 2016. 
  21. «Bitcore». Consultado el 28 de junio de 2014. 
  22. «Código fuente de la librería bitcore». Consultado el 28 de junio de 2014. 
  23. Bitcoinarmory.com (ed.). «Rock-Solid Security for the Masses». Archivado desde el original el 2 de julio de 2012. Consultado el 29 de julio de 2012. 
  24. blockchain.info (ed.). «Escrow Transactions. How to use Muli-signature escrow transactions.». Consultado el 11 de julio de 2013. 
  25. Matonis, Jon (12 de marzo de 2012). Forbes.com, ed. «Brainwallet: The Ultimate in Mobile Money». Consultado el 13 de junio de 2012. 
  26. El monedero Armory permite este tipo de copia de seguridad: «Copia archivada». Archivado desde el original el 11 de diciembre de 2013. Consultado el 6 de diciembre de 2013. 
  27. Naomi O'Leary (2 de abril de 2012). Reuters, ed. «FactBox - What is Bitcoin - currency or con?». Consultado el 23 de junio de 2012. 
  28. http://blockchain.info/charts
  29. Dendrogram example for the Bitcoin network Hacer doble clic en los círculos para navegar
  30. a b Morgen E. Peck (30 de mayo de 2012). IEEE.org, ed. «Bitcoin: The Cryptoanarchists' Answer to Cash». Consultado el 12 de junio de 2012. 
  31. Blockchain’s AOL Moment. Karl Kreder. 28 de julio de 2017
  32. The Architecture of Blockchain..(4/5). Vamsi Chemitiganti. 28 de enero de 2016
  33. a b Nathan Willis (10 de noviembre de 2010). LWN.net, ed. «Bitcoin: Virtual money created by CPU cycles». Consultado el 11 de julio de 2013. 
  34. Volabit. «¿Qué es una dirección de Bitcoin?». 
  35. «Código fuente de base58.h de Bitcoin». GitHub. Consultado el 11 de julio de 2013. 
  36. «Cómo funciona Bitcoin». Bitcoin.org. Consultado el 23 de julio de 2013. 
  37. a b c d Aspectos de seguridad de Bitcoin y su aplicación en una alternativa de infraestructura de llave pública. Tesis de Abraham Jesús Basurto Becerra. Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional. Mexico D.F. Diciembre de 2015
  38. Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica. Antonio Marín Bermúdez. Proyecto final de carrera. Universitat Politècnica de Catalunya. 2016
  39. Guillermo Julián (20 de marzo de 2013). Xataka.com, ed. «¿Es seguro Bitcoin? Su tecnología al desnudo». Consultado el 23 de julio de 2013. 
  40. «Bitcoin Block Explorer». Consultado el 11 de julio de 2013. «Interfaz básica para acceso a las transacciones de la red Bitcoin». 
  41. Nakamoto, Satoshi (24 de mayo de 2009). Bitcoin: A Peer-to-Peer Electronic Cash System (en inglés). Consultado el 18 de agosto de 2012. 
  42. Luongo, Thomas (23 de julio de 2010). LewRockwell.com, ed. «The FED’s Real Monetary Problem». Archivado desde el original el 26 de julio de 2010. Consultado el 12 de octubre de 2010. 
  43. Blockchain.info (ed.). «Charts». Consultado el 24 de agosto de 2016. 
  44. Bitcoin Pooled Mining
  45. Alec Liu (22 de marzo de 2013). Vice.com, ed. «A Guide to Bitcoin Mining: Why Someone Bought a $1,500 Bitcoin Miner on eBay for $20,600». Archivado desde el original el 6 de junio de 2013. Consultado el 23 de julio de 2013. 
  46. Red Bitcoin: Poder computacional total

Notas

  1. La Commodity Futures Trading Commission afirma que Bitcoin es una «commodity». El término commodity puede traducirse en español como mercancía básica, producto básico o materia prima.
  2. En software, la denominación «cliente» se debe a que actúa, precisamente, como un cliente que solicita servicios a otras aplicaciones llamadas servidores, que atienden a sus órdenes. Los programas que se ejecutan en cada uno de los nodos interconectados que forman la red Bitcoin actúan como servidores, tramitando, validando y almacenando las transacciones que inician los programas clientes. El software Bitcoin Core es un caso particular, ya que se comporta simultáneamente como cliente y servidor.
  3. Microsoft Word y Microsoft Excel son ejemplos de aplicaciones nativas para Windows. En el caso de los móviles Android, las aplicaciones nativas se suelen descargar desde Google Play. En los iPhone, las aplicaciones nativas se obtienen del App Store.
  4. El propósito de la suma de verificación en una dirección Bitcoin es similar al código de control de las cuentas bancarias y DNI. Como este código de control para las direcciones Bitcoin es de 32 bits, haría falta más de cuatro mil millones de intentos de media (exactamente 232) para accidentalmente teclear una dirección válida distinta de la deseada
  5. del contenido del bloque anterior. Al añadir ese hash en el bloque actual, se consigue «encadenar» todos los bloques, uno detrás de otro, y verificar la integridad de la cadena resultante.
  6. La búsqueda por fuerza bruta implica que no se puede encontrar un bloque induciendo la respuesta a partir una base de datos de resultados previos, ni tampoco se puede deducir fundamentándolo sobre una serie de premisas verdaderas. La criptografía garantiza que la única forma de encontrar un bloque es a través de un proceso continuo de prueba y error. Como no existen «atajos» lógicos para dar con la solución de manera consistente, se garantiza que las entidades con mayor procesamiento de cálculo no sean las primeras en encontrar siempre la respuesta al desafío matemático, y el sistema pueda funcionar de manera distribuida.
  7. La dificultad relativa de minería se define como la razón entre el objetivo de dificultad el 9 de enero de 2009 y el objetivo de dificultad actual.