-
La nueva versión de Bitcoin Core 0.20.0 ha eliminado por completo los mensajes de rechazo.
-
Debido a vulnerabilidades en la seguridad, también fue eliminado el Protocolo de Pago BIP70.
Hoy marca el lanzamiento oficial de Bitcoin Core 0.20.0, el vigésimo lanzamiento del cliente de software original de Bitcoin lanzado por Satoshi Nakamoto hace más de 11 años.
Supervisado por el responsable de Bitcoin Core, Wladimir van der Laan, este reciente gran lanzamiento fue desarrollado por más de 100 colaboradores en un periodo de seis meses. Como resultado de más de 500 peticiones de validación combinadas, Bitcoin Core 0.20.0 limpia y fortalece el código fuente de Bitcoin Core, avanza la integración de las carteras frías, mejora la fiabilidad de la red e incluye otras mejoras.
Estos son algunos de los cambios más notables.
Mayor integración de la cartera fría en GUI (Interfaz Gráfica de Usuario)
Bitcoin Core ha sido compatible con las carteras frías desde la versión 0.18.0. Sin embargo, los usuarios aun no pueden hacer transacciones con una cartera fría desde la interfaz gráfica de usuario de Bitcoin Core; deben, en cambio, usar la interfaz de línea de comandos (CLI) para poder hacerlo.
Además, Bitcoin Core 0.20.0 está avanzando hacia la integración de la cartera fría en la GUI. Los usuarios ahora pueden crear una transacción sin firma en la GUI de Bitcoin Core usando el formato de transacción parcialmente firmada, y copiarla al portapapeles. Una vez copiada, pueden transferir la transacción a su cartera fría para firmarla, sin embargo, esta transferencia aún no está automatizada, y transmitir la transacción todavía requiere del uso de la CLI.
Los próximos lanzamientos de Bitcoin Core continuaran avanzando en la integración de las carteras frías.
Un mapa para una conexión de red más confiable
Bitcoin Core se conecta a varios pares, otros nodos de Bitcoin, en la red de Bitcoin. Bitcoin Core marca otros nodos basándose en sus direcciones IP, con la intención de establecer conexiones con pares de varias regiones y proveedores de servicios de Internet (ISP). Si un nodo recibe bloques y transacciones de pares ubicados en todo el mundo, disminuye el riesgo de que sean retenidos ciertos datos, como una transacción especifica.
Actualmente, Bitcoin Core marca las direcciones IP por grupos de operadores de red. Sin embargo, varios de estos grupos son realmente parte del mismo Sistema Autónomo (AS): agrupaciones de grupos operadores de red que comparten rutas claves de Internet, y, por lo tanto, comparten las mismas congestiones de las rutas en donde los datos podrían ser filtrados.
Bitcoin Core 0.20.0 incluye una nueva opción de configuración llamada Asmap, que marca las direcciones IP por números de sistema autónomos (ASN). Esto asegura que el nodo se conecte con pares de una variedad de AS, reduciendo las posibilidades de congestionamiento, limitando de esta manera el riesgo de que se retengan datos específicos. Sin embargo, marcar las direcciones IP en grupos de operadores de red sigue siendo la configuración por defecto, por ahora.
Eliminación de los mensajes de rechazo BIP61
Los mensajes de rechazo, BIP61, son notificaciones de que un nodo vuelve cuando una transacción que recibió es rechazada, y el por qué. Puede ser porque la transacción no es válida, porque se considera que no incluye una comisión suficiente, o tal vez otra razón para el rechazo.
Sin embargo, los desarrolladores de Bitcoin Core no consideran los mensajes de rechazo muy útiles. Lo más importante es que no se debe asumir que los pares devuelvan un mensaje de rechazo de manera fiable. En otras palabras, si un nodo no recibe el mensaje de rechazo, no significa necesariamente que la transacción fue aceptada. Esto limita la utilidad de los mensajes, ya que existen mejores soluciones para verificar si una transacción es válida e incluye suficiente comisión. Mientras tanto, los mensajes estaban haciendo del protocolo entre pares algo más complejo, y estaban ocupando el ancho de banda.
Es por esto que los mensajes de rechazo BIP61 ya habían sido deshabilitados por defecto en Bitcoin Core 0.18.0. Ahora Bitcoin Core 0.20.0 ha eliminado esta función por completo.
Eliminación del Protocolo de Pago BIP70
El Protocolo de Pago BIP70 fue diseñado hace varios años para mejorar la experiencia de pago de Bitcoin. Un usuario y un comerciante podían comunicar detalles adicionales sobre un pago, como una dirección de destino legible para los humanos, como el nombre del comerciante, y una dirección de reembolso en caso de que algo saliera mal en la compra.
Si bien Bitcoin Core integró el Protocolo de Pago, el estándar nunca fue ampliamente adoptado. De hecho, la mayoría de las carteras aun utilizan el esquema URI (BIP21) más básico: Un enlace clickeable o el formato de código QR que, por ejemplo, comunica la dirección y la cantidad de pago.
Tal vez más importante que la falta de adopción, el Protocolo de Pago BIP70 sufrió una serie de vulnerabilidades de seguridad y privacidad a lo largo de los años. Notablemente, su dependencia de la biblioteca de software OpenSSL para funciones de criptomonedas que requería de una serie de actualizaciones de emergencia con muy poca antelación. Por estas razones, algunas carteras de Bitcoin han rechazado la implementación del BIP70.
Bitcoin Core 0.19.0 elimino el Protocolo de Pago de la GUI, pero lo usuarios podían seguir confeccionando su nodo con una configuración especial para hacer uso de la función. Bitcoin Core 0.20.0 ha eliminado por completo el Protocolo de Pago.
Ahora sin el BIP70, y algunos otros ajustes de software para eliminar la dependencia, Bitcoin Core también logró eliminar por completo OpenSSL de su código.
El primer paso hacia Assumeutxo
Una nueva llamada de procedimiento a remoto (RPC) le permite a Bitcoin Cone 0.20.0 generar una panorámica del conjunto UTXO, el cual refleja el estado de posesión de los Bitcoins tal como está registrado en la cadena de bloques en un momento específico en la altura de la blockchain. Esta panorámica puede ser compartida.
En los próximos lanzamientos se compartirá dicha panorámica cuando nuevos participantes se unan por primera vez a la red. Esto les permite a los nuevos nodos comenzar a participar de manera inmediata en la red desde el momento en que fue tomada la panorámica, mientras que toda la historia de la blockchain es verificada en el trasfondo. (Tal como Assumevalid, un atajo similar, Assumeutxo viene con compensaciones de confianza antes de que toda la blockchain sea verificada, y hasta entonces debería ser utilizado con estas compensaciones en mente.
Versión traducida del artículo de Aaron Van Wirdum publicado en Bitcoin Magazine.