Ark explainer

View short version

ELI5

TL/DR

Pool transaction

The ASP makes a special transaction, called Pool transaction, where it mixes UTXOs from many users (among other things) and creates a Shared UTXO as well as many offchain VTXOs for each of those users.

🔎 Deep dive on Pool transactions

Onboarding the Ark

The first step is for Alice to lift her coins. This is an atomic swap where she will give up a UTXO (+ fees) to receive a VTXO from the ASP at the same time. This VTXO will be inside the next Pool transaction.

In this example, Alice, Bob, Carol and Dave are "lifting" UTXOs to Ark:

In order to be trustless:

🔎 Deep dive on Anchored transactions

🔎 Deep dive on Onboarding Ark

Payments on Ark

Alice then instructs the ASP to take her VTXO and pay Bob. She will only need to know Bob's address. This payment is also atomic and private. The ASP does not know which VTXO belongs to which user and blindly mixes them to produce another anonymous VTXO set. Ark's magic occurs in the fact that the post-mix VTXOs can only be claimed by the intended recipients even though the ASP has no idea who owns them. Put another way, the ASP is simply coordinating blind coinjoin rounds.

Now let's imagine Alice wants to send some sats to Bob using Ark:

Alice forfeits its VTXO to the ASP and in return Bob receives a VTXO

In order to be trustless:

🔎 Deep dive on Payments on Ark

Offboarding the Ark

When Alice wants to exit the Ark, she arranje with the ASP to have an output (Alice) on the next Pool transaction.

Alice could also unilaterally exit, i.e. without ASP's cooperation, by redeeming hers VTXO for an onchain UTXO.

In order to be trustless:

🔎 Deep dive on Offboarding the Ark

Covenants

Ideally Ark would use covenants to achieve non-interactivity:

🔎 Deep dive on Ark with covenants

Without covenants: clArk

🔎 Deep dive on Ark without covenants

The Somsen Shortcut

Currently both senders and recipients need to be online simultaneously to transfer value in Ark. This requirement can be reduced by a soft fork (i.e. OP_CTV). We can eliminate the need for a soft fork by giving both the sender and the recipient the option to complete a swap with the ASP, allowing the recipient to complete the payment on their own.

The swap option

Enables both Alice as well as Bob to control the funds together with the ASP and makes no judgement about who currently owns the money.

Now it's up to Alice or Bob to collaborate with the ASP and transfer the coins inside Ark (so a new on-chain UTXO) in order to turn over the ownership exclusively to either Alice or Bob.

In practice this means Bob can finish the payment without requiring direct interaction with A.

🔎 Deep dive on the swap option

The statechain option

This "statechain option" is basically statechains on top of Ark, so you're transferring from Alice to Bob without going on-chain by co-signing with the ASP and trusting them not to change their minds. As long as this this assumption holds, the transfer is instant.

🔎 Deep dive on the statechain option

Connectors

Explain connectors

🔎 Understanding connectors

Sources