¿Cómo se bloquean y desbloquean los activos sin confianza usando cadenas laterales?

Estoy leyendo el libro blanco de cadenas laterales y en la sección 3.2 Clavija bidireccional simétrica mencionan que:

"Las monedas de la cadena principal se envían a una salida especial en la cadena principal que solo se puede desbloquear mediante una prueba de posesión SPV en la cadena lateral. No entiendo cómo se pueden bloquear las monedas en una cadena de bloques.

  • ¿Se refieren a bloquearlo en una dirección multisig o algo así?

  • ¿Quién tiene la clave privada de esa dirección bloqueada?

Respuestas (1)

Esta es mi comprensión conceptual, que con suerte será útil aquí, pero estoy seguro de que hay sutilezas técnicas que no estoy incluyendo, que algunos con más experiencia en el proyecto de cadenas laterales podrían brindar más información.

Primero, necesitamos tener una definición clara de una prueba SPV. Usaré la prueba SPV para indicar: una secuencia de bits que prueba que una transacción tiene una cantidad sustancial de trabajo comprometido. Es deseable que esta prueba sea lo más pequeña posible.

Esencialmente, comienza enviando algunas monedas en la cadena principal a una salida que tiene un scriptPubKey que dice

OP_SPVPROOFVERIFY

Luego espere hasta que tenga suficientes confirmaciones (1 día, creo), y tome este UTXO, representado por el par (txid, n), y vaya a una cadena lateral para realizar una transacción que use una prueba SPV de la salida. estar en la cadena de bloques confirmada para emitir nuevas monedas. Esto es esencialmente como mover monedas de una cadena de bloques a otra.

Luego, cuando haya terminado de usarlos en la cadena lateral, haga una nueva salida con la misma cantidad de monedas, tal vez enviándolas a OP_RETURN. Por lo tanto, ha renunciado a sus monedas en la cadena lateral, lo que les permite recuperarlas en la cadena principal. Sin embargo, antes de que pueda reclamarlos, debe esperar 1 día de confirmaciones en la cadena lateral y luego construir una prueba de SPV de que las monedas han sido destruidas en la cadena lateral. Esta prueba de SPV es lo que le permite desbloquear sus monedas de la OP_SPVPROOFVERIFYsalida en la que estaban bloqueadas antes.

Para obtener más información sobre pruebas SPV compactas, consulte:

"Luego, cuando terminas de usarlos en la cadena lateral, creas una nueva salida con la misma cantidad de monedas", ¿qué sucede si las monedas se dividen y el propietario de la moneda dividida quiere recuperarlas?
@abeikverdi, no tiene que ser exactamente las mismas monedas de ninguna manera, solo la misma cantidad de monedas.
Imagina que muevo 1 btc a una cadena lateral y luego te doy la mitad en la cadena lateral. Ahora quieres desbloquear 0.5 en la cadena principal (bitcoin) de ese 0.5 que te di en la cadena lateral. ¿No serás capaz de hacer eso?
AFAIK, eso es cierto, no podrías.
@abeikverdi Supongo que el protocolo de la cadena lateral necesitaría requerir que cada transacción que gaste las monedas bloqueadas realice un seguimiento del UTXO de la cadena principal original. Luego, si gasta, digamos, la mitad, en la cadena lateral y el destinatario desea mover la mitad de regreso a la cadena principal, OP_SPVPROOFVERIFYverificaría que su transacción de desbloqueo en la cadena principal gaste la mitad en otra OP_SPVPROOFVERIFY. Y luego, la cadena lateral puede actualizar el antiguo UTXO con el nuevo UTXO.