# Error correction code without error detection

Error detection and correction codes require many bits of redundancy for correcting even a modest number of erroneous bits. However, we often have out-of-band methods to determine when and where the errors occured, such as if we observe a voltage spike that exceeds the usual signal levels.

1. Are there any well-established error correction codes that use less redundancy, but require that the receiver explicitly declares some bits as unknown and corrects only those? In theory, we should be able to correct one erroneous bit for every bit of redundancy.

2. Are there any such codes which are also able to detect and correct a small number of unknown errors, in addition to the known ones?

3. Are there any such codes where the receiver augments each bit with some kind of non-binary confidence score, and the code then finds the most likely original sequence?

You might be interested in the binary erasure channel, in which each symbol is erased with probability $$p$$. The capacity of this channel is $$1-p$$, and there are practical erasure codes that achieve it.