Un bug potencialmente dañino para Bitcoin fue hallado en el cĂłdigo fuente del cliente de Bitcoin Core la semana pasada. Esto ha generado cierta controversia en la comunidad, especialmente en torno a las responsabilidades derivadas de este tipo de suceso y la forma de reducir su incidencia. A pesar de que el 95% de los nodos de la red operan con Bitcoin Core, este no es el Ășnico cliente; en todo caso, es el preferido.
El error ha puesto de manifiesto algunas fallas que se han dado, tanto en el equipo principal de Bitcoin Core, como por parte de la comunidad de usuarios del cliente, que delega en ellos toda la responsabilidad del desarrollo del protocolo. La posibilidad de un ataque de DenegaciĂłn de Servicio (DoS) y un vector inflacionario que permitirĂa la creaciĂłn de mĂĄs bitcoins han conmocionado a los usuarios.
A travĂ©s de redes sociales como Twitter, algunos usuarios han asegurado que Wladimir van der Laan, Gregory Maxwell y Matt Corallo son responsables directos de este hecho, dado que el primero introdujo definitivamente el error en el cĂłdigo, el segundo lo evaluĂł y el Ășltimo propuso el cambio que desencadenĂł el potencial vector de ataque.
Algunos han asegurado que el equipo no cuenta con la suficiente experticia y que los procesos de evaluaciĂłn de las modificaciones del cĂłdigo estĂĄn siendo insuficientes. Pero Bitcoin Core no es la Ășnica opciĂłn, es solo el cliente preferido por la mayorĂa de los operadores de nodos de la red.
Bitcoin Core es una implementaciĂłn derivada directamente del protocolo original propuesto por Satoshi Nakamoto, de ahĂ su relevancia. Sin embargo, actualmente existen otros clientes como Bitcoin Knots, BlockCypher, Bitcoin Server y btcd.
Estos otros clientes de código, si bien son completamente compatibles con Bitcoin Core, tienen sus particularidades y son opciones disponibles para aquellos usuarios que no estén de acuerdo con el desarrollo y la estrategia del equipo de Bitcoin Core pero quieren seguir corriendo sus nodos en la red.
Bitcoin Knots
Este cliente es un derivado de Bitcoin Core, principalmente mantenido por el desarrollador, Luke Dashjr. La Ășltima versiĂłn 0.16.3.knots puede utilizarse como un cliente de escritorio, como en el caso de Bitcoin Core, para pagos regulares o como una utilidad de servidor para comerciantes y otros servicios de pago. Aunque posee otras caracterĂsticas y su desarrollador advierte que quienes implementen el cĂłdigo en sus nodos deben hacerlo bajo su propio riesgo, igual que con Bitcoin Core.
Bitcoin Knots comenzĂł en diciembre de 2011 como Bitcoin Next-Test, un derivado de la rama «principal» de Bitcoin Core, con funciones futuras y propuestas fusionadas de la manera mĂĄs imparcial posible hacia los cambios mismos. En 2014, debido a las limitaciones de tiempo y al deseo de mantener un derivado mĂĄs estable y en buen estado, comencĂ© a basar la rama en la Ășltima versiĂłn estable e incluĂa solo modificaciones que parecĂan razonablemente seguras y que personalmente no consideraba problemĂĄticas o defectuosas.
Luke Dashjr
Desarrollador
BlockCypher
Este es un cliente de cĂłdigo creado para manejar mĂșltiples centros de data, de manera que el usuario pueda programar algunas API disponibles para ejecutar clientes mĂșltiples, no exclusivamente para Bitcoin. De hecho, si el desarrollador asĂ lo desea, puede utilizar las API para Ethereum o Dash. BlockCypher cuenta con un cliente de Bitcoin que permite realizar las mismas funciones que un nodo programado con Bitcoin Core y puede interactuar sin problemas con Ă©l.
La principal diferencia de este cliente con el resto de las implementaciones es que se trata de un tercero de confianza que provee los servicios, de manera que el usuario puede contar con todas las funcionalidades, aunque la infraestructura que proveen depende exclusivamente de su equipo. AsĂ, proyectos de alto impacto que utilicen sus APIs podrĂĄn escalar sus desarrollos de manera mĂĄs sencilla, asĂ como aquellos clientes que decidan correr nodos con su implementaciĂłn.
SegĂșn su web, BlockCypher utiliza las llaves privadas de sus clientes, aunque aseguran que solo de manera temporal para ejecutar las API. Este procedimiento es cuestionable, dado que pone informaciĂłn sensible en manos de terceros que podrĂa generar vulnerabilidades de seguridad para sus clientes.
Bitcoin Server
Es una aplicaciĂłn de consola que se incluye como parte de libbitcoin-server, la biblioteca de comandos e instrucciones de Bitcoin. Este cliente ligero incluye la posibilidad de implementar un nodo completo en la red Bitcoin, asĂ como un servicio de verificaciĂłn de la informaciĂłn de la blockchain de Bitcoin, basado en ZeroMQ. La documentaciĂłn y los binarios firmados para este nodo estĂĄn disponibles para Linux, OSX y Windows.
btcd
Se trata de una implementaciĂłn escrita de nodo completo, que utiliza el lenguaje de programaciĂłn golang. El cliente de cĂłdigo se ha desarrollado desde octubre de 2013, y a pesar de que aĂșn se encuentra en versiĂłn beta, ofrece un softaware estable para interactuar con la red.
De acuerdo con el repositorio de este cliente en GutHub, btcd âasegura que todas las transacciones individuales admitidas cumplan con las reglas requeridas por la cadena de bloques y tambiĂ©n incluye controles mĂĄs estrictos que filtran las transacciones en funciĂłn de los requisitos de los minerosâ.
Una diferencia clave entre btcd y Bitcoin Core es que btcd no incluye la funcionalidad de monedero, de manera que los usuarios de este cliente no podrĂĄn realizar ni recibir pagos directamente con btcd.
Imagen destacada por kalpis / stock.adobe.com
Interesante, probaré KNOTS.
1.5