Report date: May 25, 2024
Attacking target: Vechain Thor consensus protocols
The whitepaper claims its liveness as
In a practical synchronous model, new blocks could always be finalized.
Key deliveries
Our attack undermines VeChain’s finalization mechanism (in particular, FOB VIPs/assets/vip220.pdf at master · vechain/VIPs · GitHub). By coordinating N/3 malicious block proposers (N represents the total number of nodes) —to vote ‘0’ on the blocks they generate, and leveraging the chain’s fork-choice protocol (similar to the method used in Attack II), we strategically cause the next N/3 blocks produced by honest nodes to be discarded. Consequently, the proportion of proposers voting ‘1’ fails to reach the necessary two-thirds majority, rendering the blocks unable to achieve finalization. This effectively disrupts the Vechain’s finalization mechanism.
Attacking strategy
In particular, by employing tactics such as refusing to vote and delaying the broadcasting of blocks, our attack creates forks and reduces the count of honest voters to below two-thirds. This prevents the latest block on the chain from being finalized, effectively undermining the chain’s finalization mechanism and liveness property.
To clearly explain our strategy, we consider the current time as T, and label the time for the n-th block in the future as T+N. We refer to the n-th malicious actor as M(n) and the n-th honest node as H(n). Here’s how the attack unfolds:
- Every malicious actor votes 0 on the blocks they produce.
- These malicious actors then create blocks and share them only with each other.
- After a period, specifically at time T+2N, all malicious actors release their blocks to the entire network.
The above tactic creates two separate chains of blocks, each n blocks long. Based on how the network decides between competing chains, the blocks from the malicious actors, M(n), end up being chosen as the best blocks. This occurs between T+N+1 and T+2N. Consequently, the blocks from the n honest nodes are discarded, or “rolled back”. Since less than two-thirds of the total voters cast a positive vote, the network fails to finalize these blocks. This disrupts the chain’s ability to reach a consensus on the most recent valid block.