Bitcoin Script: Enfócate en los Fundamentos, No Persigas Espejismos
Todo lo que se construye sobre Bitcoin y que conocemos hoy en día es gracias a las primitivas que soporta Bitcoin Script. ¿A qué me refiero con primitivas? A los componentes básicos de un lenguaje de programación que puedes usar para construir aplicaciones reales. Ningún lenguaje de programación se diseña específicamente para una sola aplicación, es decir, para crear un único programa. Están diseñados para soportar primitivas básicas, como operaciones matemáticas para manipular datos, o la creación de estructuras de datos básicas para almacenar información de una cierta manera, u operaciones para iterar sobre los datos mientras se manipulan.
Primitivas Básicas en el Diseño de Script de Bitcoin
Las primitivas básicas están diseñadas de tal manera que los desarrolladores puedan decidir cómo usarlas para crear una aplicación o programa real. El diseño central del lenguaje no se enfoca necesariamente en lo que las personas harán con él, sino en que las primitivas del lenguaje no se combinen de manera que, 1) no logren lo que el desarrollador intenta sin que este entienda por qué, o 2) logren lo que el desarrollador intenta de una manera perjudicial para el usuario final.
Nadie diseña un lenguaje de programación pensando desde el principio, «Oh, queremos permitir que los desarrolladores hagan A, B y C, pero impedir completamente que hagan X, Y y Z.» Bitcoin Script no es diferente a otros lenguajes de programación, excepto en un aspecto: lo que significa que una cierta combinación de primitivas sea perjudicial para los usuarios finales.
Propiedades Únicas del Bitcoin
Bitcoin tiene dos propiedades que las aplicaciones informáticas generales no tienen: la blockchain y que lo que se ejecuta en ella debe ser plenamente verificado por todos los usuarios que operan un nodo completo, y la progresión del sistema está asegurada por incentivos financieros que deben mantenerse en equilibrio. Aparte de estas consideraciones adicionales, Script es como cualquier otro lenguaje de programación, debe incluir primitivas que permitan a los desarrolladores construir cosas útiles para los usuarios sin que se combinen de maneras perjudiciales.
Debate sobre las Nuevas Primitivas
Todas las conversaciones sobre los softforks para añadir convenios (nuevas primitivas) se han degradado, al menos en el ámbito público, en exigencias ridículas sobre para qué se utilizarán. Eso no solo es imposible de predecir, sino que tampoco es lo importante. Lo que se construirá con Script es tangencial a los riesgos que deben ser analizados, la interacción con la capa base es el riesgo principal. ¿Qué costos impondrá y cómo se pueden restringir? ¿Cómo pueden estos costos en la capa base desbalancear los incentivos? Esto es un gran riesgo del MEV.
Enfoque en lo que Realmente Importa
Estas preguntas pueden ser analizadas sin enfocarse obsesivamente en todo lo que se puede construir con una primitiva. Las primitivas pueden ser restringidas en la capa base en términos de costo de verificación y complejidad. Lo más importante, en términos de incentivos, es que lo que las nuevas primitivas habilitan se puede comparar con lo que ya es posible construir hoy. Si las nuevas primitivas simplemente mejoran el modelo de confianza para los usuarios finales de sistemas que ya pueden construirse y que influyen en los incentivos del sistema, sin empeorar materialmente dicha influencia, entonces no se introduce un nuevo riesgo real.
Estas conversaciones necesitan comenzar a enfocarse en lo que realmente importa, la nueva funcionalidad frente al daño al usuario final. Se han descarrilado casi por completo, nuevamente en el ámbito público y no en círculos técnicos, en argumentos sobre si los usuarios finales deben poder hacer ciertas cosas o no. Esa no es la conversación que importa. Lo que importa es proporcionar funcionalidad valiosa a los usuarios finales sin crear consecuencias perjudiciales.
La gente necesita centrarse en las primitivas, y no en las ilusiones que oyen a lo lejos.
Preguntas Frecuentes
- ¿Qué son las primitivas en Bitcoin Script?
Son los componentes básicos de un lenguaje de programación que permiten a los desarrolladores crear aplicaciones sobre la plataforma Bitcoin.
- ¿Por qué es importante analizar las primitivas en lugar del resultado final?
Porque el análisis debe centrarse en la interacción con la capa base y los incentivos, no en todas las posibles aplicaciones que podrían desarrollarse.
- ¿Cuáles son los riesgos asociados a las nuevas primitivas de Bitcoin Script?
El riesgo principal es cómo estas nuevas primitivas pueden influir en los costos de verificación y en los incentivos del sistema sin crear riesgos adicionales para los usuarios.