Statechains are an unique second layer protocol initially developed by Ruben Somsen in 2018, relying on the eltoo (or LN Symmetry) proposal. In 2021 a variation of the unique proposal, Mercury, was constructed by CommerceBlock. In 2024, an additional iteration of the unique Mercury scheme was constructed, Mercury Layer.
The Statechain protocol is a little more difficult to debate in comparison with different methods akin to Ark or Lightning due to the vary of variations which might be attainable between the unique proposed design, the 2 which were really carried out, and different attainable designs which were loosely proposed.
Like Ark, Statechains rely on a centralized coordinating server in an effort to perform. Not like Ark, they’ve a barely totally different belief mannequin than a vUTXO in an Ark batch. They rely on the coordinating server to delete beforehand generated shares of a non-public key in an effort to stay trustless, however so long as the server follows the outlined protocol and does so, they supply a robust safety assure.
The overall thought of a Statechain is to have the ability to switch possession of a complete UTXO between totally different customers off-chain, facilitated by the coordinator. There isn’t a requirement for receiving liquidity like Lightning, or the coordinator server to supply any liquidity like Ark.
To start, we’ll have a look at the unique protocol proposed by Ruben Somsen.
The Unique Statechain
Statechains are successfully a pre-signed transaction permitting the present proprietor of the Statechain to unilaterally withdraw on-chain every time they need, and a historical past signed messages cryptographically proving that previous house owners and the receivers they despatched the Statechain to accepted these transfers.
The unique design was constructed on eltoo utilizing ANYPREVOUT, however the present plans on the way to allow the identical performance make use of CHECKTEMPLATEVERIFY and CHECKSIGFROMSTACK (a excessive degree clarification of that is on the finish of the CHECKSIGFROMSTACK article). The essential thought is a script enabling a pre-signed transaction to spend any UTXO that has that script and locks the suitable quantity of bitcoin, somewhat than being tied to spending a single particular UTXO.
Within the protocol, a consumer wishing to deposit their cash to a Statechain approaches a coordinator server and goes by way of a deposit protocol. The depositing consumer, Bob, generates a key that might be uniquely owned by him, but in addition a second “transitory” key that may ultimately be shared (extra on this quickly). They then craft a deposit transaction locking their coin to a multisig requiring the coordinator’s key and the transitory key to signal.
Utilizing this multisig, Bob and the coordinator signal a transaction that spends that coin and creates a UTXO that may both be spent by some other transaction signed by the transitory key and the coordinator’s key utilizing LN Symmetry, or Bob’s distinctive key after a timelock. Bob can now fund the multisig with the suitable quantity, and the Statechain has been created.
To switch a Statechain to Charlie, Bob should undergo a multistep course of. First, Bob indicators a message along with his distinctive non-public key that attests to the actual fact he’s going to switch the Statechain to Charlie. Charlie should additionally signal a message testifying to the truth that he has acquired the Statechain from Bob. Lastly, the coordinator server should signal a brand new transaction permitting Charlie to unilaterally declare the Statechain on-chain earlier than Bob sends Charlie a replica of the transitory key.
All of that is made atomic utilizing adapter signatures. These are signatures which might be modified in such a approach utilizing a random piece of knowledge that renders them invalid, however may be made legitimate once more as soon as the holder of the signature receives that piece of data. The entire messages, and the brand new pre-signed transaction are signed with adapter signatures, and atomically made legitimate on the similar time by way of the discharge of the adapter information.
Holders of a Statechain should belief that the coordinator server by no means conspires with a earlier proprietor to signal an instantaneous closure of the Statechain and steal funds from the present proprietor, however the chain of pre-signed messages can show {that a} coordinator has participated in theft in the event that they have been to take action. If a previous proprietor makes an attempt to make use of their pre-signed transaction to steal the funds, the timelock on the spend path utilizing solely their key permits the present proprietor to submit their pre-signed transaction and appropriately declare the funds on chain.
Mercury and Mercury Layer
The unique Statechain structure requires a softfork in an effort to perform. CommerceBlock designed their variant of Statechains to perform with no softfork, however so as to take action tradeoffs have been made by way of performance.
The essential thought is identical as the unique design, all customers maintain a pre-signed transaction that permits them to assert their funds unilaterally, and the coordinator server nonetheless performs a job in facilitating off-chain transfers that requires them to be trusted to behave actually. The 2 main variations are how these transactions are signed, and the construction of the pre-signed transaction customers are given.
The place the signing is worried, there is no such thing as a longer a transitory non-public key that’s handed from consumer to consumer. As a substitute of this, a multiparty-computation protocol (MPC) is used in order that the unique proprietor and the coordinator server are capable of collaboratively generate partial items of a non-public key with out both of them ever possessing the complete key. This secret is used to signal the pre-signed transactions. The MPC protocol permits the present proprietor and coordinator to interact in a second protocol with a 3rd celebration, the receiver of a switch, to regenerate totally different items that add as much as the identical non-public key. In each the Mercury and Mercury Layer protocol, after finishing a switch an trustworthy coordinator server deletes the important thing materials comparable to the earlier proprietor. So long as that is carried out, it’s now not attainable for the coordinator to signal a transaction with a earlier proprietor, as the brand new piece of key materials they’ve will not be suitable with the piece any earlier proprietor would possibly nonetheless have. That is really a stronger assure, so long as the coordinator is trustworthy, than the unique proposal.
The pre-signed transaction construction for Mercury and Mercury Layer can’t use LN Symmetry, as this isn’t attainable with no softfork. In lieu of this, CommerceBlock opted to make use of decrementing timelocks. The unique proprietor’s pre-signed transaction is timelocked utilizing nLocktime to a time far out sooner or later from the purpose of the Statechain’s creation. As every subsequent consumer receives the Statechain throughout a switch, the nLocktime worth of their transaction is a few pre-determined size of time shorter than the earlier proprietor. This ensures {that a} earlier proprietor is incapable of even making an attempt to submit their transaction on-chain earlier than the present proprietor can, but it surely additionally signifies that ultimately sooner or later the present proprietor should shut their Statechain on-chain earlier than earlier house owners’ transactions begin turning into legitimate.
The main distinction between Mercury and Mercury Layer is how these transactions are signed. Within the case of Mercury, the coordinator server merely sees the transaction proposed, verifies it, after which indicators it. Mercury Layer makes use of a blind-signing protocol, that means that they don’t really see any particulars of the transaction they’re signing. This necessitates the server monitoring Statechains utilizing anonymized information on the server, and a particular authorization key of the present proprietor in order that they are often positive they’re solely signing legitimate transfers.
Synergy With Different Layers
Statechains can synergize with different Layer 2s which might be primarily based on pre-signed transactions. As an example, a part of the unique proposal prompt a mixture of Statechains and Lightning Channels. As a result of each are merely pre-signed transactions, it’s attainable to truly nest a Lightning channel on high of a Statechain. This merely requires the present proprietor’s unilateral exit key to be a multisig, and the creation of the pre-signed transactions spending that output right into a Lightning channel. This permits Lightning channels to be opened and closed totally off-chain.
In a similar way, it’s attainable to nest a Statechain on high of a vUTXO in an Ark batch. This merely requires the pre-signed transactions vital for a Statechain to be constructed, spending the vUTXO output.
Wrapping Up
Statechains should not totally trustless, however they’re a really belief minimized scheme that could be very liquidity environment friendly and permits freely transferring UTXOs off-chain between any customers keen to simply accept the belief mannequin of Statechains.
Whereas the unique proposal has but to be constructed, the 2 implementations designed by CommerceBlock have been utterly carried out. Each failed to attain something greater than marginal use in the actual world. Whether or not this is because of customers being unwilling to simply accept the belief mannequin concerned, or just a failure in advertising or consciousness is one thing that can not be totally ascertained.
Regardless, provided that there are two full implementations and designs for a extra versatile variation ought to LN Symmetry ever turn into attainable on Bitcoin, this an choice that may at all times be right here. The great factor about open supply software program is that it’s going to at all times be there no matter whether or not folks use it now, ought to they select to sooner or later.