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

Update EIP-1485: Fix typographical errors in Documentation #9186

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion EIPS/eip-1485.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
---
eip: 1485
title: TEthashV1
author: trustfarm <[email protected]>, trustfarm <[email protected]>

Check warning on line 4 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `author` must contain at least one GitHub username

warning[preamble-author]: preamble header `author` must contain at least one GitHub username --> EIPS/eip-1485.md | 4 | author: trustfarm <[email protected]>, trustfarm <[email protected]> | = help: see https://ethereum.github.io/eipw/preamble-author/

Check warning on line 4 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `author` must contain at least one GitHub username

warning[preamble-author]: preamble header `author` must contain at least one GitHub username --> EIPS/eip-1485.md | 4 | author: trustfarm <[email protected]>, trustfarm <[email protected]> | = help: see https://ethereum.github.io/eipw/preamble-author/
discussions-to: https://ethereum-magicians.org/t/anti-eth-asic-mining-eip-1488-pr/1807
status: Stagnant
type: Standards Track
category: Core
created: 2018-11-01
---

Check warning on line 11 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Security Considerations`

warning[markdown-req-section]: body is missing section(s): `Security Considerations` --> EIPS/eip-1485.md | | = help: must be at the second level (`## Heading`) = help: see https://ethereum.github.io/eipw/markdown-req-section/

Check warning on line 11 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Security Considerations`

warning[markdown-req-section]: body is missing section(s): `Security Considerations` --> EIPS/eip-1485.md | | = help: must be at the second level (`## Heading`) = help: see https://ethereum.github.io/eipw/markdown-req-section/
## Simple Summary

Check failure on line 12 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

EIPS/eip-1485.md:12 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

Check warning on line 12 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

warning[markdown-order-section]: body has extra section(s) --> EIPS/eip-1485.md | 12 | ## Simple Summary | ::: EIPS/eip-1485.md | 194 | ## Test Results:: | = help: see https://ethereum.github.io/eipw/markdown-order-section/

Check failure on line 12 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

EIPS/eip-1485.md:12 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

Check warning on line 12 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

warning[markdown-order-section]: body has extra section(s) --> EIPS/eip-1485.md | 12 | ## Simple Summary | ::: EIPS/eip-1485.md | 194 | ## Test Results:: | = help: see https://ethereum.github.io/eipw/markdown-order-section/
This EIP modifies ethash in order to break ASIC miners specialized for the current ethash mining algorithm.

## Abstract

Check failure on line 15 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

EIPS/eip-1485.md:15 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

Check failure on line 15 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

EIPS/eip-1485.md:15 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]
This EIP pursue "obsolete current ASIC miners" by modifying PoW algorithm in a very low risk manner and update to latest hash algorithm from deprecated FNV Hash algorithms.

Following TEthashV1 algorithm suggests safe transition of PoW algorithms and secure the FNV Algorithm in MIX Parts.

## Motivation

Check failure on line 20 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

EIPS/eip-1485.md:20 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

Check failure on line 20 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

EIPS/eip-1485.md:20 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]
Provide original Ethash proof of work verification with minimal set of changes by updating FNV0 algorithm

## Specification

#### 1. Reference materials on ETHASH FNV0

Check failure on line 25 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Heading levels should only increment by one level at a time [Expected: h3; Actual: h4]

EIPS/eip-1485.md:25 MD001/heading-increment/header-increment Heading levels should only increment by one level at a time [Expected: h3; Actual: h4]

Check failure on line 25 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Heading levels should only increment by one level at a time [Expected: h3; Actual: h4]

EIPS/eip-1485.md:25 MD001/heading-increment/header-increment Heading levels should only increment by one level at a time [Expected: h3; Actual: h4]

#### Where FNV Applied on ETHASH

- In [ETHASH](https://github.com/ethereum/wiki/wiki/Ethash) , FNV Hash is used on

Check warning on line 29 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 29 | - In [ETHASH](https://github.com/ethereum/wiki/wiki/Ethash) , FNV Hash is used on | = help: see https://ethereum.github.io/eipw/markdown-rel-links/

Check warning on line 29 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 29 | - In [ETHASH](https://github.com/ethereum/wiki/wiki/Ethash) , FNV Hash is used on | = help: see https://ethereum.github.io/eipw/markdown-rel-links/
* 1) On data aggregation function, MIX parts.

Check failure on line 30 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Unordered list style [Expected: dash; Actual: asterisk]

EIPS/eip-1485.md:30:1 MD004/ul-style Unordered list style [Expected: dash; Actual: asterisk]

Check failure on line 30 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Unordered list style [Expected: dash; Actual: asterisk]

EIPS/eip-1485.md:30:1 MD004/ul-style Unordered list style [Expected: dash; Actual: asterisk]

* Ethash Algorithm

Check failure on line 32 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Unordered list style [Expected: dash; Actual: asterisk]

EIPS/eip-1485.md:32:1 MD004/ul-style Unordered list style [Expected: dash; Actual: asterisk]

Check failure on line 32 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Unordered list style [Expected: dash; Actual: asterisk]

EIPS/eip-1485.md:32:1 MD004/ul-style Unordered list style [Expected: dash; Actual: asterisk]

```
Header + Nonce
Expand All @@ -46,12 +46,12 @@
|-----> Mix64 [Process] ---> Mix Digest [32B]
```

* FNV used in DAG Generation

Check failure on line 49 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Unordered list style [Expected: dash; Actual: asterisk]

EIPS/eip-1485.md:49:1 MD004/ul-style Unordered list style [Expected: dash; Actual: asterisk]

Check failure on line 49 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Unordered list style [Expected: dash; Actual: asterisk]

EIPS/eip-1485.md:49:1 MD004/ul-style Unordered list style [Expected: dash; Actual: asterisk]
and Mixing for random access or DAG Page.

#### 2. Current applied Ethash FNV hash implementation is deprecated now.

[FNV-0_hash (deprecated)](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-0_hash_(deprecated))

Check warning on line 54 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 54 | [FNV-0_hash (deprecated)](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-0_hash_(deprecated)) |

Check warning on line 54 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 54 | [FNV-0_hash (deprecated)](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-0_hash_(deprecated)) |

It is a simple way of hashing algorithm

Expand All @@ -63,7 +63,7 @@
return hash
```

When analysed FNV-0 , there's very weak [avalanche effect](https://simple.wikipedia.org/wiki/Avalanche_effect), when hash input changes on 1~2bits. refer [FNV-Analysis reference section](https://github.com/tao-foundation/FNV-Analysis#how-to-test-and-analysis-reference-test-code)

Check warning on line 66 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 66 | When analysed FNV-0 , there's very weak [avalanche effect](https://simple.wikipedia.org/wiki/Avalanche_effect), when hash input ch... |

Check warning on line 66 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 66 | When analysed FNV-0 , there's very weak [avalanche effect](https://simple.wikipedia.org/wiki/Avalanche_effect), when hash input ch... |

Check warning on line 66 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 66 | When analysed FNV-0 , there's very weak [avalanche effect](https://simple.wikipedia.org/wiki/Avalanche_effect), when hash input ch... |

Check warning on line 66 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 66 | When analysed FNV-0 , there's very weak [avalanche effect](https://simple.wikipedia.org/wiki/Avalanche_effect), when hash input ch... |

We need to research and apply newer FNV hash or short message hash algorithm.

Expand All @@ -71,10 +71,10 @@

Previous proposed algorithm based on FNV1 [EIP-1355](./eip-1355.md)

There's a implementation that looks like "Missing Offset Bias" at **FNV1A**.
There's an implementation that looks like "Missing Offset Bias" at **FNV1A**.

Quotation of [original algorithm FNV1A](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash)

Check warning on line 76 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 76 | Quotation of [original algorithm FNV1A](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash) |

Check warning on line 76 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 76 | Quotation of [original algorithm FNV1A](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash) |
```

Check failure on line 77 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-1485.md:77 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]

Check failure on line 77 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-1485.md:77 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]
use hash offset
FNV-1a hash
The FNV-1a hash differs from the FNV-1 hash by only the order in which the multiply and XOR is performed:[8][10]
Expand Down Expand Up @@ -124,7 +124,7 @@
#define fnv1c(x, y) ((fnv1i(x) ^ (y)) * FNV_PRIME)
```

#### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis)

Check failure on line 127 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "#### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis)"]

EIPS/eip-1485.md:127 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "#### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis)"]

Check warning on line 127 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 127 | #### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis) |

Check failure on line 127 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "#### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis)"]

EIPS/eip-1485.md:127 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "#### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis)"]

Check warning on line 127 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 127 | #### 5. [FNV-Analysis](https://github.com/tao-foundation/FNV-Analysis) |
FNV Mix Algorithm Analysis for TEthashV1

#### How to test and analysis reference test code.
Expand All @@ -137,7 +137,7 @@
```

And You can execute it
```

Check failure on line 140 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-1485.md:140 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]

Check failure on line 140 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-1485.md:140 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]
fnvtest

F(00,00)::VEC(0, 0, ffffffff, 0):: FNV :00000000, DF=00000000(00) DS(00000000), FNV1 :00000000, DF=00000000(00) DS(00000000), FNV1a:117697cd, DF=117697cd(17) DS(117697cd), FNV1c:1210d00f, DF=127f8dbf(20) DS(11a1725f), F___RC=efe1b9c4, DF:efe1b9c4(19) , F1__RC=deb68dfe, DF:deb68dfe(22) , F1A_RC=99bad28b, DF:99bad28b(17) , F1C_RC=e29fa497, DF:e29fa497(18)
Expand Down Expand Up @@ -197,4 +197,4 @@

## Copyright

This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/).

Check warning on line 200 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 200 | This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecom... |

Check warning on line 200 in EIPS/eip-1485.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-1485.md | 200 | This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecom... |
2 changes: 1 addition & 1 deletion EIPS/eip-158.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---

Check failure on line 1 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble is missing header(s): `description`, `discussions-to`

error[preamble-req]: preamble is missing header(s): `description`, `discussions-to` --> EIPS/eip-158.md | |

Check failure on line 1 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble is missing header(s): `description`, `discussions-to`

error[preamble-req]: preamble is missing header(s): `description`, `discussions-to` --> EIPS/eip-158.md | |
eip: 158
title: State clearing
author: Vitalik Buterin (@vbuterin)
type: Standards Track

Check failure on line 5 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `type` is out of order

error[preamble-order]: preamble header `type` is out of order --> EIPS/eip-158.md | 5 | type: Standards Track | = help: `type` should come after `status` = help: see https://ethereum.github.io/eipw/preamble-order/

Check failure on line 5 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `type` is out of order

error[preamble-order]: preamble header `type` is out of order --> EIPS/eip-158.md | 5 | type: Standards Track | = help: `type` should come after `status` = help: see https://ethereum.github.io/eipw/preamble-order/
category: Core
status: Final
created: 2016-10-16
---

Check failure on line 10 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Abstract`, `Specification`, `Rationale`, `Security Considerations`, `Copyright`

error[markdown-req-section]: body is missing section(s): `Abstract`, `Specification`, `Rationale`, `Security Considerations`, `Copyright` --> EIPS/eip-158.md | | = help: must be at the second level (`## Heading`)

Check failure on line 10 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Abstract`, `Specification`, `Rationale`, `Security Considerations`, `Copyright`

error[markdown-req-section]: body is missing section(s): `Abstract`, `Specification`, `Rationale`, `Security Considerations`, `Copyright` --> EIPS/eip-158.md | | = help: must be at the second level (`## Heading`)
# Specification

For all blocks where `block.number >= FORK_BLKNUM` (TBA):
1. In all cases where a state change is made to an account, and this state change results in the account state being saved with nonce = 0, balance = 0, code empty, storage empty (hereinafter "empty account"), the account is instead deleted.
2. If a address is "touched" and that address contains an empty account, then it is deleted. A "touch" is defined as any situation where if the account at the given address were nonexistent it would be created.
2. If an address is "touched" and that address contains an empty account, then it is deleted. A "touch" is defined as any situation where if the account at the given address were nonexistent it would be created.
3. Whenever the EVM checks if an account exists, emptiness is treated as equivalent to nonexistence. Particularly, note that this implies that, once this change is enabled, there is no longer a meaningful difference between emptiness and nonexistence from the point of view of EVM execution.
4. Zero-value calls and zero-value suicides no longer consume the 25000 account creation gas cost in any circumstance

Expand All @@ -37,5 +37,5 @@

# References

1. EIP-158 issue and discussion: https://github.com/ethereum/EIPs/issues/158

Check failure on line 40 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-158.md | 40 | 1. EIP-158 issue and discussion: https://github.com/ethereum/EIPs/issues/158 |

Check failure on line 40 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-158.md | 40 | 1. EIP-158 issue and discussion: https://github.com/ethereum/EIPs/issues/158 |
2. EIP-161 issue and discussion: https://github.com/ethereum/EIPs/issues/161

Check failure on line 41 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-158.md | 41 | 2. EIP-161 issue and discussion: https://github.com/ethereum/EIPs/issues/161 |

Check failure on line 41 in EIPS/eip-158.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-158.md | 41 | 2. EIP-161 issue and discussion: https://github.com/ethereum/EIPs/issues/161 |
2 changes: 1 addition & 1 deletion EIPS/eip-1884.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
eip: 1884
title: Repricing for trie-size-dependent opcodes
author: Martin Holst Swende (@holiman)
type: Standards Track

Check failure on line 5 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `type` is out of order

error[preamble-order]: preamble header `type` is out of order --> EIPS/eip-1884.md | 5 | type: Standards Track | = help: `type` should come after `status`

Check failure on line 5 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `type` is out of order

error[preamble-order]: preamble header `type` is out of order --> EIPS/eip-1884.md | 5 | type: Standards Track | = help: `type` should come after `status`
category: Core
discussions-to: https://ethereum-magicians.org/t/opcode-repricing/3024
status: Final
created: 2019-03-28
requires: 150, 1052
---

Check failure on line 12 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Security Considerations`

error[markdown-req-section]: body is missing section(s): `Security Considerations` --> EIPS/eip-1884.md | | = help: must be at the second level (`## Heading`)

Check failure on line 12 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Security Considerations`

error[markdown-req-section]: body is missing section(s): `Security Considerations` --> EIPS/eip-1884.md | | = help: must be at the second level (`## Heading`)

## Simple Summary

Check failure on line 14 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

error[markdown-order-section]: body has extra section(s) --> EIPS/eip-1884.md | 14 | ## Simple Summary | ::: EIPS/eip-1884.md | 132 | ## Implementation | ::: EIPS/eip-1884.md | 150 | ## Security considerations |

Check failure on line 14 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

error[markdown-order-section]: body has extra section(s) --> EIPS/eip-1884.md | 14 | ## Simple Summary | ::: EIPS/eip-1884.md | 132 | ## Implementation | ::: EIPS/eip-1884.md | 150 | ## Security considerations |

This EIP proposes repricing certain opcodes, to obtain a good balance between gas expenditure and resource consumption.

Expand Down Expand Up @@ -67,7 +67,7 @@

It can be seen that the repricing at [EIP-150][eip-150] caused a steep drop, from around `67` to `23`.
Around block `5M`, it started reaching pre-[EIP-150][eip-150] levels, and at block `7M`
it was averaging on around `150` - more than double pre-eip-150 levels.

Check failure on line 70 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

references to proposals with a `category` of `Core` must use a prefix of `EIP`

error[markdown-refs]: references to proposals with a `category` of `Core` must use a prefix of `EIP` --> EIPS/eip-1884.md | 70 | it was averaging on around `150` - more than double pre-eip-150 levels. | = help: see https://ethereum.github.io/eipw/markdown-refs/

Check failure on line 70 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

references to proposals with a `category` of `Core` must use a prefix of `EIP`

error[markdown-refs]: references to proposals with a `category` of `Core` must use a prefix of `EIP` --> EIPS/eip-1884.md | 70 | it was averaging on around `150` - more than double pre-eip-150 levels. | = help: see https://ethereum.github.io/eipw/markdown-refs/

Increasing the cost of `SLOAD` by `4` would bring it back down to around `40`.
It is to be expected that it will rise again in the future, and may need future repricing, unless
Expand All @@ -82,7 +82,7 @@
It is comparable to `EXTCODESIZE` and `EXTCODEHASH`, which are priced at `700` already.

It has a built-in high variance, since it is often used for checking the balance of `this`,
which is a inherently cheap operation, however, it can be used to lookup the balance of arbitrary account which often require trie (disk) access.
which is an inherently cheap operation, however, it can be used to lookup the balance of arbitrary account which often require trie (disk) access.

In hindsight, it might have been a better choice to have two
opcodes: `EXTBALANCE(address)` and `SELFBALANCE`, and have two different prices.
Expand Down Expand Up @@ -127,7 +127,7 @@
- Gascost verification of `SLOAD`, `EXTCODEHASH` and `SELFBALANCE`
- Verify that `SELFBALANCE` is invalid before Istanbul

Some testcases have been implemented as statetests at https://github.com/holiman/IstanbulTests/tree/master/GeneralStateTests

Check failure on line 130 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-1884.md | 130 | Some testcases have been implemented as statetests at https://github.com/holiman/IstanbulTests/tree/master/GeneralStateTests |

Check failure on line 130 in EIPS/eip-1884.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-1884.md | 130 | Some testcases have been implemented as statetests at https://github.com/holiman/IstanbulTests/tree/master/GeneralStateTests |

## Implementation

Expand Down
4 changes: 2 additions & 2 deletions EIPS/eip-1959.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The approach proposed by EIP-1344 is to give access to the latest chainID. This

That's why in the rationale of EIP-1344 it is mentioned that users need to implement/use a mechanism to verify the validity of past chainID via a trustless cache implemented via smart contract.

While this works (except for a temporary gap where the immediately previous chainID is not considered valid), this is actually a required procedure for all contracts that want to accept L2 messages since without it, messages signed before an hardfork that updated the chainID would be rejected. In other words, EIP-1344 expose such risk and it is easy for contract to not consider it by simply checking ```chainID == CHAIN_ID()``` without considering past chainIDs.
While this works (except for a temporary gap where the immediately previous chainID is not considered valid), this is actually a required procedure for all contracts that want to accept L2 messages since without it, messages signed before a hardfork that updated the chainID would be rejected. In other words, EIP-1344 expose such risk and it is easy for contract to not consider it by simply checking ```chainID == CHAIN_ID()``` without considering past chainIDs.

Indeed letting contracts access the latest chainID for L2 message verification is dangerous. The latest chainID is only the tip of the chainID history. As a changing value, the latest chainID is thus not appropriate to ensure the validity of L2 messages.

Expand Down Expand Up @@ -76,4 +76,4 @@ Similarly to EIP-1344, it might be beneficial to update EIP-712 (still in Draft)
This was previously suggested as part of [EIP-1344 discussion](https://ethereum-magicians.org/t/eip-1344-add-chain-id-opcode/1131/39).

## Copyright
Copyright and related rights waived via [CC0](../LICENSE.md).
Copyright and related rights waived via [CC0](../LICENSE.md).
2 changes: 1 addition & 1 deletion EIPS/eip-2294.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ all cases.

This EIP introduces a change that affects previous implementations of this feature. However, as of time of writing(2022-10-18) no known chain makes use of a value outside of the suggested bounds, there should not be an issue in adopting this limit on the size of this parameter, therefore the impact should be non-existent.

If any other chain is operating with a incompatible `chainId`, we advised they make proper arrangement when this EIP becomes adopted.
If any other chain is operating with an incompatible `chainId`, we advised they make proper arrangement when this EIP becomes adopted.

## Security Considerations

Expand Down
2 changes: 1 addition & 1 deletion EIPS/eip-234.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ A client (dApp) who needs reliable notification of both log additions (on new bl

In order to deal with this while still providing a robust mechanism for internal block/log additional/removal, the client can maintain a blockchain internally (last `n` blocks) and only subscribe/poll for new blocks. When a new block is received, the client can reconcile their internal model with the new block, potentially back-filling parents or rolling back/removing blocks from their internal model to get in sync with the node. This can account for any type of disconnect/reorg/outage scenario and also allows the client (as an added benefit) to talk to a cluster of Ethereum nodes (e.g., via round-robin) rather than being tightly coupled to a single node.

Once the user has a reliable stream of blocks, they can then look at the bloom filter for the new block and if the block *may* have logs of interest they can fetch the filtered logs for that block from the node. The problem that arises is that a re-org may occur between when the client receives the block and when the client fetches the logs for that block. Given the current set of filter options, the client can only ask for logs by block number. In this scenario, the logs they get back will be for a block that *isn't* the block they want the logs for and is instead for a block that was re-orged in (and may not be fully reconciled with the internal client state). This can be partially worked around by looking at the resulting logs themselves and identifying whether or not they are for the block hash requested. However, if the result set is an empty array (no logs fetched) then the client is in a situation where they don't know what block the results are for. The results could have been legitimately empty (bloom filter can yield false positives) for the block in question, or they could be receiving empty logs for a block that they don't know about. At this point, there is no decision the client can make that allows them a guarantee of recovery. They can assume the empty logs were for the correct block, but if they weren't then they will never try to fetch again. This creates a problem if the block was only transiently re-orged out because it may come back before the next block poll so the client will never witness the reorg. They can assume the empty logs were for the wrong block, an refetch them, but they may continue to get empty results putting them right back into the same situation.
Once the user has a reliable stream of blocks, they can then look at the bloom filter for the new block and if the block *may* have logs of interest they can fetch the filtered logs for that block from the node. The problem that arises is that a re-org may occur between when the client receives the block and when the client fetches the logs for that block. Given the current set of filter options, the client can only ask for logs by block number. In this scenario, the logs they get back will be for a block that *isn't* the block they want the logs for and is instead for a block that was re-orged in (and may not be fully reconciled with the internal client state). This can be partially worked around by looking at the resulting logs themselves and identifying whether or not they are for the block hash requested. However, if the result set is an empty array (no logs fetched) then the client is in a situation where they don't know what block the results are for. The results could have been legitimately empty (bloom filter can yield false positives) for the block in question, or they could be receiving empty logs for a block that they don't know about. At this point, there is no decision the client can make that allows them a guarantee of recovery. They can assume the empty logs were for the correct block, but if they weren't then they will never try to fetch again. This creates a problem if the block was only transiently re-orged out because it may come back before the next block poll so the client will never witness the reorg. They can assume the empty logs were for the wrong block, a refetch them, but they may continue to get empty results putting them right back into the same situation.

By adding the ability to fetch logs by hash, the client can be guaranteed that if they get a result set, it is for the block in question. If they get an error, then they can take appropriate action (e.g., rollback that block client-side and re-fetch latest).

Expand Down
2 changes: 1 addition & 1 deletion EIPS/eip-2474.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Allow contracts to be called directly by `block.coinbase` (block validator), wit

_In proof-of-work blockchains, validators are known as miners._

The validator might want to execute functions directly, without having to sign a transaction. Some examples might be presenting a proof in a contract for an change which also benefits the validator.
The validator might want to execute functions directly, without having to sign a transaction. Some examples might be presenting a proof in a contract for a change which also benefits the validator.

A notable example would be when a validator want to act as an [EIP-1077](./eip-1077.md) Gas Relayer, incentivized to pick up fees from meta transactions.
Without this change, they can do so by signing from any address a `gasPrice = 0` transaction with the gas relayed call.
Expand Down
2 changes: 1 addition & 1 deletion EIPS/eip-747.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ Displaying a user's assets is a basic feature that every modern DApp user expect

Automatically listing assets makes assets into a sort of spam mail: Users suddenly see new assets that they don't care about in their wallet. This can be used to send unsolicited information, or even to conduct phishing scams. This phenomenon is already common with airdropped tokens, a major cause of network congestion, because spamming people with new tokens has, so far, been rewarded with increased user attention.

When a user is manually adding a asset, they had likely previously learned about it from a website. At that moment, there was a natural alignment of interests, where both parties wanted the user to track the token. This is a natural point to introduce an API to easily allow these parties to collaborate.
When a user is manually adding an asset, they had likely previously learned about it from a website. At that moment, there was a natural alignment of interests, where both parties wanted the user to track the token. This is a natural point to introduce an API to easily allow these parties to collaborate.

## Security Considerations

Expand Down
2 changes: 1 addition & 1 deletion EIPS/eip-7808.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This EIP reserves a [transaction-type](./eip-2718.md) range for use by the Rollu

## Motivation

For L2s to use new transactrion types, it is necessary to reserve an transaction-type range for use by the RIP process so as to ensure there are no conflicts between transaction types used by RIPs and EIPs.
For L2s to use new transactrion types, it is necessary to reserve a transaction-type range for use by the RIP process so as to ensure there are no conflicts between transaction types used by RIPs and EIPs.

## Specification

Expand Down
Loading