El código abierto y su importancia para las criptos y proyectos blockchain

El código abierto es de todos y es de nadie. Miles de programadores se comprometen, por interés propio, a contribuir con el desarrollo de proyectos de este tipo. Las iniciativas blockchain públicas y de criptomonedas suelen basarse en este modelo.

0
3006
código abierto id

El código de programación sobre el que se construye cada cadena de bloques del total de las criptomonedas importantes se desarrolla como software de código abierto. Los reguladores y formuladores de políticas que vigilan las monedas virtuales, pero que no están familiarizados con el software de código abierto, pudieran tener una percepción equivocada de las cosas: una en el que todos sistemas basados ​​en software deben ser (como ha sido hasta ahora) desarrollados por una o un grupo de compañías con fines de lucro.

Si bien se desarrollan muchos proyectos importantes de software de esta manera (por ejemplo, Windows, de Microsoft, o los sistemas de bases de datos Oracle), los proyectos de código abierto son harina de otro costal, y esa diferencia debe ser tomada en cuenta por los reguladores en la ejecución de su trabajo.

«Todos para uno y uno para todos»

El software de código abierto es producto de la colaboración de infinidad de personas, es compartido libremente, se publica de manera transparente y se desarrolla para ser una comunidad, en lugar de ser propiedad o negocio de una sola compañía o ente.

Al igual que no hay una sola compañía que provea la infraestructura de la red Bitcoin, tampoco hay una compañía detrás del software que hace funcionar a las carteras, nodos y transacciones de esta criptomoneda. Esta descentralización en la producción de tecnología tiene varios beneficios profundos y puede ser difícil de comprender para aquellos que sean ajenos al mundo del desarrollo de software.

Para comprender mejor el poder y la naturaleza del código abierto, es útil conocer primero un poco sobre un caso verdaderamente exitoso de software de código abierto: el sistema operativo Linux.

Publicidad

El código abierto está en todas partes

Sin darnos cuenta, tenemos contacto con Linux muchas veces durante el día. Linux es el sistema operativo que se ejecuta en la gran mayoría de los servidores de Internet. Siempre que entramos a Facebook, Wikipedia, Google, y miles de otros sitios web, los servicios que el sitio ofrece para el usuario (ya sea redes sociales, motores de búsqueda, fotografías o información educacional) provienen de una computadora, y es bastante probable que esa computadora esté ejecutando un sistema operativo llamado Linux.

Linux no está solamente al otro lado de la navegación web, también lo encontramos en los dispositivos de uso cotidiano. Si el teléfono inteligente que emplea a diario utiliza Android, dicho sistema operativo se basa en Linux. Al encender un Chromebook, estás usando una computadora portátil con Linux. Además, encontramos a Linux cada vez más integrado en televisores, termostatos, sistemas de entretenimiento de líneas aéreas, automóviles y más.

Bueno, ¿y qué hay con eso? se preguntarán muchos. Es importante, porque Linux no es el producto de uno o un puñado de programadores, y (a diferencia de Windows, de Microsoft, o MacOS, de Apple o) no ha sido desarrollado por una o varias corporaciones.

Por el contrario, Linux tiene miles de co-autores individuales. En el 2015, Según la Fundación Linux (la asociación sin fines de lucro dedicada a promover el desarrollo abierto de este sistema operativo) informó que, alrededor de 14.000 desarrolladores pertenecientes a más de 1.300 compañías diferentes habían contribuido en la programación del kernel de Linux.

código abierto colab

Ese mismo año, 2.355 desarrolladores se sumaron para hacer su primera contribución al código fuente del sistema operativo. Extrapolando esas cifras, podríamos suponer que, para el 2017, alrededor de 18.000 personas habrán contribuido al código, y fácilmente, este número seguirá en aumento.

Ventajas del código abierto

El libro de Eric Raymond “La Catedral y el Bazar” (1996) describe cómo el código abierto representa una nueva manera de producción tecnológica. Linux, con miles de desarrolladores no afiliados que trabajan en colaboración pública, es el clásico ejemplo del modelo de código abierto. Las criptomonedas siguen este modelo también, a lo que volveremos más adelante.

Raymond identificó varias ventajas del modelo de código abierto:

  • «Todo buen trabajo de software comienza por el interés personal de un desarrollador«. La mayoría de los desarrolladores en un proyecto de código abierto están motivados principalmente porque quieren usar el producto que están haciendo. No están bajo contrato para construir algo para un tercero. Tienen una necesidad personal y están trabajando en ella. Esto es un verdadero aliciente y se involucran totalmente en lo que están haciendo.
  • Los buenos programadores saben qué escribir. Los grandes saben qué reescribir (y reutilizar)”. Cuando el desarrollo ocurre abiertamente, se puede evitar la redundancia y se puede identificar y simplificar el código problemático, complicado o redundante.
  • «Cuando pierdes interés en un programa, tu último deber es entregarlo a un sucesor competente«. Las personas entran y salen de un proyecto de código abierto en función de sus intereses y experiencia. Nadie se queda estancado trabajando en proyectos que ya no les importan, y las mentes frescas parecen traer enfoques novedosos para la solución de problemas aún sin resolver.
  • «Tratar a sus usuarios como co-desarrolladores es la ruta menos azarosa para una rápida mejora del código y una depuración efectiva«. Muchas de las personas que usan el software de código abierto también podrán identificar y marcar problemas, y los de pensamiento verdaderamente analítico podrán hasta ofrecer soluciones. La línea entre un consumidor y un productor de software de código abierto se difumina, porque la producción se realiza de manera transparente a la vista del público y la participación en la producción está disponible para todos.
  • «Dada una base suficientemente grande de co-desarrolladores y probadores del código, casi todos los problemas serán rápidamente ubicados y la solución será obvia para alguien«. Esto se conoce como la Ley de Linus, nombrada así en honor a Linus Torvalds, el creador original y principal desarrollador del sistema operativo Linux.

Transparente, robusto y gratuito

Cuando el desarrollo no es abierto, los desarrolladores pueden caer en el mismo punto ciego o dejar de notar cierto error. Un desarrollo más amplio, en el que colaboren personas con distintas perspectivas y trayectorias, aumenta la probabilidad de que los errores se descubran y se solucionen, lo que hace que el software de código abierto sea más robusto y seguro.

El resultado del desarrollo de software de código abierto es un código altamente resistente, creado por usuarios y para servir a otros usuarios. El objetivo no es producir algo que enriquezca a una compañía que fabrique y venda el producto, sino, más bien, construir software que resuelva un problema tan frecuente que una gran comunidad de habilidosos programadores esté feliz de dedicar sus esfuerzos a ello.

Publicidad

código abierto linux

El resto de usuarios, no programadores, se beneficia en gran manera de este modelo. El software gratuito se materializa, efectivamente, de la nada, todos pueden usarlo de forma libre, y permanece actualizado, siempre y cuando una base de usuarios expertos (lo que incluye a las empresas privadas) siga también interesada en usar el código.

Aspectos legales

En algunos casos, los acuerdos legales apoyan y fomentan el desarrollo de código abierto. El software de código abierto, como todo software, tiene derechos de autor. Sucede que sus autores liberan el código bajo una licencia (como la licencia MIT) que le permite a cualquiera usarlo y modificarlo sin necesitar una autorización específica o realizar pago alguno a los creadores originales.

Algunas licencias incluso imponen una condición simple para futuros usos y modificaciones, lo que requiere, por ejemplo, que las versiones derivadas se publiquen, a su vez, bajo las mismas licencias no propietarias (LGPL-3), extendiendo de esta forma la base disponible de programas de código abierto.

Código abierto en proyectos de criptomonedas

El sistema operativo Linux es, quizá, el ejemplo más grande e importante del modelo de código abierto, pero existen muchos otros. Entre ellos se encuentran todas las principales criptomonedas y proyectos de blockchain. Todos estos proyectos crean redes de computación que permiten a los participantes llegar a un acuerdo sobre los datos compartidos (la estructura de datos llamada cadena de bloques). El software que permite que cualquier participante en particular se conecte a la red se denomina cliente, y ese software cliente se desarrolla y lanza como código abierto.

Por ejemplo, el cliente referencial de Bitcoin Core es producto de más de 15.000 contribuciones de código únicas, aportadas por más de 450 desarrolladores que trabajan por su cuenta. El software está disponible, de forma gratuita, para uso y modificación bajo la licencia de derechos de autor de MIT.

El historial completo de ese desarrollo se puede ver en un repositorio de software público alojado por Github, un proveedor de servicios en la nube que permite a cualquier persona registrarse para obtener una cuenta. El programador sube un nuevo código y los cambios van quedando registrados.

El repositorio público también realiza un seguimiento de las llamadas «bifurcaciones» del código en el cliente. Un «fork» crea un clon del software original, que luego puede modificarse para algún propósito específico, dejando el original intacto.

Publicidad

Los desarrolladores bifurcan libremente el repositorio de Bitcoin Core en Github para (a) crear aplicaciones específicas compatibles con Bitcoin para determinados propósitos (por ejemplo, una aplicación de billetera para teléfonos inteligentes) o (b) construir una nueva criptomoneda que deje de ser compatible con la red de Bitcoin y, por lo tanto, cree una nueva red de monedas virtuales (como Litecoin o Zcash). Hasta la fecha, el cliente de referencia de Bitcoin Core ha sido bifurcado numerosas veces, y los nuevos repositorios para esas bifurcaciones muestran el estado de desarrollo en curso de esos proyectos.

Ethereum también es código abierto

El proyecto Ethereum actualmente consta de, al menos, 121 repositorios de software separados, cada uno de los cuales se centra en diferentes aspectos del proyecto (por ejemplo, lenguajes de programación para redactar contratos inteligentes, navegadores gráficos de usuarios finales para interactuar con la red de Ethereum y clientes compatibles para formar parte del proyecto).

código abierto eth

Hay no menos de ocho proyectos de software para desarrollar clientes compatibles con Ethereum y los clientes más populares (go-ethereum y Parity) tienen cientos de desarrolladores independientes que contribuyen con el software. El código del proyecto Ethereum (y el historial completo de ese código) está, como Bitcoin, disponible públicamente en Github y otros repositorios en línea. Todo el código se publica bajo la licencia LGPL-3 (licencia pública general reducida).

Incluso los proyectos encabezados por startups financiadas con fondos privados muestran un fuerte compromiso con el espíritu de código abierto. La compañía Zcash desarrolla el protocolo propio de manera abierta, a través de un repositorio público. Zcash no emplea a muchos contribuyentes importantes, y crearon una organización sin fines de lucro para guiar una transición del desarrollo centrado en la compañía al desarrollo centrado en la comunidad a largo plazo.

El código base de Zcash se publica bajo la licencia de derechos de autor del MIT. Protocol labs, desarrollador de Filecoin, tiene la intención de seguir un modelo abierto similar y, anteriormente, ha implementado el modelo de código abierto de desarrollo en su proyecto IPFS.

El código abierto es vital

Las criptomonedas y las redes de blockchain abiertas pueden proporcionar una funcionalidad que se regularía si fuera provista por una sola corporación. Para ilustrar, los emisores centralizados de moneda digital se consideran empresas de servicios monetarios y debe registrarse en FinCEN (Control de Delitos Financieros del Dpto. del Tesoro) y tener una licencia para transmitir dinero en todos los estados.

Si tales emisores deciden comercializar sus tokens como una inversión, entonces los tokens serán considerados valores y, con toda probabilidad, las compañías deberán estar registradas en la SEC. Estas regulaciones tienen sentido, porque los servicios centralizados conllevan el riesgo de que la parte intermedia no cumpla sus promesas, o no pruebe y asegure adecuadamente los productos que ofrece.

Por otro lado, tecnologías como Bitcoin pueden crear el mismo resultado funcional con una red abierta y distribuida, en lugar de una corporación que lo controle todo. Los usuarios se unen a estas redes y el software de código abierto enfoca sus incentivos hacia la cooperación y, en última instancia, el acuerdo sobre cada porción de datos necesarios para hacer que una criptomoneda funcione.

código abierto criptos

Esa descentralización se basa en los mecanismos abiertos de consenso y el software de código abierto. Si el código no fuera de tipo abierto, ¿cómo podrían los participantes entender y confiar en el sistema al cual se unen? Ciertamente, algunos proyectos de tokens basados ​​en código privado pueden ser simplemente proveedores de servicios centralizados, camuflados detrás de la parafernalia de las cadenas de bloques y las monedas digitales.

Sin embargo, para los proyectos genuinos en este espacio, el código que construye una red distribuida, que permite a los participantes confiar entre sí, alinear sus incentivos y castigar el fraude, es, en sí mismo, descentralizado. Ha sido desarrollado de forma abierta, transparente y gratuita por cientos de usuarios apasionados, para que el mundo lo use, totalmente independiente de uno o, incluso, un puñado de intereses corporativos cuyo fin último todos conocemos.