Blockchain is so cool that you can make money just by putting "blockchain" in your name. Blockchain is so cool that it increases our freedom. Blockchain is so cool that its most famous application, Bitcoin, consumes as much energy as Denmark or the Czech Republic or Nigeria.
It would be fair to call me a blockchain skeptic.
But I keep seeing signs that there are smart people who think blockchain is important. There's Turing Award winner Silvio Micali developing an energy-efficient blockchain system and applying it to low-interest micro-lending. There's the traditionally serious and boring IBM, offering enterprise blockchain products. There's one of Carleton's 1995 CS grads, whose judgment I trust, saying to me at a party that he's been studying blockchain and thinks it's very promising. None of this is enough circumstantial evidence to make me a blockchain true-believer, but it is enough to make me want to understand blockchain well enough to make informed judgments of my own.
This project's central goal is to give the team and its skeptical advisor as deep an understanding of blockchain as possible within the available time. We will focus on questions like these:
The project will involve:
So the deliverables will definitely include an annotated bibliography, a high-quality and thorough web-based tutorial, and an opinion paper. We might find, as we learn more, that there's a need for other artifacts as well. For example, we might decide to create demonstration code illustrating vulnerabilities and attacks. Or interactive animations of the relevant algorithms and differences in approach. Or something else we haven't thought of yet.
Note that depending on what we find in the existing literature, the documents you produce may be publishable in academic or industry publications, and/or presentable at professional conferences. We'll keep an eye on that as a possible goal.
This project has no special prerequisites other than an interest in cryptography and blockchain, critical thinking skills, intellectual fair-mindedness, and a willingness to be adaptable. There's an open-endedness to this project that could lead to surprises and changes of plans as we learn more about the topic.
Our required theoretical courses (CS202 and 252 in particular) should provide plenty of background for this subject. Of course, it wouldn't hurt to have a couple veterans of CS331 Computer Networks or CS231 Computer Security.