I have been contemplating putting together an Ethereum based sidechain that runs natively on 0xBitcoin to pay for transactions for a couple of days now. There has been a considerable amount of work done over the past several months on improved consensus algorithms for Ethereum networks, namely HBBFT, Istanbul BFT, Raft and PoA.
I am putting together test POCs to determine what might be the best fit if the community decides that a consortium driven sidechain would add value to the 0xBitcoin ecosystem. For those of you interested, this is what myself, Mikers and others have been digging up over the last couple of days:
POA network bridged ERC20 platform: This has the most promise in my opinion, because it has all of the components required to set up a sidechain, bridge it to a mainnet ERC20 and have a fully running stack out of box. Sort of feels like a ‘white label ERC20 bridged side chain’. So standing up “0xBitChain” would include all of the shiny Dapps out of box, including the token bridge, consortium management Dapps, a really nice block explorer called Blockscout and considerable documentation and support. I have reached out to the team, and they’ve documented the entire journey that brought DAI onto their own sidechain in the same manner. That’s the good news. The bad news: the setup is pretty complicated and it looks like they only support Azure for the moment. I am not an infra guy, so there was likely a lot of pitfalls there, that are mere bumps in the road to more seasoned devops folks.
@Mikers pointed me to Istanbul BFT, which is really, really cool. It takes a little effort to set things up, but it offers Byzantine Fault Tolerance for a side chain. Great for decentralization, but I was seeing some issues when deploying test contracts. It may simply be my config.
This configuration would provide a great decentralized base layer, but we still require connectivity back to mainnet. POA Network has done a really good job of modularizing their token bridge, so I don’t think it would take that much effort to include it as part of a sidechain.
In a similar vein, the IBFT has been built and supported by MorganStanley to be compatible with their Ethereum instance Quorum. Before you get all up in arms about the philosophical juxtaposition of a bank developing an Ethereum network fork, what they’ve done is actually very comprehensive and impressive. They offer out of box Raft and IBFT consensus, and the speed of going this route is unparalleled. If we are looking for speed and privacy, this seems like a viable solution.
Vanilla Geth Clique
Geth can be quickly and easily configured as a PoA out of box. There are several resources online supporting this. I was able to stand up a testnet very quickly, but again, this would only supply the base layer without bridging as above.
Just this morning I discovered Keleido and have been playing around with it. It’s a cloud hosted solution for creating private Ethereum networks like Ethereum. I wish I would have found this first, because it offers a great place to stand up a consortium, and test out different ethereum protocols including Quorum IBFT, standard PoA, and Quorum Raft. This is probably the best place to go to test out the tech and then go from there. The downside, is that you don’t have access to network parameters of the genesis block, so configuring gasLimit, seeded accounts, and chainIds ( 918, right Mike? ) is not possible.