Roll Back Attack about blacklist in EOS


Technical Background

  1. As we know that the consensus algorithm used by EOS is the DPOS algorithm, which uses the way that 21 nodes rotate out of blocks. Except for the 21 nodes, there are no permissions for the block, there role is to broadcast the received transaction, and then the bp(block producer) will package it. Having said that, it is easy to see that if a transaction is sent to all other nodes except the bp, the transaction goes through two processes. First, the transaction is first received by the entire node, and then the transaction is broadcast by the node for packaging. A transaction is not rollable after a node that exceeds 2/3+1 in the bp is confirmed, that is, it is irreversible. This process takes about 3 minutes. That is to say, when the transaction is sent to the full-node except the bp, since the full-node has no package right, the transaction is still in a reversible state at this moment (this assumes the read mode of the node database) For the default speculative, [Reference on reading mode] ( This is a core key point.
  2. Each bp (block producer) can be configured in the blacklist of the config.ini file of its own node. The account in the blacklist cannot be traded, that is to say, blacklisted transactions anyway, will be rolled back.


Attack Reappear

Defense recommendations





Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store