词条 · 理论 ·
纠删码
把数据拆成多份并加上冗余,丢掉一部分也能把原数据完整还原出来。
也称:erasure code、erasure coding、里德-所罗门码、Reed-Solomon
一句话
把一份数据编码成更多份碎片,只要收集到足够比例的碎片,就能还原全部——哪怕丢了一些。
打个比方
你要把一句话告诉远方的朋友,但传话过程会丢字。
笨办法是抄三遍,冗余度 300%,而且如果三份都在同一处丢失,照样没救。
纠删码的办法更聪明:想象把数据点画在一条曲线上。两点确定一条直线,三点确定一条抛物线——反过来说,如果你知道曲线是二次的,那么曲线上任意三个点都足够把整条曲线还原出来,第四、第五个点是多余的保险。
于是把原始数据当成曲线上的必要点,再多算一些曲线上的点发出去。收到任意足够数量的点,就能反解出整条曲线,也就拿回了原始数据。丢哪几个都不要紧。
关键性质
- 有门槛:低于门槛数量的碎片,什么也还原不出来;达到门槛,就能完整还原。不是”越多越清晰”,是全或无。
- 碎片平等:没有哪一片更重要,任意组合达标即可。
- 可调:想抗多少丢失,就加多少冗余点。
用在哪
硬盘阵列(RAID)、云存储、二维码(污损一部分仍能扫出来)、深空通信,以及区块链的数据可用性方案。
凡是”传输或存储会丢东西,但又不能丢信息”的场合,基本都有它。
提到这个词条的文章
- PeerDAS:以 1/16 的下载量换取全量数据可用性保证 2026-07-30