When the team behind Trybe moved to sort out an error with their token Airdrop, it showed up what is perhaps the biggest difference in the smart contract platforms.
There has been a lot of talk, and a lot of hype, surrounding distributed applications and the platforms that allow them to be created. Earlier this year, EOS completed a humungous $4bn ICO, and has emerged as a serious competitor to Ethereum for development within the dApp market. Indeed, there are apparently around 200 different dApp offerings in development as we speak – many of which will airdrop their own tokens into the wallets of interested EOS holders. Ethereum, though way ahead of the game as the first example of a smart contract system, has had problems of late, not least with scaling its systems to meet the demands of a large scale app.
According to a report from The Next Web, when EOS-based social media dApp Trybe attempted to roll out an airdrop for its accompanying token, things went wrong. What transpired, due to a problem in the contracts undertaking the ‘drop, were that too many tokens were sent to certain users. What happened next, though, was potentially an even more interesting story.
In a move that has raised some eyebrows, the development team behind Trybe were able to reverse the transactions and take back tokens from user wallets without their permission. Thus, the situation not only pulled into focus ongoing concerns about problems that could be caused by errors in smart contracts, but also one controversial difference in the way that EOS works: its mutability.
One of the central tenets of Satoshi Nakamoto’s original concept for a cryptocurrency was its immutable database of transactions, a database confirmed by consensus. Transaction committed to the Bitcoin blockchain would be recorded and, once confirmed, then be impossible to change. They would serve as an ever-preserved, complete and unimpeachable record of all transactions that has gone before.
Ethereum is built on the same premise; once a smart contract does its thing, the transaction is immutable, un-reversable. EOS, is very, very different.
Those with longer memories may remember that, when coding problems in a smart contract were exploited leading to the collapse of the infamous failed ICO ‘The DAO’ back in 2016, the only available option to those in the Ethereum community that wanted to see investors refunded was to fork the main Ethereum blockchain. It was the schism that eventually led to the Ethereum/Ethereum Classic duo we have today.
While Trybe’s problems were many, many degrees less serious – and less costly – than those created by The DAO, it’s creators seemingly felt no moral issue with intervening quickly and exposing one of the core philosophical differences between the two competing platforms. A simple tweak of the contract code, and all funds were returned, and the devs lived to try another day.
Any similar problem on a dApp built on Ethereum would, presumably lead to a hard choice for its developer about whether to fork its token in order to recover funds. For example, millions of dollars worth of Ethereum is still trapped in limbo due to a problem with the smart-contract powered wallet, Parity. It has been for nigh on a year now, since accounts of users were frozen when an important code repository was accidentally deleted. However, despite the high-stakes there, no fix has been forthcoming. The mistake cost millions to those unlucky enough to be affected.
While the idea of forking a currency to fix a coding error may may seem like using a mallet to crack a hazelnut, many would argue that EOS’ system – which allows contracts to be changed after they are deployed – cuts against the very concept of decentralisation, and the blockchain itself. It could also, potentially, leave users vulnerable to malicious updates that could change these contracts in nefarious ways, if they are they not savvy enough to audit code themselves.
Trybe’s developers appear unapologetic, however. In a Reddit post on the matter, founder Tom Norwood said: “this is very new software, as you are probably aware, and the fact that it doesn’t have more bugs is a miracle in itself.”
“If you’d prefer just to attack us,” he continued, “or to attack EOS itself because yes, EOS (unlike most blockchains) does have options available when things don’t go exactly according to plan, then feel free.”
“We are comfortable in our decision to reverse transactions in this instance rather than leaving huge amounts of tokens in a few people’s wallets.”
In a blog on the matter, aptly called Hard Day At The Office, Trybe dev Nathan Rempel put three questions to the EOS community that he sees as key to the matter:
“Should a technology punish our mistakes and prevent us from fixing them? What does this achieve?”
“Is too much flexibility and freedom going to erode confidence and slow adoption? Or is the transparent flexibility the missing link to widespread use?”
“Is there a middle ground? What does it look like?”
These are perhaps philosophical questions that are going to shape the competition between Ethereum and EOS for hearts and minds of dApp users and developers for a good while to come.