Fastest-possible PoW via Simple DAG

Posted by mcelrath

Feb 9, 2025/16:48 UTC

The simulator, which is accessible via a GitHub repository, features an advanced algorithm capable of randomly distributing nodes across the globe using latitude and longitude to calculate accurate distances between them. This allows for precise simulation of propagation latencies of beads in a network where each node connects to four peers, a number adjustable through script arguments. The script's options are made clear when running it with the -h parameter, providing users with flexibility in their simulations.

An intriguing aspect of this simulator is its implementation of the suggestion by @zawy to target two parents per bead, achieving a ratio of the number of beads per cohort (Nb/Nc) around 3.5. This approach differs significantly from previous simulations by offering more accurate latency simulations and a correct calculation of cohorts. The original method, as used by zawy, underestimated the complexity by assuming a single bead could close a cohort. Enhancements have been made to adjust the target number of parents to control the downward pressure when there are too many parents, aiming to achieve an Nb/Nc ratio closer to 2.5 by simply adjusting the target downward pressure, based on findings that suggest 2.42 as the optimal ratio.

Furthermore, the simulator introduces an innovative way to adjust the difficulty algorithm without relying on timestamps, making it extremely resistant to manipulation. Miners' payouts are proportionally linked to their work, ensuring fairness and minimizing variance in expected payouts despite differences in targets for beads. Users interested in exploring these features can modify the difficulty algorithm directly in the code, with specific suggestions available in the script for further experimentation.

The simulator operates in two distinct modes: one that calculates sha256d hashes for CPU mining when the --mine flag is used, and another that employs a geometric distribution to estimate solve times, bypassing CPU-intensive calculations. This flexibility allows for rapid generation of beads, with significant differences in operation time between the two modes. For those eager to engage with this project further, discussions are held on OpTech recaps and within a dedicated Discord community, inviting collaboration and feedback on the ongoing development and porting efforts to Rust.

Link to Raw Post
Bitcoin Logo

TLDR

Join Our Newsletter

We’ll email you summaries of the latest discussions from authoritative bitcoin sources, like bitcoin-dev, lightning-dev, and Delving Bitcoin.

Explore all Products

ChatBTC imageBitcoin searchBitcoin TranscriptsSaving SatoshiBitcoin Transcripts Review
Built with 🧡 by the Bitcoin Dev Project
View our public visitor count

We'd love to hear your feedback on this project?

Give Feedback