<p>The pool transactions don't need to reference each other.</p>
<p>Suppose you have a vtxo that was created in round <code>n</code> and you want to spend it in round <code>n+1</code>.</p>
<p>The idea is that you do some kind of an atomic swap.
You forfeit your vtxo of round <code>n</code> against a new vtxo in round <code>n+1</code>.</p>
<p>This is done by creating two transactions:</p>
<ul>
<li><strong>Forfeiture transaction</strong>: The forfeiture transaction takes a connector from round n+1 as an input. This ensures that the forfeiture transaction is only valid if round <code>n+1</code>-occurs exactly as you would expect.</li>
<li><strong>New vtxo</strong> The new vtxo will also appear in round n+1.</li>
</ul>
<p>We don't need any on-chain link here between pool-transaction <code>n</code> and <code>n+1</code>. All the funds entering pool-transaction <code>n+1</code> are provided by the ASP.</p>

CC BY-SA 4.0
2023-09-26T14:50:26.327Z
And the forfeiture transaction is never broadcasted, is that it?
bordalix
CC BY-SA 4.0
2023-09-27T07:00:40.870Z
Yes, Ark is an optimistic protocol. If everything goes right only the pool transactions will be broadcast.

The LSP only needs to broadcast the forfeiture transaction if someone tries to redeem a forfeited `vtxo`. We don't expect this to happen often. Broadcasting a forfeited `vtxo` is stupid because you pay transaction costs for money you cannot get.
Erik
CC BY-SA 4.0
2023-09-26T11:57:25.600Z
2024-10-21T18:53:01.383Z
2024-10-21T18:53:01.383Z
Erik
<p>If I understood <a href="https://www.arkpill.me/" rel="nofollow noreferrer">Ark</a> correctly, pool transactions (which are on-chain transactions) are connected, as the output of pool transaction <code>A</code> is used as an input of the pool transaction <code>A+1</code>.</p>
<p>If so, how can that work if there's this mempool policy that limits the number of ascendants/descendants on unconfirmed transactions to 25?</p>
<p>With pool transactions every 5 seconds that would amount to chains of 120 (on average) unconfirmed transactions in the mempool.</p>

<mempool><ark>
How would the transaction chains created Ark pool transactions work given current mempool policy?
bordalix
# How would the transaction chains created Ark pool transactions work given current mempool policy?

(Asked by: username_0 on 2023-09-26)

If I understood [Ark](https://www.arkpill.me/) correctly, pool transactions (which are on-chain transactions) are connected, as the output of pool transaction `A` is used as an input of the pool transaction `A+1`.

If so, how can that work if there's this mempool policy that limits the number of ascendants/descendants on unconfirmed transactions to 25?

With pool transactions every 5 seconds that would amount to chains of 120 (on average) unconfirmed transactions in the mempool.

**Tags:** mempool, ark


---

## 1 answers

### Answer by username_1 on 2023-09-26. Score: 6 | Accepted answer

The pool transactions don't need to reference each other.

Suppose you have a vtxo that was created in round `n` and you want to spend it in round `n+1`.

The idea is that you do some kind of an atomic swap.
You forfeit your vtxo of round `n` against a new vtxo in round `n+1`.

This is done by creating two transactions:

* **Forfeiture transaction**: The forfeiture transaction takes a connector from round n+1 as an input. This ensures that the forfeiture transaction is only valid if round `n+1`-occurs exactly as you would expect.
* **New vtxo** The new vtxo will also appear in round n+1.

We don't need any on-chain link here between pool-transaction `n` and `n+1`. All the funds entering pool-transaction `n+1` are provided by the ASP.

> **Comments:**
> **username_0**: And the forfeiture transaction is never broadcasted, is that it?  
> **username_1**: Yes, Ark is an optimistic protocol. If everything goes right only the pool transactions will be broadcast.  The LSP only needs to broadcast the forfeiture transaction if someone tries to redeem a forfeited `vtxo`. We don't expect this to happen often. Broadcasting a forfeited `vtxo` is stupid because you pay transaction costs for money you cannot get.  

---

