Este protocolo se usa en esquemas de voto verificables para probar que un texto cifrado es consecuencia de cifrar alguno de los elementos de un conjunto de valores diferentes.[1]
Por ejemplo, el protocolo CDS se ha usado para demostrar que un voto cifrado con ElGamal es uno de dos posibles votos que se pueden realizar en un referéndum ("SÍ" o "NO") sin revelar cual es lo cual es un problema 1-de-2 ZKP.[2]
Para llegar a un problema donde aplicar el protocolo CDS codifica con
al "NO" y con
al "SI". Formalizando se tiene que
con
. Por tanto los votos cifrados tienen la forma
con K perteneciente a la clave pública y x_i aleatorio.[2]
Por tanto dado un voto cifrado con ElGamal
se tiene que poder demostrar que m puede ser
o
sin revelar cual es. El objetivo a demostrar es probar la siguiente sentencia OR demostrable por el protocolo CDS (al que previamente se le ha convertido en un protocolo no interactivo usando la heurística de Fiat-Shamir):[2]

- Demostración: Partiendo de
tenemos:
- Despejando
en
tenemos 
- Despejando
en
tenemos 
- Uniendo las dos igualdades tenemos
