Chainhack24: My first hackathon, in Blockchain!

Chainhack24: My first hackathon, in Blockchain!

I always said that I would talk more about my first hackathon, in London. The event was called Chainhack24, and took place in November 2018. This was almost an year ago, yet I recall it as if it happened yesterday. It has been one of the most important, and successful, experiences of my life as a programmer, and one to which I will compare all my following experiences.

I knew next to nothing about Blockchain. I knew it existed and that it was used for the Bitcoin technology. That was it. Yet there I was, going to my very first hackathon, which had as a main thematic the use of Blockchain technology.

I was part of a team of 3: me and another guy, from first year, and another guy, from second year. At least we were all Computing students, which was nice...but so where the others. We were surrounded by masters and PhD students, with experience using Blockchain technology. It already felt like an underdog story.

The first part of the Hackathon was a presentation. The sponsors presented their work, their open source APIs, their challenges. But before that, there was a crash course on what Blockchain is and how it is used. This was well received, as I finally understood what the deal was with this technology, and why it could be useful.

The competition had 3 main prizes (1st, 2nd, 3rd place), and 4 side ones. Theoretically, you could receive as many of the side prizes as you could earn, but each was in a different thematic: Security, Identity, and other two which, frankly, I forgot their names. The main point of the side prizes was to give you an idea to follow.

Main Project: UnID

After the presentation, we had to start working. Of course, the idea did not come from the start, so we started brainstorming. After about half an hour, I finally came up with an idea inspired by two things. Let me first present to you those main ideas:

The Sovrin API

Sovrin is a company that has created an API which allows storing your digital identity in a decentralised way. If you need to share your identity with any website, you can use Sovrin to retrieve only the necessary information, leaving the rest safe and secured. Imagine when trying to create a new account/sign up on a new website. Sometimes, you have the option to sign up with Facebook/Google etc. When doing that, you are allowing those sites to share ALL your personal details, even though not all of them are required. Instead of doing that, Sovrin keeps personal details safely stored.

An unpleasant experience at the airport

Recently that month, I went to Venice from London. When I got to the airport, I realised that I forgot my passport back at my accommodation. Luckily for me, I had my national ID, which was enough to pass the border safely, yet there are places where you need a Passport to enter, sometimes even a Visa.

These two ideas made me wonder: how wonderful would it be to have ALL your details stored in a decentralised manner, and being able to use them anywhere, not just online? And not just name/age/sex/interests, but also National Number, credit card details, Insurance Number, home address, everything! One card to replace them all, yet safer and more secure than any of them.

Let me give you an example of what I mean about "keeping details more secure than on a National ID". Imagine you are a student, of legal drinking age, and you want to enter a club or buy a beer. People ask you to show them an ID to check your age. You do show them an ID, or a driver's license. The issue then is that you have not just told them whether your age is bigger than the legal drinking age. You have also told them what is your actual age, your full name, your National Number, even your home address! There was a person once that asked me about my home town when checking my ID.

The newly envisioned ID would not even have shown your age. It would have just answered to the question "Is this person allowed to drink?" with a boolean value.

Idea:

UnID, or Unified IDentification, was our solution to the issue of carrying a whole wallet around with you filled with cards and IDs.

It would be a blank card, no information on the front or back. Our futuristic idea was that it would have a fingerprint sensor on the front, so that, when being scanned, it would allow you to share the information.

Sharing information would happen wirelessly, by scanning this card with another device, POS-like, which has been set up to receive only the required information. For extremely sensitive data (National ID, Passport, card details), this device would have to be approved by the government and set up by a legal team, but other than that, this pair of devices could become the new world in which we live in. No more bulky wallets, no more sensitive information exposed. Just an easy and secure way to share it.

Did I mention that I would like it to work as an Oyster card as well?

Prototype & Presentation:

Of course, this idea could not be made reality in just 24 hours. We literally worked day and night to have the demo working, and in the end, we have done it!

Our demo had 3 parts: a Java phone application, a website and a server. The app and the website were similar in an extent: they were both used to mock a sign up and a sign in attempt to the main "account" that would be part of the card. Both would connect to the server and use it to upload and retrieve the data to a decentralised location (this was mostly done under the hood, by the API that we were using).

As not all computers have a quality fingerprint sensor, we wanted to add an extra feature for the online users of the decentralised identity. Therefore, for the demo, have added a fun extra feature: face recognition. We have found a really good open source version of such an algorithm, so most of the work was already done. What was a bit tricky was actually setting it up as a web page. At the demo, by training the algorithm with multiple pictures of my face, it was able to successfully unlock my account by looking at me through the laptop camera.

Prizes:

We have had very serious competition to this event. As mentioned before, most of the teams were made out of master's students, with prior experience in working with this technology. There were a lot of teams, and there were a total of 7 prizes.

A thing that put us down was that most of the other teams seemed much more ready with their demo than us. They seemed to have made fully fledged applications, cryptocurrency mining and trading platforms, with complex algorithms and a lot of knowledge in explaining the intricate details of the smart contracts that were happening. I don't understand most of what they were saying now, after almost an year from that event. They were good.

However, they did not have our idea. Their projects were mostly finished because they were made for a smaller scale. Ours, indeed, was not as fully fledged as the others, but we believed it had potential. We have worked non-stop on it for 24 hours, and we loved how it turned out to be. Either way, we would have been happy, even if we wouldn't have won anything. We have learnt a lot already, and we were proud of what we have done.

Then, the awarding ceremony started. They congratulated us all for our work, talked a bit more about the future of Blockchain, then went quite swiftly with the prizes. They started by announcing the Identity Prize winners, which, to our delight, they were us! The stress and the lack of sleep, though, made us react in a quite peculiar way. We started laughing! We were happy! It seems that the overall idea was loved by the whole jury!

As a note, the Identity Prize was to be awarded for the team which made the overall best application focused on having a personal, decentralised identity, and its best uses. Out of all the people there, that meant that we had the best project in this category! This was already too much to comprehend.

We were about to head out when they started announcing the podium winners. They have announced our team as the third place! In my first Hackathon, on a topic about which I had almost no idea before I started working on it, me and my team won not one, but two prizes! Out of 7? As you can imagine, our reaction was a more pronounced version of our previous one.

Final thoughts:

I can describe the whole experience in a very diverse way. It was confusing, interesting, overwhelming, hard, stressful, exhausting, and extremely rewarding. In those 24 hours, I have worked my a** of like never before. I have found out so many things about team management, project planning, task researching and I haven't even gotten into how much I have learnt about a technology I knew nothing about.

I used to have this misconception about doing things. I thought that, in order to do something, you must first know how to do it. And before that, you would have to want to do it first. Well, I have just done something before knowing anything about it! This is an idea that I have read in The Happiness Equation earlier this year: it's a circular process. The more you do, the more you want to do something. The more you want to do it, the better you can do it. The better you do it, the more you do it, and so on!

Of course, as I mentioned previously in another post, I believe that hurrying up with the project made the code an absolute mess, and, if I ever wish to continue working on it, I would much rather start from scratch. However, this relentlessness that I have found inside of me in those 24 hours, I have used them as frequently as I could in other projects that I had to do, for university and outside of it. I have continued participating in Hackathons and as many contests as I could. Heck, I just participated today at a two hour NLP competition, and I found out about it 10 minutes prior :).

Overall, Chainhack was an experience I will never forget, that continues to drive me to this day. The amount of knowledge that I gained and work that I put in such a small amount of time was intoxicating, and I am continuously trying to replicate and improve on this experience. Next time, hopefully, I will be wiser. I wish to apply my knowledge from The Pragmatic Programmer and Clean Code, so that I can keep my work as a trophy, and continue to improve on it.

要查看或添加评论,请登录

Tiberiu Andrei Georgescu的更多文章

  • How to Win a Hackathon

    How to Win a Hackathon

    Did you ever participate in a hackathon? If you're an engineer, I cannot recommend the experience enough. It's a fun…

    3 条评论
  • True Concurrency: Parallel Picture Processing in C

    True Concurrency: Parallel Picture Processing in C

    Some of my peers find me a little bit of a masochist for this, but I love writing concurrent code. It is so satisfying…

    2 条评论
  • WACC Compiler Project

    WACC Compiler Project

    & Semi-Book Review for "Engineering a Compiler" This year was tough. Next to courses that took a long time to prepare…

    2 条评论
  • First Job: Teaching Game Development

    First Job: Teaching Game Development

    The year before coming to Imperial was one of my more interesting ones. I had my baccalaureate to take, and a lot to…

    1 条评论
  • Project: ARM11 & Raspberry Pi Smart Mirror

    Project: ARM11 & Raspberry Pi Smart Mirror

    During my first year of college, I have had multiple occasions to work in a team on a big scale project. One of the…

    1 条评论
  • Clean Code - Review

    Clean Code - Review

    I have recently finished reading this masterpiece of a book. I started reading it while working on a group programming…

  • #100DaysOfCode 22/100: Oh boy, here comes Computer Vision

    #100DaysOfCode 22/100: Oh boy, here comes Computer Vision

    Ok, this is the first time I'm using the article thing on LinkedIn, and it's for a DayOfCode! You may think that it's…

社区洞察

其他会员也浏览了