Showing posts with label blockchain. Show all posts
Showing posts with label blockchain. Show all posts

Wednesday, April 11, 2018

Blockchain firsthand @ Google I/O 2018 with Mobitel

April 11, 2018 Posted by Akalanka 27 comments

Its that time of the year. The Google I/O, one of the largest tech gatherings in the world. So big that not only at the huge amphitheater at Mountain view California, thousands of tech enthusiasts gather to see whats latest by Google at extended events around the world. In 2017, the Google I/O event was live streamed as extended events in 534 locations globally. One such event was organized by Mobitel at Stein Studios with the participation of over two thousand tech gurus and geeks. Its back again and things will happen on the 8th of May at Stein Studios with the same glamour and glitz as last year. But this year Mobitel has tried to make things more interesting with blockchain.

Remember in the last post we learnt the basics of the blockchain? Now it is time to see a real life implementation of blockchain in all its glory. Mobitel has applied the blockchain technology to the process of registration and approval for Google I/O extended 2018 just so that you can have a first hand experience on how blockchain works. This is a great opportunity to learn even for the novice on how a real life application on how blockchain works.
In the last post we saw that blockchain is a distributed (stored in many many locations) immutable (cannot be changed) list of records. If you slow down and think a little you will realize that the registrations, ticket grants and such are all list of records with the participant details. For example the registration list is the list of participant details such as name, email, t-shirt size, food preference etc. Traditionally you can store this in a database or even an excel file without much problems. With blockchain, you store this list on the blockchain network. Any addition to the list is submitted to the network where it is updated. The list is publicly available and cannot be manipulated. Think of it like a distributed database which cannot be hacked. This is exactly how your registration details are stored when you register for Google I/O 2018 extended with Mobitel.

If you have entered the details for your registration in Mobitel's initial registration link, you will receive an email with the instructions needed to establish your smart contract based registration within the next couple of weeks. For example, this is what I got:

Important thing to note is the registration confirmation link in Step 2 which is unique to your email. Please do not share it with anyone else since this link is for one time use. If someone else uses your link for registration you will lose your chance to register.

Step1
The first step requires you to install uPort mobile app. You can find the app in Google Play or itunes for Apple. This is a generic open identity app for the Ethereum community and has no affiliation with Mobitel or Google. For more details visit https://www.uport.me/ Since your registration info is maintained in a blockchain, you need some form of a client app to  interact with the blockchain. Simply put, uPort to blockchain is like what a web browser is to the web. After installation follow few simple steps to get things started




uPort app contains your identity in the blockchain network. For those of you who are familiar with blockchain, you might find the information on the screenshot 6 interesting. It indicates that the app works on a non-commercial blockchain network. To be exact, it works on the Rinkeby Ethereum test network. This is where your registration details are stored.

Step 2
Now that you have a way to interact with the blockchain world, it is time to proceed with the registration. Click on the link that you got in step 2 in the email and click on the 'Complete Registration' button.

At this point you will be asked to login with uPort app. Open your uPort app and scan the QR code. You can find the QR code scan button on the upper left corner of your uPort app.
At this point your uPort app will request you to approve the login request with your identity in the blockchain network.

After clicking 'Continue' you can view the details of your registration entry (You might need to wait a couple of seconds after scanning the QR code for the 'Continue' button to become active). Remember, your details have still not been submitted to the blockchain network. Now it is time to create your smart contract for the Google I/O registration. To do so, click the 'Register button.

(Please note it might take for some time for the smart contract to get confirmed on the Rinkeby network.)

Congratulations! now you have successfully used a real world blockchain application. How can you be sure that its there in the blockchain? Simple. There is this great website called https://etherscan.io/ which is an online Ethereum block explorer. In layman terms it is a blockchain browser where you get to see smart contracts in the blockchain network. This is a public tool which has nothing to do with uPort or Mobitel. To view your smart contract etherscan.io, you need the transaction Id of your registration. Login to your google I/O registration again with your uPort app. Now you will be able to see that your registration is confirmed as seen below


Under your registration status, you can see a 'View your contract' button. Click on that and you will be redirected to etherscan.io where you can see your smart contract on the Rinkeby network.
If you don't speak geek, all this might sound gibberish to you. But hang on a sec, we'll try our best to explain whats what.

At the top you will see the transaction ID. You see every record added to the blockchain (always remember blockchain is a distributed list of records that cannot be changed) contains a transaction ID just like and entry ID. Sounds simple right? lets move on.

Next is the transaction hash. This is one of the primary parameters in ensuring the fundamental immutable property in the blockchain. It is basically a hash of the transaction details. If you are ready to dive deep there is this great couple of videos by a gentleman called Anders Brownworth https://www.youtube.com/watch?v=_160oMzblY8 and https://www.youtube.com/watch?v=xIDL_akeras along with a web resource https://anders.com/blockchain/blockchain.html It will make your life easy in getting to learn about the blockchain.

The next parameter 'Block Height' indicates how many blocks have been added to the chain after this transaction. The higher this number, the older the transaction and hence more secure it is from possible tampering(remember the immutable property)

Next few details are specific to the Ethereum network and it is very difficult to explain without going too technical. We'll try to have those debunked in a future blog post. However an interesting part is the last bit called 'Input Data'. At the end you can see the actual record details of the registration. So it proves that your record is stored in the blockchain network in a fully distributed fashion.
The record of your registration for Google I/O extended with Mobitel is now part of a distributed immutable list of records. Therefore there is no need to maintain a separate participant list for Mobitel. It is public and secure. You can use your uPort app to prove that you have obtained a ticket by pointing to the transaction of the ticket grant at the day of the event. This is a real life application of blockchain. 

Questions? Let me know in the comments section below!

Blockchain fast-tracked!

April 11, 2018 Posted by Akalanka 1 comment


Everyone has heard about it. Everyone thinks that others are doing it. But very few have actually done it. Yes we are talking about the blockchain! The internet if filled with explanations and interpretations about blockchain. Here's our take. A blockchain is a distributed list of records that is maintained in many machines across the internet. Think of it like the list of all the mischievous stuff you did at school. All the teachers and students know what you have done. There is no one place which contains your 'list'. Thus it is distributed. You have no way of altering what you have done. Everyone knows that it is you who spray painted the neighboring girl's school's wall. Thus it is immutable. Even if you try to spread a rumor that it was done by that guy you picked a fight with last term, it will soon get overwhelmed because people will only believe what a majority of their friends state. Thus any record cannot be altered without the consensus of the majority. 

In a nutshell- Blockchain gives you the ability to maintain a list of records in a distributed manner which cannot be manipulated by anyone easily. In contrast, how would you normally store a list of such records? In a central database in a server with strict security controls, which should work fine in many occasions. But going fully distributed using a technology like blockchain will unlock new opportunities for sure. 

One such is the Bitcoin. Money is something you do not trust with anyone for any reason whatsoever. Most of our monetary systems around the world depend on simple market dynamics such as demand and supply which are open but prone to subtle manipulations & unrelated charges. Blockchain makes it nearly impossible to do any manipulation which makes it a good candidate for handling monetary transactions. This is why crypto-currencies such as Bitcoin took the world by storm. It is this promise that led to a steep increase in the demand for Bitcoin and hence the huge peak.

The original creator of Bitcoin is a gentleman called Satoshi Nakamoto who published a paper on bitcoin. You can find the original paper by him at https://bitcoin.org/bitcoin.pdf which is pretty descriptive and surprisingly easy to understand. 
The world has moved on a lot since then. Ethereum foundation published their sophisticated app platform based on blockchain. It included a host of modifications to improve scalability as well as functionality. The term 'smart contracts' was coined during the same time since the new Ethereum platform paved the way to have programmable transactions. Simply put, smart contracts allow you to program payments, refunds etc. The fundamental properties of blockchain, coupled with programmable smart contracts open a large variety of use cases which were not possible or not very convenient previously. Therefore do not compare a present day use case which works nicely on a centralized system with a blockchain based approach and come to the conclusion that blockchain is an overkill. In many cases it would be an overkill. But there might be new applications with proper business models which might be well suited for blockchain. We will see in a later post how blockchain can be used for a ticket reservation system with a real use case.