-
Minsc está basado en el lenguaje de secuencia de comandos Miniscript.
-
Está implementado en el lenguaje Rust y el código fuente está ya en GitHub.
Un nuevo lenguaje de scripting o de secuencia de comandos, para la programación de contratos inteligentes en la red de Bitcoin, fue lanzado este martes 28 de julio. El lenguaje Minsc fue anunciado por uno de sus desarrolladores, Nadav Ivgi, @shesek en la red social Twitter.
«Anunciando Minsc, un lenguaje de scripting (secuencia de comandos) para contratos en Bitcoin» dijo Ivgi, acompañando el anuncio con una serie de tuits en los que desplegó ejemplos del uso del nuevo lenguaje.
En el sitio web min.sc se señala que el nuevo lenguaje de scripting está basado en Miniscript, un lenguaje de programación creado por los desarrolladores de Bitcoin Core, que fue lanzado el año pasado. El objetivo de Minsc es generar el código de Bitcoin Script, el lenguaje que efectivamente ejecuta las transacciones de Bitcoin, partiendo de instrucciones lógicas y sencillas de entender.
Un ejemplo de la eficiencia del nuevo lenguaje se ve en la figura siguiente:
En este caso se quiere ejecutar un gasto si una de dos firmas está presente. La instrucción en Bitcoin Script es la siguiente:
<A> OP_CHECKSIG OP_SWAP <B> OP_CHECKSIG OP_BOOLOR
Parte de la complicación de Bitcoin Script está en que usa la notación polaca inversa, es decir que el operador está al final de la expresión. En vez de A+B, por ejemplo, coloca AB+.
En el caso de esta instrucción señalada arriba, el operador lógico “OR” (‘o booleano’ en español) está al final e indica que basta con incluir una de las firmas, de A o de B, para que se produzca el gasto.
La instrucción en Miniscript es más comprensible, pues coloca el operador lógico (or) al principio:
or_b(pk(A),s:pk(B))
En este caso ”pk” se refiere a la private key o llave privada.
La instrucción en el nuevo lenguaje Minsc es más sencilla aún:
pk(A) || pk(B)
Las dos barras verticales “||” representan el operador lógico “or”. Esa instrucción en Minsc es más compacta y al ser compilada, produce la instrucción en Bitcoin Script señalada arriba.
Otros ejemplos de condiciones más complicadas para el gasto, con umbrales o probabilidades, requieren instrucciones de mayor longitud en Bitcoin Script, mientras que las instrucciones de Minsc son más compactas y directas.
Entre esos ejemplos presentados por Minsc están el código para un contrato bloqueado por hash y tiempo (HTLC), usados en la creación de la red Lightning de Bitcoin, y otro para una cadena lateral (sidechain) federada, como la usada por la red Liquid de Blockstream.
Minsc, señalan los desarrolladores del lenguaje, fue implementado en Rust y el código fuente se encuentra disponible en GitHub, publicado bajo licencia del MIT.
CriptoNoticias publicó el pasado 24 de julio las opiniones de tres desarrolladores de Bitcoin sobre la evolución de los lenguajes de programación usados en el protocolo de dicha red y los usados para los proyectos asociados a Bitcoin, como carteras, tanto en versiones de escritorio como para dispositivos Android o iOS.