Screenshot of some of the solidity contract
I actually work in genomics at the hospital of Sick Children in Toronto, Ontario. I was chatting with various people in the bioinformatics and machine learning teams and they really opened my eyes to where the medical industry was heading, but also the large problems that they still face. I learned that much of our world is transitioning to using AI to detect mutations in our DNA to find out which genes cause which outputs, and then furthering it with how to cure diseases.
But there are unsolved problems in this revolutionary field. Data that literally defines who you are, DNA, is insecure. Additionally, current methods allow for companies to know everything that makes you who you are biologically (DNA), your address, your phone number, your bank account info, and even your name. This provides many privacy concerns.
Additionally, the data set is often skewed to urbanized, developed localities. So drugs that end up being found, cause unintended, sometimes harmful effects on people outside of the sample set.
The price of gene sequencing is not the issue(as it is less than $100), rather, the technology available to relay the information to get to researchers is fragmented and insufficient. This causes the inability for people in foreign countries or rural areas to participate. Additionally, there are currently middlemen(such as DNASimple), that charge over $200, to get your information to a researcher.
G-nome solves this huge problem in the world of gene-editing, by providing a interface to accessibly, and securely upload and transmit genomic data, providing the necessary privacy, while still allowing users to get paid for their contributions.
What it does
When a user gets their genomic data sent to them, they can upload their data to the G-nome site. Through my interface(made with the IPFS api), their file is distributed across the InterPlanetary File System(IPFS), meaning their file is distributed, and can only be accessed with a specific hash code. The code for the file is automatically sent to the solidity smart contact. Then, the link for the file, is uploaded to the Researcher's interface. The researcher can quickly view the file, and confirm it is indeed genomic information, add it to their data set, then they press the "Yes" button (or no).
When the Yes button is pressed, the smart contract sends 1ETH(which can be adjusted), to the user that submitted their information. Additionally, the now approved genomic data is removed from the list of "yet to approve", on the researcher's dashboard.
This allows for an exponentially increased security mechanism, which will only become more secure as the project continues, as well as infrastructure to allow people in rural areas to easily submit their data to researchers across the world. All they need is metamask, the internet, and a computer :)
How I built it
Using the IPFS api, created an interface (Dapp) that allows the user to interact with both IPFS, and the smart contract.
The buttons pressed corresponded to inputs on the smart contract, and were connected together using the truffle framework. The smart contract was built on solidity, using metamask and the ropsten testnet.
Challenges I ran into
So I split from my original team to pursue this project instead, and I felt really bad for that. Thanks so much to the awesome super duper mentor Kevin Zhang from Consensys who gave me confirmation the leaving a team is totally okay, and made me realize that I should pursue something I am passionate about :)
Also, the programming brought up some challenges: connecting the front end(Dapp) to the back end(solidity), the syntax in react, rinkelby's twitter verification for fake ethereum. But managed to push through - really want to thank Kevin again for his awesome help along the way - he's super cool - he was an awesome friend, extremely knowledgeable mentor, and amazing teacher :).
Accomplishments that I'm proud of
Getting this hack done! Convincing myself to go solo. Overcoming all the frequent issues and errors with installation, syntax, and the code in general :)
What I learned
I probably learned more in the past hackathon, than in my entire time in the crypto community :p I met a ton of awesome people, learned about new systems and frameworks,
What's next for G-nome
1) Add more layers of encryption to the system, as even though knowing a public key is exponentially more secure than knowing everything(address, name, bank account), there is still some privacy features that can continue to be improved on! 2) Add an oraclize function to automatically change the output/reward for the donator, based on the price of ethereum. 3) Actually get it out there! I think this project actually, legitimately has the opportunity to fundamentally change the way genomics and healthcare professionals get data, and would really love to start the company doing this! After hearing feedback the past two days, and meeting such amazing humans, I think I might be ready to move into the world of reality.
Also here's the link for the code for the Dapp - couldnt upload to github properly https://www.youtube.com/watch?v=aTG7WcrD-cE