Fixing running with blockchain technology and NFTs.
Originally published on Medium.
[ 6 min read]
I’m not a very good coder, and I’m not a very good runner but I think running presents a good use-case for how our blockchain future might look. The inspiration for this piece came from this article “Strava’s data lets anyone see the names (and heart rates) of people exercising on military bases” — from Wired in 2018.
Something I’ve noticed about runners, and myself when I run, is that runners (and myself) enjoy sharing their runs. We enjoy, or channel fury into, competitions with our friends and colleagues. We enjoy post run-selfies and #whatawaytostarttheday #20kmlol it’s nauseating but all runners know that it comes from a place of illation and euphoria, dopamine and adrenaline.
But as the article above demonstrates, there is a great danger to mapping our routes by GPS and posting personal photos. In fact this is especially dangerous as success in running requires routine and discipline. A gentleman with malicious intent may spy or pry on this data to say ascertain your daily and weekly routine. To combine another future-olgy problem, they may use this and other data to steal the apple pie you left cooking in your smart oven whilst you were out for a run. A dastardly deed, but fear not I have some kind of a solution.
From here on out please understand that my actual coding knowledge is as poor as my 10km time so I’m not pretending this is a code I can actually write…. just yet.
Say I create an app that as I run, gathers data from sensors in your smart watch. Remember we’re real running nerds here so we might as well include everything. We take our biometric data (heartrate etc) and our GPS Route and we store this as one set of metadata about the run. We let the user, after the run, select which attributes to store from our data for display later (we’ll come back to this) then hit a button to create a run token. This is when the blockchain enters the picture, when you create a run token you are sending the metadata of your run to the blockchain, assigning it to your personal wallet and account at (i need a name because this is all imaginary) https://www.lookatmyrunlol.io which has global leader-boards, private communities etc
Right, right so we’ve invented literally nothing new here, I know guys, please. We’re stuck with the same problems of data sharing though right? I don’t want the GPS data to display publicly but I do want the distance and run time And maybe the boarder sense of where I was like “Nemo Island”
So what my app needs to do is, take the metadata from my run and run it through a script that strips it of it’s personally identifying features to create a unique string of digits (i’m going to call this its DNA string and it might look like ff8742uh23y7287t or something ) that can verify the data as true or false according to the list of DNA strings created by your wallet address.
And when I say wallet, that’s what I mean! For any non-cryptocurrency folk this is partly the point of blockchain. You don’t actually need an account at lookatmyrunlol.io to use the blockchain contract that runs the minting script, people would be free to go to the token creator contract directly allowing for decentralised control of data stored on a ledger which is, for all intent and purpose, impossible to hack. (I know it isn’t and listening to arguments in the BAYC Discord about the semantics of that is excellent)
Right, so why the hell would I want to do this as a runner? Lets sum up where our user is up to:
they went on a run and selected what they wanted to display
the app created some dna from the data and stored it
it creates a picture (what? I’m getting there next)
it mints your updated metadata file to the blockchain and assigns it to your wallet address (which you signed into myrunlol.io with)
myrunlol.io lets you can choose to display your run in leader boards, competitions, etc.
So this picture. A cheeky little thing that our app can allow for is using the DNA string it created to generate an entirely unique image. Again, my java isn’t great so I’m not going to pretend I can code this but for us simpletons this could look like:
ff8742uh23y7287t
take the first 6 characters to use as a colour starting point as a # value (just like in the Microsoft Office Word colour picker for fonts, this isn’t actually that deep) to make a cool set of harmonious images.
ff8742uh23y7287t
then use the rest of the DNA string as a set of random variables to put into a neat little generative art code to create a cool picture, that is coloured in by the first part of the string
How do I know this will be random? Well, although we were running, we were literally taking a random walk our GPS data is an incredibly specific string of co-ordinates on a ginormous globe. Even if someone attempted to replicate your route - the minutia of the pacing, the points where you have to stop to meet a dog and as a minimum the time and date etc can form will always guarantee the string is unique and as such the picture we generate will only ever re-create that picture.
If you’re getting lost and happened to have played ‘Age of Empires’ this is the same idea as the map creator there. You bash the keyboard and it will create a cool map. If you copy the random letters you mashed in and type them in normally at a later date it would still generate that same map.
wait so to clarify instead of an image it could actually create a map for a video game or a unique 3D running medal that I can display in my virtual home in a VR World? Yes, but maybe that's going a little deep. For where we’re up to - we’ll stick to a cool picture just for now.
they went on a run and selected what they wanted to display
the app created some DNA from the data and stored it
it creates a cool entirely unique picture from the DNA to display in your wallet
it mints your updated metadata file to the blockchain and assigns it to your wallet address (which you signed into myrunlol.io with)
myrunlol.io lets you can choose to display your run in leader boards, competitions, etc.
you could always use the contract privately with friends on your own apps because the token data is stored in a decentralised fashion if myrunlol.io goes down in 100 years
The only person with access to the data contained within the token is the token owner themselves (or the wallet address that the token is assigned to by sale, inheritance, gift or whatever)
If you were a runner, and despite your mickey mouse costume, you miraculously won the London Marathon. You would have a unique verifiable token to both display but more critically could be passed down generations or sold to museums with proof of ownership on the blockchain.
Your grandchildren or museums would be able to display the unique image privately or distribute freely as they wished!
So I know this is bizarre, but I’ve written this as an illustration or use case example for blockchain technology and as previously mentioned, a simple picture is a very primitive idea. My vision of the future involves a world where someone in a mickey mouse costume wins the London marathon against all odds, and is able to utilise the data they created as a verifiable token with proof of ownership and make their great-great-great-grandchildren billionaires when they find it in an old family digital wallet and sell the token to the Museum of Crypto Art.
Until that sweet moment comes and your runs remain more mundane, there are still many reasons why a small modestly designed token that reveals nothing personal but confirms our audacious claims would be useful when it comes to documenting our runs in the digital age.