Skip to content

Latest commit

 

History

History
92 lines (60 loc) · 5.47 KB

cip-0062.md

File metadata and controls

92 lines (60 loc) · 5.47 KB
cip title author discussions-to status type created license
62
Gingerbread Hardfork
Paul Lange <@palango>, Gastón Ponti (@gastonponti)
Final
Meta
2023-06-20
Apache 2.0

This is the Meta CIP for the technical specifications of the Celo Gingerbread Hardfork.

Simple Summary

Enable the activation of the two parts of the Celo Gingerbread Hardfork specification which focuses on Ethereum alignment.

Abstract

Add support for protocol-impacting changes that increase alignment with Ethereum by removing unused Celo-specific features and protocol differences. This hardfork is named Gingerbread by the community.

This document proposes the following blocks at which to implement these changes in the Celo networks:

  • Baklava Testnet:
    • Part 1: on block 18785000
    • Part 2: on block 19157000
  • Alfajores Testnet
    • Part 1 and Part 2: on block 19814000
  • Celo Mainnet
    • Part 1 and Part 2: on block 21616000

For more information on the opcodes and their respective EIP and CIP implementations, please see the Specification section of this document.

Motivation

To enhance the EVM's capabilities and while pushing forward the Celo blockchain functionality in order to enable economic conditions for prosperity as well as reducing differences with Ethereum which will lead to increased compatibility and ease maintenance.

A second Part of the Gingerbread Hardfork was decided later to reduce even more the differences with Ethereum, and give us some future tools required for Celo's switch to become a Layer 2.

Specification

This Hardfork will be executed as a two steps release in Baklava, and just a release with one activation block for Alfajores and Mainnet.

The Gingerbread Hardfork specification meta document includes the following proposals.

CIPs to be included in the Part 1:

CIPs to be included in the Part 2:

With the above CIPs the block header contains the same data as the Ethereum chain. Therefore, the hash of the header will be changed so that it is compatible with Ethereum.

Deprecation Warning

As part of Celo's switch to become a Layer 2 and the deprecation of the full node incentives (part of this Hard Fork CIP-57) in future Hard Forks:

  • The Celo Legacy Transaction: rlp(nonce, gasPrice, gas, feeCurrency, gatewayFeeRecipient, gatewayFee, to, value, data, signatureV, signatureR, signatureS) will be changed to the original Ethereum transaction rlp(nonce, gasPrice, gas, to, value, data, signatureV, signatureR, signatureS), removing not only the gateway fields, but also the feeCurrency.
  • The Enveloped Transaction created in the CIP-42 (Type: 0x7c) will be completely deprecated

As the full node incentives are removed these transactions not only consume unnecessary space, but bring unnecessary complexity to our codebase.

For the sake of maintaining the functionality of paying fees in any of our whitelisted currencies the CIP-64 was added to this Hard Fork. Even if the three transactions will work in this Gingerbread Hard Fork, we recommend to start migrating any application that uses the Celo Legacy transaction for fee payments in a different currency, or any transaction of the type 0x7c (CIP-42) to this new CIP-64.

Rationale

Ethereum Compatibility: We include CIPs to increase compatibility with ethereum transactions and opcodes.

Celo Network Maintenance: Several CIPs are included to simplify maintenance of the Celo blockchain code by removing unused features.

Implementation

Adoption of the content of this CIP requires a hardfork as it introduces changes that are not backward compatible. The following clients with Celo support will implement the Celo Gingerbread hardfork specification:

  • celo-blockchain

Copyright

This work is licensed under the Apache License, Version 2.0.