แนวทางหนึ่งคือการให้ทั้งสองฝ่ายสร้างและเผยแพร่ข้อผูกมัด และร่วมกันเผยแพร่โดยปราศจากความรู้ที่พิสูจน์ได้ว่าข้อผูกพันทั้งสองมีค่าเท่ากัน
นี่เป็นแนวทางหนึ่งในการทำเช่นนั้น: ทั้งสองอย่าง $A$ และ $B$ สร้างและเผยแพร่ความมุ่งมั่นของ Pedersen ตัวอย่างเช่น, $A$ เลือกค่าสุ่ม $r$ และเผยแพร่ $C_A = g^k h^r$, ในขณะที่ $B$ เลือกค่าสุ่ม $s$ และเผยแพร่ $C_B = g^k h^s$ (ซึ่งจะทำในกลุ่มที่บันทึกแยกยาก และไม่มีใครรู้บันทึกแยกของ $h$ ด้วยความเคารพ $g$).
การพิสูจน์ความรู้เป็นศูนย์ว่าพวกเขายึดมั่นในคุณค่าเดียวกันคือข้อพิสูจน์ว่าไม่มีความรู้ในคุณค่า $v$ ดังนั้น $C_A C_B^{-1} = h^v$ (ซึ่งสำหรับคำมั่นสัญญาที่ซื่อสัตย์คือ $v = r-s$); หากฝ่ายหนึ่งให้คุณค่ากับอีกสิ่งหนึ่ง ก็จะไม่มีใครรู้คุณค่านั้น $v$และด้วยเหตุนี้จึงไม่มีใคร (แม้แต่ $เอ, บี$ ร่วมกัน) จะสามารถเผยแพร่หลักฐานดังกล่าวได้ โปรดทราบว่า $C_A C_B^{-1}$ สามารถคำนวณได้โดยใครก็ตามที่สามารถเข้าถึงข้อผูกพันทั้งสองได้
ดูเหมือนว่าจะค่อนข้างง่ายสำหรับทั้งสองฝ่ายในการทำงานร่วมกันเพื่อสร้างหลักฐาน Schnorr ดังกล่าว:
$A$ เลือกค่าสุ่ม $a$ และส่ง $h^a$ ถึง $B$; $B$ เลือกค่าสุ่ม $ข$ และส่ง $h^b$ ถึง $A$.
พวกเขาทั้งสองคำนวณค่าส่วนกลาง $c = \text{แฮช}(h^a h^b)$
$A$ คำนวณ $x = a + c r$และจัดพิมพ์ $x, h^a$. $B$ คำนวณ $y = b - ค s$และจัดพิมพ์ $y, h^b$.
คู่ $h^อา^b, x+y$ จะเป็นหลักฐาน Schnorr ที่ถูกต้อง; ผู้ตรวจสอบจะตรวจสอบว่า $h^{x+y} = (h^ah^b) (C_A C_B^{-1})^{\text{Hash}(h^ah^b)}$
ตอนนี้:
ฉันเชื่อว่าการเข้าถึง 'ครึ่งพิสูจน์' $x, h^a$ และ $y, h^b$ ไม่ได้ให้ข้อมูลเชิงลึกเกี่ยวกับความมุ่งมั่นอย่างใดอย่างหนึ่ง
โปรโตคอลนี้ได้รับการปกป้องจากผู้ประสงค์ร้ายรายเดียว ถ้า (พูด) $A$ มีความซื่อสัตย์ ถ้าหลักฐานที่ไม่มีความรู้ตรวจสอบได้ แสดงว่า $B$ ต้องมีความมุ่งมั่นในคุณค่าเดียวกัน ที่จริงแล้ว แม้ว่าทั้งสองฝ่ายจะมุ่งร้าย พวกเขายังไม่สามารถยอมรับแต่ละค่าที่ต่างกันได้