Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow for use of UGH without goblin ecc ops #843

Closed
ledwards2225 opened this issue Feb 1, 2024 · 0 comments · Fixed by AztecProtocol/aztec-packages#5468
Closed

Allow for use of UGH without goblin ecc ops #843

ledwards2225 opened this issue Feb 1, 2024 · 0 comments · Fixed by AztecProtocol/aztec-packages#5468
Assignees

Comments

@ledwards2225
Copy link
Collaborator

Every UG circuit needs at least one goblin op to ensure the corresponding polynomials are nonzero. This is true for all of our different gate types, but for everything else all we have to do is add a dummy gate. Adding dummy ecc op gates has a bigger cost though because A) those ops then have to be processed by ECCVM/Translator where they are more expensive and B) this requires us to do a merge for every circuit even if its not really necessary. (Maybe we could just eat this cost but that seems pretty unsatisfactory).

One solution is to allow for points at infinity in circuits. This would eliminate this problem and the the need for dummy gates altogether.

One place this may arise is in the function circuits. We may or may not support Goblin ops in these circuits but either way there will be some circuits that don't utilize goblin ops. All function circuits will use the DataBus/poseidon so the Ultra arithmetization isn't sufficient and even if it were, we don't have a notion of folding circuits with different arithmetizations.

maramihali added a commit to AztecProtocol/aztec-packages that referenced this issue Mar 27, 2024
…5468)

Resolves AztecProtocol/barretenberg#843.

Removes the need to add golin ecc ops  for each UGH circuit by
ensuring we add the dummy gates as part of the function used to ensure
other polynomials are non-zero due to the absence of specific gates.
However, we keep adding goblin ecc gates
to circuits in situations when we want to test Goblin and also in
ClientIVC because merge proving is done prior to ProverInstance
creation.
AztecBot pushed a commit that referenced this issue Mar 28, 2024
…#5468)

Resolves #843.

Removes the need to add golin ecc ops  for each UGH circuit by
ensuring we add the dummy gates as part of the function used to ensure
other polynomials are non-zero due to the absence of specific gates.
However, we keep adding goblin ecc gates
to circuits in situations when we want to test Goblin and also in
ClientIVC because merge proving is done prior to ProverInstance
creation.
sklppy88 pushed a commit to AztecProtocol/aztec-packages that referenced this issue Mar 28, 2024
…5468)

Resolves AztecProtocol/barretenberg#843.

Removes the need to add golin ecc ops  for each UGH circuit by
ensuring we add the dummy gates as part of the function used to ensure
other polynomials are non-zero due to the absence of specific gates.
However, we keep adding goblin ecc gates
to circuits in situations when we want to test Goblin and also in
ClientIVC because merge proving is done prior to ProverInstance
creation.
sklppy88 added a commit to AztecProtocol/aztec-packages that referenced this issue Mar 28, 2024
commit 4064e18
Author: AztecBot <[email protected]>
Date:   Thu Mar 28 02:17:40 2024 +0000

    git subrepo push --branch=master noir-projects/aztec-nr

    subrepo:
      subdir:   "noir-projects/aztec-nr"
      merged:   "485393ab1"
    upstream:
      origin:   "https://github.com/AztecProtocol/aztec-nr"
      branch:   "master"
      commit:   "485393ab1"
    git-subrepo:
      version:  "0.4.6"
      origin:   "???"
      commit:   "???" [skip ci]

commit a8b48b8
Author: AztecBot <[email protected]>
Date:   Thu Mar 28 02:17:37 2024 +0000

    git_subrepo.sh: Fix parent in .gitrepo file. [skip ci]

commit 1f468db
Author: AztecBot <[email protected]>
Date:   Thu Mar 28 02:17:37 2024 +0000

    chore: replace relative paths to noir-protocol-circuits

commit 4329d40
Author: AztecBot <[email protected]>
Date:   Thu Mar 28 02:12:17 2024 +0000

    git subrepo push --branch=master barretenberg

    subrepo:
      subdir:   "barretenberg"
      merged:   "8afbd6d42"
    upstream:
      origin:   "https://github.com/AztecProtocol/barretenberg"
      branch:   "master"
      commit:   "8afbd6d42"
    git-subrepo:
      version:  "0.4.6"
      origin:   "???"
      commit:   "???" [skip ci]

commit a18288d
Author: Álvaro Rodríguez <[email protected]>
Date:   Wed Mar 27 22:00:46 2024 +0100

    feat: Dont double check num bits in brillig vm (#5489)

    We already have typed memory, that is checked on data ingestion and
    outputs of operations. It shouldn't be necessary to perform safe type
    conversions for MemoryValues

commit b9041e4
Author: maramihali <[email protected]>
Date:   Wed Mar 27 16:39:39 2024 -0400

    chore: add goblin ops in add_gates_to_ensure_all_polys_are_non_zero  (#5468)

    Resolves AztecProtocol/barretenberg#843.

    Removes the need to add golin ecc ops  for each UGH circuit by
    ensuring we add the dummy gates as part of the function used to ensure
    other polynomials are non-zero due to the absence of specific gates.
    However, we keep adding goblin ecc gates
    to circuits in situations when we want to test Goblin and also in
    ClientIVC because merge proving is done prior to ProverInstance
    creation.

commit 277168f
Author: esau <[email protected]>
Date:   Wed Mar 27 18:10:48 2024 +0100

    chore: run nargo format for noir-projects (#5483)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants