MIP-0009 - Open source Ledger check system
Presented to the Core Contributor Team on July 3, 2021 by user sputnik
The following Core Contributors have "sponsored" this MIP.
NOTE: Sponsorship for these purposes means that these Core Contributors have committed to developing the code on behalf of the community if this MIP is adopted. Note: Core Contributor sponsorship is not required for a MIP to be implemented. It just makes things easier on the community.
Currently, there is no way to know if rebuilding the whole ledger from scratch through the blockchain would provide the exact same result as the current ledger at one byte close. This gives a sense of uncertainty, we just have to trust the ledger but something might be going wrong one time or another and some wallet value might be missing, due to either a bug in the system, a hacking, a problem in the compatibility between two different versions of Mochimo that are running on the network, and so on.
This might cause that instances would have some fear to invest in Mochimo due to these reasons. So the trust is difficult to provide, there is always a need to make sure about things.
To counter this, a very good solution is to develop an open source (verifiable) system that rebuilds the whole ledger from scratch through the blockchain, to obtain a Ledger, that will then be compared to the current running ledger.
Hard Fork Required ?
A very good solution is to develop an open source (verifiable) system that rebuilds the whole ledger from scratch through the blockchain, to obtain a Ledger, that can be defined for what block it must be done, usually the latest. Then, a tool should be able to retrieve the whole current ledger. Once those two ledgers are retrieved, a byte to byte comparison would be made, and the result would be provided: same or different. Of course, the normal node that hosts the classic ledger would need to be on the same server as the server that will be recomputing the ledger from the whole blockchain, to be able to retrieve the current ledger more easily. So there would be 2 nodes running on the server: the normal node and a full blockkchain node. Probably a script in any language should do the recomputation and probably this part of code already exists. It should be provided as open source, so that verifyiers (whether it is companies, big stake holders, etc...) can make sure of the result, and hence trust Mochimo more.