1

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?

1

This is an issue for all public blockchains when they initially launch. When a genesis block is first released, there is usually such low hashpower on the network and low node connectivity so uncles/reorgs happen constantly until the hashpower is large. Ethereum/Bitcoin current negate this problem by the fact that it would require such a huge amount of money to get half of the networks hashpower that it would be near impossible, and the costs would likely be higher than they could gain in an attack.

Ethereum hopes to solve this problem with Casper by introducing finality, meaning clients wouldn't revert finalized blocks (blocks voted on by 2/3 of validators.)

  • So the reliability of the blockchain applications out there depends on how popular they are at the moment? They do not say it in the presentations and videos ^) So in other words it means that I need to attract miners to guarantee that my blockchain application is secure? Can Casper solve this problem if I don't want to go to town and find my luck on ICO? Where can I read about it? – Dobby007 May 1 '18 at 21:14
  • It's dependent on it being expensive to attack the chain, not on the popularity. You don't need to find your own miners, you would just develop your dapp on the mainnet which already has a huge amount of hash power. – flygoing May 1 '18 at 21:17
  • But can I put any arbitrary data into the blocks with custom DApp? What are restrictions? Max size, structure? – Dobby007 May 3 '18 at 19:46
  • The users of the dapp have to pay for processing/storage on the mainnet, if that's what you mean. The EVM is turing complete so there is no limit to the data/structure you put in it, but the users do have to pay for how much gas is used. If you want you can also do a sidechain attached to Ethereum like Plasma (still in development) or Loom and make it Proof of Authority so you don't need miners. – flygoing May 3 '18 at 19:51
  • I started reading about sidechains and I became interested in Loom. Their project called DelegateCall seemed to me intrigue but I don't quite understand how does this simple conversion from karma to ETH work? Is there some constant incoming of new tokens? What is the origin for the incoming money? Are there any limits for the newly emitted tokens? As I understand it the Loom company constantly spend money on buying their own tokens every day and then distribute them among users who received upvotes. But I don't clearly see the whole picture. Am I wrong in something? – Dobby007 May 19 '18 at 12:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.