Tiempos de depósito vs retiro

Entender por qué el tiempo que toma depositar BTC a 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 hacia la Capa 2 de Stacks puede tomar tan poco tiempo 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 necesitamos entender el mecanismo de consenso de la cadena de bloques de Stacks.

La cadena de bloques de Stacks usa un mecanismo de consenso llamado Proof of Transfer, 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 próximos bloques de Stacks, donde conservan el derecho a seguir haciendo bloques de Stacks hasta que ocurra el siguiente bloque de Bitcoin y la última ronda de pujas elija a un nuevo minero de Stacks.

Determinar qué bloques de Stacks deben 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 a 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 el “mejor”. La cadena de Stacks solo puede agregar 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 debería agregarse, decidiendo efectivamente de manera colectiva cuál fork de Bitcoin es el mejor.

Aquí hay una parte importante: si los Firmantes creen que hay un fork nuevo y mejor de Bitcoin que difiere del que los últimos bloques de Stacks habían sido minados sobre, entonces solo aprobarán nuevos bloques de Stacks que se construyan sobre 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 junto con la cadena de Bitcoin.”

Ahora que entendemos este mecanismo de forks, 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 hacia 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 los 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é sucede si, por ejemplo, la cadena de Bitcoin hace fork y el retiro en la capa de Stacks es reorganizado fuera? Entonces hay una transacción de retiro irretrievable en la cadena de Bitcoin que entrega valiosos BTC 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 tener un comportamiento diferente basado en observaciones de la cadena de Bitcoin subyacente. Puedes, por ejemplo, escribir un contrato de Stacks que diga “Pagar a Jeff si el hash del último bloque de Bitcoin termina en un dígito hexadecimal par, y pagar 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 que ahora paga a Abigail, y ¿qué pasa si este contrato estaba entregando sBTC, y además qué pasa si Jeff entonces ejecuta inmediatamente un retiro?

Así que al final, para procesar un retiro de forma segura necesitas estar lo 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 el mejor de los casos?

¿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 luego digamos que los Firmantes de sBTC acuñan sBTC de inmediato. ¿Qué pasa si la cadena de Bitcoin hace fork causando 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, ¡así que no hay nada que retractar!

La cadena de Bitcoin tiene la palabra final

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 lo suficientemente final, pero los movimientos desde la capa de Bitcoin a la capa de Stacks no necesitan esperar la finalización para acuñar porque la capa de Stacks simplemente se reorganizará si la capa de Bitcoin también se reorganiza.

Pero 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?