Through this research we’ve observed the inability to successfully implement layer-one sharding on account based transactional models. As demonstrated in section III. B account based systems implement layer-two scaling to emulate the parallelization of UTXO sharding. We also observe the inability for off-chain automation dependent solutions to exist on UTXO based systems, due to smart contract incompatibility. The impact of this lack of solution interoperability between layer one and two presents a glass ceiling of scale out potential.
Layer two projects such as Plasma still rely on a heavily constrained main chain for coordination and dispute resolution, zero-knowledge and optimistic rollups all have similar dependencies on parent coordination. If sharding were implemented harmoniously underneath these architectures, bottlenecks would be avoided in main-chain coordination. This allows both scalability layers to scale-out by a factor of the other.
Imagine a scenario where a mainchain can handle 10,000 transactions-per-second through off-chain scaling and smart contract automation. The overall network architecture can continually scale on layer-two through nested parent/child relationships, however coordination and resolution cause a mainchain bottleneck. Resolving this with layer-one solutions, such as OmniLedgers linear scale-out sharding would increase potential speeds by a factor of n, where n is equal to mainchain parrelization.
To address this we propose the use of an Extended-UTXO model that allows for smart contract compatibility. This specification allows for off-chain automation in rollups, while maintaining the ability to shard UTXO states and transactions at layer-one.
A. Design Architecture
The eUTXO follows the same graph based approach that the UTXO model does, complementing the concurrent and distributed attributes of blockchains. The graph based model eliminates the need for a globally shared mutable state, which is known to cause highly complex problems when facing computations involving that shared state [6]. The first account model blockchain, Ethereum, did solve how to run expressive smart contracts on a global state machine capable of execution on-chain. The eUTXO is an extension onto the UTXO ledger which notably increases the expressiveness of the model, while still utilizing the concurrent data flows of unspent transactions.
In creating a more extensible model, transactions can occur on more expressive state machines without needing to use an account model. Each individual transaction that occurs on a concurrent chain represents steps in state machine and to utilize a more expressive model, the state needs to be maintained and the same contract code is used along the whole sequence of transactions.
The eUTXO model maintains contract state by extending unspent transaction outputs from being a pair of validator and digital asset to a now being a treble containing a validator, the asset and a datum, where the datum contains arbitrary contract specific data [6]. The eUTXO model implements local state machines which are capable of running smart contracts on them to produces new unspent transactions as well as maintain the new state to be maintained. This enables developers to build distributed applications on massively scalable platforms.
OmniLedger inspired sharding protocols will be adapted to the eUTXO model using verifiable random function (VRF) to accomplish network sharding at layer-one [20]. We intend to use a temporary shard coordinator delegated through VRF election, to generate an unbiased random string. Each epoch the unbiased random string is used in shard assignment.
eUTXO transactions will be assigned through the use of a randomly chosen directory service shard. This phase is based on Zilliqa’s approach to transaction sharding [22]. We intend to use the unbiased random string generated by the temporary epoch coordinator to delegate this directory service shard.
The directory shard will assign transactions to shards based on the sender’s address and smart contract state being interacted with. Smart contract states will be maintained in the eUTXO transactions respective shard. Contracts will be fully executed globally at the end of each epoch when the directory service coordinator synchronises the entire network state.
As the eUTXO model supports the use of smart contracts, further layer 2 solutions such as Zero-Knowledge and Optimistic Rollups could be implemented, and even create nestedchains that communicate through smart contract two-way pegs which could increase throughput exponentially.
Authors:
(1) Cayo Fletcher-Smith, Bournemouth University;
(2) Frazer Chard.
This paper is available on arxiv under CC0 1.0 DEED license.