{"id":5585,"date":"2023-04-09T06:32:48","date_gmt":"2023-04-09T06:32:48","guid":{"rendered":"https:\/\/www.bitnovo.com\/blog\/?p=5585"},"modified":"2022-05-09T09:58:32","modified_gmt":"2022-05-09T09:58:32","slug":"actualizacion-bip-118-anyprevout","status":"publish","type":"post","link":"https:\/\/www.bitnovo.com\/blog\/actualizacion-bip-118-anyprevout","title":{"rendered":"Actualizaci\u00f3n BIP 118 (ANYPREVOUT)"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #ffffff;color:#ffffff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #ffffff;color:#ffffff\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.bitnovo.com\/blog\/actualizacion-bip-118-anyprevout\/#sighash_y_transacciones\" >Sighash y transacciones<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.bitnovo.com\/blog\/actualizacion-bip-118-anyprevout\/#que_es_bip_118_anyprevout\" >Qu\u00e9 es BIP 118 (ANYPREVOUT)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.bitnovo.com\/blog\/actualizacion-bip-118-anyprevout\/#eltoo_y_lightning_network\" >Eltoo y Lightning Network<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.bitnovo.com\/blog\/actualizacion-bip-118-anyprevout\/#otros_usos\" >Otros usos<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p><strong>Bitcoin<\/strong>\u00a0es un mundo fascinante rodeado de personas que constantemente buscan formas de\u00a0<strong>mejorarlo<\/strong>. Las mejoras pueden ser en el \u00e1mbito de la divulgaci\u00f3n (como hago yo mismo) o en el \u00e1mbito tecnol\u00f3gico.<\/p>\n<p>Los cambios en el protocolo son un tema muy\u00a0<strong>complicado<\/strong>\u00a0y pueden dar lugar a discusiones acaloradas. Ejemplo de ello fue la que tuvo lugar entre 2016 y 2017 con la propuesta de SegWit2x (de esto hablaremos otro d\u00eda). Si de algo podemos estar seguros es de que Bitcoin es muy\u00a0<strong>dif\u00edcil de cambiar<\/strong>, y esta posiblemente sea su mayor fortaleza.<\/p>\n<p>Por eso los cambios en Bitcoin se\u00a0<strong>revisan a fondo<\/strong>\u00a0y se someten a\u00a0<strong>discusi\u00f3n durante meses<\/strong>. Un importante paso para una propuesta es el\u00a0<strong>registro como BIP<\/strong>\u00a0(Bitcoin Improvement Proposal). Hoy vamos a hablar de una de estas propuestas, precisamente sobre qu\u00e9 es\u00a0<strong>BIP 118<\/strong>.<\/p>\n<p>Pero antes entendamos lo que es un \u00ab<strong>sighash flag<\/strong>\u00bb y c\u00f3mo funciona b\u00e1sicamente una transacci\u00f3n.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"sighash_y_transacciones\"><\/span><strong>Sighash y transacciones<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Las\u00a0<strong>transacciones en Bitcoin<\/strong>\u00a0consisten en\u00a0<strong>desbloquear bitcoins<\/strong>\u00a0de una direcci\u00f3n (demostrando que eres el due\u00f1o con una firma digital) y\u00a0<strong>bloquearlos en otra<\/strong>\u00a0direcci\u00f3n.<\/p>\n<p>Por ejemplo puedes tener dos direcciones con bitcoin (pertenecientes de dos transacciones previas en las que te los enviaron). Para gastar esos bitcoins puedes hacer una transacci\u00f3n con dos firmas digitales para cada direcci\u00f3n y enviarlos a donde quieras.<\/p>\n<p>El \u00ab<strong>sighash flag<\/strong>\u00bb consiste en un identificador que nos indica\u00a0<strong>qu\u00e9 datos hay que firmar<\/strong>\u00a0para desbloquear los bitcoins (siendo el SigHash la informaci\u00f3n a firmar).<\/p>\n<div id=\"image_495639692\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img fetchpriority=\"high\" decoding=\"async\" class=\"attachment-large size-large lazyloaded\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT1.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT1.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT1-300x205.jpg 300w\" alt=\"Actualizaci\u00f3n-BIP-118-(ANYPREVOUT)\" width=\"768\" height=\"526\" data-srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT1.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT1-300x205.jpg 300w\" data-src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT1.jpg\" data-sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"que_es_bip_118_anyprevout\"><\/span><strong>Qu\u00e9 es BIP 118 (ANYPREVOUT)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El BIP 118 fue escrito en 2017 y por entonces era conocido como\u00a0<strong>SIGHASH_NOINPUT<\/strong>. Esta propuesta la hicieron inicialmente los escritores del\u00a0<strong>paper de<\/strong>\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-la-lightning-network\/\"><strong>Lightning Network<\/strong><\/a>\u00a0(Joseph Poon y Thaddeus Dryja) para solventar un problema conocido como \u00ab<strong>maleabilidad de las transacciones<\/strong>\u00bb m\u00e1s tarde solventado por\u00a0<strong><a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-segwit\/\">SegWit<\/a><\/strong>.<\/p>\n<p>Lightning Network es un protocolo que permite transferir bitcoin de forma casi\u00a0<strong>instant\u00e1nea<\/strong>\u00a0y\u00a0<strong>sin apenas comisi\u00f3n<\/strong>. No en vano es la mayor promesa para escalar Bitcoin a miles de transacciones por segundo. Y pese a su lento crecimiento, ha avanzado mucho desde su\u00a0<strong>inicio te\u00f3rico en 2015<\/strong>.<\/p>\n<p>No obstante, con su avance, los desarrolladores se dieron cuenta de que a\u00fan iba a ser muy positivo SIGHASH_NOINPUT. Recientemente, tras el desarrollo de la\u00a0<strong>nueva actualizaci\u00f3n de Bitcoin<\/strong>,\u00a0<strong><a href=\"https:\/\/www.bitnovo.com\/blog\/todo-sobre-taproot\/\">Taproot<\/a><\/strong>, se ha decidido cambiar el nombre a SIGHASH_ANYPREVOUT y adecuarlo para su integraci\u00f3n con las direcciones de Taproot.<\/p>\n<p>Lo que, en resumidas cuentas, permite ANYPREVOUT es\u00a0<strong>no firmar<\/strong>\u00a0la parte de informaci\u00f3n que se refiere a la\u00a0<strong>anterior transacci\u00f3n<\/strong>. Una transacci\u00f3n con este tipo de sighash flag no est\u00e1 ligada a transacciones pasadas y puede gastar\u00a0<strong>cualquier bitcoin<\/strong>\u00a0de direcciones con la\u00a0<strong>misma clave p\u00fablica<\/strong>\u00a0(o condiciones para gastar).<\/p>\n<p>Vale, seguramente os hay\u00e1is quedado igual, pero vamos a explicar las implicaciones de esto.<\/p>\n<div id=\"image_1823479976\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img decoding=\"async\" class=\"attachment-large size-large lazyloaded\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT2.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT2.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT2-300x205.jpg 300w\" alt=\"Actualizaci\u00f3n-BIP-118-(ANYPREVOUT)\" width=\"768\" height=\"526\" data-srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT2.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT2-300x205.jpg 300w\" data-src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/07\/Actualizacion-BIP-118-ANYPREVOUT2.jpg\" data-sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"eltoo_y_lightning_network\"><\/span>Eltoo y Lightning Network<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>La mayor implicaci\u00f3n, y el motivo por el que esta propuesta es muy importante, es porque permite un protocolo llamado\u00a0<strong>Eltoo<\/strong>\u00a0(como si ley\u00e9ramos \u00abL2\u00bb en ingl\u00e9s). Eltoo\u00a0<strong>simplifica y mejora<\/strong>\u00a0enormemente\u00a0<strong>Lightning Network<\/strong>.<\/p>\n<p>En Lightning se usa una construcci\u00f3n llamada\u00a0<strong>canales de pago<\/strong>\u00a0donde dos usuarios pueden transferir bitcoin off-chain, es decir, sin que sea una transacci\u00f3n en la blockchain y por lo tanto de forma\u00a0<strong>privada, instant\u00e1nea y sin comisi\u00f3n<\/strong>.<\/p>\n<p>En un canal de pago los\u00a0<strong>balances de dos usuarios se actualizan<\/strong>\u00a0con cada transacci\u00f3n\u00a0<strong>off-chain<\/strong>. Por ejemplo Alicia tiene 1 BTC y Bob tiene 0. Alicia puede hacer una transacci\u00f3n a Bob actualizando el balance para que ella se quede con 0,5 y Bob con 0,5 (por ejemplo, esto es una transacci\u00f3n de 0,5).<\/p>\n<p>La\u00a0<strong>blockchain<\/strong>\u00a0de Bitcoin act\u00faa como\u00a0<strong>juez<\/strong>\u00a0en caso de disputa en este protocolo. Si Alicia pone en la blockchain su balance de 1 BTC (que es incorrecto porque en realidad tiene 0,5 despu\u00e9s de la transacci\u00f3n), Bob podr\u00e1 demostrar que Alicia ha hecho trampa y se quedar\u00e1 con todo su dinero como penalizaci\u00f3n. Pero esto hace que los usuarios de Lightning tengan que\u00a0<strong>acumular<\/strong>\u00a0m\u00e1s y m\u00e1s\u00a0<strong>informaci\u00f3n para<\/strong>\u00a0poder solventar estas\u00a0<strong>disputas<\/strong>, adem\u00e1s de ser complejo.<\/p>\n<p>Con Eltoo toda esta\u00a0<strong>complejidad desaparece<\/strong>\u00a0porque lo \u00fanico que hay que mantener es el\u00a0<strong>\u00faltimo balance<\/strong>. No hay que mantener informaci\u00f3n para cada caso como ocurre ahora mismo. S\u00f3lo basta mantener las\u00a0<strong>\u00faltimas 2 transacciones<\/strong>\u00a0(una de ellas con ANYPREVOUT). Si alguien hace trampa puedes usar la transacci\u00f3n ANYPREVOUT para demostrar que lo hizo y gastar esos bitcoins de la forma correcta.<\/p>\n<p>De esta forma la informaci\u00f3n que hay que almacenar en\u00a0<strong>copias de seguridad<\/strong>\u00a0es m\u00ednima, el protocolo es m\u00e1s sencillo, se puede\u00a0<strong>innovar en Lightning<\/strong>\u00a0m\u00e1s f\u00e1cilmente y se\u00a0<strong>reduce el riesgo de perder<\/strong>\u00a0todo tu dinero accidentalmente por culpa de la penalizaci\u00f3n que existe ahora.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"otros_usos\"><\/span><strong>Otros usos<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Otros usos que puede tener este tipo de sighash flag son los \u00ab<strong>covenants<\/strong>\u00bb que permiten\u00a0<strong><a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-contrato-inteligente\/\">contratos inteligentes<\/a>\u00a0m\u00e1s complejos<\/strong>\u00a0(estableciendo formas concretas en las que los bitcoins deben gastarse) y\u00a0<strong>statechains ciegas<\/strong>\u00a0usando Eltoo (una soluci\u00f3n de escalabilidad como Lightning pero no totalmente sin confianza en terceros).<\/p>\n<p>En caso de implementarse, ANYPREVOUT s\u00f3lo ser\u00e1 usado por este tipo de protocolos por lo que el\u00a0<strong>resto de usuarios no se ver\u00edan afectados<\/strong>. Sin embargo, aunque su efecto en la propia blockchain sea peque\u00f1o, ser\u00eda un cambio que permitir\u00eda mucha\u00a0<strong>innovaci\u00f3n en capas superiores<\/strong>\u00a0(soluciones de escalabilidad como Lightning).<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Bitcoin\u00a0es un mundo fascinante rodeado de personas que constantemente buscan formas de\u00a0mejorarlo. Las mejoras pueden ser en el \u00e1mbito de la divulgaci\u00f3n (como hago yo mismo) o en el \u00e1mbito tecnol\u00f3gico. Los cambios en el protocolo son un tema muy\u00a0complicado\u00a0y pueden dar lugar a discusiones acaloradas. Ejemplo de ello fue la que tuvo lugar entre [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[146],"tags":[],"class_list":["post-5585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blockchain"],"_links":{"self":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/5585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/comments?post=5585"}],"version-history":[{"count":0,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/5585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media\/5586"}],"wp:attachment":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media?parent=5585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/categories?post=5585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/tags?post=5585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}