The decision to use Scorex 2 (as was said before here) is based on:
#1 – Aeneas database should be public due to the nature of global capital markets.
#2 – Investors seek privacy about their investment history.
#3 – The code base should be easy to learn and maintain for the new developers.
The code base needs to be reasonable for open-sourced community. Forking Bitcoin or Ethereum absolutely violates constraint #3.
Scorex 2 is a framework that meets all the constraints listed above. It is tried and tested by Waves. It is written in Scala, an extremely powerful language. Using a complete and mature language ensures us to be able to add new things such as zk-SNARKs, its associated compilers, and ring signatures. Most importantly, Scorex 2 only has about 4K lines of code, making it easy to learn once you understand the general concepts that are abstracted by the framework.
A great example of this modularity is Scorex’s atomic data storage unit called a box. A box is similar to an unspent output in Bitcoin, or you can think of it as a key-value pair. You need to include these boxes in transactions along with your signatures in order for the transactions to be considered valid.
In addition to all this, there are a number of benefits like a JVM language like Scala allows blockchains to easily run on pretty much any general purpose computing device you can think of, including phones and micro-computers. Being able to export a blockchain client and run it on a phone is a huge plus. You can also develop Scala in your favorite IDE. When there is a weird bug that is not obvious, debug it using the debugger and watch any expressions of your choice.