IC Source Code License


The IC source code is entirely open source and available on Github, most of it is under Apache 2.0 license, so it can be considered as “free software” and anyone can use it however they want. However some components have a different license created by Dfinity, so I asked which parts are under stricter license and what that entails, this is what I got:

As is tradition, all licenses are found in the source repository housing the code that is licensed under them; they contain links to the canonical locations at dfinity.org (IC-1.0, IC-shared-1.0 ). As is described in the root license file, a file’s license in the primary IC monorepo is described by the first parent directory with a license file in it. Within the monorepo, notable licensures are the consensus protocol, the canister execution environment, the hash tree (no relation to ic-certified-map which is Apache), the state replication system, the certification system, the boundary node (except for the service worker), the message router, the replica orchestrator, and the threshold BLS12-381 library, which are IC-1.0, and the multi-signature BLS12-381 library which is IC-shared-1.0. The licenses can best be understood as ‘open source if the final code runs on the IC’; the difference between the two is that the latter permits Ethereum as well.

The problem

At the time of writing Dfinity holds absolute majority on system upgrade proposals, so what would happen in a “The DAO hack” scenario? What if Dfinity were to turn against the community before the NNS becomes decentralized enough to counter Dfinity’s VP?
Both are rhetorical questions, cause the answer is quite simple, we’d have to: either live with it, fork the network and rework a lot of major systems (quite unlikely, we can’t even get non Dfinity devs to contribute to the protocol) or move to other projects.

The situation is far from ideal in my opinion and not something I’d expect from a foundation whose goal is building a decentralized internet.
I understand the intention behind the license is to prevent competitors from using the code, but it stops competitors just as community supported forks.
Stopping competitors could also be seen as a sign of weakness and a premeditated attempt by Dfinity to stay in control, competition is good and promotes innovation, if someone is able to fork the IC and somehow attract enough users to be considered a competitor then it probably means they brought some value to the table, be it in the form of more decentralization or protocol improvements, that should be a considered as a win, regardless of who does it, if the end goal is building A decentralized world computer instead of Dfinity’s.

Has BNB or the miriad of ETH forks killed ETH? No! If anything they made the EVM dominate the smart contract world, as long as a chain still offers some unique value, no matter how many clones pop up, it will always have its place.

Free software and forks are part of the crypto/web 3.0 ethos, failing to understand it is a big mistake and makes it harder to get the wider crypto crowd onboard: