Originally uploaded at http://www.kaetemi.be/bt/paritypieces.pdf in 2007. First published on this blog during archive cleanup in August 2010 to provide some food for thought.
This document is a draft suggesting an extension for the BitTorrent protocol. It is not complete, might contain errors, will be changed, and should for that reason not be implemented yet in non-development releases of clients.
Introduction
Parity is a method of creating redundant data, usually used to recover lost
data. By XORing a few arrays of bits of the same length, for example, you get a
new array of the same length. If you then remove one of the original arrays and
XOR all the other arrays including the newly created array, you will get the
array you removed as result.
Using this system, it is possible to avoid the End Game in BitTorrent, by
downloading parity pieces as soon as possible, which allow you to reconstruct
the last pieces as soon as enough pieces have been downloaded.

