MIP-52: Aptos Gas Pool
- Description: Introduces implementation specification for the Gas Pool in Aptos.
- Authors: Liam Monninger
- Reviewer: Andreas Penzkofer
- Desiderata: MD-38
Abstract
We propose a means of implementing a Gas Pool in Aptos to satisfy the token recirculation requirements indicated in MD-38. This solution will allow for gas used to be stored in the pool. The re-use of said gas is not a subject of this MIP. However, MIP-44, MIP-41, et al. provide suggestions to this end.
Motivation
The introduction of a Gas Pool in Aptos will allow for the recirculation of gas used in the Aptos ecosystem. This ensures the supply can remain fixed and the gas can be re-used for purposes such as rewarding.
Specification
Aptos pays gas in the epilogue of a transaction dispatching to epilogue_gas_payer
. Depending on the validator reward setting, epilogue_gas_payer
will either call transaction_fee::collect_fee
or transaction_fee::burn_fee
.
At the time of writing the transaction_fee::collect_fee
path is still experimental.
transaction_fee::burn_fee
internally calls coin::burn_from
which can be replaced with a transfer.
We thus suggest two paths to implement the Gas Pool in Aptos:
- Custom Rewards Collection
- Burn Replacement
Custom Rewards Collection
The custom rewards collection approach replaces Aptos’ experimental transaction_fee::collect_fee
with a custom rewards collection mechanism. This mechanism calls coin::transfer_from
to move the gas to the Gas Pool at a known address.
Coin burning logic can be kept in place and a similar features-based approach can be used to determine ensure the transaction_fee::collect_fee
approach is used.
Burn Replacement
The burn replacement approach replaces the coin::burn_from
call in transaction_fee::burn_fee
with a coin::transfer_from
call to the Gas Pool.
Verification
Outstanding:
- Verify that the AptosVM does not validate burns. Otherwise, there may be logic outside of the framework
epilogue_gas_payer
path which needs to be updated. - Identify any sponsorship or other gas payment mechanisms which may need to be updated to use the Gas Pool.