Back to blog

Onwards

It's been a hectic few weeks for Ethereum and for Parity’s dev team. Some rather irresponsible individual found a flaw in the Ethereum protocol; notably several of the EVM’s operations were underpriced by around 100x. This meant they were able to construct transactions which cost relatively little to place on the blockchain but which ate up an awful lot of resources. The outcome of this was to cause most implementations to crash on block number 2,283,416. Just two months ago this would have been a cataclysmic event that would have stopped the network in its tracks - however thanks to some quite dramatic uptake of Parity amongst miners, exchanges, block explorers and wallets, the network kept on trucking. Score one for the implementation-neutral Yellow Paper and client-diversity on the network!

So why did Parity keep on going? Basically due to great optimisation and profiling efforts, a clean codebase written for efficiency and robustness from the ground up and the use of the extremely lean Rust language (named since nothing is “closer to the metal”).

In our internal testing we can see that a Parity-only network would (attack blocks notwithstanding) be able to handle a far higher gas limit than the Ethereum network will allow right now. My laptop is routinely able to cope with 3,000 transactions/second when synchronising, 200 times faster than the network presently supports. Being so much faster than the network actually needs gave Parity the advantage it needed to cope with these "100x slower" exploits.

Nonetheless, the protocol is fundamentally flawed and will need to be fixed in a reparatory hard-fork, the sooner the deployment of which the better. In principle, once the protocol is fixed, this suggests that we can probably eek out a substantial performance gain from the World Computer (perhaps 10x) simply by refining the gas metering system and optimising the faster clients to get into the same comfort range that Parity enjoys.

This all got me thinking about the work I did on scalability in 2014 called Chain Fibres - some of the ideas from which Vitalik mentioned in his recent Mauve Paper. Chain Fibres and the later Redux were based on ideas I came up with after a conversation with Janislav Malahov (self-styled “godfather of Ethereum”) about how one might tackle scalability. This was obviously way before Ethereum launched; the experience of the last two years has somewhat altered my thoughts about what the most sensible path into the future might be. I’m presently putting these into words and hope to be able to share them with you soon.

Our next release was inevitably put back a little with some of the (now necessary) optimisation work, but it is nevertheless progressing nicely with a new user interface (including improvements to our trusted signer framework) and 'Warp-Sync', our first piece of work towards an Ethereum light client. Watch this space for news of the release!

Gav

Read more

  • On Classes of Stuck Ether and Potential Solutions

    A Brief History

    Since Ethereum went live two and a half years ago, users and developers have often struggled with the usability and building on this new ‘Frontier’ of development.

    The issues began almost immediately as the first users of Ethereum had to grapple with a command line interface that was extremely unforgiving of mistakes.

  • A Postmortem on the Parity Multi-Sig Library Self-Destruct

    On Monday November 6th 2017 02:33:47 PM UTC, a vulnerability in the “library” smart contract code, deployed as a shared component of all Parity multi-sig wallets deployed after July 20th 2017, was found by an anonymous user. The user decided to exploit this vulnerability and made himself the “owner” of the library contract. Subsequently, the user destructed this component.

  • Parity Technologies Multi-Sig Wallet Issue Update

    This week, as has been widely reported, a vulnerability in the Parity Wallet library contract of the standard multi-sig contract was found by an anonymous user. This user managed to gain access to the smart contract, effectively making themselves the owner of the contract.

Back to blog