Abstract: A blockchain is configured with a public mainchain connected to a plurality of private sidechains. Access is controlled to the private sidechains through an access controller allowing transactions in the sidechain to be trusted implicitly. Data parity may be maintained between the mainchain and sidechains through the use of a parity controller configured by a user.