b'\n_START_ARTICLE_\nPrueba de trabajo (algoritmo de consenso distribuido)\n_START_PARAGRAPH_\nUn algoritmo de prueba de trabajo, tambi\xc3\xa9n conocido por las siglas POW (del ingl\xc3\xa9s Proof-Of-Work), es un protocolo de consenso distribuido para redes distribuidas.\xe2\x80\x8b Los sistemas que los usan, como Bitcoin,  son sistemas de prueba de trabajo\n_START_SECTION_\nMotivaci\xc3\xb3n e historia\n_START_PARAGRAPH_\nDavid Chaum introdujo en 1983 el concepto de dinero electr\xc3\xb3nico.\xe2\x80\x8b En su propuesta hab\xc3\xada un servidor central fiable que evitaba un posible doble gasto. Para evitar riesgos de privacidad de los individuos producidos por este servidor, y para asegurar la fungibilidad de la moneda, Chaum introduce una firma ciega para evitar enlazar las firmas del servidor central (la cual representa la moneda), a\xc3\xban manteniendo el servidor central para evitar el doble gasto. Este servidor central fue el punto d\xc3\xa9bil del sistema. Es posible distribuir este \xc3\xbanico punto de fallo reemplazando la firma del servidor central por una firma con umbral. Sin embargo, por temas de auditabilidad, es importante que los firmantes sean distintos y por tanto identificables. Esto todav\xc3\xada deja el sistema vulnerable a fallos ya que los firmantes (fijos e identificados) pueden caer, todos de golpe o uno a uno._NEWLINE_En 1997 apareci\xc3\xb3 Hashcash el primer sistema de prueba de trabajo. La idea fundamental en la que se basa es que los nodos no confiables que intervienen en un sistema deben aportar una prueba de su inter\xc3\xa9s en el sistema. Para ello tienen que demostrar que han dedicado cierta cantidad de recursos (prueba de trabajo). Adem\xc3\xa1s el coste de la verificaci\xc3\xb3n de dicha prueba tiene que ser reducida._NEWLINE_A partir de la idea aportada por Hashcash van apareciendo nuevos sistemas que intentan aprovechar el concepto de prueba de trabajo para aplicaciones m\xc3\xa1s generales. En 1998 aparece B-Money de Wei Dai y Bit Gold de Nick Szabo. En  2004 aparece Reusable Proof Of Work de Hall Finney. Estos sistemas, con sus puntos d\xc3\xa9biles, son las primeras aproximaciones a tener un sistema de prueba de trabajo que permitan el intercambio de valor (criptomonedas) y de su experiencia se aprovecha Bitcoin.\xe2\x80\x8b_NEWLINE_En 2009 Satoshi Nakamoto lanz\xc3\xb3 Bitcoin, la primera implementaci\xc3\xb3n ampliamente usada de un sistema de dinero electr\xc3\xb3nico peer-to-peer que no requiere tener confianza en los pares. En \xc3\xa9l se reemplaza la firma del servidor central con un mecanismo de firma consensuada, realizada por nodos no confiables a los que se llama mineros, basada en pruebas de trabajo donde los firmantes son incentivados para que act\xc3\xbaen cooperativamente y de forma honesta.   _NEWLINE_El sistema Bitcoin es el primer sistema de firma multipartita de adhesi\xc3\xb3n din\xc3\xa1mica o DMMS (del ingl\xc3\xa9s dynamic membership multi-party signature). La firma es realizada por un conjunto de firmantes no confiables, que no tiene tama\xc3\xb1o fijo y que no han solicitado ning\xc3\xban tipo de adhesi\xc3\xb3n. La fiabilidad de la firma se basa en la existencia de un grupo independiente de firmantes, cuantos m\xc3\xa1s mejor, dispuestos a vender sus recursos de CPU (realizan una prueba de trabajo) a cambio de una remuneraci\xc3\xb3n. Cuantos m\xc3\xa1s recursos de CPU tenga un firmante, m\xc3\xa1s contribuci\xc3\xb3n a la firma hace (se dice que la firma est\xc3\xa1 ponderada por el poder computacional). _NEWLINE_La remuneraci\xc3\xb3n a los firmantes hace que a priori est\xc3\xa9n dispuestos a tener un comportamiento honesto para conseguir el consenso. Como la contribuci\xc3\xb3n a la firma est\xc3\xa1 ponderada por el poder computacional, si un grupo de firmantes tiene alguna motivaci\xc3\xb3n para ser deshonestos, tiene que competir computacionalmente con el resto de firmantes que siguen siendo honestos. Por eso cuantos m\xc3\xa1s firmantes haya m\xc3\xa1s dif\xc3\xadcil ser\xc3\xa1 que un grupo deshonesto tenga cierto \xc3\xa9xito. Por esta raz\xc3\xb3n se dice que es una soluci\xc3\xb3n al Problema de los generales bizantinos.\n_START_SECTION_\nConsenso en Bitcoin\n_START_PARAGRAPH_\nEl protocolo Bitcoin obliga a los mineros a trabajar (prueba de trabajo) reintentando in\xc3\xbatilmente una y otra vez hasta conseguir un n\xc3\xbamero arbitrario para construir un bloque. Bitcoin podr\xc3\xada operar perfectamente sin prueba de trabajo, siempre que todos los participantes fueran perfectamente honestos y altruistas. La prueba de trabajo es un m\xc3\xa9todo para establecer un consenso entre un n\xc3\xbamero de personas interesadas, ninguna de las cuales est\xc3\xa1 subordinada a otra, y existen incentivos considerables para resistirse a dicho consenso._NEWLINE_Antes de que un bloque nuevo sea generado, puede que haya muchos pagos circulando por la red sin existir respuesta objetiva acerca de qu\xc3\xa9 pagos deber\xc3\xadan ser validados. Algunos podr\xc3\xadan ser inv\xc3\xa1lidos, as\xc3\xad que todos deben ser comprobados. Algunos pueden no incluir una tasa de transacci\xc3\xb3n, as\xc3\xad que puede decidir incluir la transacci\xc3\xb3n o ignorarla. Finalmente, podr\xc3\xada haber un conjunto de 2 o m\xc3\xa1s pagos que no pueden ser v\xc3\xa1lidos simult\xc3\xa1neamente. Por ejemplo, si alguien intenta gastar los mismos bitcoins en dos transacciones que a\xc3\xban no han sido confirmadas, habr\xc3\xada que tomar una decisi\xc3\xb3n sobre qu\xc3\xa9 pago permitir._NEWLINE_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\xc3\xa1s correcto. Tampoco habr\xc3\xa1 necesariamente un acuerdo acerca de qu\xc3\xa9 resultado es preferible, porque los distintos bloques posibles benefician a distintas personas. Primeramente, est\xc3\xa1 el beneficio que surge de generar un bloque en forma de nuevos bitcoins. Esto es necesario porque, si no existiera, habr\xc3\xada 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._NEWLINE_Adem\xc3\xa1s puede haber comportamientos malintencionados. Por ejemplo un minero podr\xc3\xada negarse a validar las transacciones procedentes de su enemigo, o podr\xc3\xada mostrarse m\xc3\xa1s o menos altruista con las tarifas por transacci\xc3\xb3n que aceptar\xc3\xa1. Podr\xc3\xada incluso proponerse estafar a alguien mediante el doble gasto: \xc3\xa9l mandar\xc3\xada un pago a la v\xc3\xadctima a cambio de un bien determinado, pero s\xc3\xb3lo confirmar\xc3\xada otro pago que hace a una cartera de su propiedad y que est\xc3\xa1 en conflicto con el primero; esto invalidar\xc3\xada el primer pago, y acabar\xc3\xada qued\xc3\xa1ndose con un bien por el que no ha pagado._NEWLINE_Para evitar que se hagan manipulaciones interesadas, Bitcoin a\xc3\xb1ade requerimientos extra al protocolo que incrementan enormemente el coste de la deserci\xc3\xb3n. Los bloques se generan aleatoriamente mediante un c\xc3\xa1lculo muy dif\xc3\xadcil, que requiere muchos recursos computacionales, y s\xc3\xb3lo se propone un \xc3\xbanico bloque a la vez. Es anunciado y verificado por la mayor\xc3\xada de otros nodos (lo cual es f\xc3\xa1cil verificando los hashes). Cuando un bloque ha sido propuesto, los mineros tienen la opci\xc3\xb3n de continuar buscando un bloque alternativo que les sea m\xc3\xa1s favorable, o aceptar la propuesta (dar por verificado) y luego pasar a buscar el siguiente. Alguien que acepta el \xc3\xbaltimo bloque propuesto entiende que est\xc3\xa1 siguiendo un proceso de consenso natural y que, si tiene la suerte de generar el siguiente bloque, ser\xc3\xa1 probablemente aceptado por las mismas razones que \xc3\xa9l acept\xc3\xb3 el anterior. Por el otro lado, la opci\xc3\xb3n de esperar e intentar encontrar un bloque m\xc3\xa1s favorable para \xc3\xa9l es muy arriesgada, porque entonces tendr\xc3\xada que convencer a un n\xc3\xbamero suficiente de mineros de que podr\xc3\xa1 establecer un nuevo consenso, para que le sigan. _NEWLINE_La regla general es que el primer bloque minado nunca es ego\xc3\xadsta, porque nadie puede planear ser el primero en resolverlo. Uno s\xc3\xb3lo puede ser el primero con suerte. Cualquiera que se desmarque de ese bloque levantar\xc3\xa1 sospechas, porque tiene que rechazar una alternativa perfectamente v\xc3\xa1lida y supuestamente altruista, y convencer a los dem\xc3\xa1s de que hagan lo mismo; algo nada f\xc3\xa1cil de hacer._NEWLINE_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\xc3\xa1s dif\xc3\xadcil ser\xc3\xa1 (m\xc3\xa1s poder computacional requerir\xc3\xa1) cambiar la cadena de consenso.En esto se basa el protocolo de consenso de bitcoin, el cual puede manejar fallos bizantinos._NEWLINE_Si queremos cambiar un bloque de la cadena, cada bloque que viene despu\xc3\xa9s de ese bloque tiene que ser rehasheado y rehacer el trabajo. Esto hace que sea esencialmente imposible modificar un bloque.'