[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
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