Sikorka – Ethereum Meets the Outdoors
Devcon·Mon, Oct 9, 2017, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/2/ethereum-meets-the-outdoors This talk will introduce Sikorka. It’s a system that allows smarts contracts to be deployed out in the open air. Users can interact with smart contracts deployed around them or deploy their own. We will see how Sikorka works, some of its use cases, the work done so far and what remains to be done. Speaker(s): Lefteris Karapetsas Skill level: Intermediate Track: Developer Infrastructure Keywords: sikorka, solidity, contracts, royalty, scalability, security, api, presence, real-world, interactive, light client, app, maps Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 2 was held in Shanghai, China on Sep 19 - 21, 2016. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
[Music] leus carpetas he'll be speaking on soraa ethereum meets the outdoors hello uh yeah waiting for the slides great so uh my name is leis caretas I will be talking to you about um a pet project of mine called sorka where ethereum meets the outdoors um first I think a few things about me uh I have been an ethereum core developer since 2014 I've mostly worked in the C++ core and the solidity compiler uh more recently I have contributed a lot to the Dow and the aftermath and the cleanup after um the haug um my general interest is in compiler design AI smart contracts and general tinkering with uh software uh so what is sorka in the Polish language it is uh this particular bird I think in English it's called the Blue tit bird um and that's where the name comes from um for ethereum sorka is a system that facilitates deploying smart contracts in Real World locations essentially it allows people to uh interact with contracts in physical locations and it uh does so by providing something uh I call the proof of presence you know like we really like proofs in uh in blockchain uh so that the user can uh prove indeed that he's uh present in a physical location potential applications of such a system are many uh for example uh loyalty programs that would provide a discount to users that visit specific locations um for a coffee shop a supermarket or something else um to prove your attendance in um in a specific location for um administrative purposes such as um an example would be uh if you have to visit your local unemployment office once month to get your unemployment benefit um or something that I really like augmented reality games in ethereum like that would be really awesome right something like Pokemon go but uh in the ethereum smart contract um so what is proof of presence we can prove that um a user is indeed in a in a location using various methods some of them um well actually almost all of them can be spoofed so maybe a combination of them should be used the most usual one would be to use the mobile geolocation data so the latitude and the longitude coordinates um a challenge question and an answer so that if a user is present in a location only he can um answer this um challenge question a bit more advanced would be to analyze the data of uh the video at deployment and compare with um the image feed at user interaction uh for a bit more security um we can go to specialized Hardware so we could have a QR code a sticker with a QR code on top of it and that would be uh on location and then the user would have to scan or also um same thing with an RF id tag and an RF id reader or going even further A specialized tiip for example that would be on location and would allow people to um interact with um uh the tip via Bluetooth or something like that so C works very very simple um contracts uh have to follow a specific interface um and um the application or the system allows um the user to search for contracts that follow this interface and are around them uh when a user deploys a contract uh a sorka contract he also has to provide the API so uh the system knows uh what kind of methods um the contract provides in order for the user to interact with it and also he has to provide proof of presence as I explained before so the contract interface looks something like this at the moment I have to mention this is all a very early prototype since I was really busy with the Dow aftermath so right now this is this is really new um so a user has to provide a name for the contract um latitude and longitude coordinates which are in integer approximation since uh solidity does not allow floats yet um the question so the challenge question for the proof of presence and um the H of the answer since we really don't want to give the plain answer in in plain text in ethereum transaction um we have a modifier like like this so that people can um essentially um use this modifier in their sorka contracts to um allow the user to prove that he is in the location so all it does is check the the sub three of the answer if it mates the has and calculates the distance if it's um within a specific parameter then it allows the user to interact with the contract um the owners of the contract should change their um Talent answer and qu question and answer quite often because the situation on the ground uh is volatile so um something could change and they should update it so that users can still interact with with a contract um so to see an example contract of which we will see a demo video afterwards this is um a discount token for a uh loyalty program let's say of a coffee shop where you have the usual sorka interface plus um a number of tokens to reward to each user and the duration of the uh loyalty program in um Unix timestamp uh so this is the the simple interaction function where the user just claims the token using um the proof of present modifier and as soon as um um his presence is indeed verified that he's in that location then he gets his tokens uh so now here is um um the demo video so um this is in in Berlin um this is a very touristic location it's the Brandenburg gate uh it's a very nice place to put an adver M contract let's say so you as the the owner of the of the of the coffee shop would open the application and try to deploy a new contract then you would search around the location and and try to find um the place to put the ethereum hexagon where where you would like to place your contract so the brandur gate is a nice location uh you have to give a name to identify the contract with since we have a coffee shop and this is a coffee discount token let's just call it coffee discount I'm sorry I misspelled coffee I can't remake the video um there is an exhibition right next to it and it has the poster of uh someone called Kesler this is the the the name of the artist of the exhibition and um so if you are there you would have seen it so we are asking in the question what's the last name of the exhibition's uh artist uh yeah so the answer would be Kesler so now um the user can just choose his source code I have a template here and then we're deploying the contract waiting for it to get mined um that's a bit fast forward it because it takes a bit for the contract address to be verified and there is our address um then we can uh start searching for contracts around us and um after the Google Maps a um um load we can um see the ethereum hexagon where that um shows that there is a contract deployed at this particular location we can see that this is the coffee discount uh that we deployed and we can interact with it using the ABI uh sorry uh we we get the proof of presence challenge question we saw that the name of the artist is Kesler so that's the correct answer yay we get the API of the contract we can actually claim a token now and we we send the transaction so the transaction is successful now we can go back and and use a different method and we can check the the the balances for example of the contract and we can see that um we actually do have 100 um discount tokens now so this is a process that can continue you can go uh somewhere else right this building which is very close to the brandur gate and employ at another contract we can just call it the bundes contract because it's right next to the bundes building in um in Berlin and uh if you go to search for more contract around you can uh still uh see once the uh contact with uh Google is established that you have both uh contracts there and you can check their names um there is yeah so this this whole process is can continue so this is still another location in in Berlin um this is Alexander PLS you can just put more contracts here with with different parameters uh different uh uh questions uh and the whole point of this is that it would be nice if in every city um we we we started seeing Maps like like this that essentially are full of ethereum hexagons or pyramids however you would want to call it and where people can have fun and interact with um ethereum smart contracts all around them uh so that's the video um so [Music] for thank you thank you um so for this this is like a very very early prototype uh for to be really really um uh a workable application we have to integrate with the light client and from what we saw today that's very close and I'm very very excited uh do publish the mobile app in the Android store um improve the proof of presence um algorithm with um the methods that I explained um and probably integrate with an uh existing wallet for account management since this is not something that I would like to do uh myself and also integrate with an existing identity system so yeah that's my 10-minute talk um if you want more updates you can follow me on Twitter or on GitHub uh and the website for sorka is coming soon I just didn't have the time to to make it so yeah that's that's all thank you very much thank you [Music] lus thank you very much
Automatic transcript — names and jargon may be misspelled.