From 6e0338f699dd1586a2c2f28f242d7ffed89d1148 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Wed, 1 Aug 2018 17:48:48 +0800 Subject: [PATCH 01/29] Net gas metering for SSTORE without dirty maps --- EIPS/eip-sstore-no-dirty-map.md | 109 ++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 EIPS/eip-sstore-no-dirty-map.md diff --git a/EIPS/eip-sstore-no-dirty-map.md b/EIPS/eip-sstore-no-dirty-map.md new file mode 100644 index 0000000000000..ca195bf7f918f --- /dev/null +++ b/EIPS/eip-sstore-no-dirty-map.md @@ -0,0 +1,109 @@ +--- +eip: +title: Net gas metering for SSTORE without dirty maps +author: Wei Tang (@sorpaas) +discussions-to: +status: Draft +type: Standards Track +category: Core +created: 2018-08-01 +--- + +## Abstract + +This EIP proposes net gas metering changes for SSTORE opcde, as an +alternative for EIP-1087. It tries to be friendlier to implementations +that uses different opetimiazation strategies for storage change +caches. + +## Motivation + +EIP-1087 proposes a way to adjust gas metering for SSTORE opcode, +enabling new usages on this opcodes where it is previously too +expensive. However, EIP-1087 requires keeping a dirty map for storage +changes, and implictly makes the assumption that a transaction's +storage changes are committed to the storage trie at the end of a +transaction. This works well for some implementations, but not for +others. Some implementations do the optimization to only commit +storage changes at the end of a block. For them, it is possible to +know a storage's original value and current value, but it is not +possible to iterate over all storage changes. For EIP-1087, they will +need to keep a separate dirty map to keep track of gas costs. This +adds additional memory consumptions. + +This EIP proposes an alternative way for gas metering on SSTORE, using +information that is more universially available to most +implementations: + +* *Storage slot's original value*. This is the value of the storage if + a call/create reversion happens on the current VM execution + context. It is universially available because all clients need to + keep track of call/create reversion. +* *Storage slot's current value*. +* Refund counter. + +## Specification + +Term *original value* is as defined in Motivation. *Current value* +refers to the storage slot value before SSTORE happens. *New value* +refers to the storage slot value after SSTORE happens. + +Replace SSTORE opcode gas cost calculation (including refunds) with +the following logic: + +* If *current value* equals *new value* (this is a no-op), 200 gas is + deducted. +* If *current value* does not equal *new value* + * If *original value* equals *current value* (this storage slot has + not been change by the current execution context) + * If *original value* is 0, 20000 gas is deducted. + * Otherwise, 5000 gas is deducted. If *new value* is 0, add 15000 + gas to refund counter. + * If *original value* does not equal *current value* (this storage + slot is dirty), 200 gas is deducted. + * If *original value* equals *new value* + * If *original value* is 0, add 19800 gas to refund counter. + * Otherwise, add 4800 gas to refund counter. + +Refund counter works as before -- it is limited to half of the gas +consumed. + +## Rationale + +This EIP mostly archives what EIP-1087 tries to do, but without the +complexity of introducing the concept of "dirty maps". One limitation +is that the dirtiness tracking only applies to current execution +context -- if a sub-frame executes on the same address as the +parent-frame, it won't benefit from the parent dirtiness gas refund. + +Examine examples provided in EIP-1087's Motivation: + +* If a contract with empty storage sets slot 0 to 1, then back to 0, + it will be charged `20000 + 200 - 19800 = 400` gas. +* A contract with empty storage that increments slot 0 5 times will be + charged `20000 + 5 * 200 = 21000` gas. +* A balance transfer from account A to account B followed by a + transfer from B to C, with all accounts having nonzero starting and + ending balances + * If the token contract has multi-send function, it will cost + `5000 * 3 + 200 - 4800 = 10400` gas. + * If this transfer from A to B to C is invoked by a third-party + contract, and the token contract has no multi-send function, then + it won't benefit from this EIP's gas reduction. + +## Backwards Compatibility + +This EIP requires a hard fork to implement. No gas cost increase is +anticipated, and many contract will see gas reduction. + +## Test Cases + +To be added. + +## Implementation + +To be added. + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). From f3ee50c87f23a4419f00cc6ae1632fb75199d263 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Wed, 1 Aug 2018 17:52:40 +0800 Subject: [PATCH 02/29] typo: opcode --- EIPS/eip-sstore-no-dirty-map.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-sstore-no-dirty-map.md b/EIPS/eip-sstore-no-dirty-map.md index ca195bf7f918f..09ca069a59858 100644 --- a/EIPS/eip-sstore-no-dirty-map.md +++ b/EIPS/eip-sstore-no-dirty-map.md @@ -11,7 +11,7 @@ created: 2018-08-01 ## Abstract -This EIP proposes net gas metering changes for SSTORE opcde, as an +This EIP proposes net gas metering changes for SSTORE opcode, as an alternative for EIP-1087. It tries to be friendlier to implementations that uses different opetimiazation strategies for storage change caches. From 8d21d6b8480ba31e9b74f59d4f367220d823cee8 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Wed, 1 Aug 2018 17:54:53 +0800 Subject: [PATCH 03/29] typo: changed --- EIPS/eip-sstore-no-dirty-map.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-sstore-no-dirty-map.md b/EIPS/eip-sstore-no-dirty-map.md index 09ca069a59858..231d35a1517da 100644 --- a/EIPS/eip-sstore-no-dirty-map.md +++ b/EIPS/eip-sstore-no-dirty-map.md @@ -55,7 +55,7 @@ the following logic: deducted. * If *current value* does not equal *new value* * If *original value* equals *current value* (this storage slot has - not been change by the current execution context) + not been changed by the current execution context) * If *original value* is 0, 20000 gas is deducted. * Otherwise, 5000 gas is deducted. If *new value* is 0, add 15000 gas to refund counter. From 40c9c4e26ff541df92121484d31b5f431ea33abb Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Wed, 1 Aug 2018 18:07:31 +0800 Subject: [PATCH 04/29] Self-assign the PR number 1283 --- EIPS/{eip-sstore-no-dirty-map.md => eip-1283.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename EIPS/{eip-sstore-no-dirty-map.md => eip-1283.md} (99%) diff --git a/EIPS/eip-sstore-no-dirty-map.md b/EIPS/eip-1283.md similarity index 99% rename from EIPS/eip-sstore-no-dirty-map.md rename to EIPS/eip-1283.md index 231d35a1517da..acaa509d8fffd 100644 --- a/EIPS/eip-sstore-no-dirty-map.md +++ b/EIPS/eip-1283.md @@ -1,5 +1,5 @@ --- -eip: +eip: 1283 title: Net gas metering for SSTORE without dirty maps author: Wei Tang (@sorpaas) discussions-to: From 6a9400e2abf68e39f1bdcf5793e51d171653f9a2 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Wed, 1 Aug 2018 18:11:01 +0800 Subject: [PATCH 05/29] Add a dummy discussion url --- EIPS/eip-1283.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index acaa509d8fffd..d1505ae767157 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -2,7 +2,7 @@ eip: 1283 title: Net gas metering for SSTORE without dirty maps author: Wei Tang (@sorpaas) -discussions-to: +discussions-to: https://github.com/sorpaas/EIPs/issues/1 status: Draft type: Standards Track category: Core From 707476790fae6c0d5f278ea47e5b53eb7bef2bcc Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 06:58:02 +0800 Subject: [PATCH 06/29] Fix R_sclear loopholes --- EIPS/eip-1283.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index d1505ae767157..7193194f9a1b0 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -60,8 +60,10 @@ the following logic: * Otherwise, 5000 gas is deducted. If *new value* is 0, add 15000 gas to refund counter. * If *original value* does not equal *current value* (this storage - slot is dirty), 200 gas is deducted. - * If *original value* equals *new value* + slot is dirty), 200 gas is deducted. If *current value* is 0, + deduct additional 15000 gas. + * If *original value* equals *new value* (this storage slot is + reset) * If *original value* is 0, add 19800 gas to refund counter. * Otherwise, add 4800 gas to refund counter. From 0fca9b3ecab7f0e5abfc37e9a0cd059356a79849 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 07:08:46 +0800 Subject: [PATCH 07/29] Properly handle refund for 0 value issue --- EIPS/eip-1283.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 7193194f9a1b0..711239512863c 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -60,8 +60,11 @@ the following logic: * Otherwise, 5000 gas is deducted. If *new value* is 0, add 15000 gas to refund counter. * If *original value* does not equal *current value* (this storage - slot is dirty), 200 gas is deducted. If *current value* is 0, - deduct additional 15000 gas. + slot is dirty), 200 gas is deducted. Apply both of the following + clauses. + * If *current value* is 0 (*new value* is not 0), deduct + additional 15000 gas. If *current value* is not 0 (*new value* + is 0), add 15000 gas to refund counter. * If *original value* equals *new value* (this storage slot is reset) * If *original value* is 0, add 19800 gas to refund counter. From f859a90f1ea281ce81626fbedd4bf2de91bcd329 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 07:16:28 +0800 Subject: [PATCH 08/29] fix: refund should only be added again if new value is 0 --- EIPS/eip-1283.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 711239512863c..495a89a395fb5 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -63,8 +63,8 @@ the following logic: slot is dirty), 200 gas is deducted. Apply both of the following clauses. * If *current value* is 0 (*new value* is not 0), deduct - additional 15000 gas. If *current value* is not 0 (*new value* - is 0), add 15000 gas to refund counter. + additional 15000 gas. If *new value* is 0, add 15000 gas to + refund counter. * If *original value* equals *new value* (this storage slot is reset) * If *original value* is 0, add 19800 gas to refund counter. From 6195cd68bf8e5339caccb9f42180ca857cf02071 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 07:19:26 +0800 Subject: [PATCH 09/29] clarify if statement --- EIPS/eip-1283.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 495a89a395fb5..0ad91b6cca5f8 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -63,8 +63,8 @@ the following logic: slot is dirty), 200 gas is deducted. Apply both of the following clauses. * If *current value* is 0 (*new value* is not 0), deduct - additional 15000 gas. If *new value* is 0, add 15000 gas to - refund counter. + additional 15000 gas. If *new value* is 0 (*current value* is + not 0), add 15000 gas to refund counter. * If *original value* equals *new value* (this storage slot is reset) * If *original value* is 0, add 19800 gas to refund counter. From 9b5ece78e913f2b4f7cc0d1b4a4198721646aa66 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 07:24:12 +0800 Subject: [PATCH 10/29] Clearly state what () means --- EIPS/eip-1283.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 0ad91b6cca5f8..a4aae100f2b69 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -62,9 +62,9 @@ the following logic: * If *original value* does not equal *current value* (this storage slot is dirty), 200 gas is deducted. Apply both of the following clauses. - * If *current value* is 0 (*new value* is not 0), deduct - additional 15000 gas. If *new value* is 0 (*current value* is - not 0), add 15000 gas to refund counter. + * If *current value* is 0 (also means that *new value* is not 0), + deduct additional 15000 gas. If *new value* is 0 (also means + that *current value* is not 0), add 15000 gas to refund counter. * If *original value* equals *new value* (this storage slot is reset) * If *original value* is 0, add 19800 gas to refund counter. From 2d972d1c2ce94d42bb88dfb1ad1958254b8742be Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 07:27:37 +0800 Subject: [PATCH 11/29] typo fix: unnecessary wording "additional" --- EIPS/eip-1283.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index a4aae100f2b69..24d12251bce92 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -63,8 +63,8 @@ the following logic: slot is dirty), 200 gas is deducted. Apply both of the following clauses. * If *current value* is 0 (also means that *new value* is not 0), - deduct additional 15000 gas. If *new value* is 0 (also means - that *current value* is not 0), add 15000 gas to refund counter. + deduct 15000 gas. If *new value* is 0 (also means that *current + value* is not 0), add 15000 gas to refund counter. * If *original value* equals *new value* (this storage slot is reset) * If *original value* is 0, add 19800 gas to refund counter. From 8f9bb8615f77c1e359b40b05a6d44f101bb22d15 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 2 Aug 2018 07:38:03 +0800 Subject: [PATCH 12/29] fix: should have parent clause if original value is not zero --- EIPS/eip-1283.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 24d12251bce92..e4bd27991dedc 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -62,9 +62,11 @@ the following logic: * If *original value* does not equal *current value* (this storage slot is dirty), 200 gas is deducted. Apply both of the following clauses. - * If *current value* is 0 (also means that *new value* is not 0), - deduct 15000 gas. If *new value* is 0 (also means that *current - value* is not 0), add 15000 gas to refund counter. + * If *original value* is not 0 + * If *current value* is 0 (also means that *new value* is not + 0), deduct 15000 gas. + * If *new value* is 0 (also means that *current value* is not + 0), add 15000 gas to refund counter. * If *original value* equals *new value* (this storage slot is reset) * If *original value* is 0, add 19800 gas to refund counter. From 23ebc94bcf5896376e497936a471b63e567bc84f Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 00:59:30 +0800 Subject: [PATCH 13/29] Remove 15k gas from refund counter instead of deduct it as gas cost --- EIPS/eip-1283.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index e4bd27991dedc..97ff7eba4a766 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -64,7 +64,8 @@ the following logic: clauses. * If *original value* is not 0 * If *current value* is 0 (also means that *new value* is not - 0), deduct 15000 gas. + 0), remove 15000 gas from refund counter. We can prove that + refund counter will never go below 0. * If *new value* is 0 (also means that *current value* is not 0), add 15000 gas to refund counter. * If *original value* equals *new value* (this storage slot is From 30daaa0a00bc1c639d7bec4aa4ddb149b0d25b02 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 01:29:45 +0800 Subject: [PATCH 14/29] Be more clear on EIP-658 enabled only-commit-storage-changes-at-end-of-block optimizations --- EIPS/eip-1283.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 97ff7eba4a766..b8d4a1295ef96 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -24,12 +24,12 @@ expensive. However, EIP-1087 requires keeping a dirty map for storage changes, and implictly makes the assumption that a transaction's storage changes are committed to the storage trie at the end of a transaction. This works well for some implementations, but not for -others. Some implementations do the optimization to only commit -storage changes at the end of a block. For them, it is possible to -know a storage's original value and current value, but it is not -possible to iterate over all storage changes. For EIP-1087, they will -need to keep a separate dirty map to keep track of gas costs. This -adds additional memory consumptions. +others. After EIP-658, some implementations do the optimization to +only commit storage changes at the end of a block. For them, it is +possible to know a storage's original value and current value, but it +is not possible to iterate over all storage changes. For EIP-1087, +they will need to keep a separate dirty map to keep track of gas +costs. This adds additional memory consumptions. This EIP proposes an alternative way for gas metering on SSTORE, using information that is more universially available to most From 598d42ee3f560a7b09eaa4521b7e15669dc9ec9b Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 01:34:37 +0800 Subject: [PATCH 15/29] Move some discussion comments to motivations section --- EIPS/eip-1283.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index b8d4a1295ef96..cc7cbafe5c2b3 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -24,12 +24,12 @@ expensive. However, EIP-1087 requires keeping a dirty map for storage changes, and implictly makes the assumption that a transaction's storage changes are committed to the storage trie at the end of a transaction. This works well for some implementations, but not for -others. After EIP-658, some implementations do the optimization to -only commit storage changes at the end of a block. For them, it is -possible to know a storage's original value and current value, but it -is not possible to iterate over all storage changes. For EIP-1087, -they will need to keep a separate dirty map to keep track of gas -costs. This adds additional memory consumptions. +others. Some implementations do the optimization to only commit +storage changes at the end of a block. For them, it is possible to +know a storage's original value and current value, but it is not +possible to iterate over all storage changes. For EIP-1087, they will +need to keep a separate dirty map to keep track of gas costs. This +adds additional memory consumptions. This EIP proposes an alternative way for gas metering on SSTORE, using information that is more universially available to most @@ -42,6 +42,20 @@ implementations: * *Storage slot's current value*. * Refund counter. +This EIP indeed has cases where it may consume more gases compared +with EIP-1087, but it can be worth the trade off: + +* We don't suffer from the optimization limitation of EIP-1087. After + EIP-658, an efficient storage cache implementation would probably + use an in-memory trie (without RLP encoding/decoding) or other + immutable data structures to keep track of storage changes, and only + commit changes at the end of a block. For those implementations, we + cannot efficiently iterate over a transaction's storage change slots + without doing a full diff of the trie. +* It never costs more gases compared with current scheme. +* It covers commons usages like reentry locks, same-contract + multi-send, etc. + ## Specification Term *original value* is as defined in Motivation. *Current value* From b8f965947f2cf1fca2c452ed1ef5c594c9f5022c Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 01:38:05 +0800 Subject: [PATCH 16/29] typo: commons -> common --- EIPS/eip-1283.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index cc7cbafe5c2b3..fd7447a71cb03 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -53,7 +53,7 @@ with EIP-1087, but it can be worth the trade off: cannot efficiently iterate over a transaction's storage change slots without doing a full diff of the trie. * It never costs more gases compared with current scheme. -* It covers commons usages like reentry locks, same-contract +* It covers most common usages like reentry locks, same-contract multi-send, etc. ## Specification From ba8a613c80621158390e4eaf8199b9b96db27e3f Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 01:46:11 +0800 Subject: [PATCH 17/29] Be more specific when gas reduction won't happen compared with EIP-1087 --- EIPS/eip-1283.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index fd7447a71cb03..70d3ad1f14bcc 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -42,8 +42,9 @@ implementations: * *Storage slot's current value*. * Refund counter. -This EIP indeed has cases where it may consume more gases compared -with EIP-1087, but it can be worth the trade off: +This EIP indeed has edge cases where it may consume more gases +compared with EIP-1087 (see Rationale), but it can be worth the trade +off: * We don't suffer from the optimization limitation of EIP-1087. After EIP-658, an efficient storage cache implementation would probably @@ -93,10 +94,15 @@ consumed. ## Rationale This EIP mostly archives what EIP-1087 tries to do, but without the -complexity of introducing the concept of "dirty maps". One limitation -is that the dirtiness tracking only applies to current execution -context -- if a sub-frame executes on the same address as the -parent-frame, it won't benefit from the parent dirtiness gas refund. +complexity of introducing the concept of "dirty maps". One limitation, +as described in Motivation, is that the dirtiness tracking only +applies to current execution context: + +* The first SSTORE for a storage slot on a sub-call frame for the same + contract won't benefit from gas reduction. +* If a storage slot is changed, and it's reset to its original + value. The next SSTORE to the same storage slot won't benefit from + gas reduction. Examine examples provided in EIP-1087's Motivation: From f0e159033a29eb94c54e988b9e31fc9b4dea9199 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 01:47:46 +0800 Subject: [PATCH 18/29] typo: duplicate description --- EIPS/eip-1283.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 70d3ad1f14bcc..e7dac372f1971 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -94,9 +94,8 @@ consumed. ## Rationale This EIP mostly archives what EIP-1087 tries to do, but without the -complexity of introducing the concept of "dirty maps". One limitation, -as described in Motivation, is that the dirtiness tracking only -applies to current execution context: +complexity of introducing the concept of "dirty maps". One limitation +is that for some edge cases dirtiness will not be tracked: * The first SSTORE for a storage slot on a sub-call frame for the same contract won't benefit from gas reduction. From 39505aa7e727037660900d218ac1e9e1f5ed4da0 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 14:05:28 +0800 Subject: [PATCH 19/29] Add explanation section --- EIPS/eip-1283.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index e7dac372f1971..317081d1044dd 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -91,6 +91,59 @@ the following logic: Refund counter works as before -- it is limited to half of the gas consumed. +## Explanation + +The new gas cost scheme for SSTORE is divided to three different +types: + +* **No-op**: the virtual machine does not need to do anything. This is + the case if *current value* equals *new value*. +* **Fresh**: this storage slot has not been changed, or has been reset + to its original value either on current frame, or on a sub-call + frame for the same contract. This is the case if *current value* + does not equal *new value*, and *original value* equals *current + value*. +* **Dirty**: this storage slot has already been changed, either on + current frame or on a sub-call frame for the same contract. This is + the case if *current value* does not equal *new value*, and + *original value* does not equal *current value*. + +We can see that the above three types covers all possible variations +of *original value*, *current value*, and *new value*. + +**No-op** is a trivial operation. Below we only consider cases for +**Fresh** and **Dirty**. + +All initial (not-**No-op**) SSTORE on a particular storage slot starts +with **Fresh**. After that, it will become **Dirty** if the value has +been changed (either on current call frame or a sub-call frame for the +same contract). When going from **Fresh** to **Dirty**, we charge the +gas cost the same as current scheme. + +When entering a sub-call frame, a previously-marked **Dirty** storage +slot will again becomes **Fresh**, but only for this sub-call +frame. Note that we don't charge any more gases compared with current +scheme in this case. + +In current call frame, a **Dirty** storage slot can be reset back to +**Fresh** via a SSTORE opcode either on current call frame or a +sub-call frame. For current call frame, this dirtiness is tracked, so +we can issue refunds. For sub-call frame, it is not possible to track +this dirtiness reset, so the refunds (for *current call frame*'s +initial SSTORE from **Fresh** to **Dirty**) are not issued. In the +case where refunds are not issued, the gas cost is the same as the +current scheme. + +When a storage slot remains at **Dirty**, we charge 200 gas. In this +case, we would also need to keep track of `R_SCLEAR` refunds -- if we +already issued the refund but it no longer applies (*current value* is +0), then removes this refund from the refund counter. If we didn't +issue the refund but it applies now (*new value* is 0), then adds this +refund to the refund counter. It is not possible where a refund is not +issued but we remove the refund in the above case, because all storage +slot starts with **Fresh** state, either on current call frame or a +sub-call frame. + ## Rationale This EIP mostly archives what EIP-1087 tries to do, but without the From 49b5f22974b684a83656e2a6be27f122ffc6be00 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 14:07:27 +0800 Subject: [PATCH 20/29] becomes -> become --- EIPS/eip-1283.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 317081d1044dd..f437a14250199 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -121,7 +121,7 @@ same contract). When going from **Fresh** to **Dirty**, we charge the gas cost the same as current scheme. When entering a sub-call frame, a previously-marked **Dirty** storage -slot will again becomes **Fresh**, but only for this sub-call +slot will again become **Fresh**, but only for this sub-call frame. Note that we don't charge any more gases compared with current scheme in this case. From 0710ff60cc2b50f70c1e9d08a93e82fbb2be37b1 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 15:07:50 +0800 Subject: [PATCH 21/29] typo: covers -> cover --- EIPS/eip-1283.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index f437a14250199..cba3fbd33725e 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -108,8 +108,8 @@ types: the case if *current value* does not equal *new value*, and *original value* does not equal *current value*. -We can see that the above three types covers all possible variations -of *original value*, *current value*, and *new value*. +We can see that the above three types cover all possible variations of +*original value*, *current value*, and *new value*. **No-op** is a trivial operation. Below we only consider cases for **Fresh** and **Dirty**. From ddfe7ca64126045a5bf97f568f14c32ec20734b4 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 20:36:59 +0800 Subject: [PATCH 22/29] Add state transition diagrams --- EIPS/eip-1283.md | 22 ++++++++++++++++++++++ assets/eip-1283/state.png | Bin 0 -> 176309 bytes 2 files changed, 22 insertions(+) create mode 100644 assets/eip-1283/state.png diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index cba3fbd33725e..b12fee15f3425 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -144,6 +144,28 @@ issued but we remove the refund in the above case, because all storage slot starts with **Fresh** state, either on current call frame or a sub-call frame. +### State Transition + +Below is a graph ([by +@Arachnid](https://github.com/ethereum/EIPs/pull/1283#issuecomment-410229053)) +showing possible state transition of gas costs. Note that this applies +to current call frame only, and we ignore **No-op** state because that +is trivial: + +![State Transition](../assets/eip-1283/state.png) + +Below are table version of the above diagram. Horizontal shows the +next state, and vertical shows the current state. + +| | `current=orig=0` | `current!=orig` | +| `current=orig=0` | 0; 200 gas | ~0; 20k gas | +| `current!=orig` | 0; 200 gas, 19.8k refund | ~0; 200 gas | + +| | `current=orig!=0` | `current!=orig` | `current=0` | +| `current=orig!=0` | `orig`; 200 gas | `~orig`, ~0; 5k gas | 0; 5k gas, 15k refund | +| `current!=orig` | `orig`; 200 gas, 4.8k refund | `~orig`; 200 gas | 0; 200 gas, 15k refund | +| `current=0` | `orig`; 200 gas, -10.2k refund | `~orig`; 200 gas, 15k refund | 0; 200 gas | + ## Rationale This EIP mostly archives what EIP-1087 tries to do, but without the diff --git a/assets/eip-1283/state.png b/assets/eip-1283/state.png new file mode 100644 index 0000000000000000000000000000000000000000..1737d2578630a83aa49ad6eb13c9a2e2f044f632 GIT binary patch literal 176309 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

(;ezxmXRmVi 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%0D(*DQ-I>Z0*e&Fs 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

3a=L&SXWVYtcwR*Mzp2iy10Hs48O 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

tR*Q>seAQB0KG=VoiJP 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 Date: Fri, 3 Aug 2018 20:38:07 +0800 Subject: [PATCH 23/29] Fix table formatting --- EIPS/eip-1283.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index b12fee15f3425..73596db937e84 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -158,10 +158,12 @@ Below are table version of the above diagram. Horizontal shows the next state, and vertical shows the current state. | | `current=orig=0` | `current!=orig` | +|------------------|--------------------------|-----------------| | `current=orig=0` | 0; 200 gas | ~0; 20k gas | | `current!=orig` | 0; 200 gas, 19.8k refund | ~0; 200 gas | | | `current=orig!=0` | `current!=orig` | `current=0` | +|-------------------|--------------------------------|------------------------------|------------------------| | `current=orig!=0` | `orig`; 200 gas | `~orig`, ~0; 5k gas | 0; 5k gas, 15k refund | | `current!=orig` | `orig`; 200 gas, 4.8k refund | `~orig`; 200 gas | 0; 200 gas, 15k refund | | `current=0` | `orig`; 200 gas, -10.2k refund | `~orig`; 200 gas, 15k refund | 0; 200 gas | From ee38de054e1bed932486e45be80ef0a19ddfb33f Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 20:52:51 +0800 Subject: [PATCH 24/29] typo: 0 -> `current` --- EIPS/eip-1283.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 73596db937e84..4b6cacdd9661e 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -157,10 +157,10 @@ is trivial: Below are table version of the above diagram. Horizontal shows the next state, and vertical shows the current state. -| | `current=orig=0` | `current!=orig` | -|------------------|--------------------------|-----------------| -| `current=orig=0` | 0; 200 gas | ~0; 20k gas | -| `current!=orig` | 0; 200 gas, 19.8k refund | ~0; 200 gas | +| | `current=orig=0` | `current!=orig` | +|------------------|--------------------------|--------------------| +| `current=orig=0` | 0; 200 gas | ~0; 20k gas | +| `current!=orig` | 0; 200 gas, 19.8k refund | `current`; 200 gas | | | `current=orig!=0` | `current!=orig` | `current=0` | |-------------------|--------------------------------|------------------------------|------------------------| From 8dd32c9fe0b82a618cf0aeb91994e108bcbb612c Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 3 Aug 2018 21:25:29 +0800 Subject: [PATCH 25/29] typo: missing - --- EIPS/eip-1283.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 4b6cacdd9661e..de6e8eade6260 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -162,11 +162,11 @@ next state, and vertical shows the current state. | `current=orig=0` | 0; 200 gas | ~0; 20k gas | | `current!=orig` | 0; 200 gas, 19.8k refund | `current`; 200 gas | -| | `current=orig!=0` | `current!=orig` | `current=0` | -|-------------------|--------------------------------|------------------------------|------------------------| -| `current=orig!=0` | `orig`; 200 gas | `~orig`, ~0; 5k gas | 0; 5k gas, 15k refund | -| `current!=orig` | `orig`; 200 gas, 4.8k refund | `~orig`; 200 gas | 0; 200 gas, 15k refund | -| `current=0` | `orig`; 200 gas, -10.2k refund | `~orig`; 200 gas, 15k refund | 0; 200 gas | +| | `current=orig!=0` | `current!=orig` | `current=0` | +|-------------------|--------------------------------|-------------------------------|------------------------| +| `current=orig!=0` | `orig`; 200 gas | `~orig`, ~0; 5k gas | 0; 5k gas, 15k refund | +| `current!=orig` | `orig`; 200 gas, 4.8k refund | `~orig`; 200 gas | 0; 200 gas, 15k refund | +| `current=0` | `orig`; 200 gas, -10.2k refund | `~orig`; 200 gas, -15k refund | 0; 200 gas | ## Rationale From e5f00a1d0955976bb122853c5a5730f249705ca6 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Mon, 6 Aug 2018 22:08:03 +0800 Subject: [PATCH 26/29] Change state transition table to use `(current, original)` vs `new` --- EIPS/eip-1283.md | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index de6e8eade6260..81e453c4a49fd 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -155,18 +155,23 @@ is trivial: ![State Transition](../assets/eip-1283/state.png) Below are table version of the above diagram. Horizontal shows the -next state, and vertical shows the current state. - -| | `current=orig=0` | `current!=orig` | -|------------------|--------------------------|--------------------| -| `current=orig=0` | 0; 200 gas | ~0; 20k gas | -| `current!=orig` | 0; 200 gas, 19.8k refund | `current`; 200 gas | - -| | `current=orig!=0` | `current!=orig` | `current=0` | -|-------------------|--------------------------------|-------------------------------|------------------------| -| `current=orig!=0` | `orig`; 200 gas | `~orig`, ~0; 5k gas | 0; 5k gas, 15k refund | -| `current!=orig` | `orig`; 200 gas, 4.8k refund | `~orig`; 200 gas | 0; 200 gas, 15k refund | -| `current=0` | `orig`; 200 gas, -10.2k refund | `~orig`; 200 gas, -15k refund | 0; 200 gas | +*new value* being set, and vertical shows the state of *original +value* and *current value*. + +When *original value* is 0: + +| | A (`current=orig=0`) | B (`current!=orig`) | +|----|----------------------|--------------------------| +| ~0 | B; 20k gas | B; 200 gas | +| 0 | A; 200 gas | A; 200 gas, 19.8k refund | + +When *original value* is not 0: + +| | X (`current=orig!=0`) | Y (`current!=orig`) | Z (`current=0`) | +|-------------|-----------------------|-------------------------|---------------------------| +| `orig` | X; 200 gas | X; 200 gas, 4.8k refund | X; 200 gas, -10.2k refund | +| `~orig, ~0` | Y; 5k gas | Y; 200 gas | Y; 200 gas, -15k refund | +| 0 | Z; 5k gas, 15k refund | Z; 200 gas, 15k refund | Z; 200 gas | ## Rationale From 7a18e1b46b0ba81cb7b0c8b319ac9f17cea98f25 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 7 Aug 2018 01:06:48 +0800 Subject: [PATCH 27/29] fix: vertical <-> horizontal --- EIPS/eip-1283.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 81e453c4a49fd..6a8cfd307f52f 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -154,9 +154,9 @@ is trivial: ![State Transition](../assets/eip-1283/state.png) -Below are table version of the above diagram. Horizontal shows the -*new value* being set, and vertical shows the state of *original -value* and *current value*. +Below are table version of the above diagram. Vertical shows the *new +value* being set, and horizontal shows the state of *original value* +and *current value*. When *original value* is 0: From d863e666ff0ff8493fb470ce41265b0ae1d1e72a Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 7 Aug 2018 03:54:37 +0800 Subject: [PATCH 28/29] Be more specific on usages benefited by this EIP --- EIPS/eip-1283.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 6a8cfd307f52f..272bae39bdc02 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -54,8 +54,16 @@ off: cannot efficiently iterate over a transaction's storage change slots without doing a full diff of the trie. * It never costs more gases compared with current scheme. -* It covers most common usages like reentry locks, same-contract - multi-send, etc. +* It covers most common usages. + +Usages that benefits from this EIP's gas reduction scheme includes: + +* Subsequent storage write operations within the same call frame. This + includes reentry locks, same-contract multi-send, etc. +* Passing storage information from sub call frame to parent call + frame, where this information does not need to be persistent outside + of a transaction. This includes sub-frame error codes and message + passing, etc. ## Specification From 3125d0eafd97764caa1da8c09783d63e2f2bb09a Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 7 Aug 2018 18:29:11 +0800 Subject: [PATCH 29/29] Typo fix --- EIPS/eip-1283.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1283.md b/EIPS/eip-1283.md index 272bae39bdc02..40bd258c1994b 100644 --- a/EIPS/eip-1283.md +++ b/EIPS/eip-1283.md @@ -24,12 +24,12 @@ expensive. However, EIP-1087 requires keeping a dirty map for storage changes, and implictly makes the assumption that a transaction's storage changes are committed to the storage trie at the end of a transaction. This works well for some implementations, but not for -others. Some implementations do the optimization to only commit -storage changes at the end of a block. For them, it is possible to -know a storage's original value and current value, but it is not -possible to iterate over all storage changes. For EIP-1087, they will -need to keep a separate dirty map to keep track of gas costs. This -adds additional memory consumptions. +others. After EIP-658, some implementations do the optimization to +only commit storage changes at the end of a block. For them, it is +possible to know a storage's original value and current value, but it +is not possible to iterate over all storage changes. For EIP-1087, +they will need to keep a separate dirty map to keep track of gas +costs. This adds additional memory consumptions. This EIP proposes an alternative way for gas metering on SSTORE, using information that is more universially available to most