¿Qué es bitcoin script?

bitcoin script
Wikicripto

¿Qué es bitcoin script?

Cuando hablamos de Bitcoin Script nos referimos a un lenguaje que posibilita todas las funciones de Bitcoin. Desde algo tan sencillo como realizar un envío de BTC hasta la creación de cuentas multiusuarios. Por eso hoy te contamos todo sobre qué es bitcoin script.

Bitcoin Script es un lenguaje de programación empleado para procesar todas las transacciones. Este lenguaje se lee de izquierda a derecha y se basa en un conjunto de estructuras lineales llamadas pila o stack. Estas estructuras contienen datos en orden LIFO y sus instrucciones se ejecutan una detrás de la otra de forma consecutiva.

Cabe destacar que este lenguaje no puede resolver cualquier problema como las máquinas Turing, ya que su funcionamiento está limitado a no realizar bucles. Sin embargo, esta limitación es intencionada, ya que en caso de haber algún error este no entraría en un bucle de repeticiones. De otro modo un atacante podría crear muchas operaciones altamente complicadas para consumir el total de la tasa de hash y ralentizar el sistema mediante bucles.

¿Por qué Bitcoin necesita un lenguaje de programación?

Se necesita un lenguaje de programación en una red porque es lo que nos permite escribir otros programas y hacer que los ordenadores los ejecuten. En el caso de Bitcoin para hacer que los ordenadores ejecuten nuestros deseos necesitamos códigos de operación u OP CODES. Estos códigos cumplen funciones como las matemáticas, los bucles, la manipulación de memoria o las llamadas a funciones.

Por esta razón existe Bitcoin Script, para ser un conjunto de instrucciones que registran cada transacción realizada. En estas instrucciones está registrada la descripción de cómo los usuarios pueden acceder a la red Bitcoin y hacer uso de las monedas.

El lenguaje Script se creó en Bitcoin con el objetivo de ofrecer una serie de parámetros flexibles y sencillos que hacen posible una transacción. Cuando se desarrolló Bitcoin, Satoshi Nakamoto se encargó de deshabilitar funciones como la multiplicación. Esto hizo que el script de Bitcoin sea simple en la programación.

Este lenguaje actualmente es quien nos permite enviar una transacción que se valide a sí misma si ciertas condiciones se cumplen. Esta es una de las propiedades que solo podemos encontrar en las criptomonedas. Es algo que obviamente no encontraremos en el dinero de papel y tampoco en el dinero digital actual.

¿Cómo funciona un Bitcoin Script?

Un script es básicamente lo que determina si una operación está autorizada para la transferencia de los fondos en la red Bitcoin. En resumen, el Bitcoin Script se creó con la intención de otorgar la naturaleza programable de Bitcoin.

Uno de los Bitcoin Script más usados actualmente es el script P2PKH. A continuación veremos cómo funciona y explicaremos su comportamiento. Los Bitcoin Script son necesarios para realizar cualquier acción en Bitcoin. Cada acción se lleva a cabo por uno específico que dicta lo que se va a realizar.

No puede pasar nada en una operación que no esté dictado por un Bitcoin Script. Por ejemplo, si quisiéramos realizar una transacción, el lenguaje de bitcoin estaría dividido en dos partes, las secciones y el contenido del Bitcoin Script.

Por ejemplo, para realizar una transacción de P2PKH o Pay to Public Key Hash cada sección de la mano de su contenido sería: 

ScriptPubKey-12higDjoCCNXSA95xZMWUdPvXNmkAduhWv

ScriptSig-304502203f004eeed0cef2715643e2f25a27a28f3c578e94c7f0f6a4df104e7d163f7f8f022100b8b248c1cfd8f77a0365107a9511d759b7544d979dd152a955c867afac0ef78601

Este modelo de script es un script estándar que representa la forma más utilizada para enviar BTC. De primeras puede parecer una mezcla de números y letras totalmente difícil de entender, pero no es más que un sistema simple escondido tras mucha complejidad.

Esta transacción se divide en dos partes, la scriptPubKey y scriptSig. En la primera parte encontramos las acciones que se deben realizar en la transacción mientras que en la segunda encontramos la clave pública y la firma que ayudarán a verificar la autenticidad de la misma. De este modo la programación se asegura de que solo el usuario que tiene acceso a los fondos pueda moverlos.

En esta transacción también intervienen los OP Codes. Estos se encargan de crear estructuras avanzadas y programar operaciones dentro de la blockchain. Algunos se encargan de codificar entradas, otros verifican que los datos sean correctos y válidos, y otros duplican elementos. Cada uno tiene su propia función.

¿Cómo se ejecuta un Script?

Durante la ejecución del script primeramente se duplica la clave pública original del dueño de los fondos. Seguidamente esta misma clave pública pasa por un proceso de hashing. En este proceso el hash aplicado es SHA-256 y a la combinación resultante se le aplica el hash RIPEMD-160.

Posteriormente el resultado de los hashes se compara con el mismo hash que se encuentra en la clave pública del scriptPubKey para asegurar que sea la misma clave y esté verificada como válida. En caso de que coincida, el script procede a ejecutarse y se pasa al CHECKSIG donde se verifica la firma con la clave pública.

Con este orden se logra ejecutar todo lo programado en el script de forma ordenada y segura.

Smart Contract de Bitcoin

Los smart contracts de Bitcoin son contratos digitales programables que se ejecutan en la cadena de bloques de Bitcoin utilizando el lenguaje de programación Bitcoin Script. Un smart contract de Bitcoin es básicamente un conjunto de reglas y condiciones que se ejecutan automáticamente cuando se cumplen ciertas condiciones predefinidas. Estas reglas y condiciones se establecen en el código del contrato, que se escribe utilizando Bitcoin Script.

Los smart contracts de Bitcoin permiten la creación de acuerdos digitales que son inmutables, transparentes y seguros. Pueden utilizarse para automatizar una amplia gama de transacciones y operaciones financieras, incluyendo el intercambio de criptomonedas, la gestión de identidad y la emisión de tokens.

Los smart contracts de Bitcoin funcionan mediante la programación de una serie de condiciones en el código del contrato. Estas condiciones pueden incluir, por ejemplo, la transferencia de fondos entre cuentas cuando se cumplen ciertas condiciones, como la llegada de una fecha determinada o la verificación de una firma digital. Una vez que se han establecido las condiciones, el contrato se carga en la cadena de bloques de Bitcoin, donde se ejecuta automáticamente cuando se cumplen las condiciones.

La programación de smart contracts de Bitcoin requiere conocimientos avanzados de Bitcoin Script y la programación en general. Sin embargo, existen varias herramientas y plataformas que pueden ayudar a simplificar el proceso de creación de smart contracts, como la plataforma de contratos inteligentes RSK.

En pocas palabras, los smart contracts de Bitcoin son contratos digitales programables que se ejecutan en la cadena de bloques de Bitcoin utilizando el lenguaje de programación Bitcoin Script. Permiten la automatización de transacciones y operaciones financieras y son inmutables, transparentes y seguros. Su programación requiere conocimientos avanzados de Bitcoin Script y programación, pero existen herramientas que pueden ayudar a simplificar el proceso.

Características de Bitcoin Script

Como ya sabemos, Bitcoin Script es el lenguaje de programación utilizado por Bitcoin para permitir la creación de scripts y contratos inteligentes que se ejecutan en la cadena de bloques. A continuación veremos algunas de las características más importantes de Bitcoin Script:

  1. Lenguaje de programación minimalista: Bitcoin Script es un lenguaje de programación minimalista que permite la creación de scripts simples y eficientes. Esto se debe a que fue diseñado para ser utilizado en la cadena de bloques de Bitcoin, que tiene recursos limitados.
  2. Diseñado para ser seguro: Bitcoin Script fue diseñado con la seguridad en mente. Los contratos inteligentes creados con Bitcoin Script están diseñados para ser inmutables y no se pueden modificar una vez que se han ejecutado en la cadena de bloques. Además, Bitcoin Script también cuenta con una serie de medidas de seguridad incorporadas para proteger los fondos de los usuarios.
  3. Soporta operaciones básicas: Bitcoin Script es capaz de realizar operaciones básicas, como sumas y restas, comprobaciones de igualdad y verificaciones de firma digital, lo que permite la creación de contratos simples pero potentes.
  4. No es Turing completo: A diferencia de otros lenguajes de programación, Bitcoin Script no es Turing completo, lo que significa que no puede realizar todas las tareas que pueden realizar otros lenguajes. Esto se debe a que Bitcoin Script fue diseñado específicamente para la cadena de bloques de Bitcoin y no necesita ser tan potente como otros lenguajes.

En resumen, Bitcoin Script es un lenguaje de programación minimalista diseñado para ser seguro y eficiente. Es capaz de realizar operaciones básicas y está diseñado para la creación de contratos inteligentes en la cadena de bloques de Bitcoin. Aunque no es Turing completo, es una herramienta poderosa para la creación de contratos simples y seguros en la cadena de bloques.