{"id":1248,"date":"2021-05-25T16:45:57","date_gmt":"2021-05-25T16:45:57","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=1248"},"modified":"2021-05-25T20:28:36","modified_gmt":"2021-05-25T20:28:36","slug":"la-ecuacion-hash-pow-ip-p2p-blockchain","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/la-ecuacion-hash-pow-ip-p2p-blockchain\/","title":{"rendered":"La ecuaci\u00f3n: Hash + PoW + IP + P2P + Blockchain"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cuando los humanos navegamos por internet recordamos m\u00e1s facilmente una direcci\u00f3n web (www.MiNombreDeDominio.es) , que una cadena de n\u00fameros separada por puntos (IPv4: 193.146.1.101) o n\u00fameros hexadecimales (IPv6: 2001:720:438:402:0:0:0:90). De este modo b\u00e1sico funciona el sistema de nombres de dominio (DNS) ; nuestra propia \u00abagenda de tel\u00e9fono\u00bb distribuida y jer\u00e1rquica en todo el mundo que traduce un nombre m\u00e1s inteligible en <a rel=\"noreferrer noopener\" href=\"https:\/\/www.iana.org\/numbers\" data-type=\"URL\" data-id=\"https:\/\/www.iana.org\/numbers\" target=\"_blank\">direcciones IP asignadas<\/a> a un ordenador, del mismo modo que cuando llamamos a un contacto \u00abJavier\u00bb nuestro tel\u00e9fono marca su n\u00famero. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Continuando con esta analog\u00eda, en 1953 si necesitabamos buscar a que persona correspond\u00eda un n\u00famero de tel\u00e9fono de 10 d\u00edgitos, un ordenador podr\u00eda simplemente realizar lecturas hasta encontrar la coincidencia. Si la lista es de millones de n\u00fameros nos podr\u00eda llevar su tiempo dependiendo de la posici\u00f3n en la que se encontrara&#8230; por suerte Hans Peter Luhn, entre todas sus patentes e inventos, ide\u00f3 para IBM un sistema para transformar un elemento complejo en otro m\u00e1s sencillo.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, el tel\u00e9fono 948 012 012, agrupado en pares 09 48 01 20 12, sumados entre si 9 12 1 2 3, descartando m\u00e1s de dos d\u00edgitos: 92123 reducimos la complejidad y obtenemos para unos datos de entrada un resultado \u00fanico por el que indexarlo. Acaba de aparecer lo que hoy podemos conocer como funci\u00f3n <strong>Hash<\/strong>, cuya traducci\u00f3n del ingl\u00e9s ser\u00eda picar y mezclar, picadillo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo mismo suced\u00eda con las b\u00fasquedas de nombres de dominios, hasta 1983 con un peque\u00f1o fichero de texto (hosts) se conten\u00edan todas las relaciones entre estos nombres y su IP, lo que no fue predecible en aquel momento ser\u00eda la expansi\u00f3n y uso posterior que dejar\u00edan las 4.294.967.296 posibles direcciones agotadas. Por lo que hubo que distribuir en miles de servidores DNS de manera jeraquica. Como curiosidad, para llegar a esta versi\u00f3n 4 que seguimos utilizando a d\u00eda de hoy, si existieron versiones previas TCP v1, TCP v2, TCP v3 \/ IP v3 incluso IPv5 que no trascendi\u00f3 m\u00e1s all\u00e1 del \u00e1mbito experimental.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Llegamos a 1993 con la proliferaci\u00f3n de servicios de email, aparece el denominado \u00abalgoritmo de prueba de trabajo\u00bb (<a rel=\"noreferrer noopener\" href=\"Proof-Of-Work system\" target=\"_blank\"><strong>PoW<\/strong>: Proof-Of-Work system<\/a>) como posible mecanismo para intentar dificultar el correo no deseado (SPAM) o los ataques de denegaci\u00f3n de servicio distribuidos (DDoS). Para ello se requiere realizar alg\u00fan tipo de trabajo con cierto coste, moderadamente d\u00edficil pero factible de realizar por quien envia la petici\u00f3n (cliente) y muy f\u00e1cil de verificar por quien la recibe (servidor), totalmente asim\u00e9trico. Por ejemplo, podr\u00eda realizar c\u00e1lculos matem\u00e1ticos (c\u00e1lculo de ra\u00edces cuadradas, buscar colisi\u00f3n de hash parcial&#8230;) a\u00f1adiendo el resultado en la cabecera del email (Hashcash). Si alguien ha perdido tiempo y esfuerzo en hacer esto, probablemente no sea SPAM&#8230; o por lo menos esa era la idea inicial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En 1996 surge otra tecnolog\u00eda denominada red entre iguales (red de pares, peer-to-peer, <strong>P2P<\/strong>) donde todos los nodos que la componen actuan como iguales entre s\u00ed, obtienen datos y sirven datos entre ellos (cliente-servidor). Basado en este concepto en 1999 se funda Napster y a\u00f1os posteriores seguir\u00e1n apareciendo otras aplicaciones y redes que lo utilizan: eMule, BitTorrent, Kad, eDonkey, Gnutella, Ares&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si bien este tipo de redes se ha relacionado con contenido al margen de la legalidad en muchas ocasiones, tamb\u00eden se utiliza para llamadas de VozIP en Skype o la distribuci\u00f3n de las actualizaciones de Windows 10 por ejemplo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos sumando conceptos y tecnolog\u00edas, <a rel=\"noreferrer noopener\" href=\"https:\/\/web.archive.org\/web\/20161213081707\/http:\/\/article.gmane.org\/gmane.comp.encryption.general\/12588\/\" data-type=\"URL\" data-id=\"https:\/\/web.archive.org\/web\/20161213081707\/http:\/\/article.gmane.org\/gmane.comp.encryption.general\/12588\/\" target=\"_blank\">en 2008 apareci\u00f3 la \u00abcadena de bloque\u00bb<\/a> (<strong>Blockchain<\/strong>) como un nuevo tipo de almacenamiento de datos distribuido. Los bloque de datos se encadenan entre s\u00ed, conforme se a\u00f1aden nuevos datos se integran en un bloque nuevo, cuando se llena se encadena con el anterior en orden cronol\u00f3gico. Todos los bloques contiene su c\u00f3digo propio hash, el hash del bloque anterior y una marca de tiempo. Se puede almacenar cualquier tipo de dato, pero el uso inicial m\u00e1s com\u00fan ha sido para almacenar un libro mayor de transacciones de donde nace la moneda virtual (<a rel=\"noreferrer noopener\" href=\"https:\/\/bitcoin.org\/bitcoin.pdf\" data-type=\"URL\" data-id=\"https:\/\/bitcoin.org\/bitcoin.pdf\" target=\"_blank\">Bitcoin<\/a>)<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"214\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/hash-1024x214.png\" alt=\"\" class=\"wp-image-1253\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/hash-1024x214.png 1024w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/hash-300x63.png 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/hash-768x160.png 768w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/hash.png 1165w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Al registrarse una transacci\u00f3n\/movimiento, la red blockchain debe verificar su autenticidad, donde miles de ordenadores se apresuran a confirmar que los detalles de la compra son correctos (PoW, aqu\u00ed entra en juego la denominada miner\u00eda), si todo es correcto se a\u00f1ade el nuevo bloque, se recompensa a quien obtuvo antes la comprobaci\u00f3n y se comparte al resto de nodos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si hasta este momento era posible guardar informaci\u00f3n en grandes bases de datos, incluso pod\u00edan estar distribuidas en miles de servidores, siempre estaban bajo el control de una misma empresa u organismo. La descentralizaci\u00f3n de la informaci\u00f3n, en el casto de esta criptomoneda, se realiza distribuyendo en miles de nodos\/ordenadores en ubicaciones geogr\u00e1ficas dispares; esto no implica que la tecnolog\u00eda blockchain no pueda hacerse en redes centralizadas o de la misma propiedad pero de este modo implica una transparencia inimaginable hasta la fecha.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si un usuario intenta manipular la informaci\u00f3n contenida en uno de los bloques, el resto de nodos que apuntan a la misma informaci\u00f3n marcar\u00edan la discrepancia (hash modificado) con el resto, para aceptar el cambio la mayor\u00eda de los nodos  (el 51%) necesitar\u00edan aceptar  y procesar los cambios. <em>Democracia digital<\/em> podr\u00edamos llamarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dentro de esta transparencia <a rel=\"noreferrer noopener\" href=\"https:\/\/www.blockchain.com\/explorer?utm_campaign=dcomnav_explorer\" data-type=\"URL\" data-id=\"https:\/\/www.blockchain.com\/explorer?utm_campaign=dcomnav_explorer\" target=\"_blank\">puede verse incluso las transacciones que ocurren en tiempo real<\/a>, por tanto podr\u00edan rastrearse los movimientos de Bitcoin pero no podr\u00edamos identificar, dado que son confidenciales, quien est\u00e1 detr\u00e1s de la cuenta final.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso la suma de tecnolog\u00edas crea una nueva: Hash + PoW + IP + P2P + Blockchain = Bitcoin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De este modo, podemos registrar y distribuir informaci\u00f3n no editable una vez emitida, guardando un orden cronol\u00f3gico de cambios hasta su \u00faltima versi\u00f3n; puede aplicarse a sistemas de votaciones, trazabilidad alimentaria, cadenas de suministros, registros m\u00e9dicos, contratos, escrituras de viviendas, registros p\u00fablicos&#8230; o \u00bfpor qu\u00e9 no? tambi\u00e9n para los <a rel=\"noreferrer noopener\" href=\"https:\/\/handshake.org\/\" data-type=\"URL\" data-id=\"https:\/\/handshake.org\/\" target=\"_blank\">servicios de resoluci\u00f3n de nombres<\/a> (DNS) con los que empezamos.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/ejemplo-1024x512.jpeg\" alt=\"\" class=\"wp-image-1258\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/ejemplo-1024x512.jpeg 1024w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/ejemplo-300x150.jpeg 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/ejemplo-768x384.jpeg 768w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/blockchain\/ejemplo.jpeg 1449w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cuando los humanos navegamos por internet recordamos m\u00e1s facilmente una direcci\u00f3n web (www.MiNombreDeDominio.es) , que una cadena de n\u00fameros separada por puntos (IPv4: 193.146.1.101) o n\u00fameros hexadecimales (IPv6: 2001:720:438:402:0:0:0:90). De este modo b\u00e1sico funciona el sistema de nombres de dominio (DNS) ; nuestra propia \u00abagenda de tel\u00e9fono\u00bb distribuida y jer\u00e1rquica en todo el mundo que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1255,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[772,763,764,620,767,774,770,766,553,769,771,765,768],"class_list":["post-1248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-distributed-ledger-technology","tag-dns","tag-dnscurve","tag-dnssec","tag-edns","tag-hash","tag-hashcash","tag-iana","tag-p2p","tag-pow","tag-satoshis","tag-soa","tag-utxo"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=1248"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1248\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/1255"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=1248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=1248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=1248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}