Harry Potter is raised in a muggle family where he did not belong to. He’s been constantly punished for his virtues and this makes us the reader feel sympathy for him. There’s no larger injustice than being blamed for wanting to do the right thing. Harry is the classic hero archetype.
The best example of adhering to principles in the context of software development is the open source movement. You’re instantly punished by writing open source code, because you will have a much harder job to monetize it than if you wouldn’t have shared the source with anyone in the first place. But in the long term it pays out.
The classic argument is that open source brings more eyes on your code, which makes it more secure and more contributors, which makes your software generally better.
The counter arguments are that sharing the source code makes it easier for attackers to attack your system, thus it makes the system not more, but less secure and that, unless your project is very successful, you will most likely not get any contributors and even if you do, it is likely that they won’t make any difference. They have no historic understanding of the codebase and by the time they gain that and able to effectively contribute to your project they will just leave.
So who’s right?
I can see arguments going back and forth on how much you personally benefit from opening up your source code or closing it down, personally I write open source software, because it’s much more fun to involve others into your project and work like that, which ultimately motivates you. You very much need that fuel, because writing software is hard. But that’s not all. There’s a global benefit of open source software. Even though you personally may not gain that much out of sharing your code, us as a species are much more effectively can progress forward and ultimately survive the unfathomable dangers of the known and unknown universe.
Every time you push a commit to GitHub, you are making a contribution to the fight for humanity’s survival, you’re lowering the chances of humanity to be wiped out, you are contributing to the network of human knowledge.
Open source development adheres to the principle of transparency.
Don’t Trust Verify
Tom Robinson from Elliptic blockchain analysis company recently released some information where he suggests bitcoins should be blacklisted from the recent Twitter hack and that the hackers are using ChipMixer and Wasabi Wallet.
I however find it concerning that Elliptic didn’t provide any transaction ID or any deductive explanation to back up their statements and that everyone blindly trusts them. Even if it is true in this specific case, the level of “trust us, don’t verify” gives these companies a lot of power especially considering the unreliability of blockchain analysis in general. Blockchain analysis works with heuristics. Heuristics are by definition aren’t conclusive. How do they know that the hacker didn’t do a P2EP transaction? It is important that conclusions of blockchain analysis companies should not be taken at face value, especially not if their deduction isn’t even explained. Don’t trust, verify!
Trusted Third Parties are Security Holes
One often takes an argument to its extremes to find if the underlying logic takes you to a better place or a worse one. Assuming Tom is right and Bitcoin companies should thrive for using blockchain analysis software and assuming this is always possible (which it isn’t) then that would lead to a future where Monero outcompetes Bitcoin in a no time.
zkSNACKs is the company behind Wasabi Wallet. It’s a word play, originating from the Block Digest podcast, on the zkSNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) and zkSTARKs (Zero-Knowledge Succinct Transparent Argument of Knowledge) cryptographic concepts. But it goes beyond that. Zero Knowledge Snacks implies that the Snacks should not know anything about their consumers. Anyone should consume these snacks without the snacks know who they are being consumed by. The snacks are the products, like the Wasabi Bitcoin Wallet and the consumers are its users. The wallet provider should not be able to take the funds of its users and figure out who their users are. This isn’t ensured by the wallet provider choosing to not collect information, this is ensured on the architectural level, the wallet provider cannot collect information even if it wanted to.
If you social engineer any Wasabi employee, then you will not be able to confiscate any of our user’s funds, we don’t even know who our users are. And that’s what you identify as the problem? The fact that we have no power over our users is the solution, not the problem.
If Twitter would’ve been a zero knowledge snack, then the Twitter hack wouldn’t even had happened in the first place. The attackers wouldn’t had been able to social engineer a Twitter employee (or an ex one) and gain access to Obama’s and Bill Gates’ accounts.
No, I’m not suggesting Twitter should change everything to become a zkSNACK, I’m more than familiar with the reality of practical software development, however some entities blaming Wasabi’s adherence to principles and virtues as the problem is unfair considering the lack of adherence to the very same principles and virtues caused the problem in the first place. Trusted third parties are security holes.
Harry Potter conveniently found out that he’s a wizard and there is a community of people that appreciates him doing good things instead of punishing him for it. You may not be that lucky, yet it’s still worth it. Every time you do the wrong thing you lose something inside. Not forking Ethereum, because of the DAO hack to adhere to first principles worth it. Not forking Bitcoin, because of the MtGox hack to adhere to first principles worth it. Why? It’s because the source of the problems with the legacy banking system is the power asymmetry between the trusted third parties and their users. Thus cryptocurrencies were designed to break with this power structure and one of the way they achieve this is through the virtue of unconfiscatability. Breaking up with this first principle temporarily may be the right thing to do in the short term, but ultimately it would lead us back to the legacy financial system, which we are so desperately trying to fix. It does not seem like a good deal to me. In fact, it it’s a terrible deal.