Hey @autholykos, Justin has made some criticisms of the UTXO model for a smart contract platform.
https://twitter.com/Justin_Bons/status/1522917530104336385?t=iVDluDQsHkvh8yIxfVHbmA&s=19
I was wondering if any of these applied to Dusk Network?
"If many contracts or users have to access the state of one output,
It creates a race to be the first to spend that UTXO & there can only be one winner"
I might be wrong here, but this sounds more like an issue that can be somewhat resolved in a naive way. If you can introspect what notes are already available in the mempool or (if you're just thinking single user) if a client side transaction signer checks which notes are being attempted to spend, this should be mitigated for a large part.
Given that Cardano has a high time to finality, It'll be much harder to make assumptions for the former. (5-10 minute finality) While the latter doesn't necessary solve multiple smart contracts accessing the same note.
On contract state management through the account model (Like Dusk wants to do with Zedger), should in theory be able to mitigate some of the pains for certain use cases where that model is more efficient.
I'll have to check out how FuelVM prevents some of Cardanos issues, if they are even able to do so.
"If many contracts or users have to access the state of one output, It creates a race to be the first to spend that UTXO & there can only be one winner" I might be wrong here, but this sounds more like an issue that can be somewhat resolved in a naive way. If you can introspect what notes are already available in the mempool or (if you're just thinking single user) if a client side transaction signer checks which notes are being attempted to spend, this should be mitigated for a large part. Given that Cardano has a high time to finality, It'll be much harder to make assumptions for the former. (5-10 minute finality) While the latter doesn't necessary solve multiple smart contracts accessing the same note. On contract state management through the account model (Like Dusk wants to do with Zedger), should in theory be able to mitigate some of the pains for certain use cases where that model is more efficient. I'll have to check out how FuelVM prevents some of Cardanos issues, if they are even able to do so.
If you want to check out a successful UTXO based VM, checkout FuelVM. Ethereum L2 rollup with UTXO and a Rust-based language (Sway).