0

So many blockchain documentation tell that the blockchain uses the consensus to verify transactions. But what I understand the consensus only generate the hash to create the new block. I don't know why the documentation says that the consensus verifies the transaction while the transaction has been created (made) before the consensus run for creating the new hash for new block. The consensus flow does not care about the input (group of transactions), it doesn't know the transactions group are valid or not. Why the blockchain documentation say that?

3 Answers 3

1

I think part of the confusion here is the fact that the word "consensus" is used in two different meanings here.

Bitcoin has a concept of "consensus rules", which are the rules that all blocks and transactions must obey to be considered valid. They are called this way, because all nodes must implement them exactly the same way. If two nodes differ in their implementation of consensus rules, they risk ending up on permanently distinct chains (if both have hashrate and get blocks mined that are mutually inacceptable to the nodes).

In this sense, transactions are indeed verified according to the consensus rules before they end up in a block. Because transactions that do not follow these rules are simply ignored by nodes and dropped on the floor.

Yet, there is no consensus about these transactions. They're not in a block yet, so nodes have no way of knowing whether or not other nodes consider them part of the best chain. All they know is that they are valid, and eligible for inclusion in a block.

1

Every full node, such as a wallet like Bitcoin core, verifies all data independently.

Because all full nodes apply the same verification rules, they arrive at the same conclusion about the validity of the data.

Because these rules are the same in every node, they are called the consensus rules.

We say that the Bitcoin network reaches a consensus about the contents of the blockchain.


So the consensus is an emergent property of the network. It isn't a thing that performs actions. It is wrong to say

  • "the blockchain uses the consensus to verify transactions" (WRONG).
    • the blockchain is just data, it isn't an active agent that does things.
    • The consensus is just an emergent property, it isn't something that is used to perform actions.
  • "the consensus verifies the transaction" (WRONG)
    • the consensus isn't a thing that can perform actions.
    • nodes verify transactions
  • "the consensus only generate the hash" WRONG
    • the consensus isn't a thing that can perform actions.
    • miners calculate the block hash but so do all nodes that verify the block.
  • "before the consensus run for creating the new hash for new block." (WRONG)
    • There's no such thing as a "consensus run"
    • Hashes are not really created they are calculated from block data or transaction data that has been created. This may seem a minor distinction but I think it is important to be careful with words if we want to avoid confusion.
0

The consensus protocol is the guarantee for stable operation of blockchain system. Nodes or computer on the network agree on a certain value or transaction through consensus protocol.

1
  • The consensus flow encodes the transactions with the nonce for generating a hash string for the block only, that mean the transactions should be verified before the consensus, isn't it?
    – Mark Smith
    Mar 7 at 9:09

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.