Aurora: A Robust and Trustless Verification and Synchronization Algorithm for Distributed Ledgers

Current consumer grade hardware running a full DLT node takes a long time to synchronize with the network and requires a lot of resources. Nodes that have never before synchronized with the network require significant resources to verify entire ledger history. The initial synchronization assumes inherent trust in the bootstrap nodes, which is a point of centralization. In the case when bootstrap nodes cannot be trusted, a new node might find itself in a malicious cluster of nodes that can either make the node waste resources before realizing that it has been exposed to malicious data, or subvert it into thinking that it has downloaded the longest chain. The Aurora algorithm is able to detect the existence of malicious cliques with a certain plausibility when a new node is attempting to synchronize with the network, and will try to exit cliques identified as malicious. If the node is unable to exit a malicious clique, the node will halt its operation. Furthermore, the same algorithm can be applied to verify if a specific transaction has been included into a referent block with a certain plausibility without the need to download the entire chain (or the header chain), or to trust centralized block explorers. Thus, the Aurora algorithm has the potential to significantly improve the scalability of DLT by reducing the time necessary for initial blockchain synchronization. Furthermore, it strengthens the trustless environment by incentivizing users not willing to run a full or even a light node to partly verify transaction inclusion without relying on third party entities.