¡No rompas el espacio de los usuarios!

«Mauro, ¡CÁLLATE LA BOCA! Es un error, está bien – en el kernel. ¿Cuánto tiempo has sido un mantenedor? ¿Y todavía no has aprendido la primera regla del mantenimiento del kernel? Si un cambio resulta en la ruptura de programas de usuario, es un error en el kernel. Nunca culpamos a los programas de usuario. ¿Qué tan difícil puede ser entender esto?» -Linus Torvalds

No rompas el espacio de usuario. Esta es la regla de oro de Linus Torvald para el desarrollo del kernel de Linux. Para aquellos de ustedes que no están familiarizados con la naturaleza de Linux, o los sistemas operativos en general, el kernel es el corazón y alma de un sistema operativo. El kernel es lo que realmente administra el hardware, moviendo bits entre el almacenamiento y la RAM, entre la RAM y la CPU mientras se realizan cálculos, y todos los pequeños dispositivos y piezas de la computadora real que necesitan ser controlados a nivel de hardware.

Cada aplicación o programa escrito para un sistema operativo tiene que interactuar con el kernel. Cuando descargas Photoshop o Telegram, todo lo que el programa está haciendo se reduce esencialmente a llamar al kernel. «Oye kernel, toma lo que acabo de escribir y procésalo y envíalo a través de una conexión de red al servidor». «Oye kernel, toma el cambio de color que hice en esta imagen, sácalo de la RAM y envíalo a la CPU para modificarlo, luego devuélvelo a la RAM».

Cuando el kernel es cambiado, de manera similar a Bitcoin, el objetivo principal de los desarrolladores es asegurar que las aplicaciones existentes que asumen una forma específica de interactuar con el kernel no se rompan debido a un cambio en el kernel. Suena muy familiar a Bitcoin y la necesidad de mantener la compatibilidad hacia atrás para las actualizaciones de consenso de la red, ¿no es así?

"Compatibilidad con el kernel"

En serio. ¿Qué tan difícil es entender esta regla? Especialmente no rompemos el espacio del usuario con BASURA TOTAL. Estoy enojado, porque todo tu correo electrónico estaba tan _horriblemente_ equivocado, y el parche que rompió las cosas era tan obviamente basura. Todo el parche es una mierda increíblemente rota. Agrega un código de error insano (ENOENT), y luego, debido a que es tan insano, agrega algunos lugares para arreglarlo («ret == -ENOENT ? -EINVAL : ret»).

El hecho de que luego intentes *excusas* para romper el espacio de usuario, y culpar a algún programa externo que *solía* funcionar, es simplemente vergonzoso. No es así como trabajamos. Arregla tu «herramienta de cumplimiento» de m*erda, porque obviamente está rota. Y arregla tu enfoque en la programación del kernel. -Linus Torvalds

Linux es uno de los proyectos de código abierto más importantes, si no el más importante, en todo el mundo. Android funciona con Linux, la mitad de la infraestructura de backend (si no más) funciona con Linux. Los sistemas integrados que controlan todo tipo de cosas computarizadas en el fondo de tu vida, que ni siquiera considerarías, también funcionan con Linux. Literalmente, el mundo funciona con Linux. Puede que no haya conquistado el escritorio como muchos usuarios autistas de Linux querían ver, pero silenciosamente se ha comido casi todo lo demás en el fondo sin que nadie se diera cuenta.

"Linux domina el mundo"

Todas estas aplicaciones y programas que la gente usa en su vida diaria dependen de la suposición de que los desarrolladores del kernel de Linux no romperán la compatibilidad con versiones anteriores en las nuevas versiones del kernel para permitir que sus aplicaciones sigan funcionando. De lo contrario, cualquier cosa que ejecute aplicaciones debe seguir utilizando versiones anteriores del kernel o asumir la carga de alterar sus aplicaciones para interactuar con un cambio disruptivo en el kernel.

Dependencia de compatibilidad del kernel.

El camino más probable para el éxito de Bitcoin es un camino muy similar, simplemente convirtiéndose en una plataforma en la que se construyen aplicaciones y herramientas financieras de tal manera que la mayoría de las personas que las usan ni siquiera se den cuenta o consideren que «Bitcoin se comió el mundo». En una línea similar a Linux, esa regla de oro de «No romper el espacio de usuario» se aplica diez veces. El problema es la naturaleza de Bitcoin como un sistema de consenso distribuido, en lugar de un solo núcleo local que se ejecuta en la máquina de una sola persona, cambia drásticamente lo que significa «romper el espacio de usuario».

No solo los desarrolladores pueden romper el espacio de usuario, los propios usuarios pueden hacerlo también. Todo el último año de Ordinales, Inscripciones y tokens BRC-20 debería demostrarlo de manera definitiva. Esto plantea un dilema muy serio cuando se mira el mantra de «No romper el espacio de usuario» desde el punto de vista de los desarrolladores. Por mucho que a muchos Bitcoiners en este espacio no les gusten los Ordinales y estén molestos porque sus propios casos de uso están siendo interrumpidos por el tráfico de red que los usuarios de Ordinales están creando,

Ambos grupos son usuarios.

¿Cómo enfrentan los desarrolladores este problema? Un grupo de usuarios está rompiendo el espacio de usuario para otro grupo de usuarios. Enactar un cambio que impida el uso de Ordinales o Inscripciones viola explícitamente los mandatos de no romper el espacio de usuario. Estoy seguro de que la gente quiere decir «¡Taproot rompió el espacio de usuario!» en respuesta a este dilema, pero no lo hizo. La activación de Taproot y la posibilidad de que los datos de los testigos sean tan grandes como el tamaño completo del bloque no rompieron ninguna aplicación o uso preexistente construido sobre Bitcoin. Lo único que hizo fue abrir la puerta a nuevas aplicaciones y casos de uso.

¿Entonces, ¿qué hacemos aquí? Intentar filtrar o romper mediante un cambio de consenso, a las personas que hacen Inscripciones o intercambian Ordinales es violar fundamentalmente la máxima de «no romper el espacio de los usuarios». No hacer nada permite que una clase de usuarios rompa el espacio de usuarios de otra clase de usuarios. No hay una solución fundamental a este problema excepto violar la regla de oro, o implementar funcionalidades que permitan a la clase de usuarios cuyo espacio de usuarios está roto ahora adaptarse a las nuevas realidades de la red y mantener una versión viable de sus aplicaciones y casos de uso.

No romper el espacio de usuario de Bitcoin es de vital importancia para su éxito y funcionalidad continuos, pero no es tan simple como «no cambiar nada». Los cambios dinámicos en el comportamiento de los usuarios, que no requieren cambios en el protocolo en sí, pueden tener el mismo efecto al final del día que un cambio que rompa el protocolo. ¿Se supone que los desarrolladores deben elegir cuál espacio de usuario de aplicaciones se rompe para mantener el de otra aplicación? Yo diría que no, y además diría que cualquiera que defienda ese comportamiento de los desarrolladores está exigiendo que actúen de manera irresponsable y perjudicial para los usuarios del sistema. Entonces, ¿cuál es la respuesta aquí?

"Respetar espacio de usuario"

No hay respuesta más que seguir adelante y seguir agregando mejoras al protocolo que permitan que las aplicaciones que son afectadas por el comportamiento de ciertos usuarios funcionen en presencia de cambios emergentes en el comportamiento de los usuarios. De lo contrario, estás pidiendo a los desarrolladores que desechen la regla de oro y efectivamente jueguen como reyes en cuanto a qué casos de uso son viables para construir sobre Bitcoin.

"Avanzar y mejorar protocolo"

Si seguimos por ese camino, ¿qué estamos haciendo realmente aquí? No puedo decirte lo que estamos haciendo en ese momento, pero puedo decirte que ya no estamos construyendo un sistema distribuido y neutral.

Deja un comentario