BSC Kepler Hardfork – BSC Fast Finality Governance and EVM compatibility of Ethereum Shanghai Upgrade



Blog post image.

The upcoming hardfork on BSC (BNB Smart Chain), named Kepler, introduces several significant updates. Aligning closely with Ethereum’s Shanghai Upgrade, this update introduces BSC-specific enhancements.

Following the Kepler hardfork, the changes will transition from being based on block height to having an effect on Unix time. The Kepler hardfork is scheduled to become effective on the following dates and times:

For Testnet: Tuesday, December 19, 2023, at 8:00 AM UTC

For Mainnet: Tuesday, January 23, 2024, at 8:00 AM UTC

BSC-Specific Updates

BEP-319: Optimize the Incentive Mechanism of the Fast Finality Feature

With BEP-126, BNB Smart Chain has enabled blocks to be finalized within approximately 7.5 seconds. This is a crucial aspect of BNB Smart Chain, as it relates to the speed and reliability with which transactions are confirmed and finalized. 

However, if validators are insufficiently incentivized to participate in this process, it could lead to delays or uncertainties in transaction finalization, thereby affecting the overall efficiency and trustworthiness of the network. We need a flexible mechanism to adjust the rewards of validators in response to the evolving needs and dynamics of the network. 

This update will move the logic into the smart contract, introducing the mechanism to adjust the rewards governable through community voting. 

BEP-319 proposes three optimizations to the incentive mechanism of the Fast Finality feature on BSC.

  1. Making Fast Finality rewards governable while maintaining the basic block transaction fee allocation ratio.
  2. Ensuring a more balanced distribution of Fast Finality rewards between epochs.
  3. Extending the submission deadline for malicious voting evidence.

Ethereum Compatibility Upgrades

BEP-216: Implement EIP-3855 PUSH0 Instruction (EIP-3885)

Objective: Introduces a new opcode (`PUSH0`) to the Ethereum Virtual Machine (EVM), which pushes the byte 0 onto the stack.

Impact: This update is designed to make smart contract development more efficient and cost-effective by providing a simple way to push a common value (zero) onto the stack.

BEP-217: Implement EIP-3860 Limit and Meter Initcode(EIP-3860)

Objective: Puts a limit on the `initcode` (initialization code for creating contracts), and introduces metering for it.

Impact: Aims to prevent excessive resource consumption during contract creation, enhancing the network’s security and performance.

BEP-311: Warm COINBASE(EIP-3651)

Objective: This introduces a new transaction type to allow optional access lists.

Impact: By “warming up” certain addresses (like the `COINBASE` address), transactions can specify certain slots to be pre-loaded, reducing gas costs and improving efficiency for complex transactions.

BEP-312: Announce EIP-6049 Deprecate SELFDESTRUCT (EIP-6049)

Objective: Aims to eventually deprecate the `SELFDESTRUCT` opcode in Ethereum.

Impact: This opcode has been a source of various issues on Ethereum, including state size management and security vulnerabilities. Deprecating it is a step towards a more secure and manageable network.

Key Actions

All validators and node operators on BNB Smart Chain are required to upgrade their BSC Geth clients to the respective new versions before the specified block height. This will ensure a smooth transition and maintain network stability.

The hardfork is implemented using the following new versions of Geth:

Upgrade to the latest version, Geth v1.3.5. The download link and installation instructions can be found here.


Tags: