We talked about why we are not using Ethereum for our main chain in our last blog post. In this blog, I will expand on how we are using the Scorex 2 Framework, developed by IOHK. This is a name that may sound familiar because the Waves platform is also built on top of the original Scorex Framework. The decision to use Scorex 2 is based off these constraints for our project:

#1 - The Topl Network needs to be public due to the nature of global capital markets.

#2 - Investors seek privacy about their investment history. They also seek more information about their partnership with potential investment targets, prompting a need for a robust reputation/ranking system.

#3 - The code base should be easy to learn and maintain for the community.

One possible answer to solve the privacy concerns would be Quorum. However, if we take a closer look at Quorum, its private transactions are stored in a separate database that is disconnected from the rest of the network, which means an un-associated third party never verifies this private transaction. This design makes perfect sense in a permissioned, aka private chain, where you can trust different accounts in the network, but it violates constraint #1.

We still have couple choices, we could fork Bitcoin, which has over 100K lines of C++ code, or Ethereum, which contains a quasi-Turing complete Ethereum Virtual Machine. Both options have unnecessary pieces we have little use of. It usually takes a long time for a new developer from the open-source community to start contributing meaningfully to the core of a project. Forking a code base with an onerous size builds an artificial barrier to entry and definitely hurts and process of bringing on new developers. That being said, the code base needs to be reasonable for new developers. Forking Bitcoin or Ethereum absolutely violates constraint #3.