# Simple Summary
In order to distribute energy consumption fairly among smart contracts on the TRON network, it is recommended to implement the dynamic energy model. For more detailed information, please refer to: [TIP-491](https://github.com/tronprotocol/tips/issues/491).
# Motivation
According to the statistic of daily energy consumption for contract calls on [TRONSCAN](https://tronscan.io/#/data/stats2/contract/EnergyConsumeDistribution), more than 85% of the current energy consumption on the TRON network is concentrated in a few contracts.
As a well known public chain for stable and fast transfer capability with low transaction fees, the TRON network aims to serve diversity dApps and community users, rather than monopolized by minority contracts as infrastructure.
Dynamic energy model is proposed to limit the excess energy consumption of contracts by increasing the energy consumption rate. The target is to save resource and encourage more potential dApps to grow on the TRON network, promoting a more diversity ecosystem.
# Timeline
Any opinions or discussions about this proposal are welcomed.
# How to initiate the voting request
Implement the dynamic energy model:
createProposal 72 1 73 1500000000 74 2000 75 20000
## Specifications
The proposal of Dynamic Energy Model contains four parameters:
```
72 (ALLOW_DYNAMIC_ENERGY): propose to enable the dynamic energy model.
73 (DYNAMIC_ENERGY_THRESHOLD): propose to change the maximum threshold value of base energy consumption for smart contracts.
74 (DYNAMIC_ENERGY_INCREASE_FACTOR): propose to change the increase rate of the consumption factor when the DYNAMIC_ENERGY_THRESHOLD is exceeded, scaled by 10_000.
75 (DYNAMIC_ENERGY_MAX_FACTOR): the maximum value of the energy consumption punishment factor, scaled by 10_000.
```
`72 1` means enableing the dynamic energy model.
`73 2000000000` means any contracts consume more than 2,000,000,000 energy in a maintenance period will be punished in the next period, it is about 1/5 of the [total energy consumption of all contracts](https://tronscan.io/#/data/stats2/contract/EnergyConsumeDistribution) in one maintenance period.
`74 2000` means energy consumption will raise by 20% in the next maintenance period if its energy usage in current maintainance period exceeds the maximum threshold value, and dynamic energy increase factor will not exceed dynamic energy max factor.
`75 ` means the max energy consumption increase rate is X/100%, when it is reached, the contract functions will consume (100 + X/100)% of the base energy.
If a smart contract with excess energy consumption factor consumes less energy than the maximum threshold value in a maintainance period, the dynamic energy increase factor will decrease in the next maintainance period, with the decrease rate 1/4 of the increase factor value.