mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 22:57:59 -05:00
sonic: add protocol steps
This commit is contained in:
@@ -170,26 +170,35 @@ print(const_t)
|
||||
# zkP1
|
||||
# 4 blinding factors since we evaluate r(X, Y) 3 times
|
||||
# Blind r(X, Y)
|
||||
for i in range(1, 4):
|
||||
blind_c_i = misc.sample_random(fp)
|
||||
r_x_y += x**(-2*n - i) * y**(-2*n - i) * blind_c_i
|
||||
# Commit to r(X, Y)
|
||||
|
||||
# zkV1
|
||||
# Send a random y
|
||||
y = misc.sample_random(fp)
|
||||
challenge_y = misc.sample_random(fp)
|
||||
|
||||
# zkP2
|
||||
# Commit to t(X, y)
|
||||
|
||||
# zkV2
|
||||
# Send a random z
|
||||
z = misc.sample_random(fp)
|
||||
challenge_z = misc.sample_random(fp)
|
||||
|
||||
# zkP3
|
||||
# Evaluate a = r(z, 1)
|
||||
a = r_x_y.evaluate({x.name: challenge_z, y.name: fp(1)})
|
||||
# Evaluate b = r(z, y)
|
||||
b = r_x_y.evaluate({x.name: challenge_z, y.name: challenge_y})
|
||||
# Evaluate t = t(z, y)
|
||||
t = t_x_y.evaluate({x.name: challenge_z, y.name: challenge_y})
|
||||
# Evaluate s = s(z, y)
|
||||
s = s_x_y.evaluate({x.name: challenge_z, y.name: challenge_y})
|
||||
|
||||
# zkV3
|
||||
# Recalculate t from a, b and s
|
||||
k = k_y.evaluate({y.name: challenge_y})
|
||||
t = a * (b + s) - k
|
||||
# Verify polynomial commitments
|
||||
|
||||
|
||||
Reference in New Issue
Block a user