< /p>
Original Title: "zkSync 2.0 Update: Dynamic Fee Milestone Completed"
Original Author: Shui Duoduo|zkSync
Less than a month after the public roadmap release, we have achieved another major milestone towards mainnet . The dynamic fee milestone includes a new fee model, an update to add Paymaster support to the account abstraction, and EIP-1559 support. It also brings us one step closer to fulfilling zkSync's mission of extending the value and security of Ethereum.
< p style="text-align:center;">
Dynamic Fee
Cost to make sure the network can run: Running the L2 protocol is expensive and transaction fees must cover these costs. While we have to charge enough to cover the cost, our goal is to keep it as low as possible. This means that behind the simple fact of charging "X ETH" for a transaction, monitoring and analysis is required to ensure that the proposed fee is indeed optimal.
We also want users to have control over how much they agree to pay. Unlike Ethereum, a significant portion of transaction costs represent the amount of data we need to publish on L1 to guarantee data availability. This price component depends on the gas price on L1. Operators calculate fees based on the gas price, and the same transaction on zkSync 2.0 may incur different fees depending on how active it is on Ethereum.
< p id="63be" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">This means that the transaction fee is calculated based on two values:
< p id="4d54" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"=""> (1) Required for processing transactions and generating proofs for them Calculated amount; (2) Complete the transaction The amount of L1 gas required by the platform. The goal is to allow the user to control these two components.
< p id="e9ad" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">To distinguish it from the term "gas" used on Ethereum Let's use the term "erg". The term is inspired by physics, where "erg" is a measure of "work".
< p id="d4b1" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">Each transaction cost is defined by several parameters. Some parameters are close to those on Ethereum: [ergsLimit] and [ergPrice]. There is also a parameter [ergsPerPubdataByte] which limits how many ergs each byte of call data sent to L1 will cost. The last parameter allows users to agree to a certain gas price, for example to ensure that transactions are not executed during gas price spikes on L1.
< p id="4b23" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">With these parts, the transaction fee will be as desired System resources are estimated and charges are charged for the resources actually used. This charging model is only a preliminary implementation and should be improved. From now on, we will be actively monitoring the system in a live environment, making adjustments to it, and listening to your feedback.
< p id="df88" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">We have made some changes for upcoming milestones, this Will allow us to deliver great UX and DevEx while keeping costs as low as possible.
< h3>Paymasters support
zkSync 1.0 natively supports ERC-20 Token for payment, and zkSync 2.0 initially derived the same functionality. However, we decided there was something better: "Payers".
Extended by EIP-4337 (explained by Vitalik) Big inspiration, our paymasters release provides developers with a toolset for building new mechanisms for processing fee payments. It can be used for many purposes. The first and main use is to be able to pay fees in ERC-20Token, but not limited to this. For example, imagine a dApp subsidizing your transactions to make them cheaper (or completely free). The system is very flexible and allows developers full control over the payment process.
This feature also enables native Support becomes redundant. Users will notice that they initially need ETH to pay for certain dApps, but as developers move their apps from using fee tokens to Converting to a payer, users will be able to use other tokens to pay fees. See the zkSync 2.0 documentation to learn how to do this and build your own payer.
< p id="dc8c" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">This is a big improvement over account abstraction support on zkSync, and Not the last time. Over the next few months, we will continue to refine the interface and deploy improvements.
< p id="5e7d" box-sizing:="" inherit;="" margin:="" 2em="" 0px="" -0.46em;="" font-weight:="" 400;="" font-family:="" charter,="" georgia,="" cambria,="" "times="" new="" roman",="" times,="" serif;="" color: ="" rgb(41,="" 41,="" 41);="" word-break:="" break-word;="" font-style:="" normal;="" line-height :="" 32px;="" letter-spacing:="" -0.003em;="" font-size:="" 20px;"="">Important note: To incentivize diversity in the zkSync infrastructure, we The mainnet of will not be equipped with a "default" payer. This ensures that everyone is equal and that no entity is considered privileged in the network.
< h3>EIP-1559 support
EIP-1559 becomes the new standard for Ethereum transactions, now it is supported on zkSync 2.0 testnet .
While you can send EIP-1559 transactions, the details of zkSync are different from Ethereum. For example, all transactions start with are processed on a first-served basis, so no priority fees or tips are required. Currently, EIP-1559 transactions are a format, not a new layer of functionality in the protocol logic.
However, we plan to build several features on top of EIP-1559. More information will be shared in an upcoming release.
Everything else
Other updates added to this release include:
The Vyper programming language is now supported. See examples for an overview. Hardhat compiler plugin is now able to download compiler binaries instead of Docker images. zkEVM compatibility improvements : We actively listen to your feedback on smart contract behavior issues, and our VM is now more in line with Ethereum behavior.
If you are in our reset update After experiencing transaction issues (pending transactions, etc.), please reset your Metamask wallet. If this does not solve your problem, please join our Discord or email support@zksync.io.
Looking to the future
We are on track to launch the mainnet in 59 days. Stay tuned for the next exciting release.
Meanwhile, port or start your project to zkSync 2.0 by joining our testnet: v2.zksync.io.
p>