aboutsummaryrefslogtreecommitdiff
path: root/nizk/stage2.go
diff options
context:
space:
mode:
authorÖzgür Kesim <oec@codeblau.de>2024-11-13 18:06:47 +0100
committerÖzgür Kesim <oec@codeblau.de>2024-11-13 18:06:47 +0100
commit1dd0089e5f689eef3464452fbc70f0adf11d8ebc (patch)
treeb49d562906d9a7b36630ed6cfad230df0f31bdd3 /nizk/stage2.go
parentb510fe2ce883fafbd60b6399ee21e4504f956fd3 (diff)
WiP: stage2 refactor started, no functioning test
Diffstat (limited to 'nizk/stage2.go')
-rw-r--r--nizk/stage2.go21
1 files changed, 12 insertions, 9 deletions
diff --git a/nizk/stage2.go b/nizk/stage2.go
index efdda9c..8747ebf 100644
--- a/nizk/stage2.go
+++ b/nizk/stage2.go
@@ -4,16 +4,15 @@ import (
. "kesim.org/seal/common"
)
-func (b *Bit) CommitStage2(lost bool, prev *Stage) (s *Stage, c *StageCommitment, p *Stage2Proof) {
+func (b *Bit) CommitStage2(lost bool, prev *Stage) (s *Stage, c *StageCommitment) {
x := Curve.RandomScalar()
r := Curve.RandomScalar()
return b.CommitStage2FromScalars(lost, prev, x, r)
}
-func (b *Bit) CommitStage2FromScalars(lost bool, prev *Stage, x, r *Scalar) (s *Stage, c *StageCommitment, p *Stage2Proof) {
+func (b *Bit) CommitStage2FromScalars(lost bool, prev *Stage, x, r *Scalar) (s *Stage, c *StageCommitment) {
s = b.stage(x, r)
c = s.commit(lost)
- p = s.proof2(lost, prev)
return
}
@@ -32,7 +31,7 @@ type Stage2Proof struct {
R3 [2]*Scalar
}
-func (s *Stage) proof2(lost bool, prev *Stage) *Stage2Proof {
+func (s *Stage) proof2(lost bool, prev *Stage) (rev *StageReveal, pr *Stage2Proof, e error) {
var (
e1, e1_ [3]Bytes
e2, e2_ [3]Bytes
@@ -53,9 +52,13 @@ func (s *Stage) proof2(lost bool, prev *Stage) *Stage2Proof {
bc := prev.bit.com
pc := prev.com
rvp := prev.rev
- rev := &StageReveal{
- Y: G.Exp(Curve.RandomScalar()), // TODO! BUG! THIS HAS TO BE Pj<i(X_j)/Pj>i(X_j)
- }
+
+ // TODO: Calculate Y based on the Xs and our own X_i
+ // as Π_(i<k) X_k / Π_(i>k) X_k
+ // For now:
+ Y := G.Exp(Curve.RandomScalar())
+
+ rev = &StageReveal{Y: Y}
if s.bit.IsSet() {
rev.Z = c.R.Exp(s.x)
} else {
@@ -141,7 +144,7 @@ func (s *Stage) proof2(lost bool, prev *Stage) *Stage2Proof {
points = append(points, e3_[:]...)
ch := Challenge(points...)
- pr := &Stage2Proof{}
+ pr = &Stage2Proof{}
if lost {
pr.Ch[0] = w[0]
@@ -193,7 +196,7 @@ func (s *Stage) proof2(lost bool, prev *Stage) *Stage2Proof {
}
s.prf2 = pr
- return pr
+ return rev, pr, e
}
func (c *Commitment) VerifyStage2(pcom, ccom *StageCommitment, prev, crev *StageReveal, p *Stage2Proof) bool {