นี่คือสองปาร์ตี้ ($พี$ผู้จัดเตรียมและ $C$ ตัวเลือก) โปรโตคอลด้วย $4$ ขั้นตอน (และสามรอบของการสื่อสาร หาก ZKP ไม่โต้ตอบ)
ทั้งสองฝ่ายมีข้อมูลร่วมกันเป็นกุญแจสาธารณะ $pk$ และคู่ $(a_i, b_i)$.
ผู้จัดเตรียมยังรู้รหัสลับ $sk$.
ในขั้นแรก ผู้จัดเตรียม $พี$ ใช้การเรียงสับเปลี่ยนแบบสุ่มของคู่และเข้ารหัส (ตาม $pk$) แต่ละคู่ประสานกันและส่งผลไปยังผู้เลือก และสร้าง ZKP ว่าผลลัพธ์นี้ได้รับการคำนวณอย่างตรงไปตรงมา
ในขั้นตอนที่สอง ผู้เลือกจะเลือกดัชนี $\ell$และทำให้ไซเฟอร์เท็กซ์ตาบอด $c_\ell$ (ซึ่งเป็นการเข้ารหัสแบบหนึ่งของ $a$). พวกเขาส่งไซเฟอร์เท็กซ์ตาบอดนี้ $e$และทำให้ ZKP ถูกสร้างขึ้นโดยสุจริต
ในระหว่างขั้นตอนที่สาม ผู้จัดเตรียมจะคำนวณการถอดรหัส $a$ ของ $e$ และพุทโธ (แปลว่าเป็นผลแก่ตน). จากนั้นเขาก็ส่งโซ่ของ $ข$ ด้วยการสุ่มตามลำดับการเรียงสับเปลี่ยนที่เขาเลือกไว้ก่อนหน้านี้
และสุดท้ายในขั้นตอนสุดท้าย ผู้เลือกจะดึงองค์ประกอบธรรมดาของดัชนีเดียวกันของ $ค$ ก่อนหน้านี้เขาตาบอด (เขาทำได้เพราะเขารู้ดัชนีที่เขาเลือก) ตรวจสอบว่าดัชนีนั้นดีหรือไม่โดยเข้ารหัสใหม่ (เพราะเขาได้รับการสุ่มด้วย) จากนั้นจึงส่งออกค่าที่สอดคล้องกัน $ข$.
ในตอนท้ายของโปรโตคอล $พี$ รู้ $a$, และ $C$ ก $ข$ ซึ่งมีความสัมพันธ์กัน (สอดคล้องกับคู่ $(a_i, b_i)$) และไม่ $พี$, ก็ไม่เช่นกัน $วี$ สามารถบังคับให้เลือกคู่ใดคู่หนึ่งได้ (หากมีเพียงคู่เดียวที่ซื่อสัตย์ คู่นั้นจะถูกสุ่มเลือกแบบเดียวกัน)