Bitcoin Institute

Wei Dai announces Disperse/Collect, built from his own Crypto++ library

Figures: Wei Dai
Retro terminal-style diagram in dark teal and amber showing a file splitting into redundant encoded fragments on one side and reassembling into a restored file from those fragments on the other, connected by a small gear icon.

Retro terminal-style diagram in dark teal and amber showing a file splitting into redundant encoded fragments on one side and reassembling into a restored file from those fragments on the other, connected by a small gear icon.

From the Cypherpunks mailing list, February 5-6, 1996:

“To follow up on a post last year where I suggested that Rabin’s information dispersal scheme might be useful for sending large files across unreliable remailer networks, I built a shareware package called Disperse/Collect out of my own Crypto++ library. Disperse splits up files into redundant pieces and encodes them in base 64. Collect decodes them and reconstructs the original files. You can download this software from my home page at http://www.eskimo.com/~weidai.”

By early 1996, Wei Dai had already created and publicly released multiple software projects, including the Crypto++ cryptographic library.

Crypto++ code was in Bitcoin from the start: the SHA routines in Satoshi’s original source were “extracted as a standalone file” from Crypto++ 5.5.2, as the header of its sha.cpp states. In v0.3.6 (July 2010), a larger subset of the library (SHA-256 plus general dependencies) was added to the SVN to speed up hash computation, making Dai’s code a direct dependency of Bitcoin itself. Crypto++‘s own project page lists Microsoft Office Groove among the commercial products built on the library. That Bitcoin dependency was itself short-lived: Bitcoin v0.5 dropped Crypto++ for OpenSSL’s SHA-256 implementation in November 2011, the next chapter of the same codebase thread. That same codebase dependency is examined in the Wei Dai Satoshi-identity hypothesis analysis, which credits the SSE2 optimization to a forum proposal by BitcoinTalk member BlackEye rather than to Satoshi alone.

Two years later, that same hands-on ability sat behind Dai’s b-money announcement — a proposal he never implemented. Dai’s own 2014 explanation was that he had “grown somewhat disillusioned with cryptoanarchy” by the time he finished writing up b-money — a choice, not a lack of the ability that Disperse/Collect had already demonstrated.