Chà, một cách tiếp cận là yêu cầu cả hai bên tạo và xuất bản các cam kết, đồng thời họ cùng xuất bản một bằng chứng không có kiến thức rằng cả hai cam kết đều có cùng giá trị.
Đây là một cách tiếp cận để làm điều đó: cả hai $A$ và $B$ tạo và xuất bản các cam kết của Pedersen; Ví dụ, $A$ chọn một giá trị ngẫu nhiên $r$ và xuất bản $C_A = g^k h^r$, trong khi $B$ chọn một giá trị ngẫu nhiên $s$ và xuất bản $C_B = g^k h^s$ (trong đó điều này được thực hiện trong một nhóm nơi các bản ghi rời rạc rất khó và không ai biết nhật ký rời rạc của $h$ đối với $g$).
Bằng chứng không có kiến thức rằng họ đang cam kết với cùng một giá trị là bằng chứng về kiến thức về một giá trị $v$ như vậy mà $C_A C_B^{-1} = h^v$ (mà, đối với các cam kết trung thực, là $v = r-s$); nếu một bên cam kết với một giá trị khác, sẽ không ai biết giá trị đó $v$, và do đó không ai (thậm chí không $A, B$ chung) sẽ có thể xuất bản một bằng chứng như vậy. Lưu ý rằng $C_A C_B^{-1}$ có thể được tính toán bởi bất kỳ ai có quyền truy cập vào hai cam kết.
Có vẻ như khá đơn giản để hai bên hợp tác với nhau để tạo ra một bằng chứng Schnorr như vậy:
$A$ chọn một giá trị ngẫu nhiên $a$ và gửi $h^a$ đến $B$; $B$ chọn một giá trị ngẫu nhiên $b$ và gửi $h^b$ đến $A$.
Cả hai đều tính toán giá trị chung $c = \text{Hash}(h^a h^b)$
$A$ tính toán $x = a + c r$, và xuất bản $x, h^a$. $B$ tính toán $y = b - c s$, và xuất bản $y, h^b$.
cặp $h^à^b, x+y$ sẽ là một bằng chứng Schnorr hợp lệ; người xác minh sẽ kiểm tra xem $h^{x+y} = (h^ah^b) (C_A C_B^{-1})^{\text{Hash}(h^ah^b)}$
Hiện nay:
Tôi tin rằng quyền truy cập vào 'bằng chứng nửa vời' $x, h^a$ và $y, h^b$ không cung cấp bất kỳ cái nhìn sâu sắc nào về một trong hai cam kết.
Giao thức này được bảo vệ khỏi một tác nhân độc hại duy nhất; nếu (nói) $A$ là trung thực, sau đó nếu bằng chứng không có kiến thức xác minh, thì $B$ phải cam kết về cùng một giá trị. Trên thực tế, ngay cả khi cả hai bên đều độc hại, họ vẫn không thể cam kết riêng lẻ với các giá trị khác nhau.