Duración de anclaje vs desanclaje

Entender por qué el tiempo que toma depositar BTC en sBTC es diferente al de retirar sBTC de vuelta a BTC.

¿Por qué los depósitos son tan rápidos y los retiros tan lentos?

sBTC permite a los usuarios usar su BTC en la Capa 2 de Stacks mediante un token envuelto llamado sBTC. Mover sBTC a la Capa 2 de Stacks puede tardar tan poco como 1 bloque de Bitcoin, pero mover sBTC fuera de la Capa 2 de Stacks hacia la cadena de bloques nativa de Bitcoin toma 6 bloques de Bitcoin. ¿Por qué es eso?

Para entender por qué moverse hacia la capa de Stacks puede ser tan rápido y, sin embargo, moverse fuera debe ser tan lento, primero debemos entender el mecanismo de consenso de la cadena de bloques de Stacks.

La cadena de bloques de Stacks utiliza un mecanismo de consenso llamado Prueba de Transferencia, o PoX, para acuñar nuevos bloques. En cada bloque de Bitcoin, los mineros, en la cadena de Stacks, sacrifican cierta cantidad de Bitcoin en una puja para ganar el derecho a crear los siguientes bloques de Stacks, donde mantienen el derecho a seguir creando bloques de Stacks hasta que ocurra el siguiente bloque de Bitcoin y la última ronda de pujas elija un nuevo minero de Stacks.

Determinando qué bloques de Stacks deberían estar vinculados a qué bloque de Bitcoin

Los Firmantes (equivalentes a validadores para la cadena de Stacks) observan los bloques de Bitcoin y aprueban nuevos bloques de Stacks en función de qué minero tiene actualmente el derecho de crear bloques de Stacks, y solo aprueban nuevos bloques del minero que ganó la puja más reciente en el bloque de Bitcoin dentro del fork que colectivamente consideran como el “mejor”. La cadena de Stacks solo puede añadir nuevos bloques si los Firmantes acuerdan que el minero que lo propuso es el ganador de la puja en la cadena de Bitcoin, y todos los Firmantes están votando sobre qué bloque debe añadirse, decidiendo efectivamente de forma colectiva cuál fork de Bitcoin es el mejor.

Aquí hay una parte importante: si los Firmantes creen que hay un nuevo y mejor fork de Bitcoin que difiere del que los últimos varios bloques de Stacks habían usado para minar, entonces solo aprobarán nuevos bloques de Stacks que construyan sobre los bloques de Stacks existentes que estén vinculados a ese nuevo fork de Bitcoin. Es decir, cada bloque de Stacks que se construyó sobre bloques de Bitcoin en el otro fork de Bitcoin que no están en este nuevo fork canónico se considera inválido; por lo tanto, la cadena de Stacks también hace fork.

“La cadena de Stacks hace fork con la cadena de Bitcoin.”

Ahora que entendemos este mecanismo de forking, veamos por qué moverse fuera de la capa de Stacks debe ser tan lento.

Por qué mover de sBTC a BTC toma más tiempo

sBTC existe en la capa de Stacks como un token con el que los contratos inteligentes pueden interactuar. Para mover sBTC desde la capa de Stacks a la capa de Bitcoin, el propietario del sBTC llama a un contrato inteligente para iniciar lo que llamamos la secuencia de “retiro”. Esto permite que los “Firmantes de sBTC” (estos son diferentes de los Firmantes mencionados antes) sepan que necesitan crear una transacción en la cadena de Bitcoin para distribuir el BTC de vuelta al usuario.

Si los Firmantes de sBTC crean una transacción de Bitcoin para ejecutar el retiro, no pueden retractarse, y será válida en cada fork de la cadena de Bitcoin. Entonces, ¿qué pasa si, por ejemplo, la cadena de Bitcoin hace fork y el retiro en la capa de Stacks fue reorganizado fuera? Entonces hay una transacción de retiro irretrievable en la cadena de Bitcoin que da BTC valioso a un usuario que nunca retiró su sBTC en la capa de Stacks.

chevron-right¿Pueden los Firmantes que mantienen la cadena original forzar a los mineros a reproducir todas las transacciones previamente confirmadas?hashtag

La cadena de Stacks es una verdadera Capa 2 sobre Bitcoin, y puedes escribir un contrato inteligente para que tenga un comportamiento diferente basado en observaciones de la cadena de Bitcoin subyacente. Puedes, por ejemplo, escribir un contrato de Stacks que diga “Paga a Jeff si el hash del último bloque de Bitcoin termina en un dígito hexadecimal par, y paga a Abigail si es un dígito hexadecimal impar.” Ahora, cuando hay una reorganización de la cadena de Bitcoin puedes reproducir esta transacción que originalmente pagó a Jeff, pero ahora paga a Abigail, y ¿qué pasa si este contrato estaba entregando sBTC, y además qué sucede si Jeff entonces ejecuta inmediatamente un retiro?

Así que al final, para procesar un retiro de forma segura necesitas estar suficientemente seguro de que no será reorganizado fuera. Eso significa que solo puede procesarse 6 bloques de Bitcoin (el criterio de finalización con el que los Firmantes de sBTC se sienten cómodos) después de que la transacción de retiro de sBTC se realizó en la cadena de Stacks.

Pero entonces, ¿por qué los depósitos pueden hacerse en un bloque de Bitcoin en su forma más rápida?

¿Recuerdas cómo Stacks hace fork con Bitcoin? Digamos que alguien hace un depósito en la cadena de Bitcoin en un intento de acuñar sBTC, y entonces supongamos que los Firmantes de sBTC acuñan sBTC inmediatamente. ¿Qué pasa si la cadena de Bitcoin hace fork provocando que la cadena de Stacks haga fork? ¡La acuñación se reorganiza fuera! Claro, el depósito ya no está en la cadena de Bitcoin, pero tampoco está en la cadena de Stacks. Si ese depósito nunca llega a la cadena de Bitcoin, los firmantes de sBTC nunca acuñarán sBTC, por lo que no hay nada que recuperar.

La cadena de Bitcoin tiene la última palabra

En resumen, para los movimientos de sBTC desde la capa de Stacks hacia la capa de Bitcoin el protocolo necesita esperar a que Bitcoin sea suficientemente final, pero los movimientos desde la capa de Bitcoin a la capa de Stacks no necesitan esperar a la finalización para acuñar porque la capa de Stacks simplemente se reorganizará si la capa de Bitcoin también se reorganiza.

Pero entonces conceptualmente recuerda, la llamada de acuñación en la cadena de Stacks es tan final como el bloque de Bitcoin que contiene el depósito de BTC en la capa de Stacks. Si estás acuñando sBTC en la capa de Stacks y quieres esperar a que sea final, necesitarás esperar un número adecuado de bloques de Bitcoin para considerarlo finalmente acuñado, pero eso depende de ti y no de los Firmantes de sBTC.

Última actualización

¿Te fue útil?