Project Pensieve — Season Finale!
Editor’s Note: Cyber crimes against consumers are rampant and not much is done. Most corporation treat consumer data as a product. Consumer’s can’t trust organizations to be custodians of their data and governments are not of any help. Project Pensieve aims to give the control of data to consumers through use of blockchain technology. We are thrilled to present the final project update written by Nick Handy, Eric Tinoco, and Brandon Rawlin.
This week we will take a look back as our 8 week program comes to an end. This past thursday and friday we gave presentations of our final projects. This involved creating a five-minute presentation of our work as well as a research poster. In this blog we will summarize these for you and give a taste about what will come next for our project Pensieve.
Creating a Research Poster
We created a research poster that contained a collection of all the work that we have done, and the work that we intend to do in the near future. In this poster board you will be able to get a glimpse of the following:
- A brief summary of our work
- The background of Pensieve and the blockchain
- Our approach to storing information on the blockchain
- Our Implementation
- Our Results
- Future additions to our project
- Cited Resource List
For most of us, this was the first research poster we have done in the computer science field, and it was a great learning experience as we had to track our thought process throughout the entire project. Taking a step back — this project was an inspiration as new students in the Cyber Securityfield..
Bringing it all Together
The culmination of our project were presentations of our research on the final two days of the program. We planned out our presentation to be a bit more digestible than the poster board. In roughly five minutes our presentation had to explain the blockchain system, break down our project, and demonstrate the Pensieve prototype. The slides for the presentation can be found here.
Main Concepts of the Presentation
Our presentation used Yahoo as an example to support why decentralized applications are important. Yahoo’s breach in 2016 showed that entrusting data with companies has tremendous downsides when they are compromised. A decentralized system can be a safer place to store data then a centralized one. The most difficult part of our presentation was explaining the blockchain in around a minute and half. Once blockchain was explained, we moved onto the platform in which we were going to use, and that platform was Ethereum. With Ethereum, we created a decentralized app, and integrated it into a Chrome extension that we called Pensieve. We demonstrated how the UI of Pensieve looked like, and how we were going to implement the idea of using this Chrome extension to store data into the Ethereum blockchain. We then explained the steps on how the files stored in the blockchain are done. After the explanation we did a quick demonstration of Pensieve. The presentations, although nerve wrecking, was a great overall experience both professionally and personally.
After both presentations we opened up the floor for questions. Both days of our presentation we gained new insights about our project. For one, we need to focus a lot more on weak points in our extension. Transferring data from the extension to the smart contract on the blockchain must be done securely. The blockchain suits some type of data better than others. All of the questions pushed us harder to think about the problem we were attempting to solve with Pensieve. Now we can add these new issues to the tasks we’ll have to handle in our future work.
What have we Learned
We have progressed a great deal over this past month or so. We started with almost no knowledge of how the blockchain system worked. In the first week, we spent most of our time researching what a blockchain was. The concept was foreign in many ways and we had to go through explanation after explanation to get it down. We also did not originally account for how many parts were needed to create a simple decentralized application. Here are all of the pieces we needed to learn and incorporate to build our prototype:
- Solidity Programming Language for Ethereum
- Truffle Framework and Ethereumjs-testrpc to compile, deploy, and test contracts
- Web3js to connect blockchain data with the front-end Chrome extension
- Reactjs which allowed automatic updating of our web app and provided a framework for page navigation
At times, navigating which of these elements we needed to focus on to build the prototype was daunting. Fortunately, we were able to get something working before the presentation. Although it was difficult to get these components to play nice, each of these components listed above gives us a good base to work off of to refine the prototype and incorporate future additions.
This project would not be possible without the support of Vaibhav Bhandari and Lib13. Thank you to Greg Moore and Clinton Fernandez who were great mentors throughout the program and were there to provide a helping hand each day. Thank you Growth Sector, Evergreen Community College, San Jose City Community College and countless others. Finally, thank you for reading.
For those interested in development updates, stay tuned to our github.