¿Qué es Bitcoin Core?

Introducción

El desarrollo de Bitcoin ha sido posible gracias a una pieza de software fundamental para el mismo, el software Bitcoin Core, también conocido como Bitcoin Core Wallet. Este software no es solo una cartera o cliente de Bitcoin más, Bitcoin Core es la implementación original y completa de lo que se conoce como el protocolo Bitcoin. Esto incluye el protocolo de funcionamiento de Bitcoin y las instrucciones para hacer posible que la red del mismo funcione. Así como también un monedero y un conjunto de funcionalidades que hacen que Bitcoin sea la criptomoneda que es hoy en día.

Pero la historia de Bitcoin Core mucho más extensa y emocionante. Es por esta razón, que hemos decidido contártela para que conozcas todo sobre esta maravillosa pieza de software libre.

El inicio de Bitcoin

Cuando el anónimo personaje Satoshi Nakamoto presentó el whitepaper de su criptomoneda al mundo, no llamó mucho la atención. La verdad es que fueron pocas las personas que vieron algún tipo de utilidad en esta llamativa pieza tecnológica en sus inicios. Uno de estos casos fue Hal Finney, el primer usuario de Bitcoin después del propio Nakamoto.

Pero esta situación se debía en buena parte a lo poco amigable que era el sistema de Bitcoin. Para su uso era necesario tener ciertos conocimientos de informática y programación. Todo con el fin de ser capaz de compilar el software y ejecutarlo sobre un computador. Además, el software de Bitcoin en aquel entonces era bastante rudimentario y usaba una simple consola para realizar comandos. En definitiva, no era nada usable para un usuario promedio.

Sin embargo, el primitivo software de Nakamoto comenzó a llamar la atención de varios desarrolladores. Poco a poco la comunidad se hizo más grande. Así Nakamoto comenzó a tener bajo su disponibilidad y control, un pequeño grupo de desarrollo. Este pequeño grupo se dedicó en sus primeros momentos a mejorar el software original escrito por Nakamoto.

 En ese entonces, el software de Bitcoin era un pequeño pero ingenioso desastre de software que hacía funcionar al Bitcoin en sus primeros momentos. Sin embargo, el esfuerzo de la cada vez mayor comunidad comenzaba a dar sus frutos, nacía así Bitcoin Core.

Sigue leyendo: ¿Qué es Bitcoin? Historia, características, pros y contras

Nace Bitcoin Core

El nacimiento de Bitcoin Core o Bitcoin Core Wallet como proyecto propiamente dicho tuvo lugar el 9 de enero de 2009. Esto con la publicación de la versión 0.1.0 por parte de Nakamoto. Pero el proyecto tomó un punto más formal con la apertura de sus repositorios de desarrollo en GitHub y la publicación del código de la versión 0.1.5. En ese entonces, figuras como Gavin Andresen ya formaban parte del proyecto siendo desarrolladores activos del proyecto.

Con la publicación del código en GitHub, el desarrollo de Bitcoin Core creció exponencialmente. De hecho, durante su primer año el desarrollo de Bitcoin Core fue acelerado. El trabajo de personajes como Nakamoto y Andresen se centró principalmente en solucionar problemas conocidos e incluir nuevas funcionalidades. Todo cambiaría cuando Nakamoto en 2010 decide dejar el proyecto en manos de Gavin Andresen y desaparecer para no volver nunca más.

La decisión de dejar en manos de Andresen el proyecto de Bitcoin Core fue positiva. Andresen es un desarrollador de software profesional, cosa que Nakamoto no era, como muchos especialistas han hecho ver. Este primer cambio en el liderazgo del proyecto, hizo evolucionar la calidad del software de Bitcoin. El primer gran esfuerzo de Andresen fue crear una base de código sostenible en el tiempo. Lo logró y para ello reescribió más de la mitad del código original de Nakamoto.  De allí en adelante, la comunidad de desarrollo de Bitcoin Core comenzaría a hacer crecer el proyecto más y más.

Estandarizando el desarrollo de Bitcoin Core

Debido a la capacidad profesional de Andresen, este pudo organizar de forma más estándar el desarrollo de Bitcoin Core. Sin embargo, este trabajo no fue solamente suyo. Una figura importante en la estandarización de las mejoras de Bitcoin Core fue el criptoanarquista, Amir Taaki. Taaki fue quien el 19 de agosto de 2011 presentó el esquema de las Bitcoin Improvements Proposal o  Propuestas de Mejoras para Bitcoin, conocidas por sus siglas BIP.

Taaki tomó el diseño de las conocidas PEP (Python Enhancement Proposals – Propuestas de Mejoras de Python) para crear una estructura con la cual los desarrolladores pudieran introducir mejoras al protocolo Bitcoin. En caso de que estas mejoras fueran aprobadas por el grupo de desarrollo, serían incluidas en Bitcoin Core.

El trabajo de Taaki abría las puertas para que personas de todo el mundo pudieran introducir mejoras al Bitcoin. La única condición es que debían demostrar la utilidad y aplicabilidad de sus mejoras. El resultado de esta estandarización fue un impulso de desarrollo para el software de Bitcoin Core. Una situación que lo convirtió en un software ampliamente aceptado y estable.

Más tarde, el desarrollador Wladimir J.van der Laan creaba la interfaz gráfica oficial de Bitcoin, Bitcoin-QT. La creación de esta herramienta junto a la capacidad de crear redes de pruebas o testnet completaba el círculo de desarrollo básico de Bitcoin. A partir de entonces, el desarrollo de Bitcoin Core comenzaría a florecer.

Luchas internas en el proyecto

El creciente desarrollo de Bitcoin Core y la cada vez más nutrida comunidad detrás del mismo comenzó a crear problemas internos. Uno de los principales problemas comenzó con Gavin Andresen. Andresen siendo el desarrollador líder de Bitcoin (Bitcoin Lead Developer) tenía ciertas facultades de manejo del código. Era él junto a un grupo limitado de personas quienes podían decidir si introducir o no algún cambio en el software de Bitcoin Core.

Esta situación de poder le llevó a varios problemas, pero el más grave de ellos fue iniciado por el mismo Andresen. Andresen era partidario de aumentar el tamaño de bloque de Bitcoin. Esto con la finalidad de mejorar la escalabilidad del Bitcoin. Por esa razón, Andresen presentó una propuesta para cambiar esto. Al no recibir el apoyo necesario para dicho cambio, Andresen decidió llevar el cambio por su propia mano. Como resultado, Andresen fue relevado de su cargo en 2014. Además, se le negó el acceso administrativo al repositorio de desarrollo.

Esto marcó el distanciamiento entre Andresen y el desarrollo de Bitcoin Core. Luego de esto, el desarrollo de Bitcoin Core quedaba en manos de Wladimir J. Van der Laan. De hecho, Van Der Laan es quien aún hoy en día ejerce como líder del proyecto.

Sin embargo, más allá de esto existen algunos casos bien sonados que comentaremos a continuación

 

Bitcoin Core cambia de OpenSSL a una librería criptográfica propia

En 2014, tras los tristes sucesos de violaciones de seguridad del proyecto OpenSSL , Van der Laan y Gregory Maxwell sugirieron cambiar la librería por una propia. Muchos se mostraron contrarios a este hecho. Los que se negaron comentaban que eso podría llevar a una manipulación interna de los algoritmos de criptografía de Bitcoin. Sin embargo, muchos se mostraron de acuerdo con el cambio, principalmente en pos de mejorar la seguridad. 

Esta sería una de las primeras discusiones fuertes en el seno de desarrollo de Bitcoin Core. El resultado, dejaron de usar OpenSSL y desarrollaron una librería criptográfica propia. El hecho resultó ser una movida positiva para el proyecto. Sobre todo porque OpenSSL pese a su importancia, es uno de los proyectos con más problemas de seguridad. 

Bitcoin Core se divide por la diatriba del tamaño de los bloques y SegWit

El problema del tamaño de los bloques que dejó fuera a Gavin Andresen seguía vivo. De hecho, el problema comenzaba a vislumbrarse claramente como muy grave para la escalabilidad del Bitcoin. En 2016, los desarrolladores decidieron que este problema empezaría a ser solucionado con una nueva característica. Esta era SegWit, y básicamente prometía llevar la escalabilidad del Bitcoin a un nuevo nivel.

Sin embargo, esto no era del todo cierto. SegWit por sí sola no solucionaba este problema, sino que preparaba la red para una característica adicional que sí lo haría, la futura Lightning Network. Esto llevó a que la comunidad de Bitcoin Core se enfrenta duramente. Sobre todo porque muchos veían con recelo como la empresa Blockstream que apoyaba a SegWit comenzaba a tomar mayor relevancia en el desarrollo de Bitcoin Core.

Los enfrentamientos duraron meses y tuvieron un alto costo, Bitcoin Core se dividió. Proyectos como Bitcoin Classic, Bitcoin Unlimited, Bitcoin XT y Bitcoin Cash tuvieron sus inicios en esta diatriba. Sin embargo, el desarrollo de Bitcoin Core no se resintió por esto, y continúa al día de hoy viento en popa.

Característica de software

Como mencionamos al principio, Bitcoin Core es mucho más que un cliente para Bitcoin. La verdad es que Bitcoin Core es un cliente completo o full client. Esto quiere decir que una instalación de Bitcoin Core cumple con lo siguiente:

  1. Es capaz de ejecutar un nodo de la red. Esto significa que Bitcoin Core puede descargar parte o la totalidad de la blockchain de Bitcoin y servir como un nodo de la red. Esto incluye la capacidad de verificar y validar la información de la red.
  2. Tienen la capacidad de ejecutar el protocolo de Bitcoin con todas sus características. Esto quiere decir que cualquier características o avance que esté en Bitcoin, es posible usarla con Bitcoin Core.
  3. Es capaz de crear una wallet en cualquier de sus tipos (de firma única o multifirma, con o sin soporte HD). De hecho, es posible usar Bitcoin Core como una cold wallet muy segura si se configura y usa de forma correcta.
  4. Maneja las transacciones a todo nivel permitiendo el reemplazo por fee o personalizando el fee de las mismas desde el principio.

Usando Bitcoin Core como tu wallet de bitcoins

Ahora bien, todo lo anterior es ciertamente sorprendente y atractivo, pero ¿Cómo puede usar Bitcoin Core? La respuesta para ello es muy sencilla: descárgalo y úsalo, es así de simple.

Aunque bien usar Bitcoin Core para un usuario novato puede ser agobiante, acá te guiaremos por algunas de las funciones principales de este software. Así pues, comencemos este viaje que te llevará a instalar Bitcoin Core y usarlo por primera vez.

Sigue leyendo: Billeteras de Bitcoin: Todo lo que necesitas saber

Descargando Bitcoin Core

Lo primero que debemos hacer para usar Bitcoin Core es descargarlo. En este punto no hay perdida, tan solo debes dirigirte a la web de Bitcoin Core.

Una vez allí, tan solo debes descargar la versión que se ajuste al sistema operativo que estés usando. Es importante destacar que las versiones soportadas oficialmente en Windows son las versiones de 64 bits. Las versiones de 32 bits están en modo mantenimiento. Para el resto de sistemas operativos existen versiones de 32 y 64 bits, pero las de 32 bits serán abandonadas tarde o temprano.

Para nuestro caso en específico descargamos la versión para Linux, pero tu debes tener el cuidado de descargar la versión para el sistema operativo que uses.

Una vez que descargues, descomprime el archivo y comenzaremos la segunda parte del proceso.

Iniciando el software de Bitcoin Core

Ya descargado y descomprimido el archivo, ejecutamos el programa bitcoin-qt, el cual nos permitirá usar la interfaz gráfica de Bitcoin. Así tenemos las siguientes imágenes

Al iniciar el programa lo primero que veremos es el proceso de inicio de sincronización. Este proceso de sincronización descargara parte del historial de la blockchain a nuestro computador. Con ello, nuestro Bitcoin Core será parte de la red de nodos de Bitcoin sumándose a los más de 9 mil nodos activos hasta la fecha. 

Por defecto, la descarga de la blockchain es limitada solo a 2 GB de datos. Estos se corresponden a los últimos 2 GB de datos de la blockchain hasta el momento en que empiece la sincronización. 

Secciones del programa Bitcoin Core

En este punto podemos ver todas las secciones del programa. En primer lugar, si ocultamos el cuadro de sincronización veremos la sección de Vista General.

Esta sección nos muestra la información de nuestro monedero. La cantidad de Bitcoin disponibles, pendientes por confirmar y el total. Así como un recuadro donde se muestran las transacciones recientes que hemos realizado. 

La otra sección es la de Enviar

Acá se nos muestra las opciones para que podamos generar una transacción de Bitcoin y enviarla a otra dirección. Podemos decidir cómo enviar los fondos, con que comisión de minería e incluso habilitar la opción de Replace-by-Fee (RBF). Esta última nos permite aumentar la comisión de minería de nuestra transacción para que la misma sea confirmada más rápidamente. 

Por otro lado, tenemos la vista Recibir

Acá podemos generar una solicitud de pago que podemos enviar a una persona para recibir de su parte un pago. Podemos definir toda la información, desde crear una etiqueta, definir el monto en BTC hasta generar una nota de pago. Como resultado, obteniendo como resultado una ventana con la siguiente información.

En dicha imagen podemos ver un código QR que al ser leído por una wallet automáticamente generará un pago por la cantidad de 1 BTC a la dirección que especificamos.  Esto facilita enormemente el proceso de cobro por servicios u otras operaciones en la que queramos un pago personal. 

Finalmente nos conseguimos con la sección Transacciones. En ella se nos mostrará el historial completo de transacciones que hayamos realizado con nuestro monedero.

Respaldando la información de nuestro monedero

Bitcoin Core es uno de los monederos de Bitcoin más seguros que existen en la actualidad, sin embargo, tiene ciertas particularidades. Una de ellas es que el respaldo del monedero requiere de cierto trabajo manual y periodicidad. No es nada complejo, pero es importante realizarlo al menos una vez por semana. La finalidad de esto es mantener nuestros fondos seguros y evitar la pérdida de los mismos en caso de que nuestro computador sea hurtado o se dañe. 

Para realizar este proceso de respaldo, todo lo que debes hacer es dirigirte al menú y seleccionar la opción “Copia de respaldo del monedero

Como ves es muy sencillo usar Bitcoin Core, de hecho, te invitamos a que lo hagas y sientas la tranquilidad de usar el cliente de Bitcoin más seguro que puedas imaginar. 

Allí podrás darle un nombre al archivo de respaldo el cual deberás resguardar de forma segura en un pendrive u otro medio al que solo tu tengas acceso. Recuerda siempre que este archivo contiene tu dinero, no lo dejes en cualquier sitio con acceso libre e inseguro.