- OroyFinanzas.com - https://www.oroyfinanzas.com -

¿Quién y cómo se desarrolla el código Bitcoin?

(OroyFinanzas.com) – Bitcoin es un proyecto de código abierto [1] publicado por Satoshi Nakamoto [2] en 2009. Que el protocolo de Bitcoin sea de código abierto significa que su diseño y código fuente puede examinarse por todo el mundo y que nadie es su propietario o lo controla, algo que se garantiza a través de la comunidad de desarrolladores voluntarios distribuidos por todo el mundo. Pero cómo exactamente funciona el desarrollo de Bitcoin. A continuación, explicamos el proceso.

El Bitcoin Core
Bitcoin Core es el código fuente de Bitcoin. Y es la implementación de referencia. Los cambios que se implementan en el Bitcoin Core son propuestos por todos los programadores informáticos que quieran hacerlo. En la actualidad hay una gran comunidad de desarrolladores. Para conocer sus nombres o pseudónimos, así como la cantidad cambios que cada uno de ellos ha implementado puedes entrar en https://bitcoin.org/es/desarrollo [3].

De todos los desarrolladores que colaboran en el desarrollo de Bitcoin hay cinco que a día de hoy tienen capacidad para implementar los cambios. Sus nombres son:

Wladimir J. van der Laan [4]
Gavin Andresen
Jeff Garzik
Gregory Maxwell
Pieter Wuille

Hasta que Satoshi desapareció, él lideró el desarrollo del código. Luego transfirió el liderazgo del equipo de desarrolladores (Lead Developer o Bitcoin Core Maintainer [4]) a Gavin Andresen. En abril 2014, Wladimir J. van der Laan ha reemplazado a Gavin Andresen como Lead Developer. Gavin seguirá siendo el Chief Scientist (Jefe Científico), de la Bitcoin Foundation – un grupo de lobby que no controla Bitcoin, cuya función es trabajar más en el desarrollo estratégico de Bitcoin a nivel tecnológico y abandona el desarrollo directo del código.

Canales para participar en el desarrollo de Bitcoin

Bitcoin Core se gestiona mediante un sistema de software de control de versiones llamado Git. Cualquier desarrollador puede contribuir al código Bitcoin. Todo lo que necesita saber para comenzar a hacerlo está en el repositorio GitHub de Bitcoin. Lo único que se exige para participar es proveer código de alta calidad y respetar las directrices específicas para mantener el mismo formato.

Además existen distintos canales para las discusiones formales del desarrollo. Una de ellas está en GitHub y también hay una lista de correo. Por su parte, las discusiones menos formales se realizan en el canal #bitcoin-dev de irc.freenode.net.
Además existen varias salas de chat y sitios web que hospedan discusiones acerca del desarrollo de Bitcoin:
– Canal de IRC #bitcoin-dev en freenode.
Bitcoin StackExchange [5]
BitcoinTalk Development & Technical Discussion Forum [6]

Proceso de desarrollo de Bitcoin en GitHub
Como hemos explicado más arriba, el Bitcoin Core se gestiona mediante un sistema de software de control de versiones llamada Git. Esto permite a los desarrolladores hacer un seguimiento de las versiones del código con las que cada uno de ellos está trabajando, y hacer un seguimiento de los cambios que ha hecho cada uno.

Los desarrolladores que quieran contribuir a Bitcoin pueden ejecutar Git en sus ordenadores. Eso les permite que se conecten a un servicio central en el que todos puedan trabajar en las versiones del mismo proyecto a la vez. Este servicio, llamado Github y que es un sistema de control colaborativo de revisión y desarrollo de software, sirve de base de trabajo a muchos proyectos de software, y cualquier informático dará fé de ello. Bitcoin es un proyecto más de los que aloja este servicio.

El código para el proyecto Bitcoin se lleva a cabo en un solo lugar de Github, llamado repositorio. La versión oficial del repositorio Bitcoin es conocido como el repositorio superior. Los desarrolladores pueden crear sus propias versiones del repositorio, copiandolo en un fork online. Esto les permite trabajar en sus propios cambios del código. Pueden modificar sus versiones tanto como quieran. En cualquier momento del trabajo, pueden solicitar que su versión sea de nuevo incluida en el repositorio principal mediante una solicitud de extracción. Una vez ejecutada esta solicitud, los otros miembros que participan en el proyecto, pueden revisar y comentar sobre dicha versión. Hasta el momento, 259 personas han hecho propuestas de implementación satisfactorias en el código y se han creado 4.427 forks del proyecto.

“La idea es que otros desarrolladores en la comunidad revisen el cambio propuesto”, explica a Coindesk Wladimir J. van der Laan, lead developer de Bitcoin. “Entonces, el que ha hecho la propuesta, corrige los problemas planteados por los demás. También puede ser necesario reunir a varias personas para que prueben el cambio, especialmente si es complicado, o si hay un componente subjetivo (es decir, para la interfaz de usuario o cambios RPC).”

Si a suficientes personas les gustan los cambios realizados en una solicitud de extracción, ésta se vuelven a incluir de nuevo en el repositorio principal. Pero para que esos cambios se ejecuten y se incluyan en el código de Bitcoin Core solo es posible si alguno de los cinco desarrolladores con capacidad para ejecutar cambios lo haga. Van der Laan, Gavin Andresen, Jeff Garzik, Gregory Maxwell, y Pieter Wuille son el equipo que toma la decisión final en la actualidad.

El Bitcoin Core se mantiene de una manera intencionalmente conservadora, y la mayoría de los cambios se hacen de una manera “no controversial y limpia”, explica van der Laan. Se trata de cambios pequeños, incrementales, más que cambios grandes y revolucionarios. Un parche podrá variar algo de código alrededor para hacerlo más legible, o tal vez para optimizar un poco el uso de memoria.

¿Cómo se documentan y aprueban cambios en Bitcoin Core por la comunidad?
Sin embargo, los cambios en Bitcoin que tienen muchas más ramificaciones, y que cambian las reglas de consenso, es decir, las normas técnicas que todos los clientes de Bitcoin deben cumplir para que la red Bitcoin funcione correctamente, son examinados en detalle. Se discuten en la lista de correo primero y permanecen abiertos durante mucho tiempo para que la comunidad entera pueda discutir sobre ellos. Estos cambios, deben de haber sido presentados a través de un BIP – abreviatura de Bitcoin Improvement Proposal, en español se traduce como Propuesta de Mejora de Bitcoin [7]. Un BIP es un documento que sugiere un cambio global a algún aspecto de Bitcoin.

El documento BIP que suministra la información o la descripción de una nueva característica a la comunidad Bitcoin. El BIP debe proporcionar una especificación técnica concisa de la función y la justificación de dicha función.

Un BIP es el principal mecanismos para proponer nuevas características, para la recogida de información de la comunidad sobre un tema, y para documentar las decisiones de diseño que han entrado en Bitcoin. Cualquier persona puede crear un BIP y es el autor el que se encarga de la creación de consensos dentro de la comunidad y de obtener la documentación de todas las opiniones al respecto.

Los BIP, deben mantener un formato determinado y para asegurar que es así existe la figura del Editor de BIP, que en la actualidad es Gregory Maxwell. Tras la extensa discusión por la comunidad Bitcoin de un BIP, éste es finalmente aprobado o rechazado.

Evolución del proceso de desarrollo de Bitcoin
Si algo caracteriza a Bitcoin es la enorme evolución que está teniendo. Es por ello que en la actualidad, existen voces que piden una revisión de los procesos de desarrollo de Bitcoin para hacerlo más ágil y más eficiente.

Sergio Lemer, consultor de Bitcoin y auditor de seguridad [8], piensa que sería bueno que hubiese más formalización en el proceso de aprobación del código. Propone, por ejemplo, un proceso de aprobación de parches multifirma en el que cierta proporción de los desarrolladores aprueba formalmente el código mediante la firma de la revisión, registro de errores encontrados un análisis de por qué no estaban atrapados, una descripción formal de la documentación que debe acompañar a un parche y una descripción de lo que la revisión de un parche significa en realidad.

Estas implementaciones llevan tiempo y recursos humanos, pero como Lemer reconoce “obviamente, la implementación de todo esto requiere más mantenimiento, un mayor presupuesto y más recursos para los desarrolladores principales (que en la actualidad son escasos). Pero, un software que mantiene una industria de 6.000 millones de dólares lo necesita.”

También Andresen y van der Laan han propuesto cambios. En la conferencia Bitcoin 2014, Andresen afirmó que su atención se centra en la diversificación, algo con lo que Van der Laan parece coincider: “A pesar de que mantener el Bitcoin Core es mi trabajo estoy de acuerdo con eso.”

“Durante los primeros años Bitcoin Core fue quizás excesivamente importante, y sus desarrolladores tenían que mantener la luz encendida durante la infraestructura de nodo (y quedarse hasta la noche para reparar los errores que aparecían). Pero, hay que avanzar y habiéndose convertido Bitcoin en el sistema distribuido global que se supone que es, nos deberíamos mover más allá”, afirma Van der Laan.

De esta forma aunque se mantenga la decisión final sobre los cambios en el código adherida a un pequeño grupo de personas, la mayor participación de propuestas, haría evolucionar Bitcoin en una dirección en la que habría espacio para nuevas visiones, a la vez que se mantiene las normas de consenso, que serían las partes que realmente hacen de Bitcoin lo que es.

EPL

Fuente: Coindesk [9], Bitcoin.org [3], Github [10]

© OroyFinanzas.com