-
El protocolo de pago BIP 70 ha sido eliminado de la Interfaz Grรกfica de Usuario (GUI).
-
El formato de direcciรณn Bech32 ha sido establecido como la opciรณn predeterminada para Bitcoin Core.
Este 24 de noviembre de 2019 marcรณ el lanzamiento oficial de Bitcoin Core 0.19.0, la decimonovena versiรณn del cliente de software original de Bitcoin lanzado por Satoshi Nakamoto hace casi 11 aรฑos y que sigue siendo la implementaciรณn dominante de Bitcoin en la red.
No obstante, debido a un problema que saliรณ a la luz en una fase avanzada del proceso de lanzamiento de Bitcoin Core 0.19.0, la versiรณn publicada para su descarga es en realidad 0.19.0.1.
Supervisado por el encargado principal de Bitcoin Core, Wladimir van der Laan, esta รบltima versiรณn fue desarrollada por mรกs de 100 colaboradores en un perรญodo de seis meses. Bitcoin Core 0.19.0 incluye una serie de mejoras de rendimiento, modernizaciones y correcciones de errores, asรญ como otros cambios.
Direcciones Bech32 predeterminadas
El formato de direcciรณn Bech32 (BIP 173) ya habรญa sido introducido en Bitcoin Core 0.16.0, lanzado a principios de 2018, pero ahora es por primera vez establecido como la opciรณn predeterminada en la Interfaz Grรกfica de Usuario (GUI) de la cartera Bitcoin Core.
Las direcciones de Bech32 son las direcciones que empiezan por ยซbc1ยป (a diferencia de las direcciones que empiezan con 1 o 3). Estas direcciones tambiรฉn son un poco mรกs largas, pero utilizan menos caracteres diferentes que el formato de direcciรณn actual, ya que no hay distinciรณn entre mayรบsculas y minรบsculas.
Adicionalmente, Bech32 ofrece beneficios en el contexto de SegWit. Algunas carteras que ofrecen SegWit, incluyendo la cartera Bitcoin Core por defecto, hasta ahora lo hacen ยซenvolviรฉndolaยป en salidas P2SH, con direcciones que empiezan con ยซ3ยป. Para gastar bitcoin desde este tipo de direcciones, los usuarios deben revelar una parte del cรณdigo para mostrar que los bitcoins estaban realmente bloqueados en una salida SegWit.
Con las nuevas direcciones Bech32 este paso puede ser omitido, lo que significa que gastar desde una salida SegWit requerirรก menos datos para ser transmitidos a travรฉs de la red e incluidos en la blockchain. Esto hace que las transacciones de una salida Bech32 sean aรบn mรกs baratas que las transacciones SegWit de una salida P2SH.
Dado que aรบn no todas las carteras de bitcoin soportan el envรญo a direcciones Bech32, los usuarios de Bitcoin Core 0.19.0 todavรญa tendrรกn la opciรณn de generar direcciones de recepciรณn P2SH, a travรฉs de un cambio en la GUI.
Solo dos bloques de conexiones salientes
Los nodos de Bitcoin se conectan a otros nodos formando la red entre pares. A travรฉs de esta red, los nodos comparten bloques, transacciones y algunos datos de transacciones adicionales.
Pero la red entre pares puede ser objeto de ataques. Si un atacante controla el nรบmero suficiente de nodos, puede potencialmente cortar ciertas partes de la red Bitcoin, o incluso nodos especรญficos, al interceptar todo el trรกfico hacia ella. La parte dividida de la red podrรญa entonces, por ejemplo, ser engaรฑada a aceptar una cadena minoritaria como vรกlida, lo que podrรญa tambiรฉn permitir ataques de doble gasto.
Un ataque de este tipo se contrarresta si un nodo en la parte dividida de la red tiene al menos una conexiรณn a un nodo honesto en la red principal. Entonces recibirรญa y transmitirรญa todas las transacciones y bloques y rechazarรญa la cadena minoritaria en favor de la cadena mayoritaria. Una forma de darse cuenta de esto es hacer que los nodos establezcan mรกs conexiones entre sรญ. Sin embargo, mรกs conexiones vienen con mรกs requisitos de memoria y banda ancha.
Bitcoin Core 0.19.0 aumenta el estรกndar de las conexiones salientes en dos, pero, ingeniosamente, estas dos conexiones adicionales solo se utilizan para la transmisiรณn de bloques, no transmiten transacciones o datos de transacciones adicionales.
Por otra parte, Bitcoin Core es una implementaciรณn de nodos completa, lo que significa que descarga y verifica todos los bloques de Bitcoin. Aunque es รณptimamente seguro, esto no es muy adecuado para dispositivos informรกticos de bajos recursos, como los telรฉfonos mรณviles. Las carteras mรณviles, asรญ como los monederos de escritorio, son usualmente ยซclientes ligerosยป porque solo descargan transacciones y partes de los bloques que les corresponden especรญficamente.
Una manera de hacer esto es con los filtros Bloom, usados por unas cuantas carteras hoy en dรญa. Se trata de un truco utilizado por clientes ligeros para solicitar datos relevantes de nodos completos, mรกs o menos aleatorios de la red. Desafortunadamente, estos filtros no son buenos con la privacidad: esencialmente revelan todas sus direcciones al nodo completo. Ademรกs, apoyar las peticiones de filtro Bloom tiene un costo para el CPU y el espacio en el disco para los nodos completos, sin beneficio directo para el nodo completo en sรญ.
Por las razones antes expuestas, Bitcoin Core 0.19.0 ya no apoya las peticiones de filtros Bloom, aunque la redย en general seguirรก siendo compatible con ellos durante muchos aรฑos. Esto porque los nodos viejos de Bitcoin Core suelen seguir utilizรกndose durante aรฑos despuรฉs del lanzamiento de nuevas versiones.
Una alternativa a los filtros Bloom es una nueva soluciรณn llamada ยซfiltros de bloques lateralesยป (BIP 158). Asรญ, en lugar deย carteras ligeras que creen filtros para enviar a los nodos completos, los nodos completos crean filtros para cada bloque. Los clientes ligeros pueden utilizar estos filtros para averiguar si las transacciones relevantes para ellos pueden haber ocurrido en un bloque. Si es asรญ, la cartera ligera sacarรก todo el bloque y elegirรก todos los datos relevantes de las transacciones.
Desactivan soporte para protocolo de pagos
El protocolo de pago (BIP 70) fue diseรฑado hace varios aรฑos para mejorar la experiencia de pago de Bitcoin. Ademรกs del pago regular transmitido a la red, un usuario y un comerciante comunicarรญan los detalles adiciones sobre un pago, como una direcciรณn de destino legible para el ser humano, el nombre del comerciante y una direcciรณn de reembolso en caso de que algo saliera mal con la transacciรณn.
Aunque Bitcoin Core integrรณ el protocolo de pago en GUI, el estรกndar nunca fue ampliamente adoptado. En cambio, la mayorรญa de las carteras siguen usando esquemas mรกs bรกsicos para recibir pagos: el enlace o el cรณdigo QR, por ejemplo, comunica la direcciรณn de pago y la cantidad.
Quizรกs mรกs importante que la falta de adopciรณn, el protocolo de pago BIP 70 ha sufrido un nรบmero de vulnerabilidades de seguridad y privacidad a lo largo de los aรฑos. De esta manera, algunas carteras han rechazado activamente su aplicaciรณn.ย En Bitcoin Core 0.19.0, el BIP 70 ha sido eliminado de la GUI.ย Los usuarios tendrรญan que compilar su nodo con una configuraciรณn especial para poder seguir usando esta opciรณn.
Otros cambios
Ademรกs de los cambios ya mencionados, Bitcoin Core 0.19.0 tiene una larga lista de pequeรฑas mejoras y modernizaciones. Ahora es posible iniciar un nodo ยซpodadoยป o recortado inmediatamente desde la configuraciรณn inicial, lo que permite a los usuarios con poco espacio en el disco iniciar fรกcilmente un nuevo nodo. Tambiรฉn incluye nuevas caracterรญsticas para el protocolo de transacciones parcialmente firmado (PSBT), que es รบtil para transacciones de mรบltiples firmas y CoinJoin.
Asimismo, hay varias mejoras en el dominio de los descriptores de carteras, รบtiles para los programadores que trabajan en aplicaciones de Bitcoin. Los nodos de Bitcoin Core 0.19.0 tambiรฉn aceptarรกn y transmitirรกn transacciones que utilicen una nueva versiรณn de SegWit, a fin de garantizar la realizaciรณn sin problemas de prรณximas actualizaciones.
Versiรณn traducida del artรญculo de Aaron van Wirdum publicado en Bitcoin Magazine