I have a question that has concerned me for a long time. It relates to the security and reliability of the blockchain applications.
Let's assume I want to build an application that uses Ethereum or some other blockchain platform. At first there will be only one mining machine so to keep the mining time adequate the block mining complexity should be not too high. I know that the mining time of one block is about 10 mins for bitcoin. After some time the other mining machine joins mine so the complexity should be adjusted automatically.
Let's suppose that my application is responsible for the real estate sales so it should be very reliable and safe to use. But what if some hackers decide to cheat a bit and remove some certain sale facts from the blockchain after the transaction has been confirmed, added to the blockchain and the money have been transfered also. As soon as they have hashing power bigger than the hashing power of those two machines they can do it by recalculating hash of the block they're interested in and the blocks that follow after. It won't be too difficult to do because the complexity has not been too high yet. And after they build their own blockchain version they can continue to support it and mine new blocks to make all the other participants accept this version of the blockchain. It is possible because of the requirement to accept the longest blockchain in the whole decentralized network. To keep it the longest one attackers just need to have enough hashing power and they already do. So a buyer is left without his money and a house he paid for.
This example can be projected to any type of blockchain applications.
So the question is - how to protect against this type of attack? Is there a way that Ethereum eliminates such abnormal situations? If yes, where can I read about it?