-1

Bitcoin is designed to have an average time duration of 10 min between block mining. This is maintained by the difficulty attribute and haskey complexity. But mining takes so much power and it is a manual process as well.

Why it just not create a block every 10 min automatically?

Now bitcoin has 10kb(not sure exactly) reserved for priority transactions of pool. Let's just decide priority by the same functionality, and fill our block with transactions.

Users need only send transaction to the pool, no power lost and it is automated. Blocks will still have it's hash codes, and all immutability would be maintained. Just miner need not find it. Say I have coded bitcoin like this: 1. 5 min for every new block. 2. only one transaction from one public key at a time. It will stop the double spend, and no need of POW, and within 5 min, changes will be reflected in connecting nodes.

Why are such methods not used?? What are the drawbacks??

  • Thanks for the response alcio. Say I have coded bitcoin like this: 1. 5 min for every new block. 2. only one transaction from one public key at a time. It will stop the double spend, and no need of POW, and within 5 min, changes will be reflected in connecting nodes. What the drawbacks here?? – Piyush Chittara Jul 29 '17 at 11:05
  • Problem 2 is not trivial to solve and is in fact solved by creating the blockchain. – Murch Jul 31 '17 at 16:43
3

One of the core concepts of Bitcoin is that it has a decentralized transaction ledger (the Bitcoin blockchain). This means that every (full) node in the network has a copy of this ledger (as opposed to VISA for example where only one centralized party has a copy of the transaction ledger).

When new transactions have to be added to the blockchain, this results in a problem. The nodes in the Bitcoin network need to agree (or reach consensus) about a new state of the blockchain. The problem boils down to "Which block of transactions will we all add to our blockchain next?".

Now, say all of the full nodes would have your proposed software routine that says "I will create a new block of all the transactions of the past 10 minutes".

The result will be that different nodes will have different blockchains.

Transactions can't be propagated instantly across the entire Bitcoin network. So a given transaction could fall within the 10 minute time-span for some nodes, but arrive late to other, more distant nodes.

The nodes are now in disagreement and it's unsure which blockchain is the true blockchain of the network.

So to prevent this, a consensus algorithm is needed, which allows all the nodes in the network to agree on the next block to add, so there is only one version of the truth. One node will have to propose the next block to be added, and the other nodes will need to be able to easily verify that the block is valid.

PoW is just one example of a consensus algorithm, and it's indeed known to consume a lot of energy. Other consensus algorithms exist that are more energy-efficient, e.g. PoS (Proof-of-Stake), PoC (Proof-of-Capacity), ...

But without one of these algorithms, there is no way of keeping one and the same decentralized blockchain.

1

Who would create the block? What if two people create different blocks and can't agree? If the whole network trusted one pool to create the block once every 10 minutes, it becomes completely centralised. Bitcoin uses the mining race to securely decentralise the decision of which block is the accepted block.

  • Appreciate the response MeshCollider. now say, block is created by itself, assuming it is coded like that only. It won't be centralized, no pool is creating the block, but the code itself. – Piyush Chittara Jul 29 '17 at 11:02
  • But if everyone's code makes a block based on the order it sees transactions, what if two different computers see the transactions in different orders? How can they reach agreement? The whole point is that everyone must agree – MeshCollider Jul 29 '17 at 11:22
  • No, not everyone is making blocks. Assume block is being created by blockchain itself every 5 minutes, and only one transaction from one public key in a block. According to priority, txns are automatically added to the block. It will stop the double spending, and no need of POW, and within 5 min, changes will be reflected in connecting nodes. – Piyush Chittara Jul 29 '17 at 14:06
  • 2
    I think you completely misunderstand what the blockchain actually is. There is no code in the blockchain itself, there is no way for it to make blocks itself. – MeshCollider Jul 29 '17 at 20:26
  • Adding to Mesh's argument, how can you know your magic blockchain code hasn't been hacked? The value of having so many users on the network is its security. The whole point of a blockchain is so that the databse / ledger is decentralized. If the machine is the one running it, there is no way to know for sure that it isn't being manipulated. – James P. Jul 30 '17 at 15:56
0

The problem in a peer-to-peer gossip network is that not every peer has the same information at the same time. This means that "only one transaction from one public key at a time" is not a trivial problem to solve. In fact, this is the core invention of Bitcoin: The Bitcoin network uses the blockchain to determine which transaction is to be considered "seen first".

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