On 27 December 2019, we launch the Opera network. Opera is an EVM enabled blockchain-powered by Lachesis consensus. This article aims to articulate clearly what this is, and what this isn’t
The EVM currently used by Opera is the default go-ethereum VM implementation. This does not include the enhancements we have proposed in the paper “The Economics of Smart Contracts by Kirk Baird, Seongho Jeong, Yeonsoo Kim, Bernd Burgstaller, Bernhard Scholz”. These enhancements are only scheduled for development during Q2 & Q3 2020.
The above comes with some considerations. If we benchmark go-ethereum as an example we find ~800–2000 TPS on syncing and simple transfers, with no transaction pool. So the EVM itself has a maximum theoretical cap based on the provided hardware.
So right from the start, Opera has a theoretical throughput limit. But this limit is not imposed on the Lachesis (our consensus engine that underpins Opera). We have a few proposed EVM optimizations during 2020 which include our published and unpublished research, which from benchmarks have shown to increase throughput by almost a tenfold measure. More of this will be released in 2020.
The next consideration, with Lachesis, it was designed with a 1:1 relationship between transaction and event block. This is because the original Lachesis design does not need knowledge about the data provided in an event block. And assumes all available data will be packed into 1 event block. With Opera, however, it does have awareness of these transactions and includes them 1 by 1 from the memory pool. This means the current design of Opera has a 1:1 relationship between transactions and event blocks. The next upgrade scheduled for late Q1/early Q2 will allow Opera to pack as many transactions as are available into a single event block.
Opera, as currently released, with over a hundred validators can achieve a throughput of ~500 transactions per second, with ~2s time to finality. The transactional throughput we can scale with EVM enhancements and packing additional transactions into an event block. Adding additional transactions into the event block is a quick win, but we are still capped at EVM throughput. So this redesign has to take place first.
Time to finality is currently roughly ~2s, and this is because event block emission has to be set at around ~800ms-1000ms. There is a new proposal on how to further be able to decrease this to sub 250ms so that TTF can be achieved sub-second. We will release additional papers on this during Q1 2020
These are just a few examples of the high-level improvements and proposals that are still pending and that we will continue to work on through 2020. Opera is our showcase of what Lachesis can achieve, but it is important to understand the constraints and capabilities of each underlying component.
During 2020 we will also be completely decoupling Lachesis into a standalone implementation solution that can be used plug and play in new and existing consensus solutions. Furthermore, we will be releasing a transaction only Lachesis, to show the maximum capabilities that Lachesis can achieve in a non-execution based environment.
So while 2018 was a year of research, and 2019 was a year of challenges, 2020 will be the year of optimization for Fantom, and we are excited for what the future holds.