ETHERLive
ETHERLive delivers real-time price and volume data across 16+ exchanges to users in a clear and easy-to-understand package. Users can get up-to-the-second updates for each exchange/currency pair, as well as aggregated market averages for each exchange, currency, and the market as a whole. It also provides a global converted average of all the currency pairs monitored by ETHNews, converted to USD.

---

24hr ---
--%
Wednesday Dec 13th 2017
RESOURCES

The Basics

Learn the basics of Ethereum and various cryptocurrency technologies

Learn More

What is Ethereum?

Understand the underlying principles of the Ethereum Platform

Learn More

The Blockchain

Discover the revolutionizing technology known as the blockchain

Learn More
SUBMIT

Press Release

Submit a press release for consideration on ETHNews

Submit Press

Story / Dapp

Submit a story or DAPP to be considered for publication on ETHNews.

Submit Story

Explanation

Submit "Ethereum Explainer" content for consideration to be featured on ETHNews

Submit Topic
ETHNews Logo
---
--%
Home
News
Etherlive
Ether Price Analysis
Resources
Contact Us

Babbage Will Help Contract Designers Visualize Ethereum Functionality

By

Jeremy

Nation

WriterETHNews.com

Dr. Christian Reitwiessner is developing Babbage, a visual representation of the code behind Ethereum contracts.

Dr. Christian Reitwiessner proposes to make executable distributed code contracts (EDCCs), or smart contracts, simpler to understand.

Reitwiessner spoke on a number of topics at Devcon3 in Cancun. On November 2, during his talk, “Babbage: A mechanical smart contract language,” he focused on ways to more easily expose the functionality of EDCCs. With Babbage, Reitwiessner said, “You’re encouraged to create machines that look simple and are easy to explain.” The “machines” he’s referring to are actually visual representations of EDCCs.

Tiny pieces of code can be hidden anywhere in EDCCs, potentially leading to huge security flaws if they go unnoticed. Reitwiessner gave the example of a line of code that simply read “lock equals false.” That seemingly innocuous phrase actually makes it possible for someone else to meet certain conditions and open the contract, even after the contract’s controller believes it is locked and safe. Once that happens, the contents of that contract can be transferred out.

“Anywhere in the smart contract you hide this tiny line that says ‘lock equals false’ If you want to find out whether it is possible to only lock the smart contract once and not unlock it later, you have to analyze the full thing and find every occurrence of the word locked inside the smart contract, and I would say this is a general problem of any text-based programming language – that variables can be referenced just by stating their name from anywhere. That’s not 100 percent true for all programming language but I guess the idea is there in all text-based programming language.”

Reitwiessner made the analogy, “Imagine walking the streets of Cancun and shouting Vitalik Buterin, and Vitalik pops up next to you. That’s weird right, that doesn’t really work in the real world, why should it work in the programming world.”

Reitwiessner went on to discuss how the naming conventions for programming functions are commonly written in a natural language. He says that while most people agree this language will be English, not everyone speaks English and so it represents a barrier to non-English speakers, particularly when it comes to catching little flaws like that piece of code earlier. To drive the point home, he showed an EDCC written in Gaelic and invited the crowd to analyze it for faults; none could.

Another of Reitwiessner’s examples likens the Ethereum Virtual Machine to a soda machine:

“Imagine you have a soda vending machine that is somewhere in the public. Anyone can walk up to it and buy soda from it … this soda machine is made of glass and this means everyone … can see whether there are actually still drinks inside before interacting with it … You can even see whether there is still change inside the machine … you see whether it makes sense to pay with large coins or small. You can even try to see how it works.”

The analogy of the soda machine is appropriate for the idea that Babbage represents. As Reitwiessner proceeded to display a Babbage contract, which is a visual configuration of “valves,” “tanks,” and “pipes” representing EDCCs, it makes sense. All the pieces of the contract’s code can be visually represented. Ether flows between various tanks that are controlled by levers representing the code that would govern such transactions. An array of increasingly complex multi-signature contracts were shown in such diagrams, proving that the underlying code, which allows Ether to flow between various parties based on consent, can be visually represented.

Babbage

Visualization with Babbage may aid developers to create more practical EDCCs that are easier to audit and thereby function well. “This is, for now, just a common concept. I welcome everyone to join the discussion.” Babbage has a Google group where Reitwiessner hopes others will contribute and help the project grow.

Jeremy Nation

Jeremy Nation is a writer living in Los Angeles with interests in technology, human rights, and cuisine. He is a full time staff writer for ETHNews and holds value in Ether.

ETHNews is commited to its Editorial Policy

Like what you read? Follow us on Twitter @ETHNews_ to receive the latest Devcon3, Babbage or other Ethereum technology news.