Friday, October 5, 2018

Dear Anyone #2 - October 5, 2018

Book I'm Reading: Bored and Brilliant: How Spacing Out Can Unlock Your Most Productive and Creative Self. Normally I avoid anything that looks like a business or self-help book. This book was recommended to me by a colleague at a different university, so I felt obligated to at least read it. I did so thinking I would give it the yeoman's effort and then give it up about 1/2 way through. It's been more interesting than I expected. The folksy writing gives it the air of a transcribed podcast (not too surprising, I think). But, I was also looking for justification (to myself) for less "phone time." It turns out, in the grand scheme of things, I'm actually not that bad with my phone; I thought I was a "heavy user" but it turns out I'm barely on the heavy side of average.

Best Thing I Read This Week: The Myth of the Infrastructure Phase - Dani Grant and Nick Grossman. A great article about blockchain protocol development. This feeds into my theories on blockchain governance that we (software developers) typically think of things like governance as being an application-level issue. But recent problems with security, and with building robust usability in blockchains themselves, have many experts thinking security and governance need to be built into the protocol itself.

Best Music I Listened to This Week: I went to the We Were Promised Jetpacks show at The Majestic Theater in Madison last week. The opener was a lady/band called Jenn Champion. Openers can be really hit or miss; she was a grand slam.

Tuesday, October 2, 2018

Open Source Licenses as Blockchain Governance

Bitcoin Core is licensed under the MIT License - a permissive, non-copyleft, open source license. Ethereum is licensed under GPL v.3. IBM Hyperledger is closed source core, but its Fabric (smart contract development framework) and Composer (application development framework) products are licensed under Apache.

The choice of how to license the core of the blockchain is a governance decision and it has consequences for the future of these chains. For example, by failing to put any significant conditions on its license, just about anyone is free to fork Bitcoin Core for any purpose. For example, a joke coin designed as a satire for cryptocurrency itself, or a coin whose every transaction is truly anonymous and thus a facilitator for global terrorist transactions.

Clearly, and without judgment, Bitcoin Developers are OK with these forks. But we could imagine a universe where a blockchain developer were not OK with these applications. In such a way, one mechanism for avoiding undesirable forks would be to impose license conditions that prohibit the undesired activity. Provided that a fork followed the conditions (e.g., don't use this code to directly or indirectly aid terrorist activity - a condition that, for example, ZCash could not fulfill because it can't guarantee its compliance). Of course, post hoc compliance isn't exactly optimal; if (in our example) ZCash violated the license, then, Bitcoin may feel that its complicity in terrorist activity is complete despite the violation of the license.

On the other hand, Bitcoin could institute multiple governance methods to ensure compliance with its license. It could create a license approval process that every developer, user, node, or miner (or an approval panel) in the Bitcoin chain could vote whether to permit the fork or not. It could institute Digital Rights Management schemes that enforced license compliance. There are a universe of other mechanisms that could be instituted that wouldn't require taking the drastic step of making the code closed source.

I know a lot of these words are "bad words" to the crypto and blockchain purists, but I see them as tools of governance - of creating a platform/protocol for doing business and transacting on the web. Moreover, I've railed incessantly about "private blockchains" being stupid (they are). Adding licensing restrictions wouldn't close the chain's permissions, just the permissions for forking and further chain development; in other words, to paraphrase Hashgraph, it's a permissionless chain, but permissioned source code.