Statechains son un protocolo unique de segunda capa desarrollado originalmente por Ruben Somsen en 2018, dependiendo de la propuesta Eltoo (o simetría LN). En 2021, una variación de la propuesta unique, Mercurio, fue construida por Commerceblock. En 2024, se construyó una iteración adicional del esquema de mercurio unique, la capa de mercurio.
El protocolo Statechain es un poco más complicado de discutir en comparación con otros sistemas, como Arca o Lightning debido al rango de variaciones que son posibles entre el diseño unique propuesto, los dos que realmente se han implementado y otros diseños posibles que se han propuesto libremente.
Al igual que Ark, Statechains depende de un servidor de coordinación centralizado para funcionar. A diferencia de ARK, tienen un modelo de confianza ligeramente diferente que un VUTXO en un lote de Ark. Dependen del servidor de coordinación para eliminar las acciones previamente generadas de una clave privada para permanecer sinceros, pero mientras el servidor siga el protocolo definido y lo haga, proporcionan una fuerte garantía de seguridad.
La concept common de un statechain es poder transferir la propiedad de un UTXO completo entre diferentes usuarios fuera de la cadena, facilitado por el coordinador. No hay requisito para recibir liquidez como un rayo, o el servidor de coordinadores para proporcionar cualquier liquidez como ARK.
Para comenzar, veremos el protocolo unique propuesto por Ruben Somsen.
El statechain unique
Statechains es efectivamente una transacción previa firmada que permite al propietario precise de Statechain retirarse unilateralmente en la cadena cuando lo deseen, y un historial firmó mensajes que prueban criptográficamente que los propietarios anteriores y los receptores enviaron el statechain a aprobar esas transferencias.
El diseño unique fue construido en eltoo usando Anyprevoutpero los planes actuales sobre cómo habilitar la misma funcionalidad hacen uso de CheckTempl cualquiera y ChecksigFromstack (Una explicación de alto nivel de esto está al remaining del artículo de CheckSigFromStack). La concept básica es un script que permite una transacción previa firmada para gastar cualquier utxo que tenga ese script y bloquee la cantidad apropiada de bitcoin, en lugar de estar vinculado a gastar un solo utxo específico.
En el protocolo, un usuario que desea depositar sus monedas a un statechain se acerca a un servidor de coordinadores y pasa por un protocolo de depósito. El usuario de depósito, Bob, genera una clave que será propiedad de él, pero también una segunda clave “transitoria” que eventualmente se compartirá (más sobre esto pronto). Luego crean una transacción de depósito que bloquea su moneda a una multisig que requiere la clave del coordinador y la clave transitoria para firmar.
Usando este Multisig, Bob y el Coordinador firman una transacción que gasta esa moneda y crea un UTXO que puede gastarse por cualquier otra transacción firmada por la clave transitoria y la clave del coordinador usando la simetría LN, o la clave única de Bob después de un timelock. Bob ahora puede financiar la multisig con la cantidad apropiada, y se ha creado el statechain.
Para transferir un statechain a Charlie, Bob debe pasar por un proceso de varios pasos. Primero, Bob firma un mensaje con su clave privada única que atestigua el hecho de que va a transferir el Statechain a Charlie. Charlie también debe firmar un mensaje que atestigua el hecho de que ha recibido el Statechain de Bob. Finalmente, el servidor de coordinadores debe firmar una nueva transacción que permita a Charlie reclamar unilateralmente el statechain en la cadena antes de que Bob le envíe a Charlie una copia de la clave transitoria.
Todo esto se hace atómico usando firmas adaptadoras. Estas son firmas que se modifican de esta manera utilizando una pieza aleatoria de datos que los hace inválidos, pero que pueden volverse válidos una vez que el titular de la firma recibe esa información. Todos los mensajes y la nueva transacción previa firmada están firmadas con firmas de adaptador, y se hacen válidos atómicamente al mismo tiempo a través de la liberación de los datos del adaptador.
Los titulares de un statechain deben confiar en que el servidor de coordinadores nunca conspira con un propietario anterior para firmar un cierre inmediato del statechain y robar fondos del propietario precise, pero la cadena de mensajes previos al firmado puede probar que un coordinador ha participado en el robo si iban a hacerlo. Si un propietario anterior intenta usar su transacción previa al firma para robar los fondos, el Timelock en la ruta de gasto utilizando solo su clave permite al propietario precise enviar su transacción previa al firma y reclamar correctamente los fondos en la cadena.
Mercurio y capa de mercurio
La arquitectura Statechain unique requiere un SoftFork para funcionar. Commerceblock diseñó su variante de statechains para funcionar sin un softfork, pero para hacerlo se hicieron las compensaciones en términos de funcionalidad.
La concept básica es la misma que el diseño unique, todos los usuarios poseen una transacción previa al firma que les permite reclamar sus fondos unilateralmente, y el servidor de coordinadores aún juega un papel en facilitar las transferencias fuera de la cadena que requiere que se confíen honestamente. Las dos diferencias principales son cómo se firman esas transacciones y se proporciona la estructura de los usuarios de transacciones previamente firmadas.
En lo que respecta a la firma, ya no hay una clave privada transitoria que se pasa de usuario a usuario. En lugar de esto, se usa un protocolo de computación multipartidista (MPC) para que el propietario unique y el servidor Coordinator puedan generar colaborativamente piezas parciales de una llave privada sin que ninguno de ellos posee la clave completa. Esta clave se utiliza para firmar las transacciones previas firmadas. El protocolo MPC permite al propietario y coordinador precise participar en un segundo protocolo con un tercero, el receptor de una transferencia, para regenerar piezas diferentes que se suman a la misma clave privada. Tanto en el protocolo de capa de mercurio como de mercurio, después de completar una transferencia, un servidor coordinador honesto elimina el materials clave correspondiente al propietario anterior. Mientras esto se haga, ya no es posible que el coordinador firme una transacción con un propietario anterior, ya que la nueva pieza de materials clave que tienen no es appropriate con la pieza que cualquier propietario anterior aún podría tener. Esta es en realidad una garantía más fuerte, siempre que el coordinador sea honesto que la propuesta unique.
La estructura de transacción previa firmada para la capa de mercurio y mercurio no puede usar la simetría LN, ya que esto no es posible sin una marquita blanda. En lugar de esto, Commerceblock optó por usar Timelocks de disminución. La transacción previa al propietario del propietario unique se realiza el tiempo utilizando Nlocktime para un momento lejano en el futuro desde el punto de la creación de Statechain. Como cada usuario posterior recibe el statechain durante una transferencia, el valor de su transacción es un período de tiempo predeterminado más corto que el propietario anterior. Esto garantiza que un propietario anterior es incapaz de tratar de enviar su transacción en la cadena antes de que el propietario precise pueda, pero también significa que eventualmente el propietario precise debe Cierre su statechain en la cadena antes de que las transacciones de los propietarios anteriores comiencen a ser válidos.
La principal diferencia entre la capa de mercurio y mercurio es cómo se firman estas transacciones. En el caso de Mercurio, el servidor Coordinador simplemente ve la transacción propuesta, la verifica y luego la firma. La capa de mercurio utiliza un protocolo de firma ciega, lo que significa que en realidad no ven ningún detalle de la transacción que están firmando. Esto requiere el seguimiento del servidor StatEChains utilizando registros anónimos en el servidor, y una clave de autorización especial del propietario precise para que puedan estar seguros de que solo están firmando transferencias válidas.
Sinergia con otras capas
Statechains puede sinergizar con otras capas 2 que se basan en transacciones previas al firmado. Por ejemplo, parte de la propuesta unique sugirió una combinación de statechains y canales de rayos. Debido a que ambas son simplemente transacciones previamente firmadas, es posible anidar un canal de rayos en la parte superior de un statechain. Esto simplemente requiere que la tecla de salida unilateral del propietario precise sea una multisig, y la creación de las transacciones de firmación previa al gasto en un canal de rayos. Esto permite que los canales de rayo se abran y se cierren completamente fuera de la cadena.
De manera related, es posible anidar un statechain encima de un Vutxo en un lote de arca. Esto simplemente requiere las transacciones previas al firmado necesarias para que se construya un statechain, gastando la salida VUTXO.
Concluir
Statechains no es del todo confiable, pero son un esquema minimizado muy confidencial que es muy eficiente en liquidez y permite transferir libremente UTXOS fuera de cadena entre cualquier usuario dispuesto a aceptar el modelo de confianza de Statechains.
Si bien la propuesta unique aún no se ha construido, las dos implementaciones diseñadas por CommerceBlock se han implementado por completo. Ambos no lograron nada más que uso marginal en el mundo actual. Si esto se debe a que los usuarios no están dispuestos a aceptar el modelo de confianza involucrado, o simplemente un fracaso en advertising and marketing o conciencia es algo que no puede determinarse por completo.
De todos modos, dado que hay dos implementaciones y diseños completos para una variación más versatile si la simetría LN se vuelve posible en Bitcoin, esta es una opción que siempre estará aquí. Lo bueno del software program de código abierto es que siempre estará allí, independientemente de si las personas lo usan ahora, en caso de que elijan en el futuro.