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

pi3 #6

Open
wants to merge 4,025 commits into
base: upstream
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
4025 commits
Select commit Hold shift + click to select a range
df1192b
Update EIP-721: Spell collectible consistently (#6527)
christopheradams Sep 13, 2023
e788377
Update EIP-1202: Move to Review
xinbenlv Sep 13, 2023
ed54cdb
Update EIP-7516: BLOBBASEFEE opcode
CarlBeek Sep 13, 2023
7418ed3
Add EIP: Abstract Token
cr-walker Sep 13, 2023
3707ec4
Update eip-4337.md (#6664)
ssteiger Sep 13, 2023
46bb342
Add EIP: EVM Modular Arithmetic Extensions (EVMMAX)
jwasinger Sep 13, 2023
2f68e7d
Add EIP: L2 Token List (#6734)
Therecanbeonlyone1969 Sep 13, 2023
20c866d
Config: Disable maximum concurrent dependency PRs (#6773)
Pandapip1 Sep 13, 2023
d196326
Update EIP-6617: Move to Review
chiro-hiro Sep 13, 2023
98b3d54
Update EIP-6170: Update eip-6170.md (#6797)
lolieatapple Sep 13, 2023
21490e1
Update EIP-4337: Update eip-4337.md
tomarsachin2271 Sep 14, 2023
b27a4c8
Update EIP-7514: Update eip-7514.md
dapplion Sep 14, 2023
3ac81c3
Update EIP-7516: update `BLOBBASEFEE` opcode value so it does not cla…
smartprogrammer93 Sep 14, 2023
8312e6a
Update EIP-7516: removes remaning references to 0x49
CarlBeek Sep 14, 2023
4534f1e
Update EIP-7514: Update eip-7514 constant name
dapplion Sep 14, 2023
1942c16
Update EIP-6982: Minor Improvements EIP6982
urataps Sep 15, 2023
4708c61
Update EIP-3091: Move to Draft
ligi Sep 15, 2023
fe9e29a
Update EIP-6963: Update eip-6963.md to fix typos
usame-algan Sep 18, 2023
9c499a5
Update EIP-3085: Move to Review (#6457)
Pandapip1 Sep 18, 2023
96da662
Add EIP: Upgradable Fungible Token
jeffishjeff Sep 18, 2023
0eea85e
Add EIP: Preimage retention (#6873)
gballet Sep 18, 2023
0add486
Add EIP: Automatically Reset Tesnet
taxmeifyoucan Sep 18, 2023
2787dd2
Update EIP-7508: Add repository address
ThunderDeliverer Sep 19, 2023
a55e7f8
Add EIP: Atomic Storage Operations SCREDIT and SDEBIT
shemnon Sep 19, 2023
752d81b
Update EIP-2645: Update eip-2645.md (TYPO Fix)
furkan-ux Sep 19, 2023
0fdda25
Update EIP-7401: Move to Final
ThunderDeliverer Sep 19, 2023
d1a3632
Update EIP-4881: Move to Final
ethDreamer Sep 19, 2023
7ff802d
Update EIP-7329: Move to Final
shemnon Sep 19, 2023
d1a68b3
Add EIP: Add time-weighted averaging to the base fee
guy-goren Sep 19, 2023
606a07a
Update EIP-7409: Move to Last Call
ThunderDeliverer Sep 19, 2023
a22ce0f
Update EIP-2539: Move to Draft (#7535)
hujw77 Sep 19, 2023
847b87d
Update EIP-5920: expand the motivation a bit
charles-cooper Sep 19, 2023
2f00671
Update EIP-5069: Bikeshedding some handbook stuff
SamWilsn Sep 20, 2023
5c9a797
Update EIP-7514: Move to Review
dapplion Sep 20, 2023
61397f6
Update EIP-1191: Fix Implementation Table (#6965)
digiwand Sep 20, 2023
f015879
Update EIP-7432: Move to Review
karacurt Sep 20, 2023
0c1ba81
Add EIP: Multi-User NFT Extension
minkyn Sep 21, 2023
3f71cdc
Add EIP: Empty accounts deprecation
petertdavies Sep 21, 2023
b233890
Update EIP-7378: Fix typos
omahs Sep 21, 2023
71eedd1
Update EIP-7519: Fix typos
omahs Sep 21, 2023
ce2722f
Update EIP-6551: Update eip-6551.md (#7018)
Elemino Sep 21, 2023
32f3356
Add EIP: NFT Relationship Enhancement
xg1990 Sep 21, 2023
9cc70b8
Update EIP-7514: Fix typos (#7756)
omahs Sep 22, 2023
dd2c498
Update EIP-7512: Fix typos (#7755)
omahs Sep 22, 2023
a0f71a8
Update EIP-7508: Fix typos (#7754)
omahs Sep 22, 2023
93d19f3
Update EIP-7503: Fix typo (#7753)
omahs Sep 22, 2023
c588f38
Update EIP-7444: Fix typo (#7752)
omahs Sep 22, 2023
fefa4a4
Update EIP-7425: Fix typos (#7751)
omahs Sep 22, 2023
f01fdf5
Update EIP-7409: Fix typos (#7750)
omahs Sep 22, 2023
cee6757
Update EIP-7401: Fix typos (#7748)
omahs Sep 22, 2023
e5b66fc
Update EIP-6120: update
Zergity Sep 22, 2023
b2e23ba
Update EIP-663: Update opcodes for SWAPN and DUPN
gumb0 Sep 22, 2023
4b715cf
Update EIP-663: Replace runtime stack checks with EOF validation rule…
gumb0 Sep 22, 2023
3a3bc7f
Update EIP-7069: Add charge for value-bearing calls
gumb0 Sep 22, 2023
a3fa5c0
Update EIP-6206: Add non-returning functions specification
gumb0 Sep 22, 2023
55cf6b8
Add EIP: EOF - Data section access instructions
gumb0 Sep 22, 2023
0f11446
Update EIP-7201: Explain possibility to use different formulas
frangio Sep 22, 2023
16e60d1
Update EIP-7201: Move to Review
frangio Sep 22, 2023
ebcaa3c
Add EIP: OIDC ZK Verifier for AA Account
dongshu2013 Sep 24, 2023
4670d27
Update EIP-6909: Update Transfer Event To Log Caller
jtriley2p Sep 24, 2023
147a056
Update EIP-7512: Fix authors
rmeissner Sep 25, 2023
b3a296e
Update EIP-6909: index id, not caller
jtriley2p Sep 25, 2023
58f3c8c
Update EIP-6963: Add RDNS section for motivation and requirements
everdimension Sep 25, 2023
73bfb2f
Add EIP: Ethereum state using a unified verkle tree
gballet Sep 26, 2023
761df83
Update EIP-4788: post audit tweaks
lightclient Sep 26, 2023
949901b
Update EIP-4788: update ring buffer size rationale for new ring buffe…
lightclient Sep 26, 2023
bc5c1d1
Update EIP-6963: updates for object.freeze and other recommendations
kdenhartog Sep 27, 2023
88375eb
Update EIP-6963: Move to Last Call
pedrouid Sep 27, 2023
9df2962
Update EIP-6780: remove mention of verkle tree behavior
gballet Sep 28, 2023
1c4afdf
Update EIP-7201: Updates to wording
frangio Sep 28, 2023
ab09f2e
Update EIP-6900: Spec Update 4
adam-alchemy Sep 29, 2023
9518d1d
(bot 1272989785) moving EIPS/eip-6596.md to stagnant (#7707)
eth-bot Oct 1, 2023
316dc90
(bot 1272989785) moving EIPS/eip-5827.md to stagnant (#7704)
eth-bot Oct 1, 2023
8093949
(bot 1272989785) moving EIPS/eip-4944.md to stagnant (#7703)
eth-bot Oct 1, 2023
a8d9d97
(bot 1272989785) moving EIPS/eip-3074.md to stagnant (#7702)
eth-bot Oct 1, 2023
089c02e
Update EIP-7480: Change prices of DATALOAD and DATALOADN to be consis…
gumb0 Oct 2, 2023
8c7f4a5
Update EIP-7409: Updates implementation address and deadline, prettif…
steven2308 Oct 3, 2023
be77ddf
Add EIP: Increase the MAX_EFFECTIVE_BALANCE
michaelneuder Oct 3, 2023
ba6c342
Update EIP-1559: Clarify who pays gas fees (#7423)
0xScratch Oct 4, 2023
286f6d5
Update EIP-820: Remove superfluous pre tag (#7505)
SamWilsn Oct 4, 2023
3a19117
Update EIP-1820: Remove superfluous pre tag (#7506)
SamWilsn Oct 4, 2023
946735d
Update EIP-6963: make icon requirement wording consistent
jiexi Oct 4, 2023
91f611a
Update EIP-7053: Move to Final
bafu Oct 5, 2023
08be56b
Add EIP: General Intents for Smart Contract Wallets (#7739)
pixelcircuits Oct 5, 2023
d5373e9
Update EIP-7212: Clarifications and improvements
nalinbhardwaj Oct 6, 2023
e36605b
Update EIP-7085: update EIP-7085
xg1990 Oct 7, 2023
af38dd2
(bot 1272989785) moving EIPS/eip-6464.md to stagnant (#7706)
eth-bot Oct 8, 2023
b6d1b71
Update EIP-6809: Move to Final
NarcisCRO Oct 11, 2023
4018e95
Update EIP-6808: Move to Final
NarcisCRO Oct 11, 2023
bb1ca48
Update EIP-6963: Move to Final
pedrouid Oct 11, 2023
b08f4e4
Update EIP-7432: Several enhancements
karacurt Oct 11, 2023
46d979f
Update EIP-6110: fix typo
xiaolou86 Oct 12, 2023
634d2b1
(bot 1272989785) moving EIPS/eip-6506.md to stagnant (#7772)
eth-bot Oct 15, 2023
b8f8510
(bot 1272989785) moving EIPS/eip-6366.md to stagnant (#7771)
eth-bot Oct 15, 2023
74a18de
(bot 1272989785) moving EIPS/eip-5485.md to stagnant (#7770)
eth-bot Oct 15, 2023
0343dd3
(bot 1272989785) moving EIPS/eip-5252.md to stagnant (#7769)
eth-bot Oct 15, 2023
68a8276
(bot 1272989785) moving EIPS/eip-4950.md to stagnant (#7768)
eth-bot Oct 15, 2023
ab33c7e
Update EIP-7503: Move to Review
keyvank Oct 16, 2023
ddd74b4
Update EIP-6315: Rewrite
Pandapip1 Oct 16, 2023
ca741b2
Update EIP-6956: Fix typos
xiaolou86 Oct 17, 2023
74e3a7a
Update EIP-6465: Fix typo
vuittont60 Oct 17, 2023
8cff995
Update EIP-6900: Spec Update 5
fangting-alchemy Oct 17, 2023
70a5579
Update EIP-6900: add reference implementation
fangting-alchemy Oct 17, 2023
a33ae85
Add EIP: Token Converter
Dexaran Oct 17, 2023
1051edb
Update EIP-7015: allow arbitratry `TYPEHASH` and correponding fields …
oveddan Oct 17, 2023
6d02a67
Update EIP-7503: fix typo
shuoer86 Oct 18, 2023
5cf3209
Update EIP-6956: fix a couple of typos
shuoer86 Oct 18, 2023
9115ba1
Add EIP: Web3 URL to EVM Call Message Translation
qizhou Oct 18, 2023
2bf5036
Update EIP-5773: fix typo
shuoer86 Oct 18, 2023
0f6fbc2
Update EIP-6963: fix typo
operatos Oct 18, 2023
480fc37
Update EIP-6492: fix typos
GoodDaisy Oct 18, 2023
6c7c46e
Update EIP-6672: fix typos (#7840)
xiaolou86 Oct 18, 2023
ab2383a
Update EIP-1046: Fix some issues
Pandapip1 Oct 18, 2023
15299e6
Add EIP: Registries and Adapters for Smart Accounts (#7484)
kopy-kat Oct 18, 2023
56c92ae
Add EIP: ETH (Native Asset) Address Convention (#7808)
Joeysantoro Oct 18, 2023
b29c305
Update EIP-7201: Move to Last Call
frangio Oct 18, 2023
8b9d4a5
Add EIP: Reuse Withdrawn Validator Indices
djrtwo Oct 19, 2023
54cf63a
Add EIP: eth/69 - available-blocks-extended protocol
smartprogrammer93 Oct 22, 2023
a06b3d4
Update EIP-6493: Align list style with EIP-4844
etan-status Oct 23, 2023
81c690c
Update EIP-6093: 6093 Include error-decoded operations in the Securit…
ernestognw Oct 23, 2023
cd05a14
Update EIP-6315: Move to Review
Pandapip1 Oct 24, 2023
b8e399a
Update EIP-6366: Move to Review
chiro-hiro Oct 24, 2023
a6bbcf7
Update EIP-6493: Move `type` from `signature` to `payload`
etan-status Oct 24, 2023
0100f79
Update EIP-5564: Move to Review
nerolation Oct 25, 2023
2d796e8
Update EIP-6120: ERC-165 interface
Zergity Oct 25, 2023
939395b
Create jekyll.yml
Pandapip1 Oct 25, 2023
0f44e2b
Move ERCs to separate repository (#7206)
lightclient Oct 25, 2023
c6c0baa
CI: Combine EIPs and ERCs (#7920)
Pandapip1 Oct 25, 2023
50b2221
Update actions/checkout action to v4 (#7919)
renovate[bot] Oct 25, 2023
9670c16
Use correct repo format
Pandapip1 Oct 25, 2023
639ced4
Fix ANOTHER bug
Pandapip1 Oct 25, 2023
47b0182
Why are you like this Jekyll?
Pandapip1 Oct 25, 2023
0504dcd
Rerun website build every 15min
Pandapip1 Oct 25, 2023
47ce702
all: update link to new ercs repo (#7922)
lightclient Oct 25, 2023
957a574
Config: update pr template with ercs moved notice (#7923)
lightclient Oct 25, 2023
a4e1ef7
Update README: add notice about repo split in readme (#7924)
lightclient Oct 25, 2023
7894fa5
Bump activesupport from 7.0.4.3 to 7.0.7.2 (#7518)
dependabot[bot] Oct 26, 2023
40752b0
Bump commonmarker from 0.23.9 to 0.23.10 (#7462)
dependabot[bot] Oct 26, 2023
25cdf1d
CI: Get `eipw` running again (#7928)
SamWilsn Oct 26, 2023
ac3b0b4
Update EIP-7542: Update EIP-7542 to reflect its alignment with EIP-4444
smartprogrammer93 Oct 27, 2023
bb1725e
Use experimental eip-review-bot
Pandapip1 Oct 27, 2023
5ab443f
Revert the experimental bot
Pandapip1 Oct 27, 2023
cb3c968
Use latest bot
Pandapip1 Oct 27, 2023
b4de3a9
Fix HTMLProofer
Pandapip1 Oct 27, 2023
7ffc712
Hardcode EIPs into jekyll file
Pandapip1 Oct 27, 2023
d72afda
Sync HTMLProofer job
Pandapip1 Oct 27, 2023
69bab32
Update EIP-4844: fix typo on blob batch verification function name
ralexstokes Oct 30, 2023
9c6742d
Update EIP-7495: Mention support for optional fields in motivation
etan-status Oct 30, 2023
9e9f8fb
Update EIP-1: Allow links to the yellow paper (#7884)
SamWilsn Nov 1, 2023
6acfa9b
Update EIP-6780: say "target" instead of "caller"
PaulRBerg Nov 1, 2023
c29595c
Add EIP: Move committee index outside Attestation
dapplion Nov 4, 2023
37416c7
Update EIP-1153: fix typo
Nashtare Nov 7, 2023
b641659
Update EIP-7480: fix typo
momodaka Nov 9, 2023
ca09982
Add EIP: Verkle proof verification precompile
gballet Nov 10, 2023
34f0c9b
Update EIP-6916: Move to Review
taxmeifyoucan Nov 10, 2023
79a6bce
Update EIP-7549: fix typo
hyperbolic-versor Nov 10, 2023
ee3e63c
(bot 1272989785) moving EIPS/eip-6810.md to stagnant (#7901)
eth-bot Nov 12, 2023
a3964a9
(bot 1272989785) moving EIPS/eip-5000.md to stagnant (#7894)
eth-bot Nov 12, 2023
9821ad9
(bot 1272989785) moving EIPS/eip-3455.md to stagnant (#7892)
eth-bot Nov 12, 2023
f7cd603
Update EIP-7199: Move to Withdrawn (#7225)
SamWilsn Nov 15, 2023
c075836
(bot 1272989785) moving EIPS/eip-6789.md to stagnant (#7900)
eth-bot Nov 19, 2023
91bba98
Config: Add g11tech to governance group (#7741)
g11tech Nov 21, 2023
01ba9da
Config: Add xinbenlv (myself) to governance group (#7745)
xinbenlv Nov 21, 2023
bba648c
Update EIP-7495: Add `Variant[S]` / `OneOf[S]` type safety layer
etan-status Nov 22, 2023
d89b671
Update EIP-6493: Use `Variant[S]` for type safety
etan-status Nov 22, 2023
2f2e50d
Update EIP-4788: Move to Review
ralexstokes Nov 28, 2023
9ec9ff9
Update EIP-3074: Move to Review
lightclient Nov 28, 2023
d6be759
Update EIP-7516: Move to Review
CarlBeek Nov 28, 2023
9f20f20
Update EIP-7495: Allow setting properties in `StableContainer` impl
etan-status Nov 29, 2023
95cac80
Update EIP-7212: Change the implementation address
ulerdogan Nov 30, 2023
14d6cf4
Update EIP-4844: minor clean-up
hwwhww Nov 30, 2023
ca45566
Update EIP-7549: Move to Draft
dapplion Nov 30, 2023
948664c
Update EIP-4844: Clarify blob retention window part
flcl42 Dec 1, 2023
7fb615a
Config: Add execution-specs repo to the list of link exceptions (#8007)
timbeiko Dec 1, 2023
10b9292
Update EIP-3074: update 3074 MAGIC byte
anna-carroll Dec 2, 2023
45301a2
Update EIP-7549: fix typo #8015
dzizazda Dec 5, 2023
936f2c9
Update EIP-7480: implicit zero-padding on out-of-bounds access
gumb0 Dec 5, 2023
1571eaf
Update EIP-4750: Rename CALLF's argument to target_section_index
gumb0 Dec 7, 2023
d4deb4d
Update EIP-6206: rename JUMPF's argument to target_section_index
gumb0 Dec 7, 2023
babb441
Add EIP: Hardfork Meta - Dencun
timbeiko Dec 7, 2023
e269a7a
Update EIP-6122: Move to Last Call
timbeiko Dec 7, 2023
0249f04
Add EIP: Hardfork Meta Backfill - Berlin to Shapella
timbeiko Dec 8, 2023
2149e6f
(bot 1272989785) moving EIPS/eip-6888.md to stagnant (#7973)
eth-bot Dec 10, 2023
1761bd3
(bot 1272989785) moving EIPS/eip-6811.md to stagnant (#7972)
eth-bot Dec 10, 2023
4a815c7
Update EIP-6780: Move to Review
timbeiko Dec 11, 2023
03bb936
Update EIP-6953: Move to Last Call
timbeiko Dec 12, 2023
150b6c7
Update EIP-7569: Move to Review
timbeiko Dec 12, 2023
d88d99f
Update EIP-6475: simple typo fix in 6475
flyw0rld Dec 17, 2023
bcb19a7
Update EIP-7545: clarify precompile interface
gballet Dec 17, 2023
0a72b16
Add EIP: Inclusion lists
michaelneuder Dec 20, 2023
94237c2
Update EIP-3074: fix misaligned memory description
lightclient Dec 20, 2023
923a380
(bot 1272989785) moving EIPS/eip-6988.md to stagnant (#8014)
eth-bot Dec 24, 2023
d6a0668
(bot 1272989785) moving EIPS/eip-6913.md to stagnant (#8013)
eth-bot Dec 24, 2023
4beea75
Update EIP-3074: add nonce to auth msg to provide revocation
lightclient Dec 27, 2023
14f121f
Update EIP-6690: fix typo & linter error
shuoer86 Dec 29, 2023
bbade0d
Update EIP-5806: fix typo
shuoer86 Dec 29, 2023
3da7e6e
Update EIP-6493: Move to Review
etan-status Dec 31, 2023
6fa42ce
Update EIP-684: Fix typo (#8061)
cristiantroy Jan 3, 2024
fede8c5
Update EIP-225: Update eip-225.md to fix typo "singer" (#8038)
andrewcoder666 Jan 3, 2024
2f574d0
Update EIP-145: fix typo (#7958)
momodaka Jan 3, 2024
fb3fd62
Config: Remove myself as governing editor (#8079)
Pandapip1 Jan 4, 2024
3aaf784
Update EIP-3540: Remove mention of terminating instruction requirement
gumb0 Jan 4, 2024
aca0dc5
Update EIP-4844: Clarify type for better readability
xinbenlv Jan 5, 2024
dfee781
Update EIP-7569: Add Testnet times
timbeiko Jan 8, 2024
9d0bee7
Update EIP-6404: Remove placeholder TBD sections
etan-status Jan 9, 2024
dca3992
(bot 1272989785) moving EIPS/eip-3540.md to stagnant (#8057)
eth-bot Jan 14, 2024
1901d2b
(bot 1272989785) moving EIPS/eip-2015.md to stagnant (#8056)
eth-bot Jan 14, 2024
d505875
Update EIP-6404: Move to Review
etan-status Jan 19, 2024
7eb97f3
Update EIP-7002: Fix typos
deffrian Jan 19, 2024
6572e92
Update EIP-6916: fix typo
Thabokani Jan 21, 2024
3baad83
Update EIP-5806: Update EIP-5806
Amxx Jan 25, 2024
79c36db
Update EIP-5806: use TX_TYPE for signature generation
Amxx Jan 25, 2024
96f0b77
Update EIP-4762: fix some syntax issues
gballet Jan 25, 2024
37a5e93
Update EIP-7514: Move to Last Call
timbeiko Jan 26, 2024
1c0aa25
Update EIP-6466: Move to Review
etan-status Jan 26, 2024
0ca5cdc
Update EIP-6465: Move to Review
etan-status Jan 26, 2024
b833b45
Update EIP-6122: Move to Final
timbeiko Jan 29, 2024
8ed81ef
Update EIP-6953: Move to Final
timbeiko Jan 29, 2024
fce30c5
Update EIP-4788: Move to Last Call
ralexstokes Jan 30, 2024
bed4b1c
Update EIP-4938: Move to Last Call
timbeiko Jan 30, 2024
6b917db
Update EIP-5793: Move to Last Call (#8147)
timbeiko Jan 30, 2024
e00f4da
Update EIP-4844: Move to Last Call
dankrad Jan 30, 2024
faccff3
Update EIP-7251: Fix typo EIP-7251 typo
dapplion Jan 31, 2024
af92489
Update EIP-7516: Move to Last Call
CarlBeek Jan 31, 2024
a67ac85
Update EIP-7044: Move to Last Call
dapplion Jan 31, 2024
cfbd303
Update EIP-7045: Move to Last Call
djrtwo Jan 31, 2024
a9f7ddb
Update EIP-6780: Move to Last Call
gballet Jan 31, 2024
aabe10e
Update EIP-7069: add returndataload opcode
charles-cooper Feb 1, 2024
d2c88e1
Add EIP: Reserve Precompile Address Range for RIPs
CarlBeek Feb 1, 2024
017fa25
Update EIP-7516: Use "instruction" term
chfast Feb 2, 2024
cc2029f
Update EIP-4788: Use "blob" term consistent with EIP-4844
sealer3 Feb 5, 2024
4e8d7b1
Update EIP-5806: Update EIP-5806
Amxx Feb 6, 2024
84653b8
Update EIP-7568: Move to Review
timbeiko Feb 6, 2024
3beab23
Update EIP-7587: Move to Review
CarlBeek Feb 6, 2024
aa5974b
Update EIP-7480: match to EOF Megaspec
pdobacz Feb 6, 2024
8e35c4a
Update EIP-7569: Add Dencun mainnet epoch & time
timbeiko Feb 8, 2024
c07b6a0
Update EIP-5656: Move to Last Call
timbeiko Feb 8, 2024
65ef9d5
Update EIP-7568: Move to Last Call
timbeiko Feb 8, 2024
618d1b7
Update EIP-7569: Move to Last Call
timbeiko Feb 8, 2024
9b882bf
Update EIP-6122: Fix typo in EIP-6122 (#8170)
gfukushima Feb 8, 2024
0533722
Config: match `tree` along with `blob` for Github repos. (#8171)
timbeiko Feb 8, 2024
a67f8e1
Update EIP-4844: Rename gasPrice to baseFee
MicahZoltu Feb 8, 2024
d0b62aa
Update EIP-7587: Moves 7587 from info to meta type
CarlBeek Feb 8, 2024
16460f9
Update EIP-7039: Update eip-7039.md
SamWilsn Feb 10, 2024
92daa1d
Add EIP: Hardfork Meta - Pectra
timbeiko Feb 12, 2024
ce9f306
Update EIP-2070: Move to Withdrawn
timbeiko Feb 12, 2024
23e18e5
Update EIP-7568: Mention 2070 in 7568
timbeiko Feb 12, 2024
84cda2f
Update dependency github-pages to v230
renovate[bot] Feb 13, 2024
086e75e
Merge remote-tracking branch 'upstream/Pandapip1-bib'
MissLov3ly Feb 13, 2024
9b1b7cb
Merge branch 'renovate/major-jekyll-ecosystem-packages'
MissLov3ly Feb 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update EIP-7512: Fix authors
Merged by EIP-Bot.
  • Loading branch information
rmeissner authored Sep 25, 2023
commit 147a05667f8a7ae3c5ed271e71782a446bbdc320
104 changes: 55 additions & 49 deletions EIPS/eip-7512.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
eip: 7512
title: Onchain Representation for Audits
description: Proposal to define a contract parseable representation of Audit reports.
author: Richard Meissner - Safe (@rmeissner), Robert Chen - OtterSec (@chen-robert), Matthias Egli - ChainSecurity (@MatthiasEgli), Jan Kalivoda - Ackee Blockchain (@jaczkal), Michael Lewellen - OpenZeppelin (@cylon56), Shay Zluf - Hats Finance (@shayzluf)
author: Richard Meissner - Safe (@rmeissner), Robert Chen - OtterSec (@chen-robert), Matthias Egli - ChainSecurity (@MatthiasEgli), Jan Kalivoda - Ackee Blockchain (@jaczkal), Michael Lewellen - OpenZeppelin (@cylon56), Shay Zluf - Hats Finance (@shayzluf), Alex Papageorgiou - Omniscia (@alex-ppg)
discussions-to: https://ethereum-magicians.org/t/erc-7512-onchain-audit-representation/15683
status: Draft
type: Standards Track
Expand All @@ -18,71 +18,73 @@ The proposal aims to create a standard for an onchain representation of audit re

## Motivation

Audits are an integral part of the smart contract security framework. They are commonly used to ensure that smart contracts don't have bugs, follow best practices and correctly implement standards such [ERC-20](./eip-20.md) or [ERC-721](./eip-721.md)). Many essential parts of the Blockchain ecosystem are secured by smart contract by now. Some examples for this are:
Audits are an integral part of the smart contract security framework. They are commonly used to increase the security of smart contracts and ensure that they follow best practices as well as correctly implement standards such [ERC-20](./eip-20.md), [ERC-721](./eip-721.md), and similar ERCs. Many essential parts of the blockchain ecosystem are facilitated by the usage of smart contracts. Some examples of this are:

- Bridges - Most bridge consist out of bridgehead or a lockbox that secures the tokens that should be bridged. If any of these contracts are faulty it might be possible to bring the operation of the bridge to an halt or take full control.
- Token contracts - Every token in the Ethereum ecosystem is a smart contract. Apps that interact with these tokens rely that they follow the known token standards. Tokens that behave differently can cause unexpected behaviour and might cause a loss of funds.
- Smart contract accounts - With [ERC-4337](./eip-4337.md) more visibility has been created for smart contract based account. They provide extreme flexibility and can cater to many different use cases. A concept that has been used are modules, which allow to extend the functionality of a smart contract accounts. [ERC-6900](./eip-6900.md)) is a recent standard that defines how to register and design plugins that can be registered on an account.
- Hooks and Callbacks - With more protocol allowing hooks to interact with their protocol and different token standard which trigger callbacks on a transfer (i.e. [ERC-1155](./eip-1155.md)) it is important to make sure that these interactions are well curated to minimize the security risks as much as possible.
- Bridges: Most bridges consist of a bridgehead or a lockbox that secures the tokens that should be bridged. If any of these contracts are faulty it might be possible to bring the operation of the bridge to a halt or, in extreme circumstances, cause uncollateralized assets to be minted on satellite chains.
- Token Contracts: Every token in the Ethereum ecosystem is a smart contract. Apps that interact with these tokens rely on them adhering to known token standards, most commonly [ERC-20](./eip-20.md) and [ERC-721](./eip-721.md). Tokens that behave differently can cause unexpected behavior and might even lead to loss of funds.
- Smart Contract Accounts (SCAs): With [ERC-4337](./eip-4337.md) more visibility has been created for smart-contract-based accounts. They provide extreme flexibility and can cater to many different use cases whilst retaining a greater degree of control and security over each account. A concept that has been experimented with is the idea of modules that allow the extension of a smart contract account's functionality. [ERC-6900](./eip-6900.md)) is a recent standard that defines how to register and design plugins that can be registered on an account.
- Interoperability (Hooks & Callbacks): With more protocols supporting external-facing functions to interact with them and different token standards triggering callbacks on a transfer (i.e. [ERC-1155](./eip-1155.md)), it is important to make sure that these interactions are well vetted to minimize the security risks they are associated with as much as possible.

The usage and impact smart contracts will have on the day to day operations of decentralized applications will steadily increase. To provide strong guarantees about security and allow better composability it is important that it is possible to verify onchain that a contract has been audited. Creating a system that can verify that an audit has been made for a specific address will strengthen the security guarantees of the whole smart contract ecosystem.
The usage and impact smart contracts will have on the day-to-day operations of decentralized applications will steadily increase. To provide tangible guarantees about security and allow better composability it is imperative that an onchain verification method exists to validate that a contract has been audited. Creating a system that can verify that an audit has been made for a specific contract will strengthen the security guarantees of the whole smart contract ecosystem.

While this information alone is no guarantee that there are no bug are flaws in a contract, it can provide an important building block to create security systems for smart contracts, which are necessary for maximum of flexibility while maintaining security.
While this information alone is no guarantee that there are no bugs or flaws in a contract, it can provide an important building block to create innovative security systems for smart contracts in an onchain way.

### Example

Imagine a hypothetical [ERC-1155](./eip-1155.md) token bridge. The goal is to create a scalable system where it is possible to easily register new tokens that can be bridged. To minimize the risk of malicious or faulty tokens being registered, audits will be used and verified onchain.


![Onchain Audit Example Use Case](../assets/eip-7512/example_use_case.png)

For showing the details of the flow more clearly, the diagram separates the Bridge and the Verifier. Theoretically both can live in the same contract.
To illustrate the flow within the diagram clearly, it separates the Bridge and the Verifier roles into distinct actors. Theoretically, both can live in the same contract.

There are four parties:

- User: The end user that wants to bridge their token
- Bridge Operator: The operator is maintaining the bridge
- Bridge: The contract the user will interact with to trigger the bridging
- Bridge Operator: The operator that maintains the bridge
- Bridge: The contract the user will interact with to trigger the bridge operation
- Validator: The contract that validates that a token can be bridged

As a first (1) step the bridge operator should define the keys/accounts for the auditors from which audits are accepted for the token registration process.
As a first (1) step, the bridge operator should define the keys/accounts for the auditors from which audits are accepted for the token registration process.

With this the user (or token owner) can trigger the registration flow (2). There are two steps (3 and 6) that will be performed: verify that the provided audit is valid and has been signed by a trusted auditor (4) and check that the token contract implements [ERC-1155](./eip-1155.md) (7).
With this, the user (or token owner) can trigger the registration flow (2). There are two steps (3 and 6) that will be performed: verify that the provided audit is valid and has been signed by a trusted auditor (4), and check that the token contract implements the bridge's supported token standard ([ERC-1155](./eip-1155.md)) (7).

With the checks being done it is still recommended to have some manual check in place by the operator to activate a token for bridging (10). This step could be omitted if there is a strong trust in the auditor or if an ERC provides strong compatibility guarantees.
After the audit and token standard validations have been performed, it is still advisable to have some form of manual intervention in place by the operator to activate a token for bridging (10). <!-- This step could be omitted if there is strong trust in the auditor or if an ERC provides strong compatibility guarantees. -->

Once the token is available on the bridge the users can start using it (11).
Once the token has been activated on the bridge, Users can start bridging it (11).

## Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

### Audit Properties

- Auditor
- `name` - Name of the auditor (i.e. for displaying to the user)
- `uri` - Uri to retrieve more information about the auditor
- `authors` - A list of authors that contributed to this audit. This SHOULD be the persons that audited the contracts and created the audit.
- `name`: Name of the auditor (i.e. for displaying to the user)
- `uri`: URI to retrieve more information about the auditor
- `authors`: A list of authors that contributed to this audit. This SHOULD be the persons who audited the contracts and created the audit
- Audit
- `auditor` - Information on the auditor
- `contract` - MUST be the `chainId` and `address` of the deployed contract the audit is related to.
- `issuedAt` - MUST contain the information when the original audit (identified by the `auditHash`) was issued
- `ercs` - A list of ERCs that are implemented by the target contract. The ERCs listed MUST be fully implemented. This list MAY be empty.
- `auditHash` - MUST be the hash of the original audit. This allows to verify that this onchain information belongs to a specific audit.
- `auditUri` - SHOULD point to a source where the audit can be retrieved
- `auditor`: Information on the auditor
- `auditedContract`: MUST be the `chainId` as well as `deployment` of the contract the audit is related to
- `issuedAt`: MUST contain the information when the original audit (identified by the `auditHash`) was issued
- `ercs`: A list of ERCs that are implemented by the target contract. The ERCs listed MUST be fully implemented. This list MAY be empty
- `auditHash`: MUST be the hash of the original audit. This allows onchain verification of information that may belong to a specific audit
- `auditUri`: SHOULD point to a source where the audit can be retrieved
- Contract
- `chainId`: MUST be a `bytes32` representation of the [EIP-155](./eip-155.md) chain ID of the blockchain that the contract has been deployed in
- `deployment`: MUST be an `address` representation of a contract's deployment address

### Auditor Verification

- Signature
- Type
- `SECP256K1`
- Data is the encoded representation of `r`, `s` and `v`
- Data is the encoded representation of `r`, `s`, and `v`
- `BLS`
- TBD
- `ERC1271`
- Data is the abi encode representation of `chainId`, `address`, `blocknumber` and the `signature bytes`
- Data is the ABI-encoded representation of `chainId`, `address`, `blocknumber`, and the `signature bytes`
- `SECP256R1`
- Data is the encoded representation of `r`, `s` and `v`
- Data is the encoded representation of `r`, `s`, and `v`
- Data

### Data types
Expand All @@ -91,19 +93,19 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
struct Auditor {
string name;
string uri;
string[] authors;
string[] authors;
}

struct Contract {
bytes32 chaidId;
address address;
bytes32 chainId;
address deployment;
}

struct AuditSummary {
Auditor auditor;
uint256 issuedAt;
uint256[] ercs;
Contract contract;
Contract auditedContract;
bytes32 auditHash;
string auditUri;
}
Expand Down Expand Up @@ -145,47 +147,51 @@ struct SignedAuditSummary extends AuditSummary {

## Rationale

The current ERC does not have any mentions of the `findings` of an audit. This was done as it would first be necessary to align on the definition of severities. This is a very challenging tasks, which is out of scope of this ERC. Therefore it is important to note that this ERC proposes that a signed audit summary indicates that a specific contract instance (specified by `chainId` and `address`) has no critical bugs and is "safe to use". Furthermore it indicates that this contract instance correctly implements the listed ERCs. This normally corresponds to the final audit revision for a contract which is then connected to the deployment.
The current ERC deliberately does not define the `findings` of an audit. Such a definition would require alignment on the definition of what severities are supported, what data of a finding should be stored onchain vs off-chain, and other similar finding-related attributes that are hard to strictly describe. Given the complexity of this task, we consider it to be outside the scope of this EIP. It is important to note that this ERC proposes that a signed audit summary indicates that a specific contract instance (specified by its `chainId` and `deployment`) has undergone a security audit.

Furthermore, it indicates that this contract instance correctly implements the listed ERCs. This normally corresponds to the final audit revision for a contract which is then connected to the deployment. As specified above, this ERC MUST NOT be considered an attestation of a contract's security but rather a methodology via which data relevant to a smart contract can be extracted; evaluation of the quality, coverage, and guarantees of the data is left up to the integrators of the ERC.

### Further Considerations

- `standards` vs `ercs`
- Limiting the scope to audits related to EVM based smart contract accounts, allows a better definition of parameters.
- `chainId` and `address`
- Behaviour of a contract depends on state. State is depending on instance (i.e. deployment setup and constructor args). Therefore just relying on the code hashes is not secure enough.
- Limiting the scope to audits related to EVM-based smart contract accounts allows a better definition of parameters.
- `chainId` and `deployment`
- As a contract's behavior depends on the blockchain it is deployed in, we have opted to associate a `chainId` as well as `deployment` address per contract that corresponds to an audit
- `contract` vs `contracts`
- Many audits are related to multiple contracts that make up a protocol. Still for an initial version it was chosen to only reference one contract per audit summary. If muliple contracts have been audited the same summary can be used with different contract instances. This way it is also clear which contract the provided information (i.e. `ercs`) reference. The only downside is that this requires multiple signing passes by the auditors.
- Many audits are related to multiple contracts that make up a protocol. To ensure simplicity in the initial version of this ERC, we chose to only reference one contract per audit summary. If multiple contracts have been audited in the same audit engagement, the same audit summary can be associated with different contract instances. An additional benefit of this is the ability to properly associate contract instances with the `ercs` they support. The main drawback of this approach is that it requires multiple signing passes by the auditors.
- Why [EIP-712](./eip-712.md)?
- [EIP-712](./eip-712.md) as a base for tooling compatibility (i.e. for signing)
- How to assign a specific Signing key to an auditors
- Auditors should publicly share the public part of the signature. This could for example be done on their website.
- As an extension to this ERC it would be possible to build a public repository, but this is out of scope for this proposal.
- Polymorphic contracts and Proxies
- This ERC quite explicitly does **not** mention polymorphic contracts and proxies. These are important to be considered, but this is currently left to the auditors and the code that makes use of this ERC.
- [EIP-712](./eip-712.md) was chosen as a base due to its tooling compatibility (i.e. for signing)
- How to assign a specific Signing Key to an Auditor?
- Auditors should publicly share the public part of the signature, which can be done via their website, professional page, and any such social medium
- As an extension to this ERC it would be possible to build a public repository, however, this falls out-of-scope of the ERC
- Polymorphic Contracts and Proxies
- This ERC explicitly does **not** mention polymorphic contracts and proxies. These are important to be considered, however, their proper management is delegated to auditors as well as implementors of this ERC

### Future Extensions

- Add support for more standards and networks
- Better support for polymorphic contracts and audits
- Potential expansion of ERC to accommodate non-EVM chains
- Better support for polymorphic/upgradeable contracts and multi-contract audits
- Management of signing keys for auditors
- Definition of findings of an audit

## Backwards Compatibility

No backward compatibility issues found.
No backward compatibility issues have been identified in relation to current ERC standards.

## Reference Implementation

TBD.

The following features will be implemented in a reference implementation:

- Script to trigger signing based on a json representing the audit summary
- Script to trigger signing based on a JSON representing the audit summary
- Contract to verify signed audit summary

## Security Considerations

Needs discussion.
### Auditor Key Management

The premise of this ERC relies on proper key management by the auditors who partake in the system. If an auditor's key is compromised, they may be associated with seemingly audited or ERC-compliant contracts that ultimately could not comply with the standards. As a potential protection measure, the ERC may define an "association" of auditors (f.e. auditing companies) that would permit a secondary key to revoke existing signatures of auditors as a secondary security measure in case of an auditor's key compromise.

## Copyright

Expand Down