Hello readers! Welcome to Vidur Gupta’s senior project research blog on “Mental Poker: Building a Secure yet Oblivious Decentralized Application”.
Upon concluding of the first week of senior project, I have learnt a lot in the field of cryptography and encryption. Starting from basic concepts of encryption to delving into more complex algorithmic proofs, I have devoted this week and next week into researching and exploring this field. As my topic takes a theoretical approach, I will spend a lot of time in my senior project reading many research papers and dissertations from universities. With this, I plan to expand my wealth of knowledge, and take a glimpse into the university-level academia research work.
In my project, I will be looking into a RSA-inspired cryptographic problem called “mental poker”. Coming from an MIT research paper (http://people.csail.mit.edu/rivest/ShamirRivestAdleman-MentalPoker.pdf) written by the founders of the RSA (Rivest–Shamir–Adleman) Cryptosystem, we are placed with an interesting puzzle. In this, they take the example of two untrustworthy players playing poker through an untrustworthy medium (phone, postal mail, etc.). There, they prove how the transactions and cards can be verified and secured, rendering any attempts of tampering futile. Along with a proof, they interestingly present a counterexample, showing how this method may not work. Looking at this and the other articles, I plan to condense all the various proofs and try to make a foolproof method that will work in all cases. This will be crucial when I build my decentralized authentication system in the end of the senior project.
Here is my abstract:
Currently, cryptography is mainly used for dealing with two trustworthy sources and defending against a malicious interceptor. However, if the sender and receiver turn out to be the actual untrustworthy parties, then how would that be defended against? By learning and researching about mental poker, bit commitment, and oblivious transfer, I plan to create a demo model in which two parties can verify information and send it to each other with security and no interception, without requiring a middleman for verification. It is important to build a system in which two machines can interact with each other for a transaction and verify each other’s identity, without the need of relaying to a third-party or storing information on a router or such third machine. With this, one can make secure transactions directly, possibly eliminating a lot of factors in the internet routing map and use encryption to ensure safety of the data. With the modern Internet being vastly open, it is hard to trust a server, and hence any normal cryptographic implementation will not succeed all the time, based on the nature of assuming the “middle-man” as trustworthy. By making such a model, one can create a decentralized web, where all information is only going from one computer to another, while retaining safety and legitimacy.
This idea of a decentralized authentication protocol is indeed an ambitious project. By solving these problems and looking into mental poker, I will get closer to that goal. As a futuristic idea, it may not completely redesign internet computing, but at the same time this project will help to plant seeds into further research on this topic.
I am excited to work on this project. I hope to uncover new ideas and expand my knowledge on overall algorithms and computing in the coming weeks. This will be an excellent revelatory and learning experience!