Hacking the Blockchain: ETHLondon 2020

Alessandro Penno
11 min readJun 8, 2020

--

Hackathons teach new skills, strengthen developer communities, and push the limits of new technologies. What I found at ETHLondon was a world-class ecosystem of Ethereum developers and entrepreneurs to build with and learn from.

Introduction

I’ll admit, before attending this hackathon, I had never been able to wrap my head around how the blockchain actually worked. Sure, I had watched videos and read my fair share of papers and articles but it never felt accessible or friendly. This tends to be the case with most emerging technologies and I found that blockchain was no different.

The reality is that despite an almost decade long history, the development of blockchain based technology is constantly being redefined through its community of practitioners. It’s precisely why organisations like ETHGlobal are so important to its spread and proliferation. By bringing together the best blockchain developers, entrepreneurs, and organisations, a weekend long hackathon becomes a hotbed for networking, learning, and solution building.

Before attending the hackathon, it’s important to mention that I had already dipped my toes in the blockchain world with a good friend of mine Cosimo de Medici, a cyber security and blockchain expert based in London. Together we attended a number of talks and events where I had the opportunity to listen and speak with various developers and leaders of the blockchain community.

But even after a few events, all this talk of tokens, smart contracts, and digital signatures still felt so alien. If I really wanted to empathise and ideate over the potential use-cases of the technology, I knew I had to get my hands dirty and work on something directly myself.

Enter ETHLondon:

The opportunity to work on a project related to the blockchain came in the form of an invitation from Cosimo. His startup was attending the ETHLondon hackathon as a team and they were looking for a product designer to add to their team of developers.

Day 1 of EthLondon

It was here where I’d finally have an opportunity to test the waters and utilise my product skillset to collaborate on the design and development of a decentralised application. As a product designer, I would be joining a developement heavy team which included a hardware specialist, four javascript developers, and a mentor.

Rules & Criteria

One thing in particular that stood out at this hackathon was the level of freedom we were given in how to approach our project. The only indication given was that we were to develop a blockchain based decentralised application using ethereum. The application would be judged upon by a series of criteria that you can see directly below:

Technical
The completeness and functionality of the project, and the relevancy of the resources utilised to accomplish the goal of the project.

Original
A project that hasn’t been done before, or doesn’t currently exist. The project addressing a new or unsolved problem, or creating a unique solution to an existing problem.

Ambitious
The complexity of the problem being addressed, or the approach to solving it.

Design and User Experience
The user experience and flow of the project is pleasant and delightful.

Wow Factor
The project is exceptional in some manner.

Brainstorming

Due to the lack of instruction given to us for how we should pursue our project, we approached the ideation phase as an open-ended brainstorming session which lasted well into the late evening of day 1. We tossed around a number of ideas, from building a car rental authentication app, to a voting app for internet identity, but nothing would really stick.

Brainstorming ideas 🧠

What we quickly realised was that we had a good mix of talent in our group. From our three javascript developers, to our hardware specialist, blockchain mentor, and myself as a designer, we had to do something that could incorporate all our talents. We knew we had to start a project that would combine software, hardware, and great design.

Wifi as a solution

One of the issues we experienced at the hackathon was the strength of our internet connection. Due to our table being located in the corner of the large hotel ballroom, it was often jumpy and inconsistent, making any kind of data upload incredibly slow. Which led to this dialogue exchange:

“Why can’t we just connect to someone else’s internet and upload the file?”

“Because nobody has their wifi set to public, it’s too unsafe…”

“What if we could leverage the security behind blockchain and allow people to re-sell their unused wifi?”

Enter UniFi:

Thus the idea was born. How could we enable wifi sharing through a Dapp (decentralised app) built on Ethereum. After a long brainstorming session, we had refined our approach to the wifi problem into a series hypothesis’:

1) We can assume that there is a lot of wasted bandwidth on private Wi-Fi networks, as they are not in constant use.

2) We can assume that most non-mobile users are not paying by the meter but instead monthly, which means that they are overpaying for a service they do not use at full capacity.

3) We also assume that a majority cannot access private internet on a minute-by-minute basis. The only existing solutions are public wifi hotspots, which tend to be insecure, expensive, and require you to share private information.

Our Solution:

We proposed a project that leverages existing broadband contracts, which are not used to their full potential, with people who need flexible access to the internet. We planned to develop this project with both software and hardware capabilities.

Software Engineering

The project would be coded through Javascript Web 3 and Blockchain Solidity. We started by utilising a smart contract that would handle all the logic of the website. The smart contract itself is global and acts like a website with a sole database where anyone with an ethereum address can access and enable micropayments.

Essentially, a user would access the smart contract, register and connect their ethereum wallet and top-up the service through the user interface. The UI was developed using web pre javascript, a front-end development language that can interact with the blockchain and smart contract. The smart contract itself was written in solidity.

Hardware Engineering

We would also be utilising physical hardware as an example router of the software in action. This would involve the use of a Raspberry Pi because its easier to deploy and is seen as a popular option. By leveraging an existing operating software that is installed on 90% of all routers (OpenWrt), all the users would have to do to host a wifi hotspot is download a software, click a button that installs a simple shell script and there you go.

The shell script is an important point to mention because it is a script that gets executed in the background and activates an access point via password. This access point can function both as private and public key and is essential for separating the two and creating a safe service.

Design Process

Both the software and hardware would be given a user flow and product design which was done primarily through Sketch and Adobe XD. The ideation of the project was first approached through user research and interviews from friends and fellow colleagues at the ETHLondon hackathon.

Once the pain points were understood, I looked at existing mental and product models and focused on visualising how the product could interact with a typical user. This required multiple levels of iteration until I found an Uber design model that combined navigation with crypto payment.

This seemed like a good fit because of the idea that a user would need to search for a hotspot via geolocation, navigate to it, and finalize a payment for that service. Moreover, we also designed a router interface that could explain how a host would handle their hotspots.

Raspberry PI hardware testing internet connection

Design & development philosophy

Our approach focused on three main ideas that would drive the vision and execution of the UniFi project.

Privacy — How can we provide an infrastructure and feeling of security?

Ease of use and access — What mental models and design concepts can we use? How can we get users new to the blockchain to learn and trust a crypto digital service?

Fair and transparent payment model— How can we make crypto payment transparent and easy to understand? How can we show this in the ‘pay as you go’ concept.

*We also wanted to leverage the use of smart contracts, a fundamental feature of any blockchain based application. Fundamentally, smart contracts are used to onboard users and top up their balances, manage data usage and prevent malicious actions, as well as enforce access restriction based on pre-defined terms of use.

Overview

At a base level, the wifi sharing app would have a user and host. If you are a host, you would download the Uni-Fi shell script software directly to your router via a computer. The software would enter the routers interface (granted it is OpenWrt) and implement a pay as you go payment system that could be accessed by users registered with the smart contract within the radius of the wifi signal.

In order for the user to access the wifi signal, they would need to have the Uni-Fi app downloaded on their device of choice, as well as their wallet connected to the applications meta mask. The user would also have to consent to geolocalization as the app will use GPS to show them the closest available hotspots. Once the user has selected a wifi hotspot (through a filter of internet speed and rate cost), the user would be navigated and invited to connect.

My role on the team

As the team product designer, I was in charge of giving the product a user flow and design identity that went in line with the actual software and hardware development. While the team got busy developing the code, I brainstormed what the identity of the product could be and how the user interface could look and function from both a hardware and software perspective.

Logo Design

It started first with the identity of the product. What was the logo going to be? What about the name? What colors would I pick? A big part of being a designer at a hackathon is giving the product an identity and a vision to keep the developers motivated on the goal.

Logo Design Process

I used sketch to brainstorm different designs for a logo and eventually fell upon the name Uni-Fi because our philosophy was to unify the users of the world wide web. We felt public wifi was an antiquated solution that was no longer valued by everyday users of 4G. Our solution would thus unify owners of unused broadband contracts and users that required decentralised pay as you go internet coverage.

Router Interface Design

The router interface was designed with the idea of letting the host quickly monitor relevant statistics like revenue streams, session duration, and popular times to make decisions on when and how to throttle the bandwidth to paying users. Moreover, being able to quickly view a user list can help against the possible threat of malicious actors who are interested in exploiting the network coverage by consuming large amounts of data.

User Flow

For the user flow of the mobile app, I found it best to record a video of myself talking over each page and explaining the design decisions behind them.

As mentioned before, I took great inspiration from the Uber design model. My aim was to combine crypto payment and adapt it to our three designated design philosophies mentioned earlier.

Privacy —By asking users about their location and making it clear that each step of the crypto payment was secure, users should feel safe about using the app.

Ease of use and access — By connecting crypto payment with navigation, we wanted the task scenario to be a 3 step process: Find hotspot, set details, navigate towards it.

Fair and transparent payment model — Clear language was a necessary design decision because we felt many new users would not feel confident with crypto. Adding clear language and informative payment details in the digital signature was an important example of this.

Conclusions

While we were not able to break into the final 5 teams (out of 100), the weekend long hackathon was a test of strength and endurance for everyone. We came up with a unique idea, rallied together as a team, and developed something that one day could be a reality. Maybe it’s not for now but there’s no doubt in my mind that leveraging unused wifi through a decentralised network could one day work in the future.

The Uni-Fi Team

Moreover, the hackathon was much more than just a hackathon. It was a community of people coming together under one passion and vision. Blockchain represents a new form of information distribution. It’s the black sheep that threatens to spin the digital world in a different direction.

Yet, blockchain remains vastly misunderstood by the public eye and that’s why these events are so important. Everyone can learn from them, from the biggest pros to the smallest amateurs. To conclude, I wanted to finish on one particular interaction of mine that stood out for me as an aspiring product manager and designer:

Me: How do I get buy in from users who don’t feel comfortable engaging with the blockchain and using something like a smart contract (despite it’s safety).

Pepo founder: There’s a great book called the ‘Mom Test’ and it says that unless you can explain the idea and concept to your mom, you haven’t yet simplified the language and usability. This idea is fundamental in blockchain entrepreneurship. Think the internet in the 90s, that’s where we are right now.

I hope you enjoyed reading this case study and that you learned something. If you’re interested in learning more about ETHGlobal events, I recommend checking out their website at https://www.ethglobal.co/. Until next time!

Alessandro is an aspiring product & UX designer with a passion for all things tech and gaming. Follow him here on medium for more coverage on his latest insights and curiosities.

--

--