-
Nix cuenta con un sistema operativo propio, NixOS.
-
Utiliza el navegador Tor para conexiones salientes y admite onion messages para las entrantes.
En el universo de clientes de Bitcoin, hay uno con algunas características peculiares: Nix. Este software se enfoca en la seguridad e incorpora una serie de principios y medidas para proteger los nodos de Bitcoin y las transacciones que en ellos se realizan.
La versión más reciente de Nix, la 0.0.94, ha mejorado su robustez y funcionalidad, según sus desarrolladores. En el resumen que se puede encontrar en el repositorio del cliente, se detalla que puede usarse “en wallets personales o de comercios, infraestructura pública o backends de aplicaciones en Bitcoin”. Con “infraestructura pública”, se hace referencia a nodos de Bitcoin o a la implementación de servicios y aplicaciones basados en su protocolo y abiertos al público en general.
Con esto, pese a que aún no se trata de una opción popular entre los nodos de Bitcoin, se posiciona para convertirse en una opción atractiva basada en tres principios: simplicidad, principio de privilegio mínimo y defensa en profundidad.
“nix-bitcoin puede utilizarse para monederos personales o de comerciantes, infraestructura pública o para backends de aplicaciones Bitcoin. En todos los casos, el objetivo es proporcionar seguridad y privacidad por defecto. Sin embargo, aunque nix-bitcoin se utiliza actualmente en producción, aún se considera experimental”.
—Repositorio de Nix.
Según se describe en su repositorio, todas las aplicaciones utilizadas en el entorno de Nix tienen la capacidad de utilizar Tor para establecer conexiones salientes. Tor es una red de anonimato en línea que permite a los usuarios ocultar su dirección IP y mantener su privacidad en internet.
Asimismo, las aplicaciones en el entorno de Nix admiten conexiones entrantes a través de servicios de cebolla (onion services). Los servicios de cebolla tienen direcciones web terminadas en «.onion” y permiten interactuar con otros nodos de Bitcoin de forma segura y privada, con conexiones encriptadas y enrutadas a través de la red de Tor.
Cómo funciona Nix
Nix es un administrador de paquetes, lo que significa que es una herramienta que se utiliza para instalar, actualizar y gestionar software. En este caso específico, Nix se encarga de gestionar los paquetes y dependencias necesarios para que el cliente de Bitcoin en un nodo funcione correctamente.
Nix se puede configurar en nodos de Bitcoin usando NixOS, un sistema operativo que oficia de plataforma para instalar y configurar el cliente de Bitcoin. NixOS ofrece una gestión declarativa y reproducible del sistema, junto con características de seguridad y personalización.
Además de la instalación y gestión de paquetes, Nix también ofrece características como la construcción reproducible, lo que significa que se pueden construir los paquetes desde el código fuente original de manera consistente en diferentes sistemas, lo cual es beneficioso para la seguridad y la verificación del software.
Los requerimientos mínimos de hardware que demanda Nix incluyen una memoria RAM de 2 GB (se recomienda utilizar memoria ECC y memoria DDR4 con targeted row refresh o TRR habilitado) y 500 GB de espacio en disco (400 GB para la cadena de bloques de Bitcoin y algo de espacio adicional para una instancia sin podar de Bitcoin Core).
Los principios de seguridad en Nix
Una de las características destacadas de Nix es su enfoque en la simplicidad. Este cliente solo instala los servicios habilitados en su archivo de configuración, lo que reduce el riesgo de posibles vulnerabilidades.
El segundo principio destacado en la descripción de este cliente de Bitcoin es el de integridad. En el contexto de Nix, se basa en garantizar que las dependencias y paquetes utilizados sean precisos, confiables y verificados. Así, según explican los desarrolladores, se toman medidas para asegurar que el software sea construido desde el código fuente, se firman los commits y se realizan aprobaciones por parte de múltiples desarrolladores. Además, se verifica criptográficamente los paquetes upstream y se utiliza el software internamente para garantizar su confiabilidad.
Otro aspecto importante de Nix es su principio de privilegio mínimo. Cada servicio dentro del cliente opera con los privilegios mínimos necesarios, lo que significa que tienen su propio usuario y están restringidos mediante características de seguridad adicionales. Esto ayuda a mitigar el riesgo de ataques y asegura que los servicios dentro de Nix operen de manera independiente y aislada, brindando una capa adicional de protección, explican sus creadores.
Además, como sucede con otros clientes de código abierto, el código de Nix se revisa y se refina de manera continua para asegurar su integridad y confiabilidad. Esto brinda a los usuarios la tranquilidad de saber que están utilizando un software que ha sido cuidadosamente desarrollado y sometido a rigurosas pruebas aunque, como se dijo, Nix todavía está en etapa experimental.
La defensa en profundidad es otra característica clave de Nix. Este cliente de Bitcoin cuenta con un kernel (parte central del sistema operativo que proporciona una interfaz entre el hardware y el software) endurecido y utiliza varias técnicas de seguridad, como el control de acceso discrecional, los espacios de nombres de Linux y el firewall de dbus.
Es importante tener en cuenta que la seguridad de Nix depende en gran medida del entorno en el que se implementa. Si la máquina desde la cual se ejecuta Nix es insegura, “no hay nada que Nix pueda hacer para garantizar su protección”.