La conexión con Bitcoin

En la sección anterior, describimos a Stacks como la capa que aporta funcionalidad de contratos inteligentes a Bitcoin, sin modificar Bitcoin en sí, y explicamos un poco cómo funciona la cadena.

Esa es una gran promesa, pero ¿cómo cumple Stacks realmente con ella? ¿Y qué hace a Stacks único entre otras capas de Bitcoin y otras blockchains como Ethereum?

Antes de entrar en los detalles técnicos de cómo funciona Stacks, es importante obtener una visión general a alto nivel del problema que está resolviendo y cómo lo hace realmente. Profundizaremos en algunos de estos temas a medida que revisemos la documentación, pero es bueno obtener una imagen de alto nivel para unir todo.

Este tema es un poco complejo, y esta sección es bastante larga, pero te dará una comprensión en profundidad del problema que Stacks busca resolver exactamente y cómo lo resuelve.

Vamos a ello.

¿Es Stacks una L2 de Bitcoin?

Stacks es una capa de Bitcoin para contratos inteligentes. La clasificación como capa-1 (L1), capa-2 (L2) o sidechain realmente depende de la definición utilizada. Dicho esto, generalmente las cadenas L1 son soberanas, lo que significa que (a) tienen su propio presupuesto de seguridad y (b) pueden sobrevivir sin la necesidad de cualquier otra cadena L1. Las cadenas L2 típicamente no tienen su propio presupuesto de seguridad y comparten la seguridad de la L1 subyacente, y no pueden existir sin la L1 subyacente. Hay muchos mecanismos de diseño diferentes que las L2 pueden usar, y cubrimos varios de ellos y cómo Stacks se compara en la Stacks entre otras capas de Bitcoin sección.

El lanzamiento inicial de Stacks a principios de 2021 tenía un presupuesto de seguridad separado del L1 de Bitcoin. Aunque la capa Stacks no podía funcionar sin el L1 de Bitcoin, los desarrolladores que trabajaban en el proyecto lo describieron como un sistema diferente que no encaja perfectamente en las clasificaciones existentes, a veces usando el término capa 1.5 (ver este artículo de Decryptarrow-up-right por ejemplo).

El lanzamiento Nakamoto en 2024 permitirá que Stacks comparta el mismo presupuesto de seguridad de Bitcoin. En su lugar, el 100% del hashpower de Bitcoin determinará la finalización en la capa Stacks. Para reorganizar bloques/transacciones de Stacks, el atacante tendrá que reorganizar el propio Bitcoin L1 (lo cual es muy difícil de hacer y por lo tanto es una gran propiedad de seguridad para que tenga una capa de Bitcoin). Más detalles en el whitepaper de Stacksarrow-up-right.

La definición de L2 utilizada en Ethereum y otros ecosistemas más nuevos es diferente y se centra en la capacidad de retirar activos usando únicamente la seguridad de la L1 y los mineros de la L1. Según esa definición, la capa Stacks no es una L2 clara, dado que el conjunto de firmantes de peg-out determina si los usuarios pueden retirar sBTC. Bitcoin no puede soportar tal verificación sin cambios en Bitcoin L1 (lo cual podría suceder en el futuro). La definición de L2 de Ethereum tampoco se aplica tan claramente a las L2 de Bitcoin, dado que se emiten nuevos activos en las L2 cuando se trata de Bitcoin y no se emiten en la L1 (solo BTC es el activo de L1). Por lo tanto, usar la definición de seguridad de retiro de activos no es directamente aplicable dado que los activos se definen y usan en las L2 y no se retiran a Bitcoin L1 de todos modos (con la excepción del propio BTC). Más bien, lo que se vuelve más importante es el "asentamiento en Bitcoin", es decir, si los datos y el estado del contrato están asegurados por el 100% del hashpower de Bitcoin o no.

Recuerda que las L2 en Bitcoin también deben cumplir el propósito adicional de expandir tanto la funcionalidad como la escalabilidad, lo que significa que las L2 logran objetivos fundamentalmente diferentes dependiendo de la funcionalidad de la L1.

Usuarios y desarrolladores llaman orgánicamente a Stacks una L2 de Bitcoin, ya que es un concepto más sencillo de entender. Hay ciertas propiedades de la capa Stacks que también ayudan al concepto de Stacks como una L2 de Bitcoin:

1

Finalidad de Bitcoin

El 100% del hashpower de Bitcoin decide el orden de bloques y la finalidad de las transacciones.

2

El consenso se ejecuta en Bitcoin L1

El consenso de Stacks se ejecuta en Bitcoin L1, y la L2 de Stacks no puede operar ni sobrevivir sin Bitcoin L1.

3

sBTC y unidad económica

Con el peg descentralizado a Bitcoin, llamado sBTC, la mayor parte de la economía en la capa Stacks usará BTC como unidad económica. Se espera que la mayoría de los usuarios simplemente usen Bitcoin en carteras y aplicaciones y luego vuelvan a peggar sus BTC a Bitcoin L1.

4

Datos hasheados y almacenados en Bitcoin L1

Todos los datos y transacciones en Stacks se hashean automáticamente y se almacenan permanentemente en Bitcoin L1 en cada bloque de Bitcoin. Cualquiera puede verificar que ciertos datos en Stacks son válidos comprobando el hash correspondiente en Bitcoin L1. Este almacenamiento compacto de hashes en L1 es algo similar a los rollups (aunque hay otras diferencias). Puedes leer más sobre este proceso en la Producción de bloques sección.

5

Los contratos pueden leer Bitcoin L1

Los contratos en la capa Stacks pueden leer transacciones de Bitcoin L1 y responder a ellas. Los activos en la capa Stacks pueden moverse simplemente mediante transacciones de Bitcoin L1.

Dado todos los detalles anteriores, ¿por qué algunas personas pensarían que Stacks no es una L2 de Bitcoin? Hay un par de razones por las que esta pregunta surge con frecuencia:

1

Material antiguo sobre el presupuesto de seguridad

La versión inicial de Stacks (lanzada a principios de 2021) tenía un presupuesto de seguridad separado que cambió para heredar el 100% del hashpower de Bitcoin con el lanzamiento Nakamoto.

2

La definición de retiro de L2 de Ethereum no encaja bien

Según la definición de L2s de Ethereum, un usuario debería poder retirar sus activos de la capa base puramente realizando una transacción en L1 y confiando solo en la seguridad de L1 (esto es cierto para Lightning, por ejemplo). Esta definición no se aplica de manera limpia a las L2 de Bitcoin porque los activos no están definidos en Bitcoin L1 sino que se definen en las L2. El único activo donde esto importa es el activo BTC pegado desde Bitcoin L1, dado que todos los demás activos son nativos de las L2 de todos modos. En el próximo lanzamiento de Stacks, los usuarios podrán retirar su BTC enviando solo una transacción en Bitcoin L1, pero Bitcoin L1 no puede validar esa transacción compleja y la mayoría de los firmantes de peg-out necesitarán firmar la solicitud de peg-out. En un mundo ideal, los mineros de Bitcoin podrían validar tales transacciones pero eso requeriría un cambio en Bitcoin L1. Por lo tanto, el diseño de Stacks se optimiza para un método que sea descentralizado y pueda desplegarse sin ningún cambio en Bitcoin L1. Si en el futuro es posible hacer cambios en Bitcoin L1, entonces la seguridad de la capa Stacks también podría beneficiarse de eso.

3

Escepticismo saludable en Bitcoin

Los miembros de la comunidad de Bitcoin en general son escépticos respecto a las afirmaciones y están atentos a personas que hacen cualquier tipo de afirmación de marketing falsa. Esto es generalmente algo saludable para el ecosistema Bitcoin y fortalece su sistema inmunológico. Algunos de esos miembros de la comunidad podrían ser escépticos acerca de Stacks como una capa de Bitcoin o L2 hasta que lean completamente los detalles técnicos y el razonamiento. Hay un buen hilo de Twitterarrow-up-right sobre este tema también.

Entonces, ¿por qué no usamos el término 'sidechain' para Stacks? Las sidechains en Bitcoin típicamente tienen un presupuesto de seguridad diferente al de Bitcoin L1, típicamente como un subconjunto de mineros de Bitcoin que participan en la sidechain (no siguen la finalidad del 100% de Bitcoin), su consenso se ejecuta en la sidechain (en lugar de ejecutarse en Bitcoin L1), y no publican sus datos/hashes en Bitcoin L1. La capa Stacks no encaja bien en esa definición dado que el consenso se ejecuta en Bitcoin L1, sigue la finalidad de Bitcoin y publica datos/hashes en L1.

¿Por qué necesita Stacks un token?

Esto nos lleva a una conversación filosófica central en el mundo de las criptomonedas y Bitcoin: si las blockchains necesitan o no tokens.

Comencemos observando la razón fundamental por la que existen los tokens: financiar el mantenimiento y el progreso futuro de una blockchain.

Bitcoin es un token. Es una criptomoneda que se usa para incentivar a los mineros a añadir nuevos bloques a la cadena. En el caso de Bitcoin, las recompensas de minería están fijadas en un calendario predefinido, y una vez que esas recompensas de minería se agoten, la cadena deberá subsistir únicamente con las comisiones por transacción.

El propósito de una blockchain es tener un registro histórico permanente de cada transacción que haya ocurrido en la cadena. Las blockchains son básicamente libros contables. El aspecto del token se usa como mecanismo de incentivos para asegurar y mantener la cadena.

Por eso redes como Lightning y otras redes P2P no necesitan tokens: no necesitan mantener un registro histórico. Las soluciones basadas en canales como Lightning se apoyan en que los usuarios abran multisigs 2-de-2 entre sí. Una vez que esos canales se cierran, el estado desaparece. Cuando hablamos de un sistema que se supone que debe mantener un sistema financiero global, es importante que el mantenimiento de ese sistema esté incentivado correctamente.

Veamos este concepto en el contexto de Stacks y sus objetivos. Stacks busca proporcionar funcionalidad de contratos inteligentes a Bitcoin, servir como las vías de programación para construir una economía descentralizada sobre Bitcoin.

Muchos miembros de la comunidad Bitcoin son escépticos respecto a los nuevos tokens y con razón. Hay innumerables proyectos que obligan al uso de un token en su proyecto y en muchos casos un token en realidad no es necesario. El proyecto Stacks fue iniciado por constructores de Bitcoin que tienen una larga historia de crear aplicaciones y protocolos en Bitcoin L1 sin ningún token (por ejemplo, BNS se lanzó en 2015 en Bitcoin L1 y fue uno de los protocolos más grandes usando OP_RETURN en Bitcoin L1). Entonces, ¿por qué un grupo de desarrolladores de Bitcoin decidió tener un token separado para la L2 de Stacks? ¡Buena pregunta! Vamos a profundizar en los detalles.

El token de Stacks (STX) está pensado principalmente para usarse en dos cosas:

1

Incentivos para los mineros de la L2 de Stacks

Los STX recién acuñados se usan para incentivar la producción descentralizada de bloques en la L2 de Stacks.

2

Incentivos para los firmantes de peg-out

Los firmantes que participan en las operaciones de peg-out reciben incentivos en STX para alinearlos económicamente con las reglas del protocolo.

La única manera de eliminar el token es construir Stacks como una red federada como Liquid. En una federación, el grupo preseleccionado de empresas controla la minería y la producción de bloques y se necesita confiar en un grupo preseleccionado de empresas para las transacciones de peg-out.

Los desarrolladores de Stacks querían diseñar un sistema abierto y sin permisos. La única manera de tener un proceso de minería descentralizado es mediante incentivos. Como se mencionó arriba, así es como funciona Bitcoin también, donde los BTC recién acuñados se utilizan como incentivos para minar nuevos bloques y cualquier persona en el mundo puede decidir convertirse en minero. Cualquiera con BTC puede minar la cadena L2 de Stacks; es abierta y sin permisos.

De manera similar, la forma en que sBTC está diseñado hace que el grupo de firmantes sea abierto y sin permisos (a diferencia de una federación). Estos firmantes tienen incentivos económicos para seguir correctamente el protocolo en las solicitudes de peg-out. En una federación, los usuarios deben confiar a ciegas en los miembros preestablecidos de la federación para sacar sus BTC de la federación y devolverlos a Bitcoin L1. Los desarrolladores de Stacks quisieron tener una manera abierta, sin permisos y descentralizada de mover BTC desde Bitcoin L1 a Stacks L2 y de vuelta. Esto es posible mediante incentivos económicos, es decir, la necesidad de un token.

Además de estas dos razones, STX también se utiliza para pagar las tarifas de gas de las transacciones. Sin embargo, una vez que el próximo peg de sBTC esté activo, se espera que la mayor parte de la economía de la L2 de Stacks siga un estándar de Bitcoin y funcione usando BTC como unidad económica. Se espera que los usuarios interactúen principalmente solo con Bitcoin y usen BTC en carteras y aplicaciones (las tarifas de gas pueden pagarse con BTC usando swaps atómicos en segundo plano). Es importante notar que BTC no puede usarse para incentivos de minería en la L2 de Stacks porque la única manera de incentivar la producción descentralizada de bloques es mediante activos recién acuñados por el protocolo (similar a cómo funciona Bitcoin) —es decir, la necesidad de un token.

La relación simbiótica entre Stacks y Bitcoin

Stacks y Bitcoin se complementan entre sí. Stacks aprovecha la extrema descentralización de Bitcoin, su mecanismo de consenso PoW y su valor como criptomoneda.

Pero Stacks también complementa a Bitcoin al desbloquear casos de uso adicionales, aumentando así su valor con el tiempo. Esto también ayuda a resolver el problema adicional de la mantenibilidad futura de Bitcoin una vez que las recompensas de coinbase desaparezcan y Bitcoin tenga que funcionar únicamente con las comisiones por transacción.

Si Bitcoin se ve solo como una reserva de valor, la densidad económica, es decir, cuánto valor se intercambia, de cada transacción será mínima. Pero si Bitcoin es la base subyacente para toda una economía descentralizada, esas transacciones se vuelven mucho más valiosasarrow-up-right, aumentando las comisiones por transacción. Esto es un incentivo crucial para que los mineros continúen asegurando la red a medida que las recompensas de coinbase disminuyen.

Lectura del estado de Bitcoin

Una de las cosas que le da a la cadena Stacks sus superpoderes para conectarse con Bitcoin no es solo cómo se conecta a Bitcoin a nivel de protocolo, explicado arriba, sino también cómo podemos utilizar ese Bitcoin a nivel programático.

Ahí es donde entra Clarity. Clarity es el lenguaje de contratos inteligentes para Stacks, y es cómo en realidad desarrollamos gran parte de la funcionalidad de la que estamos hablando aquí.

Una de las características frecuentemente destacadas de Clarity es que tiene acceso incorporado al estado de la cadena de Bitcoin, pero ¿cómo lo hace realmente? Debido al mecanismo PoX de Stacks, cada bloque de Stacks está conectado a un bloque de Bitcoin y puede consultar los hashes de cabecera de bloque de Bitcoin con la función get-burn-block-info? Esta función nos permite pasar una altura de bloque de Bitcoin y obtener a cambio el hash de la cabecera. La

palabra clave burn-block-height de Clarity nos dará la altura de bloque actual de la cadena de Bitcoin. Sin embargo,

solo devuelve datos del bloque de Bitcoin en esa altura si ya ha sido procesado y fue creado después del lanzamiento de la cadena Stacks. Así que si queremos evaluar si algo ocurrió en Bitcoin, tenemos que esperar al menos un bloque más tarde para hacerlo. función get-burn-block-info? Este es el paso 1 para que los contratos Clarity puedan servir como la capa de programación para Bitcoin. Cuando se inicia una transacción BTC, lo primero que debe ocurrir es que un contrato Clarity debe enterarse de ello. Esto puede suceder manualmente utilizando las funciones de Clarity discutidas arriba.

Este es el primer componente para usar Stacks para construir dapps de Bitcoin: el acceso de lectura a la cadena de Bitcoin.

A continuación, profundicemos un poco más en cómo exactamente Stacks está "

construido sobre Bitcoin" al echar un vistazo al mecanismo de producción de bloques de Stacks, Proof of Transfer.

Última actualización

¿Te fue útil?