Ethereum’s Istanbul Upgrade Will Break 680 Smart Contracts on Aragon

Christine Kim
Sep 30, 2019 at 15:35 UTC
Updated Sep 30, 2019 at 20:10 UTC
news

A system-wide upgrade arrived on ethereum’s Ropsten test network on Monday. And while “Istanbul” should ultimately introduce network efficiencies, the testnet launch won’t be smooth sailing for everyone.

For governance platform Aragon, in particular, the code changes were expected to break roughly 680 smart contracts, according to Aragon One CTO Jorge Izquierdo. These smart contracts typically manage the governance of decentralized applications (dapps) running on the ethereum blockchain.

Izquierdo tells CoinDesk this means forced upgrades are required for the affected smart contracts in order to ensure decentralized autonomous organizations (DAOs) built on the Aragon platform continue to function smoothly.

“Up until now, DAOs could receive ETH from one another,” said Izquierdo. “This will no longer be possible after the Istanbul hard fork.”

Aragon One communications lead John Light says these fund transfers between DAOs on Aragon would effectively “run out of gas.”

Calling it an unfortunate “tradeoff” from Aragon’s point of view, Izquierdo said:

“The issue were going to have hasn’t been deemed important enough for this hard fork not to happen, which from our point of view is unfortunate [but] it’s a hard balance we understand.”

Indeed, for ethereum token-swap platform Kyber Network the system-wide upgrade only affects a single smart contract, according to Kyber Network co-founder Loi Luu.

Stepping back, the code change in Istanbul affecting certain smart contracts is known as Ethereum Improvement Proposal (EIP) 1884 and is meant to address one downside of ethereum’s steady growth.

As the size of the blockchain has increased, the computational cost to recall data about the state of the network (such as account balances) has also increased. Gas prices, on the other hand, have stayed stagnant, creating what Ethereum Foundation security lead Martin Holst Swende calls “an imbalance between the price of an operation and the resource consumption.”

In order to mitigate the possibility of overloading the network, EIP 1884 increases the gas prices of three resource-intensive operations.

SLOAD down

The so-called SLOAD operation will face the greatest increase in cost for application developers building on ethereum, going from 200 gas per operation to 800 gas per operation.

This four-fold increase in SLOAD gas cost is what breaks Aragon smart contracts and jacks up prices for end-users of the Kyber Network.

“In one Kyber transaction, we actually use a lot of SLOAD operations,” said Luu. “So after [Istanbul] is in effect, the price of most of our transactions will go up by 30 percent.”

While this is not the first time gas prices have increased for the SLOAD operation, Luu says the previous increase from 50 to 200 gas back in 2016 occurred when there were fewer active users of the ethereum network and when ETH had a lower market value.

Now, Luu says, increasing the cost of SLOAD operations will have greater ramifications to both end-users and application developers.

“[Istanbul] is the kind of hard fork that’s going to break a lot of smart contracts,” Luu said earlier this month. “If we weren’t following the conversation between core developers, we would have missed [EIP 1884 information] and that would have been very bad for us.”

That said, blockchain researcher Mihailo Bjelic said Monday that “bad developer practices” are likely the cause of such hiccups, rather than the nature of the upgrade itself, adding:

“Developers should definitely not be hard-coding assumptions about gas cost into their applications because these numbers can change at any point.”

Update (Sept. 30, 19:14 UTC): The Istanbul upgrade went live on testnet earlier than expected. This article has been updated to reflect that. Additional comments have also been added.

Vitalik Buterin image via CoinDesk archives