Proposing Evolutionary Changes in Starknet Transaction Structure: A Comprehensive Overview

Share Dialog

Introduction

Starknet, in its pursuit of continuous improvement, is proposing a significant shift in its transaction structure through Starknet Improvement Proposal (SNIP). The primary objective is to accommodate future API and protocol changes seamlessly, laying the foundation for the integration of a fee market, Volition, Paymaster, and Nonce generalization.

Motivation

The driving force behind SNIP lies in the ambition to minimize disruptive alterations to the Starknet transaction structure. This proposal introduces a new transaction version capable of supporting upcoming API and protocol modifications, with a focus on five major changes anticipated in the near future:

  1. Fee Market: Implementing a mechanism to enable users to utilize the network efficiently, even during congestion.

  2. Volition: Introducing a hybris state design that allows users to choose their preferred data availability mode.

  3. Paymaster: Enriching the protocol with fee abstraction, allowing entities other than the transaction sender to cover transaction fees.

  4. Nonce Generalization: Supporting semi-nonce abstraction, providing users with flexibility in specifying channels for transactions, fostering parallelism.

  5. Account Deployment in First Transaction: Introducing an account deployment data field in Invoke and Declare transactions, eliminating the need for a separate transaction to deploy an account.

Specification: The proposal outlines three new transaction structures along with their corresponding fields, categorized into common, fee-related, Volition-related, Paymaster-related, and specific fields for Invoke, Declare, and DeployAccount transactions. The comprehensive specifications include API changes, common fields, and a detailed breakdown of specific fields for each transaction type.

Protocol Changes: Defining common transaction fields and their hash calculation methods, the proposal ensures compatibility and smooth evolution of Starknet. The introduction of a constant chain_id and specific transaction hash calculation methods for Invoke, Declare, and DeployAccount transactions enhances clarity and consistency.

System Calls Changes: The update to the get_execution_info syscall ensures compatibility with both old and new transaction versions. It introduces a new struct, TxInfo, containing essential information for v3 transactions, maintaining backward compatibility by preserving existing fields.

Backward Compatibility: Acknowledging the importance of continuity, Starknet commits to providing support for older transaction versions during a transition phase. However, it emphasizes that the older version will not access new features like the Fee market, Volition, and Paymaster once implemented on Starknet.

Conclusion

In proposing these evolutionary changes, Starknet aims to usher in a new era of flexibility, efficiency, and compatibility. By carefully considering future developments and addressing the need for minimal disruption, this SNIP lays the groundwork for a robust and adaptable Starknet ecosystem.