Decoupling the Bitcoin ecosystem from the Satoshi code base w/ sidechains

Sidechains is a ground breaking technical innovation created by Blockstream, you can view the white paper here. One interesting thing I haven’t seen written about is the fact that sidechains allow the Bitcoin ecosystem to decouple itself from the Satoshi code base. Effectively the only thing this chain needs to support is a mechanism to provide an SPV proof to its parent chain. You can read more about SPV proofs here.

This allows us to exploit certain advantages that some programming languages have over others. These sidechains could also be a test bed for new tools inside of consensus critical code or perhaps even new programming languages designed to handle consensus critical while having an obvious path to deployment.

Sidechains also allow for hybrid models — the Elements project does this. It uses the implementation of Script used by Satoshi codebase while also using a different consensus mechanism — the federated peg — to be written in Python. As shown in the Elements project, we can use different languages throughout the sidechain code base using the best tool for the job at hand.

However, just because something can be done, doesn’t mean it should be done. The Satoshi codebase has been attacked time and time again — to no avail. Any new codebase is going to need to be peer reviewed and tested to try and reveal its weaknesses. With the way the app coin craze is going, this could be dangerous. If an attacker is able to exploit the Script engine, they can transfer all coins to an output on the sidechain, and then provide and SPV proof to the mainchain to claim all of the bitcoins. I would be interested in hearing if there are ways to mitigate this attack, at the time of this writing I can’t.