Hi David.
It is my understanding that because Katzenpost is under the AGPL, Nym/Harry decided that
in order to cut a deal with their VCs they must provide some alternate license to those VCs to allow them to make proprietary software. I believe this is the true reason why Nym has written their own mixnet instead of using Katzenpost. However I think it’s totally fine for their to be more than one mixnet. I do not think of our two projects as being in competition although I was a bit triggered by Harry’s message because of historical reasons.
Before delving into licensing, what’s the point of creating a mix-net or any anonymous communication network? If only three or four whistleblowers are using the mixnet, then its pointless from an anonymity perspective and even dangerous to create a chat app used only by whistleblowers.
Anonymous communication networks only are as good as the amount and diversity of traffic in the network. This is a basic point that seems to have been missed by Katzenpost/Meson. So you don’t want a mix-net for just Ethereum, for just ZCash, or for just your latest Katzenchat whistleblower cat-themed chat app. You want a generic mixnet infrastructure capable of handling serious amounts of traffic and ideally decentralized as otherwise you don’t get the security guarantees of a mixnet.
So, while Katzenpost may want a free software project where only contributors and apps use the GPL, in the real-world we want to maximize usage under the least restrictive licenses: In order to increase the users and thus anonymity provided by the mixnet. That’s why Tor uses a permissive license and it seems to be a good move. You can try to hack it with dual-licensing ala Moxie’s work on Signal, but that leads to copyright assignment which is hard for open source projects. It’s one reason we at Nym ditched the Katzenpost codebase and that’s why Nym chose Apache2 for licensing. There’s no secret conspiracy involving investors and we aren’t part of a Richard Stallman cult. Any sensible researcher or entrepreneur will ask why one would want to artificially constrain the amount of usage of the mixnet via GPL licensing limiting the amount of people using the mix-net.
When Harry says they have better performance in Rust what he means is that they have better performance than their own Golang mix network implementation. The Katzenpost server side was primarily written by Yawning Angel and thus is very well implemented with great attention being paid to it’s performance. (happy to go into details upon request)
In terms of raw Go plus assembler vs. Rust, the crypto that Nym uses in Rust is more than twice as fast and Sphinx creation is 73% faster, to the equivalent Go and equal when compared to the heavily optimized Katzenpost implementation. These are not surprising numbers for anyone who has compared Go to Rust in terms of crypto support, and would be I would assume why ZCash also moved to Rust. For us, it’s a win-win as we can use the same underlying crypto and optimizations as ZCash.
Lots of very good Go code was primarily written by Yawning Angel, and is of high quality. Unfortunately. Yawning Angel left the project over two years ago. We believe more optimization is possible, but we see no reason to deal with all the legacy code or the artificial constraint of being stuck with Go. Ultimately, at Nym we just built our entire mixnet infrastructure in Rust in 3 months from scratch, launched at CCC, and now have about 30 nodes including Electric Coin Company.
Another thing to note about the history of Katzenpost is that Claudia Diaz and Ania Piotrowska have both contributed to it’s design… and Ania has stated in the past that she would open source her mixnet simulator to aid in the tuning of the Poisson mix parameters. It has always been a development goal of Katzenpost to use Ania’s simulator. However I am aware that Harry has hired Ania and Claudia and perhaps this has somewhat altered our previous spirit of collaboration and sharing because nobody has contacted me about any recent development of Ania’s simulator.
While we all wish Katzenpost good luck, Claudia and Ania are no longer working on Katzenpost. Same to my knowledge with other researchers like Tariq and Aggelos. Katzenpost a perfectly fine free software project with some good implementation details, but we are working on a next-generation design that we hope will answer many of Chelsea’s quite valid concerns about mixnets in general and Katzenpost in particular. We do indeed have a simulator that will be open-sourced when it’s done going through peer review. That being said, building one should not be difficult in general for just entropy estimation (you can deduce the formulas from the original papers of Danezis and Claudia on entropy as an anonymity metric).