user1505: Are there any solutions to the concurrency issue so far without sacrificing decentralization? MinSwap testnet was experiencing this last night and just looking for some clarification, haven't seen much spoken on this subject, thanks.

user1097: To my knowledge, there is no concurrency issue on Cardano. If multiple people want to perform some transaction, then on Cardano, you can bundle all of those into one UTxO with several inputs and several outputs. Could you please provide some more details?

user1130: The Occam.fi team claims to have a solution that works for their DEX.

The solution uses an intra-block slot auction system to process multiple transactions simultaneously, which is essential for a fully functional and high-volume DEX.

Looking forward to learning more about that approach.

Another solution I've thought about is introducing an off-chain service provider called a "batcher" who is incentivized and authorized to batch a bunch of concurrent transactions.
Take a DEX for example. If many people are trying to provide liquidity to a pool at the same time, instead of them all trying to access the "liquidity total" datum concurrently, each actor could lock their liquidity + a batching fee in a separate escrow script that requires a minimum amount of liquidity tokens to unlock. They then submit a "batching request" datum to the DEX. The off-chain batcher can filter all the request datums and execute as many as they can simultaneously.
The minimum liquidity token requirement on the escrow script prevents the liquidity providers from being screwed over--they set the terms-- and it also allows some flexibility in a volatile market, but there is still a level of centralization of the batcher. My biggest worry would be regulatory intervention, as the batchers could be seen as MSBs. You could theoretically solve this with federalization of the batching responsibility.

All-in-all, I think there are many ways to solve the concurrency problem. Charles talked about additional side-chain solutions in this video. I think we just need to be comfortable with the idea that the solutions might just look different from what we see on Ethereum, and that's okay. Ethereum has it's own set of problems that needed creative solutions as well.

user2156: Here is a big old list of relevant resources. Some of them claim (credibly, I think) to solve the problem without sacrificing decentralization.
From IO

https://plutus.readthedocs.io/en/latest/plutus/howtos/writing-a-scalable-app.html
https://iohk.io/en/blog/posts/2021/09/06/no-surprises-transaction-validation-on-cardano/
https://iohk.io/en/blog/posts/2021/09/07/no-surprises-transaction-validation-part-2/
https://iohk.io/en/blog/posts/2021/09/10/concurrency-and-all-that-cardano-smart-contracts-and-the-eutxo-model/
https://docs.cardano.org/plutus/concurrency

From projects

https://sundaeswap-finance.medium.com/concurrency-state-cardano-c160f8c07575
https://medium.com/occam-finance/the-occam-fi-technical-series-on-concurrency-cd5bee0b850c
https://medium.com/meld-labs/concurrent-deterministic-batching-on-the-utxo-ledger-99040f809706
https://medium.com/minswap/introducing-laminar-an-eutxo-scaling-protocol-for-accounting-style-smart-contract-d1ac8847dde8
https://github.com/ergolabs/ergo-dex
https://cardax.blog/concurrency-in-perspective/
https://blog.maladex.com/maladex-solves-concurrency-scales-beyond-memory-limits-and-designs-the-best-possible-cardano-dex-391d7e519e67

Videos

https://www.youtube.com/watch?v=xlDlNmIFrFM
https://www.youtube.com/watch?v=TxnvYsBnLjQ

Minswap reflecting on the incident that sparked the FUD storm

https://medium.com/minswap/minswap-testnet-reflections-64b01c5e7c45

Indie contributions

https://twitter.com/DarkeningAges/status/1436308661454975001
https://cryptois.land/posts/2021/09/10/simple-cardano-batching-bots/


1505: <p>Are there any solutions to the concurrency issue so far without sacrificing decentralization? MinSwap testnet was experiencing this last night and just looking for some clarification, haven't seen much spoken on this subject, thanks.</p>
 1097: <p>To my knowledge, there is no concurrency issue on Cardano. If multiple people want to perform some transaction, then on Cardano, you can bundle all of those into one UTxO with several inputs and several outputs. Could you please provide some more details?</p>
 1130: <p>The Occam.fi team <a href="https://cointelegraph.com/press-releases/cardano-decentralized-exchange-occamx-reaches-key-technical-milestone" rel="nofollow noreferrer">claims to have a solution</a> that works for their DEX.</p>
<blockquote>
<p>The solution uses an intra-block slot auction system to process multiple transactions simultaneously, which is essential for a fully functional and high-volume DEX.</p>
</blockquote>
<p>Looking forward to learning more about that approach.</p>
<hr />
<p>Another solution I've thought about is introducing an off-chain service provider called a &quot;batcher&quot; who is incentivized and authorized to batch a bunch of concurrent transactions.</p>
<p>Take a DEX for example. If many people are trying to provide liquidity to a pool at the same time, instead of them all trying to access the &quot;liquidity total&quot; datum concurrently, each actor could lock their liquidity + a batching fee in a separate escrow script that requires a minimum amount of liquidity tokens to unlock. They then submit a &quot;batching request&quot; datum to the DEX. The off-chain batcher can filter all the request datums and execute as many as they can simultaneously.</p>
<p>The minimum liquidity token requirement on the escrow script prevents the liquidity providers from being screwed over--they set the terms-- and it also allows some flexibility in a volatile market, but there is still a level of centralization of the batcher. My biggest worry would be regulatory intervention, as the batchers could be seen as <a href="https://www.fincen.gov/money-services-business-definition" rel="nofollow noreferrer">MSBs</a>. You could theoretically solve this with federalization of the batching responsibility.</p>
<hr />
<p>All-in-all, I think there are many ways to solve the concurrency problem. Charles talked about additional side-chain solutions in <a href="https://youtu.be/FVA54yAaLC8" rel="nofollow noreferrer">this video</a>. I think we just need to be comfortable with the idea that the solutions might just look different from what we see on Ethereum, and that's okay. Ethereum has it's own set of problems that needed creative solutions as well.</p>
 2156: <p>Here is a big old list of relevant resources. Some of them claim (credibly, I think) to solve the problem without sacrificing decentralization.</p>
<p><strong>From IO</strong></p>
<ul>
<li><a href="https://plutus.readthedocs.io/en/latest/plutus/howtos/writing-a-scalable-app.html" rel="nofollow noreferrer">https://plutus.readthedocs.io/en/latest/plutus/howtos/writing-a-scalable-app.html</a></li>
<li><a href="https://iohk.io/en/blog/posts/2021/09/06/no-surprises-transaction-validation-on-cardano/" rel="nofollow noreferrer">https://iohk.io/en/blog/posts/2021/09/06/no-surprises-transaction-validation-on-cardano/</a></li>
<li><a href="https://iohk.io/en/blog/posts/2021/09/07/no-surprises-transaction-validation-part-2/" rel="nofollow noreferrer">https://iohk.io/en/blog/posts/2021/09/07/no-surprises-transaction-validation-part-2/</a></li>
<li><a href="https://iohk.io/en/blog/posts/2021/09/10/concurrency-and-all-that-cardano-smart-contracts-and-the-eutxo-model/" rel="nofollow noreferrer">https://iohk.io/en/blog/posts/2021/09/10/concurrency-and-all-that-cardano-smart-contracts-and-the-eutxo-model/</a></li>
<li><a href="https://docs.cardano.org/plutus/concurrency" rel="nofollow noreferrer">https://docs.cardano.org/plutus/concurrency</a></li>
</ul>
<p><strong>From projects</strong></p>
<ul>
<li><a href="https://sundaeswap-finance.medium.com/concurrency-state-cardano-c160f8c07575" rel="nofollow noreferrer">https://sundaeswap-finance.medium.com/concurrency-state-cardano-c160f8c07575</a></li>
<li><a href="https://medium.com/occam-finance/the-occam-fi-technical-series-on-concurrency-cd5bee0b850c" rel="nofollow noreferrer">https://medium.com/occam-finance/the-occam-fi-technical-series-on-concurrency-cd5bee0b850c</a></li>
<li><a href="https://medium.com/meld-labs/concurrent-deterministic-batching-on-the-utxo-ledger-99040f809706" rel="nofollow noreferrer">https://medium.com/meld-labs/concurrent-deterministic-batching-on-the-utxo-ledger-99040f809706</a></li>
<li><a href="https://medium.com/minswap/introducing-laminar-an-eutxo-scaling-protocol-for-accounting-style-smart-contract-d1ac8847dde8" rel="nofollow noreferrer">https://medium.com/minswap/introducing-laminar-an-eutxo-scaling-protocol-for-accounting-style-smart-contract-d1ac8847dde8</a></li>
<li><a href="https://github.com/ergolabs/ergo-dex" rel="nofollow noreferrer">https://github.com/ergolabs/ergo-dex</a></li>
<li><a href="https://cardax.blog/concurrency-in-perspective/" rel="nofollow noreferrer">https://cardax.blog/concurrency-in-perspective/</a></li>
<li><a href="https://blog.maladex.com/maladex-solves-concurrency-scales-beyond-memory-limits-and-designs-the-best-possible-cardano-dex-391d7e519e67" rel="nofollow noreferrer">https://blog.maladex.com/maladex-solves-concurrency-scales-beyond-memory-limits-and-designs-the-best-possible-cardano-dex-391d7e519e67</a></li>
</ul>
<p><strong>Videos</strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=xlDlNmIFrFM" rel="nofollow noreferrer">https://www.youtube.com/watch?v=xlDlNmIFrFM</a></li>
<li><a href="https://www.youtube.com/watch?v=TxnvYsBnLjQ" rel="nofollow noreferrer">https://www.youtube.com/watch?v=TxnvYsBnLjQ</a></li>
</ul>
<p><strong>Minswap reflecting</strong> on the incident that sparked the FUD storm</p>
<ul>
<li><a href="https://medium.com/minswap/minswap-testnet-reflections-64b01c5e7c45" rel="nofollow noreferrer">https://medium.com/minswap/minswap-testnet-reflections-64b01c5e7c45</a></li>
</ul>
<p><strong>Indie contributions</strong></p>
<ul>
<li><a href="https://twitter.com/DarkeningAges/status/1436308661454975001" rel="nofollow noreferrer">https://twitter.com/DarkeningAges/status/1436308661454975001</a></li>
<li><a href="https://cryptois.land/posts/2021/09/10/simple-cardano-batching-bots/" rel="nofollow noreferrer">https://cryptois.land/posts/2021/09/10/simple-cardano-batching-bots/</a></li>
</ul>
