CriptoDinero
Bitcoin

¿Qué significa que el código de Bitcoin sea abierto?

Alan Savedra
18 noviembre, 2019

El código de Bitcoin es abierto. ¿Esto qué supone y qué no? ¿Cualquiera puede implementar cambios? ¿Qué tipos de software interactúan con Bitcoin? ¿Pueden ser de código cerrado? ¿Dónde se puede ver y revisar el código original de Bitcoin?

Código de Bitcoin bajo licencia MIT

Satoshi Nakamoto registró Bitcoin bajo la licencia MIT, un tipo de licencia de software libre, que tiene pocas limitaciones para su reutilización, además de ser compatible con otras licencias, incluso de software propietario.

Esta licencia concede a cualquier usuario la opción de utilizar el código para el desarrollo de otros proyectos, sin necesidad de que sean de código abierto como Bitcoin.

Que sea de código abierto habilita a que cualquiera pueda revisar y reutilizar su código fuente.

Pero esto no significa que cualquiera pueda modificar el código original de Bitcoin.

¿Qué es «código abierto»?

Aplicado a la tecnología, «open source» es una concepción y modelo de desarrollo basado en la colaboración libre, abierta a múltiples contribuciones.

Refiere a un conjunto de licencias que permite acceder al código, revisarlo, comprenderlo e incluso proponer mejoras, así como crear versiones propias basadas en el código original.

En palabras de Bruce Perens, fundador de Linux Standard Base, UserLinux y autor del concepto de «código abierto»:

«El código abierto es una forma para que las personas colaboren en el software sin verse afectados por todos los problemas de propiedad intelectual. Tener que negociar contratos cada vez que compra un software. Tener muchos abogados involucrados. En general, solo queremos que el software funcione y queremos que las personas contribuyan con soluciones, por lo que sacrificamos algunos de los derechos de propiedad intelectual y simplemente dejamos que todo el mundo use el software».

El código de Bitcoin es abierto por seguridad

La elección de Satoshi Nakamoto por una licencia de código abierto responde, en parte, a motivos de seguridad.

El 10 de diciembre de 2009 un usuario preguntó en el foro Bitcointalk:

«He visto que el código fuente de bitcoin está abierto para todos. ¿Puede ser esto un peligro real? Si se manipula el código, las personas pueden crear más bitcoins que otros, ¿no? Esto sería una fuga masiva de seguridad».

Ese mismo día, Satoshi Nakamoto respondió:

«No, los otros nodos no aceptarán eso.

Ser de código abierto significa que cualquiera puede revisar el código de forma independiente. Si fuera de código cerrado, nadie podría verificar la seguridad. Creo que es esencial que un programa de esta naturaleza sea de código abierto».

¿Cualquiera puede implementar cambios en el código de Bitcoin?

Bitcoin es de código abierto, pero no cualquiera puede acceder para implementar cambios en su protocolo original.

Otra cosa son aquellas «altcoins», que clonan Bitcoin y a partir de allí las modifican.

Para participar y hacer posibles modificaciones o mejoras al código original, los desarrolladores deben lanzar sus propuestas, las llamadas «pull request«.

En estos momentos, hay más de 300 abiertas y más de 11.800 pull request cerradas.

Softwares de código abierto y código cerrado conviven en el ecosistema Bitcoin

Bitcoin conjuga una serie de reglas de consenso para garantizar el funcionamiento de una moneda digital distribuida de igual a igual (peer-to-peer).

Los usuarios que operan nodos de Bitcoin cumplen las mismas reglas de consenso, pero no todos participan con el mismo tipo de software. Algunos utilizan componentes de código abierto, otros no.

Por ejemplo, Bitcoin Core es un software gratuito de código abierto, que a la vez opera como un nodo completo Bitcoin para validar la cadena de bloques, además de ofrecer una billetera.

Descendiente directo del cliente de software original de Bitcoin lanzado por Satoshi Nakamoto tras la publicación del documento técnico de Bitcoin, Bitcoin Core es la implementación más popular de un nodo completo de Bitcoin.

Se le llamó Bitcoin Core para diferenciarlo de la red Bitcoin, es decir del conjunto de nodos que construye y compone la red.

Actualmente, es la que cuenta con mayor cantidad de nodos –casi 9.000. La mayoría de los nodos hoy ejecutan el software de Bitcoin Core, pero en la red existen otros varios nodos distribuidos en el mundo.

Ante la pregunta «¿es Bitcoin completamente de código abierto?, el usuario RedGrittyBrick explicó en el foro bitcoin.stackexchange que no todos los nodos deben ejecutar el mismo tipo de software.

También pueden haber nodos que cumplan las mismas reglas y el mismo trabajo que las implementaciones de software de código abierto, pero utilizando software propietario.

Echando aún más claridad al asunto, Pieter Wuille -uno de los desarrolladores más visibles de Bitcoin Core- señala en el mismo hilo del foro:

«Es como preguntar si Internet es de código abierto. Ciertamente, una gran parte de la infraestructura que soporta Internet es de código abierto, pero allí también hay piezas menos abiertas. Quizás una mejor pregunta es si puede interactuar completamente con Bitcoin solo con software de código abierto, en cuyo caso la respuesta es sí».

Dicho de otra manera, los nodos, equipos de minería, servicios de billeteras y otros elementos del ecosistema Bitcoin utilizan softwares registrados bajo diferentes licencias.

Por ejemplo, el software de código abierto que está detrás de los nodos y billeteras de Bitcoin Core.

Aunque estos interactúan, a la vez, con otros nodos, productos y servicios de código cerrado, como ser algunos servicios de billeteras o dispositivos de hardware de minería ASIC.

Dispositivo Antminer – ASIC

Para la implementación de la criptografía, el registro de transacciones públicas e inmutables en una blockchain y un sistema descentralizado de usuario a usuario -componentes cruciales de Bitcoin-, se utilizan diferentes tipos de software, que pueden ser de código abierto o no.

¿Dónde está el código de Bitcoin?

El código de Bitcoin se encuentra en el siguiente enlace:

Código de Bitcoin Core – Github

Descargar nodo completo Bitcoin Core

Consejos de Andreas Antonopoulos para desarrolladores blockchain

La seguridad de Bitcoin es uno de sus atributos más valorados.

Una cualidad sustentada, en gran parte, en el uso de criptografía y respaldada por su estructura y funcionamiento descentralizado.

Por un lado, la descentralización de la «minería» y nodos, usuarios con el rol de garantizar la validación de las transacciones en la blockchain de Bitcoin, en vez de acudir a bancos u otros entes centrales.

Pero además, está el control descentralizado de las claves, esto es: en manos de cada usuario.

Para aprovechar el modelo de seguridad de Bitcoin, el experto Andreas Antonopoulos sugiere a los desarrolladores que quieran participar del ecosistema no incorporar modelos centralizados.

Al respecto, el especialista recomienda con énfasis:

  1. no quitar el control de las claves a los usuarios
  2. no quitar las transacciones de la blockchain de Bitcoin

Dado que los esquemas de seguridad centralizados han evidenciado numerosos baches, la recomendación del especialista y escritor de mantener intacto el modelo de seguridad propuesto por Bitcoin.

Sin salir del entorno de las criptomonedas, existen múltiples y populares casos de hackeos contra exchanges centralizados. Por tener los fondos de los usuarios en un único servidor, han desaparecido, sin poderlos recuperar.

El experto desestimula la tendencia habitual de sacar las transacciones de la cadena de bloques, una práctica a menudo orientada a acelerar las transacciones o a reducir las tarifas de las operaciones.

«Un sistema «fuera de la cadena de bloques» registrará las transacciones en un libro mayor interno y centralizado y solo ocasionalmente las sincronizará con la cadena de bloques de bitcoin. Esta práctica, nuevamente, sustituye la seguridad descentralizada de bitcoin con un enfoque patentado y centralizado».

En otras palabras, la tan destacada seguridad de las transacciones de Bitcoin tiene lugar solo en su blockchain.

Procesarlas fuera de esa cadena, a través de un sistema centralizado, es desnaturalizar la propia seguridad y red de Bitcoin.

Quitar las transacciones de su contexto natural conlleva riesgos, como el desvío de fondos del usuario y otras vulnerabilidades ya vistas en modelos centralizados.

Ver: ¿Por qué no se puede hackear Bitcoin?

Fuente para ampliar:

Open source money: Bitcoin, blockchain, and free software



Copyright 2016 - 2022 © CriptoDinero - Todos los derechos reservados