ความมุ่งมั่นเวกเตอร์ของคุณไม่มีปัจจัยที่ทำให้ไม่เห็น ซึ่งหมายความว่าจะไม่ซ่อนว่าความมุ่งมั่นที่แตกต่างกันสองรายการอยู่ในรายการเดียวกันของ $a_i$ ส่วนประกอบ แล้วแต่ลักษณะของ $a_i$ ส่วนประกอบ อาจเป็นไปได้ที่จะบังคับความมุ่งมั่นอย่างดุร้ายเพื่อกำหนดส่วนประกอบที่เป็นตัวแทน
เราสามารถแก้ไขได้โดยการเพิ่มปัจจัยที่ทำให้ไม่เห็น $ข$:
$C = a_0G_0 + a_1G_1 + ... + a_{n-1}G_{n-1} + bH$
เราต้องการแสดงให้เห็นว่าแต่ละองค์ประกอบ $a_i$ เป็นจำนวนเต็มบวกที่น้อยกว่า $2^s$.
ในการทำเช่นนี้ เราสร้างและประกาศ $(n\cdot s)$ ภาระผูกพันแต่ละอย่างมีปัจจัยที่ทำให้ไม่เห็นแบบสุ่มอย่างสม่ำเสมอ $b_{i,j}$, ที่ไหน $0\leq ฉัน <n$ และ $0\leq j <s$. ความมุ่งมั่นแต่ละครั้ง $C_{i,j}$ คำนวณเป็น $C_{i,j} = (z_{i,j}\cdot 2^j)G_i + b_{i,j}H$, ที่ไหน $z_{i,j}$ เป็น $0$ หรือ $1$ และเป็นตัวแทนของ $เจ$บิตของส่วนประกอบ $a_i$.
ผู้ตรวจสอบสามารถคำนวณได้ $C'=\sum C_{i,j}$. เราสามารถแสดงให้เห็นได้ว่า $C$ แสดงถึงรายการเดียวกันของ $a_i$ ส่วนประกอบเป็น $C'$ โดยระบุลายเซ็นสำหรับรหัสสาธารณะ $(ซี-ซี')$ บนจุดฐาน $H$. คีย์ส่วนตัวสำหรับจุด $(ซี-ซี')$ จะเป็นค่า $b-\sum b_{i,j}$.
ตอนนี้เราได้แสดงให้เห็นสองสิ่ง: $C$ เป็นข้อผูกมัดในรายการองค์ประกอบเดียวกันกับ $C'$และส่วนประกอบแต่ละอย่างนั้น $a_i$ ถูกสร้างขึ้นเป็นรายการไม่เกิน $s$ บิต (และต้องเป็นจำนวนเต็มบวก)
สิ่งที่เหลืออยู่คือการแสดงให้เห็นว่าแต่ละข้อผูกพันที่ประกาศไว้ $C_{i,j}$ เป็นความมุ่งมั่นจริงๆ $0$ หรือเพื่อ $2^jG_i$.
สิ่งนี้สามารถทำได้ด้วยลายเซ็นแหวนประเภทใดก็ได้ที่พิสูจน์รหัสส่วนตัวสำหรับอย่างใดอย่างหนึ่ง $C_{i,j}$ หรือ $(C_{i,j} - 2^jG_i)$ บนจุดฐาน $H$ เป็นที่รู้จัก คุณสามารถใช้สัญลักษณ์กันกระสุนหรือลายเซ็นแหวน Borromean ที่เข้าใจง่ายกว่าเพื่อให้บรรลุเป้าหมายนี้