El desarrollo de Bitcoin tiene su epicentro en el software Bitcoin Core, una increíble pieza de código heredada del ignoto Satoshi Nakamoto y que vuelve posible el funcionamiento de Bitcoin en su esplendor.

Entre todas y cada una de las implementaciones de Bitcoin, indudablemente hay una que es la madre de todas y cada una , siendo la más famosa. Se trata de Bitcoin Core, un desarrollo de código abierto bajo licencia MIT que lleva el peso del desarrollo del protocolo Bitcoin. Este es quien se encarga de todo el protocolo Bitcoin y de incorporar la  full client de referencia para Bitcoin. De esta forma, Bitcoin Core tiene todo lo preciso para contrastar los pagos de forma autónoma. Y para finalizar, mas no menos esencial, es la implementación que comenzó el mismísimo Satoshi Nakamoto, el autor de Bitcoin.

Hasta la data, Bitcoin Core es el único que incorpora el protocolo Bitcoin en su totalidad. Con lo que es una referencia en el que se apoyan los otros clientes del servicio desarrollados. Está formado por un programa que crea nodos completos, que descargan toda la blockchain a fin de que estos puedan validarla totalmente. Como asimismo por una wallet que opera y administra los bitcoins y comprueba todas y cada una de las operaciones efectuadas.

¿De qué forma marcha?

El software de Bitcoin Core se puede descargar como cualquier otro programa en nuestro computador, en verdad basta visitar esta web para hacerlo. Mas ya antes de eso se deben tomar en consideración múltiples aspectos. Primero, Bitcoin Core incorpora todos y cada uno de los aspectos de la red Bitcoin, por tanto, al descargarlo te transformarás en un nodo completo de la red. Este incluye una copia precisa y completa de todas y cada una de las operaciones que se han efectuado con Bitcoin desde su lanzamiento en dos mil nueve. Y que como es natural, va a ser actualizada continuamente. Con lo que la demanda de espacio de almacenaje libre en el disco duro va a ser de por lo menos cuatrocientos gb.

Segundo, Bitcoin Core incorpora un wallet, por medio de la que son verificadas todas y cada una de las transacciones que se efectúen con la copia de la blockchain. Con lo que descargarlo y acompasarlo en un PC va a ser algo que tome ciertos días ya antes de poder utilizarlo. Con lo que, si bien da altos niveles de seguridad y privacidad, es recomendada solo para usuarios avanzados.

Otra característica esencial de Bitcoin Core, es que emplea un programa interno (daemon) llamado bitcoind. Un daemon (diablo en castellano) es un programa que se ejecuta en segundo plano para empleo a través de líneas de comandos y llamadas a procedimientos recónditos (RPC). El nombre “demonio” está muy relacionado con sistemas UNIX y derivados como GNU/Linux. Bitcoin Core asimismo es capaz de crear una testnet, una red de pruebas donde los desarrolladores verifican los cambios que desean efectuar. De este modo pueden examinar a detalle de qué manera marchan los cambios o bien mejoras que desean a la red ya antes de incorporarlos a exactamente la misma.

Por otra parte, Bitcoin Core asimismo contiene un programa llamado bitcoin-cli. Esta es una interfaz de línea de comandos, a través del que, los usuarios pueden mandar comandos RPC a bitcoind y efectuar cualquier operación soportada por Bitcoin.

Bitcoin Core wallet, la wallet oficial de Bitcoin

¿Cuánto sabes, criptonauta?

¿Bitcoin Core es la única forma de crear un full nodo para Bitcoin?

Desarrollo y mejoras de Bitcoin Core

El desarrollo de Bitcoin Core empezó con la versión 0.1.0. Esta es considerada la primera implementación del software de Bitcoin creada por Satoshi Nakamoto. Exactamente la misma solo estuvo libre para Windows. En la versión 0.2.0 se introdujo por vez primera el soporte a sistemas Linux y más tarde MacOS.

Nakamoto participó en el desarrollo y mejora de Bitcoin Core hasta la versión 0.3.19 en dos mil diez, entonces abandonó el proyecto, dejándolo a cargo de Gavin Andresen. Fue Andresen quien más tarde, en dos mil catorce, cedió el proyecto a Wladimir J.van der Laan y otros desarrolladores primordiales.

En la versión 0.3.20 fue introducida la red de pruebas testnet. Y desde la versión 0.5.0 de dos mil once empezó a llamarse Bitcoin-QT. Esto haciendo referencia a una implementación basada en la biblioteca de interfaz Qt4 con licencia MIT. Exactamente la misma fue desarrollada por el desarrollador Wladimir Van der Laan y da una interfaz afable al código Bitcoin. Todo con el objetivo de hacer que su empleo fuera más fácil, afable y también intuitivo para usuarios no familiarizados con la programación.

Posteriormente en la versión 0.9.0 el software recobra el nombre de Bitcoin Core, y en ella, las comisiones por transacción fueron reducidas como medida para promover la realización de microtransacciones.

Dejando atrás OpenSSL y mejorando capacidades

En sus principios, Bitcoin Core, empleaba OpenSSL para muchas operaciones de criptografía. No obstante, esto empezó a mudar en dos mil quince debido a fallos descubiertos en OpenSSL. Entre los fallos de seguridad había uno que dejaba a un atacante leer la memoria de un servidor y conseguir claves privadas. Otro fallo detectado, es que OpenSSL emplea una fuente “débil” para números azarosos, y los desarrolladores de Bitcoin Core decidieron crear una fuente propia. Por esas razones, OpenSSL fue eliminado del código fuente de Bitcoin Core.

En la versión 0.11.2 los desarrolladores incorporaron una característica a la red, donde se podía establecer ciertas condiciones futuras para impedir el gasto de ciertas transacciones. Entonces con la versión 0.12.1 se habilitó la funcionalidad de permitir múltiples soft forks simultáneamente.

Casi cerca de cien cooperadores trabajaron en la versión 0.13.0, donde introdujeron más de diez cambios significativos. Para el año dos mil dieciseis se activó, mediante un soft fork, el CheckSequenceVerify. En ese año se presentó el soft fork de SegWit como mejora a la maleabilidad de las transacciones y al espacio de los bloques sin cambiar su tamaño.

En dos mil dieciocho, fue lanzada la versión 0.16.0, la que dejaba el empleo de un formato de direcciones nativo para SegWit, asimismo llamado formato de direcciones bech32, que fue desarrollado originalmente por Peter Wuille y Greg Maxwell

Los peligros de la centralización

Como hemos dicho, Bitcoin Core es el cliente del servicio por antonomasia de Bitcoin. No es cualquier cliente del servicio, es el más utilizado. En la página web de Bitnodes puede verse como el cliente del servicio Satoshi (de este modo lleva por nombre a Bitcoin Core interiormente), es el usuario de más del noventa y cinco por ciento de todos y cada uno de los nodos conectados a la red.

Esto tiene una parte positiva: todos los nodos charlan un protocolo muy homogéneo. No obstante, esto asimismo tiene un lado negativo y potencialmente terrible para ciertos detractores: la capacidad de control que tienen los desarrolladores de ese usuario.

Aunque un usuario no es más que un programa que incorpora el protocolo de Bitcoin, hay que comprender que el protocolo por si acaso solo no hace nada, precisa del programa que lo ejecute. Por esta razón, ese programa tiene control sobre qué unas partes del protocolo incorporar y cuales no, por servirnos de un ejemplo que BIPs integrar.

Si bien es verdad que es un programa de código abierto, el que podemos ver su código e inclusive plantear cambios, solo un pequeño conjunto de programadores tiene el control a fin de que esos cambios entren en el programa. Un pequeño y cerrado conjunto, que continuamente es tentado con ofertas de multinacionales y gobiernos. Al fin y a la postre un software de código abierto no da dinero de forma directa, y deben vivir de algo, las corporaciones y gobiernos lo saben y tienen capacidad para engatusar con lo preciso, poniendo en nómina a estos programadores y presionarles como lobby para dirigir las funcionalidades de una o bien otra forma. Igual que ocurre en la política con los representantes.

Ante esta situación, siendo el usuario por antonomasia y viendo lo complicado que es crear un nuevo usuario donde desarrolladores comprometidos y anónimos sin capacidad de ser corrompidos sostengan el código, ciertos desarrolladores optaron por hacer un hard fork de Bitcoin.

El inconveniente de la centralización es algo real, un inconveniente que Bitcoin busca solucionar, mas indudablemente incluso muchas son las ocasiones de mejora que existen ambiente a Bitcoin y a este término.