AVOUM for Nervos: Account-View-on-UTXO-Model
A project by [Mutual Knowledge Systems, Inc.],
(Last revision June 7th 2021)
We design and propose to implement a technique whereby users may interact with DApps using the convenient Account/Balance model made popular by Ethereum on top of a smart-contract-capable Blockchain that uses the more robust but more rigid UTXO model, like Nervos, Cardano, Bitcoin Cash. The two main issues we solve are:
- “Open” contracts with an unlimited number of participants or transactions can be subject to economic DoS attacks whereby sophisticated attackers can modify the contract’s UTXO faster than the victims can react, thus blocking them from interacting with it. By making these transactions suitably malleable, intermediaries (at equilibrium, miners) can compete to get the transactions accepted by the blockchain in exchange for a fee.
- Writing UTXO unlocking scripts wherein transactions are suitably malleable enables users to interact with contracts as if the blockchain were using an Account/Balance model; but applying the design pattern by hand requires a great discipline and the result may or may not be recognized by the transaction posting intermediaries (miners). Our solution is to automate this discipline away using a suitable Nervos library.
Our solution will enable the safe deployment of “open” contracts on the Nervos blockchain, that is not currently possible, and will bring its smart contract capabilities in parity with Ethereum.