Etheroscope: unleashing smart contract data — part 1

Dani Ismailov
Alice
Published in
5 min readOct 19, 2018

“Why do you need the blockchain for that?”

It’s something we get asked time and time again, and it’s a totally fair question given the hype, scams and broken promises that are unfortunately widespread in our sector.

For Alice, blockchain technology is essential to what we’re building in a number of ways. One of the most important — which is what I want to focus on in this post — is transparency.

Our mission at Alice is to bring to light the very best ways to improve people’s lives, prevent suffering, and protect our planet. We do this by making sure that everyone is able to check the track record of every single social and environmental project on our platform. And there is no better tool for this than a global, fully transparent and incorruptible ledger.

Blockchain transparency in practice

Unfortunately, today, the use of blockchain technology is still largely inaccessible to the public, and remains the preserve of the technically savvy.

Alice, for example, utilises “smart contracts” — self-executing computer programmes built on top of the Ethereum blockchain — to create incentives for nonprofits to share data about their impact.

One of Alice’s most interesting features, for example, is our ability to run projects using a “donations by results” model, where nonprofits only receive donors’ money once an independent third party (a “validator”) verifies that they’ve achieved their goals.

Thanks to these smart contracts, it is possible to track, with full transparency, how many lives a project run on Alice has improved.

The problem is that, while these contracts on the blockchain might be “smart”, their genius is buried deep, and extracting data from them involves sifting through reams of transaction hashes long enough to give any untrained eye a pounding headache.

What use is all of this transparency, if the data produced by the smart contracts can’t be accessed or understood by normal people?

The limitations of current solutions

Of course, tools to explore the Ethereum blockchain already exist. Etherscan, for instance, has played a pivotal role in making Ethereum more user friendly by allowing people to monitor transactions, and it’s one of the most commonly used tools in the ecosystem.

But existing explorers are still a long way from making it easy to unpack the richness of data held by smart contracts. That’s because they tend to focus on tracking transactions — a model inherited from Bitcoin explorers — rather than the state of the data held within the contracts.

Let me give you an example: if I want to check how a social project is performing on Alice, I can use Etherscan to easily see every single transaction that has been made to alter the contract’s state. We ran a pilot last year with a charity called St Mungo’s to help homeless people in London find accommodation, for instance, with each claim verified by the housing team of London’s local government. Etherscan allows us to see every donation made, every verification made by the validator, and every payment made to the charity from the donations pot.

Here’s what a query of that project’s smart contract on Etherscan looks like:

What’s beautiful about this, is that it’s a perfectly transparent audit trail. But in order to figure out what the current number of lives improved by this project is, I’d have to click on each transaction, then check the metadata to see if it corresponds to a claim validation, and then add each of those transactions up manually to calculate the final number.

In other words, a nightmarish user experience!

Introducing Etheroscope

We decided to tackle this issue by creating a radically new explorer, which puts smart contracts front and centre. We wanted to make it easy for anyone to see the current state of a smart contract and show, at a glance, how that data has evolved over time.

Our open-source explorer, called Etheroscope, works by first identifying which variables are recorded by a smart contract — for example how many donations made to a project are still pending approval by the validator to be paid to the charity — and then immediately gives the current state of that variable.

This makes a huge difference in terms of user experience. To draw an analogy, it’s like looking directly into a bank vault to find out how much money is in there, rather than trying to figure it out by adding and subtracting every single deposit or withdrawal that has ever been made.

Even better, Etheroscope is able to scan over the blockchain, index how those variables have changed over time, and present you with that data in a visual format that is simple and, most importantly, familiar. As a donor on the Alice platform, this means you can find out a wealth of information held in relevant smart contracts, simply by searching for a project’s name. No hashes, no sifting, no headaches.

For a more technical explanation of how we built Etheroscope, you can read this blog post, which was written by students of Imperial College London’s Centre for Cryptocurrency Research and Engineering who helped us develop it.

The journey ahead

Etheroscope is by no means complete. We’re working to improve its UX and UI so that it’s as accessible and friendly as possible. This is absolutely crucial for us, as we hope to make exploration of smart contracts possible for everyone, regardless of their technical skills.

We’re also working to increase its indexing speed, and have found new ways to access raw data from Ethereum’s LevelDB storage that cut down on the overheads incurred from the usual RPC calls through Geth/Parity. That’s out of scope for this post, but we promise to publish a more technical explanation on this soon.

Keeping it transparent

Although the idea originated from a specific need we had at Alice, we know that Etheroscope will benefit many projects in the Ethereum ecosystem. That’s why the code is completely open source. We’d love you to help improve Etheroscope, encourage you to look at the code on our GitHub repo, and get in touch via email or Slack to get involved!

--

--