Author: Pieter Wuille 2014-08-10 18:07:54
Published on: 2014-08-10T18:07:54+00:00
In an email conversation on August 10, 2014, Bob McElrath described a hardware problem that can cause synchronization in the blockchain to fail. He mentioned this as a separate issue but noted that it should be taken into account. In another email, mbde at bitwatch.co reported experiencing a high number of orphaned blocks during synchronization and wondered if this could be caused by malicious parties generating low difficulty block chains not part of the main chain. Orphaned blocks are common during synchronization due to broken download logic in the client. They occur when the blocks are further ahead in the chain than where you are currently synchronized. While you're still synchronizing, a peer could send you stale branches with valid proof of work that would be accepted, stored, and processed. However, this must be done early on because once you learn of a good-enough chain, a branch with more proof of work would be required due to heuristics designed to prevent such attacks. A solution to this problem is headers-first synchronization, which verifies the headers in the chain first and then downloads blocks from multiple peers in parallel without regard for order. There is currently a pull request for this solution (#4468), but it is not yet production-ready.
Updated on: 2023-05-19T19:14:06.905844+00:00