You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/zkEVM/architecture/protocol/incentive-mechanism.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ The **native currency used in L2 is `Bridged Ether`**, which originates from L1.
8
8
9
9
The Sequencer earns the transaction fees paid by L2 users for submitting transactions, and thus gets paid directly in `Bridged Ether`. The amount of fees paid depends on the gas price, which is set by users based on how much they are willing to pay for the execution of their transactions.
10
10
11
-
To incentivize the Aggregator for each batch sequenced, the Sequencer must lock a number of MATIC tokens in the L1 `PolygonZkEVM.sol` Contract proportional to the number of batches in the sequence. The number of MATIC tokens locked per batch sequenced is saved in the variable `batchFee`.
11
+
To incentivize the Aggregator for each batch sequenced, the Sequencer must lock a number of POL tokens in the L1 `PolygonZkEVM.sol` Contract proportional to the number of batches in the sequence. The number of POL tokens locked per batch sequenced is saved in the variable `batchFee`.
12
12
13
13
The below diagram depicts the various fees and rewards earned by the protocol's actors.
14
14
@@ -21,7 +21,7 @@ Users must ensure that their transaction fees are greater than this **threshold*
21
21
The net Ether value earned by the Sequencer for sequencing a batch sequence is represented by the following expression:
-`L1SeqTxGasFee` is the Sequencing transaction gas fee paid in L1,
31
31
-`batchFee` is the storage variable in **PolygonZkEVM.sol** contract,
32
32
-`nBatches` is the number of batches in the sequence,
33
-
-`MATIC/ETH` is the price of MATIC token expressed in ETH.
33
+
-`POL/ETH` is the price of POL token expressed in ETH.
34
34
35
35
## Aggregation reward
36
36
37
37
The Aggregator also needs compensation for correctly fulfilling its role.
38
38
39
-
The **number of MATIC tokens earned** by the Aggregator each time it aggregates a sequence, denoted by `batchReward`, is determined by the **total contract MATIC balance** and the **number of batches aggregated**.
39
+
The **number of POL tokens earned** by the Aggregator each time it aggregates a sequence, denoted by `batchReward`, is determined by the **total contract POL balance** and the **number of batches aggregated**.
40
40
41
-
The MATIC earned per batch aggregated is calculated by the L1 `PolygonZkEVM.sol` contract prior to sequence aggregation using the following expression:
41
+
The POL earned per batch aggregated is calculated by the L1 `PolygonZkEVM.sol` contract prior to sequence aggregation using the following expression:
The following expression represents **the total amount of ETH value that the Aggregator earns for the aggregation of a sequence of batches**:
48
48
49
49
$$
50
-
\mathtt{\textit{`` }Aggregator net Ether income\textit{''}= \frac{batchReward ∗ nBatches}{MATIC/ETH} − L1AggTxGasFee}
50
+
\mathtt{\textit{`` }Aggregator net Ether income\textit{''}= \frac{batchReward ∗ nBatches}{POL/ETH} − L1AggTxGasFee}
51
51
$$
52
52
53
53
where:
54
54
55
55
-`L1AggTxGasFee` is the Aggregation transaction gas fee paid in L1,
56
-
-`batchReward` is the quantity of MATIC earned per batch aggregated,
56
+
-`batchReward` is the quantity of POL earned per batch aggregated,
57
57
-`nBatches` is the number of batches in the sequence,
58
-
-`MATIC/ETH` is the price of MATIC token expressed in ETH.
58
+
-`POL/ETH` is the price of POL token expressed in ETH.
59
59
60
60
## Variable batchFee re-adjustments
61
61
@@ -109,6 +109,6 @@ The graph below shows the percentage variation of the `batchFee` variable depend
109
109
110
110
To summarize, the admin can tune the reaction of `batchFee` variable re-adjustments by adjusting `veryBatchTimeTarget` and `multiplierBatchFee`. The values set during the contract's initialization are listed below:
0 commit comments