Generally, we know that block producers follow some order to produce blocks and each block producer is scheduled to produce a block in the given scheduled time. Say, 1st – Block_Producer-A 2nd – Block_Producer-B . . . 21st – Block_Producer-U So, here we are assuming the order of block producers to produce a block in their scheduled time.(Taken knowledge from technical paper)
Now, at a particular schedule, the scheduled block producer has to produce block. The process that happens to produce a block is having two steps – I. Execution of transactions and forming a block with executed transactions. II. Validation of executed block In the first process, say a scheduled block producer names “Block_Producer-A” has to execute the transactions and forms a block. Now, the block is broadcasted to the network for validation. In the second process, remaining block producers(20) has to validate the formed block by “Block_Producer-A”. If 15 out of 21 block producers validates and agrees that block as valid, then the block which is executed by “Block_Producer-A” is attached to the chain and consensus takes place where every node identifies the new block from then.(The total process behind a block production.)
Now my question is that – (Assumed situation) • Say, a block producer(“Block_Producer-A”) is having more computational power and say “Block_Producer-A” is malicious. • “Block_Producer-A” wanted to produce more than one block in his scheduled time. Then is that possible to “Block_Producer-A” to produce more than one block? Say, he has executed transactions to form a first block and broadcasted into network for validation. Meanwhile he again executed transaction to form a second block and broadcasted again into network for validation. Is that possible to validators(atleast 15 out of 21 block producers) to validate both blocks and agree both blocks.