The problem with teaching crypto in a university setting is your lesson plans can quickly become out of date almost the moment you write them, Neal Davis, a former University of Illinois professor, said. That's probably true for most things in tech.
"The problem that crypto education faces is that it's a very fast-moving field and things are going to rot very quickly," Davis said. Still, if academia wants to have any relevance at all within this fast-emerging industry, it needs to find ways to stay up-to-date.
This interview is part of CoinDesk's "Education Week."
"You know, go build a DALL-E [AI-generated digital art platform] course - Stable Diffusion is everywhere," he added, referring to the artificial intelligence tools that were announced last month. Davis might also add Urbit, the controversial computer infrastructure platform, to that list.
And indeed, he did. In 2020, Davis became the first U.S. professor to teach a computer science class dedicated to Urbit. Urbit is a wildly ambitious attempt to rebuild the internet from the ground up.
Unlike the server-client paradigm that dominates modern computing, Urbit uses public key cryptography to enable anyone to run their own servers. If decentralized finance (DeFi) is removing middlemen from finance, Urbit wants to remove middlemen from anything you can do with a computer, from email to logins.
The system, under active development since 2013 by the San Francisco-based organization Tlon, has seen an accelerated pace of activity in recent years. Its developer pool now counts hundreds of coders, and Tlon's leadership and other Urbit ecosystem startups are now directly targeting DeFi projects and decentralized autonomous organizations (DAO) to use their software offerings.
See also: DAOs Are the Real Meritocracies | Opinion
That said, Urbit is still very much a niche interest. But Davis said there is value for students to learn an entirely new way of computing. "Hoon is only useful on Urbit," he said, referring to the network's bespoke programming language, as are other concepts and tools on Urbit. (Davis left Illinois University to work full time teaching "Hoon School" through the Urbit Foundation.)
"Some of those will no doubt prove extremely fruitful and others pointless, but the trial is well worth the effort," he said. "It's for the tinkerers and hackers, it's for the freethinkers and the poets."
And what Davis' eight graduate students learned two years ago is likely still relevant. Not only is Urbit challenging the for-profit, proprietary software model pioneered in the valley, but it's also taking a deliberately slow approach to network design to ensure the system remains stable. Urbit's core software releases count backwards to zero, at which point the "kernel" will reach absolute zero and be frozen in time.
CoinDesk recently sat down with Davis and talked about other experimental computing models, how decentralized tools could be changing academia and the months to come for Urbit. A lightly edited transcript of the conversation follows.
What initially attracted you to Urbit?
I've always been a collector of computational curiosities, I suppose. The margins of computing from the very early days onward. The early computers that were in Base 10, not binary. Soviet "water computers." Analog computing has a long and very interesting history. So I've always been compelled by many of the alternative paths that computing could have taken. The things that could have been and the things that may yet be have a lot to teach us about the way that computing works. Some of these things are languages like APL [A Programming Language] or competing architectures like the Mill architecture, which is an alternative chip design - an alternative CPU. And, of course, Web3 and the like have developed many very interesting proposals.
I had encountered Urbit around 2016, shortly after it was leaked to the public. Probably on social media [Editor's note: Hacker News]. I gave it a shot, tried to make things work and as it turns out at that time unless you knew someone at Tlon you probably weren't gonna be able to figure out the project. The docs were to a large degree inside baseball - by Tlon developers for Tlon developers - which makes sense because it wasn't yet voiced to the broader world.
And so I tried it for a couple days, then set it down and moved on. And then sometime in mid 2019 Tlon announced that they were going to do the Hoon School [to teach Urbit's native functional programming language]. So I signed up for that, and then started digging into the system. It turns out there's all sorts of very intriguing ideas. They're building things like Kelvin versioning: The idea that you're drawing your system towards some sort of crystalline - if not perfection, then - stasis.
See also: Autodidacts, Welcome!
Urbit is more of a specification than an operating system, in some sense. And while the computing paradigm is not completely unique across the way that we do things - like subscription driven computing - it's moderately uncommon in broader computing, web front ends, SSE [server-sent event] streams, and these sorts of things. This was an area in the late 1970s and 1980s that, to some extent, never bore fruit. And it turns out that actually we built a system that uses something like "dataflow computing," as they would have recognized it back then.
But there's a lot of other parts of the system that most people never really dig into - the memory model [the Loom] is very innovative, a very interesting way of handling persistent and transient memory. In a way that solves some of the issues that you have with conventional operating system paging paradigms and so forth. It's like discovering a door that you didn't know was there. There's a whole house behind this door, and it's much stranger and more intriguing than you may have thought.
Where does teaching Urbit fit into the paradigm of computer science education?
When the grad committee [of the University of Illinois] approved the class in 2020, I felt a little bit like the dog that caught the car and had to figure out what to do with it. What I ended up building - the structure of that grad seminar - was trying to take a technical and critical look at what Urbit was attempting as an operating platform. How well does it implement this idea? Are there broader lessons or applications that we can gain from examining this arcane structure, or how it's being built?
I was trying to expose them to the edge of the strange and interesting things [in computing] that populate everything around you, but most of the time you don't notice? Developers are enculturated into a certain way of approaching computing, and very few people step very far outside of that standard way of doing things.
But there's a lot of things that are untenable about continuing down the current road. I mean, one of the common criticisms that [Urbit creator Curtis] Yarvin and others have made is that the software stack from top to bottom has become illegible.
There's an anecdote about the MIT [computer science] department, which used to teach everything from the structure and interpretation of computer programs in [the early programming language] Lisp to the things that were happening on the metal [Editor's note: computing hardware, including chips]. And at some point later on, they switched to Python (because all the libraries were in Python) when the stack had become illegible enough. Some of this is on the hardware side or because increasingly convoluted optimizations made it hard for you to see what's happening in the actual execution.
You may be writing something that you think is straightforward, but because it passes through different layers of libraries and interpreters and operating systems and handlers, you don't actually know what this is gonna look like by the time it gets to the chip. And so it's easy to lose touch with the concrete, fundamental ground of computer science. Computer science is wonderful because it's this marriage of these extremely abstract highfalutin ideas about mathematics and the physics of pushing bits around a wafer of silicon.
What's your take on the world of cryptocurrency - is there CS innovation happening there worth studying at a university?
So to start at the end, I don't know what the course situation looks like at this point. The problem that crypto education faces is that it's a very fast-moving field and things are going to rot very quickly.
There are probably certain technologies that could stay up to date on. Like if you're learning [Ethereum programming language] Solidity, Solidity doesn't evolve very fast as a language. You can talk about the EVM [Ethereum Virtual Machine] architecture - but Ethereum is just switching to proof-of-stake and this changes some aspects of the ways that we think about the blockchain as a distributed virtual machine.
There are a lot of small projects that have some uptake and some interesting ideas. And maybe these interesting ideas will make their way into other blockchains or maybe they'll be forgotten. So you have this problem of writing a course on blockchain and Web3 technologies that would actually be helpful. If you found a book on Ethereum from 2018, how much value would that help you today?
It might be more of a historical curiosity.
Stepping further back: The roots of blockchains are actually in Bell Labs in the late 1980s, when Scott Stornetta was working on the almost theological problem of memory. The way he phrased it was "can one man make a witness of the truth against the world in such a way that the entire world cannot conspire to overcome it?" That's a very interesting question. And I don't know that he succeeded in that original sense but there's still a company, Surety, that publishes a hash using their system in the New York Times every week.
See also: Best Universities for Blockchain 2022: Where In the World Is the Most Research Being Produced?
But sometimes experiments are worth running, even if they don't get anywhere. Satoshi Nakamoto took the blockchain idea and coupled it with a distributed consensus algorithm that actually made it viable to do in a distributed way. Like Urbit [IDs] bitcoin is pseudonymous; it's not really an anonymous set of transactions like zcash, there are persistent and public identities [like a blockchain address]. But it's enough to set off this whole revolution in the way that we're thinking about what kinds of knowledge should be publicly available.
So are they worth studying? I think what blockchain related technologies really accomplished was a complete parallax shift that many have not grappled with yet, in the ways that a lot of things that were formerly open only to governments have now been pushed to the protocol layer. Like, in a sense, fiscal policy matters less and less every passing year as more and more things move to decentralized finance chains. You can argue whether this is pragmatic or useful, but what we're getting with blockchain is a way that's fundamentally reordering human knowledge and human modes of communication. In a way it's fulfilling what the internet started - the telos of fully distributed computing. So there's all these interesting, technical details that are worth trying out and worth studying.
So what's the university's role in that world?
That's both a political question and a meta-political question. There's a pragmatic question of how universities will react in the near to medium term to the explosion of distributed [everything]. One thing that's happened in this regard is that they have, I think, expanded their credentialing. They have a monopoly on credentialing in most countries in the world. There's been a lot of moves towards things like making college free for everyone or expanding the number of professional degrees offered. It started with the MBA, but there are a lot of others now - Master's of Engineering, Master's of Professional Administration, Master's of Administration. They definitely have a strong edge over most upstarts [Editor's note: like soulbound tokens] to the extent that they want to continue to be powerful, large, relevant bodies.
I also think they should be taking seriously the idea of putting a lot of their endowment into cryptocurrency - the serious ones with a chance of being around in 1,000 years. Universities have been around for as long, so it's a safe bet that they'll figure out a way to still be around.
See also: Best Universities for Blockchain 2022
There's a lot of steps that institutions seemingly should be averse to, that are the right move ultimately, when talking about how the internet reorganized access to information. MIT's OpenCourseWare is 21 years old now - they put essentially all of their science and engineering content online for free. The effect was not to depress the value of college education. It buoyed MIT, because it was MIT saying, "we have the best content in the world and we're willing to show you how good it is."
Any advice for professors interested in running a course like you did?
So I would strongly encourage professors to find the time to build new classes on technologies they find interesting. I picked Urbit as my platform because I find it interesting, but there's a zillion platforms that are being built and evolving rapidly.
The academy tends to be late to things, when the material is three or four years old and the world has moved on. There should be a lot more experimentation, particularly using the grad and undergrad seminar framework that most universities have, that don't require as much bureaucratic overhead. Build these things, get them out there. I encourage them to make their courses public, because that's going to be a big boost for them professionally by showing they're working on interesting things that are active and relevant. You know, go build a DALL-E [AI-generated digital art platform] course - Stable Diffusion is everywhere. But I doubt it'll actually make it into many classes this semester.