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

EIP-1895: Support for an Elliptic Curve Cycle #1895

Merged
merged 18 commits into from
Apr 24, 2019

Conversation

AlexandreBelling
Copy link
Contributor

@AlexandreBelling AlexandreBelling commented Apr 1, 2019

The EVM currently supports elliptic curves operations for curve alt-bn128 thanks to precompiles ecadd and ecmul and ecpairing. The classes MNT4 and 6 contains cycles of curves and this enable doing operation on one curve inside a SNARK on the other (end reversely). This EIP suggests adding support for those curves.

@AlexandreBelling AlexandreBelling changed the title EIP: Support for Elliptic Curve Cycles EIP-1895 : Support for Elliptic Curve Cycles Apr 1, 2019
@AlexandreBelling AlexandreBelling changed the title EIP-1895 : Support for Elliptic Curve Cycles EIP-1895: Support for Elliptic Curve Cycles Apr 1, 2019
Copy link
Contributor

@nicksavers nicksavers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the Draft. Added some minor suggestions. Please go over the text and correct the grammar and spelling mistakes. These make the proposal a bit more difficult to read.

EIPS/eip-1895.md Outdated

More concretely, today if the EVM has to deal with 1000s of SNARK verification it would take around 1.5 Billion gas and would be impractical for Ethereum. Recursive snarks for instance make it possible to aggregate multiple proofs into a single one that can be verified like any other SNARKs. It massively reduces the cost of verification then.

However, this is impossible using *alt-bn128* and in my knowledge, the only family of pairing-friendly curves known to produce cycles are MNT4 and MNT6. A complete characterization of the cycles existing between thoses two families is proposed [here](https://arxiv.org/pdf/1803.02067.pdf)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For a Draft it's ok, but please refrain from referencing yourself in the motivation ('my knowledge').

For clarity it's perhaps better to link to the paper as a Reference or at least describe the title of the paper that is linked to.

EIPS/eip-1895.md Outdated

### The curve

The proposed curves are described in this [paper](https://eprint.iacr.org/2014/595.pdf).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the link above, maybe use a reference and better description of the link.
Also, the same link is referenced twice in the proposal

EIPS/eip-1895.md Show resolved Hide resolved
EIPS/eip-1895.md Outdated

It has 80 bits (the curves respectively have 80 and 120 bits of security) of security which might be considered not enough for some application, but enough for others.

If not, another curve is being used by Coda but is defined over a 727 bits which might be considered prohibitively slow. *Note, that the curves and field elements are represented on field larger than 256 bits (even for the 80 bits of security), therefore it might be necessary to add support for larger field size operations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If not what?

EIPS/eip-1895.md Outdated

## Simple Summary

The EVM currently supports elliptic curves operations for curve *alt-bn128* thanks to precompiles `ecadd` and `ecmul` and `ecpairing`. The classes MNT4 and 6 contains cycles of curves and this enable doing operation on one curve inside a SNARK on the other (end reversely). This EIP suggests adding support for those curves.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how to read this sentence:

"The classes MNT4 and 6 contains cycles of curves and this enable doing operation on one curve inside a SNARK on the other (end reversely)."

Could you perhaps clarify it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AlexandreBelling Could you still clarify the sentence?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make more sense if I rephrase like that ?

"An elliptic curve cycle is a set of elliptic curves with the property that the inner-field of one curve is the outer-field of the other one. Cycles make it possible to do elliptic curve operations for one of the curves inside zkSNARK circuit that is proven and verified using the other curve of the cycle."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's an explanation, but the sentence structure is still unclear to me. It looks like the grammar is not correct. So you could leave the sentence in there, just fix the grammar. Perhaps ask an English native speaker to correct it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hum ok, I have asked someone to help me fix it. I now believe it means what it's supposed to mean :)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be "Two elliptic curves were generated such that group order of one curve is coordinates field characteristic of the other curve, and reverse."

We have a good arXiv paper referenced describing this property already, making it unreasonable explaining cycle here on github. I would also refer to my favorite IACR 2014/595 preprint.

EIPS/eip-1895.md Outdated

Elliptic curve is the basic block of recursive SNARKSs (ie: verifying a SNARK inside a SNARK) and this addresses the issue of scalable zero-knowledge. More generally this addresses partly the scalability issue as SNARKs verification are constant time in the size of the circuit being verified.

More concretely, today if the EVM has to deal with 1000s of SNARK verification it would take around 1.5 Billion gas and would be impractical for Ethereum. Recursive snarks for instance make it possible to aggregate multiple proofs into a single one that can be verified like any other SNARKs. It massively reduces the cost of verification then.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'verification' -> 'verifications'
'Billion' -> 'billion'
'SNARKs' -> 'SNARK'

EIPS/eip-1895.md Outdated

## Rationale

The only usable cycle in my knowledge are introduced in this [paper](https://eprint.iacr.org/2014/595.pdf).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, don't reference yourself in the Rationale

EIPS/eip-1895.md Outdated

The only usable cycle in my knowledge are introduced in this [paper](https://eprint.iacr.org/2014/595.pdf).

It has 80 bits (the curves respectively have 80 and 120 bits of security) of security which might be considered not enough for some application, but enough for others.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps better to rephrase as:

"The curve has 80 bits of security (whereas MNT6 has 120 bits) which might not be considered enough for some applications, .... ."

And clarify which type of applications you mean with 'some applications' and 'others'.

EIPS/eip-1895.md Outdated

It has 80 bits (the curves respectively have 80 and 120 bits of security) of security which might be considered not enough for some application, but enough for others.

If not, another curve is being used by Coda but is defined over a 727 bits which might be considered prohibitively slow. *Note, that the curves and field elements are represented on field larger than 256 bits (even for the 80 bits of security), therefore it might be necessary to add support for larger field size operations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no reference to Coda for the reader.

EIPS/eip-1895.md Outdated

It has 80 bits (the curves respectively have 80 and 120 bits of security) of security which might be considered not enough for some application, but enough for others.

If not, another curve is being used by Coda but is defined over a 727 bits which might be considered prohibitively slow. *Note, that the curves and field elements are represented on field larger than 256 bits (even for the 80 bits of security), therefore it might be necessary to add support for larger field size operations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why add your rationale as a note? It seems like a perfectly valid argument that could just be a normal sentence as the others.

@AlexandreBelling
Copy link
Contributor Author

Hi nicksavers, thanks for the review.

Updated the draft as requested. Please, let me know if you have any comment.

EIPS/eip-1895.md Outdated
eip: 1895
title: Support for an Elliptic Curve Cycles
author: Alexandre Belling <[email protected]>
discussions-to: https://ethresear.ch/t/reducing-the-verification-cost-of-a-snark-through-hierarchical-aggregation/5128/7
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link doesn't go to the top of start of the discussion, but to one particular comment by you.

EIPS/eip-1895.md Outdated

## References

* [Scalable Zero Knowledge via Cycles of Elliptic Curves](https://eprint.iacr.org/2014/595.pdf)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the references could you display the full URL to the reader? Normally with references to articles, the authors and date are also mentioned.

Have a look at Harvard Referencing to make good references.
If you want to really go all out, have a look at this list. https://libguides.ioe.ac.uk/harvard/AZlisting

@AlexandreBelling
Copy link
Contributor Author

Done. Thanks again.

@nicksavers
Copy link
Contributor

I'd say this is ready to be merged as Draft.

EIPS/eip-1895.md Outdated

More concretely, today if the EVM has to deal with 1000s of SNARK verification it would take around 1.5 billion gas and would be impractical for Ethereum. Recursive SNARKs for instance make it possible to aggregate multiple proofs into a single one that can be verified like any other SNARK. It massively reduces the cost of verifications then.

However, this is impossible using *alt-bn128* and in my knowledge, the only family of pairing-friendly curves known to produce cycles are MNT4 and MNT6. A complete characterization of the cycles existing between thoses two families is proposed in [On cycles of pairing-friendly elliptic curves
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "thoses"

EIPS/eip-1895.md Outdated

Independently of the cycle chosen, the groups and field elements are represented with integers larger than 256 bits (even for the 80 bits of security), therefore it might be necessary to also add support for larger field size operations.

We currently don't know more efficients pairing-friendly cycles and don't know if there are. It might be possible to circumvent this problem though by relaxing the constraint that all the curves of the cycle must be pairing friendly). If we had a cycle with only one pairing friendly curve we would still be able to compose proofs by alternating between SNARKs and any other general purpose zero-knowledge cryptosystems.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

efficients -> efficient

EIPS/eip-1895.md Outdated
created: 2018-31-03
---

# Support for an Elliptic Curve Cycles
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The title doesn't need to be here. During parsing the title from the header is used.

EIPS/eip-1895.md Outdated
@@ -0,0 +1,166 @@
---
eip: 1895
title: Support for an Elliptic Curve Cycles
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking you'd want the title to either say

  • Support for Elliptic Curve Cycles
    or
  • Support for an Elliptic Curve Cycle

not

  • ...an Elliptic Curve Cycles

@AlexandreBelling AlexandreBelling changed the title EIP-1895: Support for Elliptic Curve Cycles EIP-1895: Support for an Elliptic Curve Cycle Apr 4, 2019
@nicksavers nicksavers merged commit d4efb6c into ethereum:master Apr 24, 2019
soc1c added a commit to goerli/eips-poa that referenced this pull request Jul 9, 2019
* Automatically merged updates to draft EIP(s) 1898


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679, 233


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Minor updates to EIP-1319 (ethereum#1966)

* EIP-1895: Support for an Elliptic Curve Cycle (ethereum#1895)

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Scalable Rewards  (ethereum#1973)

* added EIP

* spacing

* reorder

* reorder

* formats

* <> brackets

* edit

* eip number

* renaminng

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1559: Fee market change for ETH 1.0 chain (ethereum#1943)

* Automatically merged updates to draft EIP(s) 1884


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Fix authors and type-fields in eip-1559.md (ethereum#1974)

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1344


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 777


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Remove obsolete layer field (ethereum#1978)

* Document eip_validator and eip-automerger (ethereum#1977)

* EIP-1803: Rename opcodes for clarity (ethereum#1803)

* Change the citation format in README to point to EIP-1

* Automatically merged updates to draft EIP(s) 1679, 1803


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1057 Update progpow test-vectors (ethereum#1855)

* Add editors

* Automatically merged updates to draft EIP(s) 1155 (ethereum#1993)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#1995)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1775 - App Keys, application specific wallet accounts (ethereum#1775)

* Automatically merged updates to draft EIP(s) 1155 (ethereum#1997)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#1998)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 777 (ethereum#1945)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* ERC777: Move to final (ethereum#1999)

* Automatically merged updates to draft EIP(s) 1108 (ethereum#1987)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Fix typos (ethereum#1899)

* Fixed typos and grammar (ethereum#1847)

* Automatically merged updates to draft EIP(s) 1679 (ethereum#1988)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1344 (ethereum#2004)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1108 (ethereum#2005)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2006)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2007)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2008)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* fix github pull request links (ethereum#2000)

* Automatically merged updates to draft EIP(s) 1679 (ethereum#1830)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2011)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2012)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2013)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Re-order EIP categories (ethereum#1989)

* Automatically merged updates to draft EIP(s) 1679 (ethereum#2016)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2017)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2023)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Call strict gas (ethereum#1950)

* CALL with strict gas

* fix date

* 1930

* update with explicit code change

* add link to discussion

* update

* fix link

* EIP-2015: Wallet Update Chain Method (ethereum#2015)

* Create eip-2015.md

* Include JSON RPC method in title

* add requires 155

* update nativeCurrency field for wallet_updateChain

* EIP-2015 format review changes

* Update EIP-2015 discussions-to link

* Automatically merged updates to draft EIP(s) 1679 (ethereum#2034)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 663 (ethereum#2038)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679 (ethereum#2043)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 615 (ethereum#2044)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Calldata gas cost reduction (ethereum#2028)

* Calldata gas cost reduction

Added a draft of EIP to reduce the gas cost of Calldata

* changed name to 2028

* Added EIP-2028 to meta eip-1679

* Added discussion url

* edited 'motivation' & 'specification'

Edited motivation to increase readability.
Edited specification to clarify terms.

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2049)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1965 Method to check if a chainID is valid at a specific block Number (ethereum#1965)

* Run spelling checks on CI (ethereum#2040)

* Automatically merged updates to draft EIP(s) 1679, 1965 (ethereum#2047)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679 (ethereum#1990)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Add special requirement for mentioning EVM instructions

* EIP-1710: URL Format for Web3 Browsers (ethereum#1710)

* EIP 1523: Standard for storing insurance policies as extension of ERC-721 token (ethereum#1512)

* Automatically merged updates to draft EIP(s) 2028 (ethereum#2052)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EC arithmetics and pairings with runtime definitions (ethereum#1962)

* Automatically merged updates to draft EIP(s) 663 (ethereum#2056)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Mention that the header is also called "front matter" in EIP1 (ethereum#2037)

* Add EIP-1474 as a requirement to RPC ERCs

* Fix Wrong Input Length - ERC165 Example (ethereum#1640)

* Wrong input size - noThrowCall ERC165

Input should be 36 bytes (4 signature bytes + 32 bytes parameter)

Solidity 5 validates the length of msg.data, reverting on the 32 bytes input, all contracts using the broken 'doesContractImplementInterface' will not be able to read an ERC165 implementation targetting Solidity 5.

A legacy-compatible strategy should be defined to make all the "ERC165 readers" sending a 32 bytes sized data compatible with ERC165 contracts compiled targeting this new version of the compiler.

A possible solution could be to add a keyword on Solidity to disable the validation of the calldata length.

* Add version history section to EIP165

* EIP 1640 -> PR 1640

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2063)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2064)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* State Rent change H placeholder EIP - fixed rent prepayment for all accounts (ethereum#2026)

* Fix author fields (ethereum#2065)

* Sane limits for certain EVM parameters (ethereum#1985)

* sane

* some clarifications

* remove cruft

* some clarifications

* propose spec changes

* limit the scope to EVM only

* more rationale

* group affected opcodes by ranges

* Rename to EIP-1985

* Add discussion URL to EIP-1985

* Include a reference to EIP106

* Add more rationale

* fix typo

* Remove unfounded worry

* mention timestamp being 64-bit value in Aleth

* resolved an TODO item as Rationale entry

* Reduced gas cost for static calls made to precompiles (ethereum#2046)

* Reduced gas cost for static calls made to precompiles

* Rename to EIP-2046

* Add discussion URL

* Add 2046 to Istanbul

* Fix header

* Add draft for ESO (extended state oracle) (ethereum#2014)

* Add draft for ESO (extended state oracle)

* Add mention of revert to ESO

* Add EIP-2014 number and rename file

* Add reference to EIP-1959 and EIP-1965

* Add discussions-to URL

* Update eip-181.md

* Update eip-162.md

* State Rent Change A EIP placeholder - State counters contract (ethereum#2029)

* Create eip-StateRentACountersContract.md

* Update eip-StateRentACountersContract.md

* Rename eip-StateRentACountersContract.md to eip-2029.md

* Update eip-2029.md

* Update eip-2029.md

* Fix typos

* Make EIP-2014 into a proper link

* New Opcode to check if a chainID is part of the history of chainIDs (ethereum#1959)

* Automatically merged updates to draft EIP(s) 1679 (ethereum#2055)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Copyright 107 (ethereum#2068)

* add copyrights for 107

* use github username

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2074)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* State Rent change C draft EIP - Net contract storage size accounting (ethereum#2027)

* State Rent change C draft EIP

* Update eip-draft_StateRentCnetContractSizes.md

* Update eip-draft_StateRentCnetContractSizes.md

* Rename eip-draft_StateRentCnetContractSizes.md to eip-2027.md

* Update eip-2027.md

* Update eip-2027.md

* Update eip-2027.md

* Quote "block C" properly

* Update eip-2027.md

* State Rent change B placeholder EIP - net transaction counter (ethereum#2031)

* Create eip-draft_StateRentBNetTransactionCounter.md

* Update and rename eip-draft_StateRentBNetTransactionCounter.md to eip-2031.md

* Update eip-2031.md

* Update eip-2031.md

* Update eip-2031.md

* Fix some typos

* Use canonical link to EIP-2029

* Update eip-2031.md

* Update eip-2031.md

* Stateless Clients: Repricing SLOAD and SSTORE to pay for block proofs (ethereum#2035)

* Create eip-draft_StatelessClientGasRepricing.md

* Update and rename eip-draft_StatelessClientGasRepricing.md to eip-2035.md

* Update eip-2035.md

* Update eip-2035.md

* Update eip-2035.md

* Update eip-2035.md

* Update eip-2035.md

* Update eip-2035.md

* Fix typos

* Use canonical links to other EIPs

* Update eip-2035.md

* Fix link to EIP-2028

* Automatically merged updates to draft EIP(s) 1679 (ethereum#2036)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1930 (ethereum#2076)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1679 (ethereum#2042)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1418 (ethereum#2078)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1108 (ethereum#2067)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2083)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2084)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2085)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1930 (ethereum#2086)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 778 (ethereum#2087)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2088)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2089)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Last call for ERC-1155 (ethereum#2091)

* add EIP for particle gas costs (ethereum#2045)

* add EIP for fractional gas costs

* use EIP number 2045, add references, discussion-to

* add EIP-2045 to Istanbul

* Formatting

* Add ewasm to rationale

* Clarify cost reduction examples

* Clarify the increase of particles

* link to eip-2035, edit for clarity

* add reference to eip-2035

* add axic as author

* rename title to "particle gas costs", edit ewasm section

* fix header

* Automatically merged updates to draft EIP(s) 1803 (ethereum#2093)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1803, 663 (ethereum#2094)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1193 (ethereum#2092)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2096)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 778 (ethereum#2097)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2101)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1261 (ethereum#2102)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* fix typo: "as follows" (ethereum#2099)

see: https://ell.stackexchange.com/a/31673

* EIP-2003 - EVMC modules for implementations of precompiled contracts (ethereum#2003)

* Automatically merged updates to draft EIP(s) 1261 (ethereum#2107)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2108)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2109)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2110)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 2003 (ethereum#2112)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2113)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2114)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2116)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2117)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2118)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1155 (ethereum#2120)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* ERC-1155 Final Status (ethereum#2122)

* Automatically merged updates to draft EIP(s) 1344 (ethereum#2079)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Propose to move EIP-695 to last call status (ethereum#1566)

* Propose to move EIP-695 to last call status

* Add a discussion link

* Formatting fix

* Fix @sorpaas handle in author field

* Use EIP155 formatting for `CHAIN_ID`

* Formatting fix for "chain ID"

The document had places where we use lowercase "id" and uppercase "ID". This unify them to use uppercase "ID".

* Update eip-695.md

* Move EIP-695 to Last Call status and add 155 requirement (ethereum#2128)

* Update eip-1577.md (ethereum#1670)

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2130)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2131)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 695 (ethereum#2133)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1202 (ethereum#2134)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2140)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2141)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Funding ETH1.X through a Developer Block Reward for 18 Months (ethereum#2025)

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2149)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP 747: wallet_watchAsset (ethereum#1426)

* Initial draft

* Add eip-747: watchToken

* Update discussion link

* Update eip-747 to watchAsset

* Add image specification and examples EIP747

* Add asset type error

* Respond to feedback

* Depends on 1474

* Correct type to standards track

* Correct spelling

* Add eip images locally (ethereum#2150)

* Automatically merged updates to draft EIP(s) 823 (ethereum#2151)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1193 (ethereum#2057)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* ERC-1948: Non-fungible Data Token (ethereum#1948)

* first draft

* remove boilerplate

* fix indentations

* typos

* ethereum code highlights

* moved file to id

* syntax

* naming

* link to erc721

* make interface an interface

* typo

* better comments

* Automatically merged updates to draft EIP(s) 1679, 233 (ethereum#2081)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2152)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Introduced Abandoned status in EIP-1 (ethereum#2051)

* Introduced Abandoned status in EIP-1

* Fix typo

* EIP-1967: Standard Proxy Storage Slots (ethereum#1967)

* Proxy storage slots EIP

* Apply suggestions from code review

Co-Authored-By: spalladino <[email protected]>

* Add reference to vyper storage slots

* Fix links to EIPs

Co-Authored-By: spalladino <[email protected]>

* Apply suggestions from code review

Co-Authored-By: spalladino <[email protected]>

* Applied suggestions by elopio and nventuro

* Add discussions-to

* Add EIP number

* Rename eip file

* Fix type attribute

* Use zOS independent hash preimage

* Implement suggestion by axic

* Automatically merged updates to draft EIP(s) 1474 (ethereum#2155)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1613 (ethereum#2163)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1066 (ethereum#2164)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Mark EIP-158 proper superseded and not replaced (ethereum#2160)

* Update eip_validator to 0.8.2 (ethereum#2161)

* Fix Markdown formatting in EIP-1186

* Update eip_validator to 0.8.2

* Abandone EIP-1355 "Ethash 1a" (ethereum#1785)

* Add information EIP:  Common Prometheus metrics (ethereum#2159)

* Add common metrics EIP.

* Fix spelling error.

* Assign EIP number, added more information on what Prometheus does.

* Add link to prometheus website for further info.

* Fix link.

* Fix discussion link.

* Switch to standards track - interface instead of informational.

* Add motivation.

* superseded-by EIP 1 (ethereum#2165)

* Automatically merged updates to draft EIP(s) 1702 (ethereum#2167)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1753 - Define a smart contract interface for permits and licences (ethereum#1753)

* First draft

* Update eip-x.md

* Update eip-x.md

* Update eip-x.md

* Update eip-x.md

* Update eip-x.md

* Update eip-x.md

* Update eip-x.md

* Update eip-x.md

* Update authors

* Update eip-x.md

* Rename eip md

* Rollback

* Rename md

* Add copyright

* WIP: Re adding specificaiton

* Update example solidity

* Update eip-1753.md

* Update eip-1753.md

* Update eip-1753.md

* Update eip-1753.md

* Update eip-1753.md

* Update eip-1753.md

* Do not touch eip-X

* Fix typo

* EIP-1895: Improvements (ethereum#2153)

* EIP-1895: Better constants and address range description

Address @Arachnid's comments about presenting constants and how an address value is limited.

* EIP-1985: Fix a typo

* EIP-1985: Use "instructions" instead of "opcodes"

* eip-225: mark as final (ethereum#1954)

* set EIP875 to last call and correct errors (ethereum#1549)

* Automatically merged updates to draft EIP(s) 1571 (ethereum#2168)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 999 (ethereum#2170)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 2159 (ethereum#2174)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1884 (ethereum#2175)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 2028 (ethereum#2176)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1901: Add OpenRPC Service Discovery To JSON-RPC Services (ethereum#1901)

* EIP-????: Add OpenRPC Service Discovery To JSON-RPC Services

* fix:

* fix(openrpc): add openrpc.json to eip assets

* fix(openrpc): reference eip asset

* Update EIPS/eip-1901.md - document link

* Delete openrpc.json

* Update eip-1901: move link to spec to top

* fix(1901):  preamble + author github usernames

* fix(1901): add copyright info

* fix(1901): add link to eth json rpc spec

* fix(1901): type and category in preamble + spelling

* fix(1901): motivation section and use vendored assets

* fix(1901): add link to multi-geth OpenRPC discovery

* fix(1901): change ordering + small fixes

* fix(1901): typo

* Automatically merged updates to draft EIP(s) 1108 (ethereum#2177)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* Automatically merged updates to draft EIP(s) 1102 (ethereum#2178)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing

* EIP-1900 Decentralized Type System for EVM (ethereum#1900)

* Automatically merged updates to draft EIP(s) 1884 (ethereum#2180)


Hi, I'm a bot! This change was automatically merged because:

 - It only modifies existing Draft or Last Call EIP(s)
 - The PR was approved or written by at least one author of each modified EIP
 - The build is passing
ilanolkies pushed a commit to ilanolkies/EIPs that referenced this pull request Nov 12, 2019
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 this pull request may close these issues.

4 participants