El protocolo de Bitcoin es el conjunto de reglas que rigen el funcionamiento de Bitcoin . Sus componentes y principios clave son: una red descentralizada entre pares sin supervisión central; la tecnología blockchain , un libro de contabilidad público que registra todas las transacciones de Bitcoin; la minería y la prueba de trabajo , el proceso para crear nuevos Bitcoins y verificar transacciones; y la seguridad criptográfica.
Los usuarios transmiten mensajes firmados criptográficamente a la red utilizando el software de billetera de criptomonedas Bitcoin . Estos mensajes son transacciones propuestas, cambios que se deben realizar en el libro mayor. Cada nodo tiene una copia del historial completo de transacciones del libro mayor. Si una transacción viola las reglas del protocolo Bitcoin, se ignora, ya que las transacciones solo ocurren cuando toda la red llega a un consenso de que deben realizarse. Este "consenso de red completo" se logra cuando cada nodo de la red verifica los resultados de una operación de prueba de trabajo llamada minería . La minería empaqueta grupos de transacciones en bloques y produce un código hash que sigue las reglas del protocolo Bitcoin. Crear este hash requiere energía costosa , pero un nodo de la red puede verificar que el hash sea válido utilizando muy poca energía. Si un minero propone un bloque a la red y su hash es válido, el bloque y sus cambios en el libro mayor se agregan a la cadena de bloques y la red pasa a las transacciones aún no procesadas. En caso de que haya una disputa, se considera que la cadena más larga es la correcta. Se crea un nuevo bloque cada 10 minutos, en promedio.
Los cambios en el protocolo de Bitcoin requieren el consenso de los participantes de la red. El protocolo de Bitcoin ha inspirado la creación de numerosas otras monedas digitales y tecnologías basadas en blockchain, lo que lo convierte en una tecnología fundamental en el campo de las criptomonedas .
La tecnología blockchain es un libro de contabilidad digital descentralizado y seguro que registra transacciones en una red de computadoras. Garantiza la transparencia, la inmutabilidad y la resistencia a la manipulación, lo que dificulta la manipulación de datos. La tecnología blockchain es la base de las criptomonedas como el bitcoin y tiene aplicaciones más allá de las finanzas, como la gestión de la cadena de suministro y los contratos inteligentes. [1]
La red requiere una estructura mínima para compartir transacciones. Una red descentralizada ad hoc de voluntarios es suficiente. Los mensajes se transmiten según el mejor esfuerzo posible y los nodos pueden abandonar y volver a unirse a la red a voluntad. Al reconectarse, un nodo descarga y verifica nuevos bloques de otros nodos para completar su copia local de la cadena de bloques. [2] [3]
Bitcoin utiliza un sistema de prueba de trabajo o prueba de transacción para formar un servidor de marca de tiempo distribuido como una red peer-to-peer . [3] Este trabajo a menudo se denomina minería de bitcoins . Durante la minería, prácticamente toda la potencia de cálculo de la red bitcoin se utiliza para resolver tareas criptográficas, lo que es una prueba de trabajo. Su propósito es asegurar que la generación de bloques válidos implique una cierta cantidad de esfuerzo para que la modificación posterior de la cadena de bloques, como en el escenario del ataque del 51%, pueda prácticamente descartarse. Debido a la dificultad, los mineros forman " pools de minería " para obtener pagos a pesar de estos altos requisitos de potencia, costosas implementaciones de hardware y hardware bajo control. Como resultado de la prohibición china de la minería de bitcoins en 2021, Estados Unidos posee actualmente la mayor parte de los pools de minería de bitcoins. [4] [5]
La principal innovación de Satoshi Nakamoto fue exigir una prueba de trabajo para aceptar un nuevo bloque en la cadena de bloques . El proceso de minería implica identificar un bloque que, cuando se aplica el hash dos veces con SHA-256 , produce un número menor que el objetivo de dificultad establecido. Si bien el trabajo promedio requerido aumenta en proporción inversa al objetivo de dificultad, siempre se puede verificar un hash ejecutando una sola ronda de SHA-256 doble.
En la red de marcas de tiempo de Bitcoin, una prueba de trabajo válida se encuentra incrementando un nonce hasta que se encuentra un valor que le da al hash del bloque la cantidad requerida de bits cero iniciales. Una vez que el hash ha producido un resultado válido, el bloque no se puede cambiar sin rehacer el trabajo. Como los bloques posteriores se encadenan después de él, el trabajo para cambiar el bloque incluiría rehacer el trabajo para cada bloque posterior. Si hay una desviación en el consenso, puede ocurrir una bifurcación de la cadena de bloques .
El consenso mayoritario en Bitcoin está representado por la cadena más larga, cuya producción requirió la mayor cantidad de esfuerzo. Si la mayoría de la potencia computacional está controlada por nodos honestos, la cadena honesta crecerá más rápido y superará a cualquier cadena competidora. Para modificar un bloque anterior, un atacante tendría que rehacer la prueba de trabajo de ese bloque y todos los bloques posteriores y luego superar el trabajo de los nodos honestos. La probabilidad de que un atacante más lento se ponga al día disminuye exponencialmente a medida que se agregan bloques posteriores. [3]
Para compensar el aumento de la velocidad del hardware y el interés variable en la ejecución de nodos a lo largo del tiempo, la dificultad de encontrar un hash válido se ajusta aproximadamente cada dos semanas. Si los bloques se generan demasiado rápido, la dificultad aumenta y se requieren más hashes para crear un bloque y generar nuevos bitcoins. [3]
La minería de bitcoins es una actividad competitiva. Se ha observado una " carrera armamentista " a través de las diversas tecnologías de hash que se han utilizado para minar bitcoins: unidades centrales de procesamiento básicas (CPU), unidades de procesamiento gráfico de alta gama (GPU), matrices de puertas programables en campo (FPGA) y circuitos integrados específicos de la aplicación (ASIC), todas ellas utilizadas, reduciendo cada una de ellas la rentabilidad de la tecnología menos especializada. Los ASIC específicos para bitcoins son ahora el método principal de minería de bitcoins y han superado la velocidad de la GPU hasta 300 veces. La dificultad del proceso de minería se ajusta periódicamente a la potencia de minería activa en la red. A medida que los bitcoins se han vuelto más difíciles de minar, las empresas de fabricación de hardware informático han visto un aumento en las ventas de productos ASIC de alta gama. [8]
La potencia de procesamiento suele agruparse o " agruparse " para reducir la variación en los ingresos de los mineros. Las plataformas de minería individuales a menudo tienen que esperar largos períodos para confirmar un bloque de transacciones y recibir el pago. En un pool, todos los mineros participantes reciben un pago cada vez que un servidor participante resuelve un bloque. Este pago depende de la cantidad de trabajo que cada minero individual contribuyó para ayudar a encontrar ese bloque y del sistema de pago utilizado por el pool. [9]
Por convención, la primera transacción en un bloque es una transacción especial que produce nuevos bitcoins propiedad del creador del bloque. Este es el incentivo para que los nodos apoyen la red. [2] Proporciona una forma de poner en circulación nuevos bitcoins. La recompensa por minar se reduce a la mitad cada 210.000 bloques. Comenzó en 50 bitcoins, bajó a 25 a finales de 2012 y a 6,25 bitcoins en 2020. La reducción a la mitad más reciente, que se produjo el 20 de abril de 2024 a las 12:09 am UTC (con el bloque número 840.000), redujo la recompensa del bloque a 3,125 bitcoins. [14] [15] Se espera que la próxima reducción a la mitad se produzca en 2028, cuando la recompensa del bloque caerá a 1,625 bitcoins. [16] [17] Este proceso de reducción a la mitad está programado para continuar un máximo de 64 veces antes de que cese la creación de nuevas monedas. [18]
Cada minero puede elegir qué transacciones se incluyen o se eximen de un bloque. [19] Una mayor cantidad de transacciones en un bloque no equivale a una mayor potencia computacional requerida para resolver ese bloque. [19]
Como se señala en el informe técnico de Nakamoto, es posible verificar los pagos de bitcoin sin ejecutar un nodo de red completo (verificación de pago simplificada, SPV). Un usuario solo necesita una copia de los encabezados de bloque de la cadena más larga, que están disponibles consultando los nodos de la red hasta que sea evidente que se ha obtenido la cadena más larga; luego, obtener la rama del árbol de Merkle que vincula la transacción a su bloque. Vincular la transacción a un lugar en la cadena demuestra que un nodo de red la ha aceptado, y los bloques agregados después de ella establecen aún más la confirmación. [2]
Se han considerado varios ataques potenciales a la red Bitcoin y su uso como sistema de pago, reales o teóricos. El protocolo Bitcoin incluye varias características que lo protegen contra algunos de esos ataques, como el gasto no autorizado, el doble gasto, la falsificación de bitcoins y la manipulación de la cadena de bloques. Otros ataques, como el robo de claves privadas, requieren el debido cuidado por parte de los usuarios. [20] [21]
El gasto no autorizado se ve mitigado por la implementación de la criptografía de clave pública-privada en Bitcoin. Por ejemplo, cuando Alice le envía un bitcoin a Bob, Bob se convierte en el nuevo propietario del bitcoin. Eve, al observar la transacción, podría querer gastar el bitcoin que Bob acaba de recibir, pero no puede firmar la transacción sin conocer la clave privada de Bob. [21]
Un problema específico que un sistema de pago por Internet debe resolver es el doble gasto , por el cual un usuario paga la misma moneda a dos o más destinatarios diferentes. Un ejemplo de este problema sería si Eve le enviara un bitcoin a Alice y luego le enviara el mismo bitcoin a Bob. La red de bitcoins evita el doble gasto registrando todas las transferencias de bitcoins en un libro de contabilidad (la cadena de bloques) que es visible para todos los usuarios y garantizando que todos los bitcoins transferidos no hayan sido gastados previamente. [21] : 4
Si Eve ofrece pagarle a Alice un bitcoin a cambio de bienes y firma una transacción correspondiente, aún es posible que ella también cree una transacción diferente al mismo tiempo enviando el mismo bitcoin a Bob. Según las reglas, la red acepta solo una de las transacciones. Esto se llama ataque de carrera , ya que existe una carrera entre los destinatarios para aceptar la transacción primero. Alice puede reducir el riesgo de ataque de carrera estipulando que no entregará los bienes hasta que el pago de Eve a Alice aparezca en la cadena de bloques. [22]
Un ataque de carrera variante (que se ha denominado ataque Finney en referencia a Hal Finney) requiere la participación de un minero. En lugar de enviar ambas solicitudes de pago (para pagar a Bob y Alice con las mismas monedas) a la red, Eve solo envía la solicitud de pago de Alice a la red, mientras que el cómplice intenta extraer un bloque que incluye el pago a Bob en lugar de Alice. Existe una probabilidad positiva de que el minero deshonesto tenga éxito antes que la red, en cuyo caso el pago a Alice será rechazado. Al igual que con el ataque de carrera simple, Alice puede reducir el riesgo de un ataque Finney esperando a que el pago se incluya en la cadena de bloques. [23]
Cada bloque que se añade a la cadena de bloques, empezando por el bloque que contiene una transacción determinada, se denomina confirmación de esa transacción. Lo ideal sería que los comerciantes y servicios que reciben pagos en bitcoines esperasen a que se distribuyesen al menos unas cuantas confirmaciones por la red antes de asumir que el pago se ha realizado. Cuantas más confirmaciones espere el comerciante, más difícil será para un atacante revertir con éxito la transacción, a menos que el atacante controle más de la mitad de la potencia total de la red, en cuyo caso se denomina ataque del 51% o ataque mayoritario. [24] Aunque es más difícil para los atacantes de menor tamaño, puede haber incentivos financieros que hagan que los ataques de modificación del historial sean rentables. [25]
El problema de escalabilidad de Bitcoin se refiere a la capacidad limitada de la red Bitcoin para manejar grandes cantidades de datos de transacciones en su plataforma en un corto período de tiempo. [26] Está relacionado con el hecho de que los registros (conocidos como bloques ) en la cadena de bloques de Bitcoin son limitados en tamaño y frecuencia. [27]
Los bloques de Bitcoin contienen las transacciones en la red de Bitcoin. [28] : cap. 2 La capacidad de procesamiento de transacciones en cadena de la red de Bitcoin está limitada por el tiempo promedio de creación de bloques de 10 minutos y el límite de tamaño de bloque original de 1 megabyte. Estos en conjunto restringen el rendimiento de la red . La capacidad máxima de procesamiento de transacciones estimada utilizando un tamaño de transacción promedio o mediano es de entre 3,3 y 7 transacciones por segundo. [27] Hay varias soluciones propuestas y activadas para abordar este problema.La desanonimización es una estrategia de minería de datos en la que los datos anónimos se cruzan con otras fuentes de datos para volver a identificar la fuente de datos anónimos. Junto con el análisis de gráficos de transacciones, que puede revelar conexiones entre direcciones de bitcoin (seudónimos), [20] [29] existe un posible ataque [30] que vincula el seudónimo de un usuario a su dirección IP . Si el par está usando Tor , el ataque incluye un método para separar al par de la red Tor, lo que lo obliga a usar su dirección IP real para cualquier transacción posterior. El costo del ataque a la red completa de bitcoin se estimó en menos de 1500 € por mes, a partir de 2014. [30]
El rendimiento máximo es la tasa máxima a la que la cadena de bloques puede confirmar transacciones. Hoy en día, el rendimiento máximo de Bitcoin es de 3,3 a 7 transacciones por segundo [1]. Este número está limitado por el tamaño máximo de bloque y el tiempo entre bloques.
{{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace )