Cardano smart contracts are readying for rollout in less than a week. But, deep in the testnet phase, it’s emerged that a “quirk” in its eUTxO model may lead to issues of concurrency.
What does this mean?
eUTxO stands for extended unspent transaction output. These systems comprise the asset, smart contract, and additional on-chain data relevant to the smart contract.
So when eUTxOs are created, they have the option to have smart contracts attached to them. This model is based entirely on individual transactions grouped in blocks.
“What this means is that every time you wish to update data held by a dApp (inside of a UTXO), you must spend the original UTXO (thereby destroying it) and create a new UTXO at the same address & holding the same assets.”
This operates differently from the accounting (or balance) model employed by Ethereum, whereby assets are represented as balances within accounts, similar to bank accounts.
In computing, concurrency refers to the ability of a smart contract to handle requests from multiple different agents at the same time. However, a recent article by OccamFi points out that some Plutus developers are concerned that the eUTXO system employed by Cardano enables only one agent to interact with the SC at a time. Thus creating a concurrency bottleneck.
“Where developers are currently running into a problem is with only one agent being allowed to consume the UTXO and thus the SC at a time, creating this so-called “Concurrency” issue.”
An example of where this is problematic is in the case of operating a decentralized exchange (DEX), where multiple users require access to a contract address at the same time.
Cardano responds to the FUD
In response, developers Input Output Hong Kong (IOHK) dismissed this concern as a non-issue.
Explaining the situation, they posted a tweet thread, firstly, by defending the eUTxO model, saying it offers better security and fee predictability and “more powerful parallelization.”
“The specific flavor #Cardano uses is the eUTxO – or extended model which we believe offers greater security, allows for fee predictability (no nasty surprises…) and offers more powerful parallelization.“
Specifically addressing the point, they say their eUTxO system is not bottlenecked if developers employ multiple UTXOs. Which they say works to “enforce” parallelism.
“And to be clear, dapps are NOT limited to 1 transaction per block. By designing your service or application with multiple UTxOs, you can enforce more parallelism. This is inherent and – we believe – one of the advantages to eUTxO design as we have implemented it in #Plutus.“
Up-and-coming Cardano DEX SundaeSwap set the record straight by saying the concurrency problem only affects protocols that allow multiple people access to the same UTxO.
But Cardano is capable of running multiple UTxOs, which nullifies the issue.
Get an edge on the cryptoasset market
Access more crypto insights and context in every article as a paid member of CryptoSlate Edge.
Like what you see? Subscribe for updates.