lips icon indicating copy to clipboard operation
lips copied to clipboard

📘 Lisk improvement proposals

Lisk Improvement Proposals

Welcome to the LIPS repository where community members can propose changes to the Lisk protocol and its software implementation.

Contributing

Before contributing please read carefully the following guidelines.

If you have any questions on how to proceed with a new or existing proposal, please contact the LIPs editor at [email protected].

Proposals

Number Title Author Type Status
0001 LIP purpose and guidelines Lisk Foundation Process Active
0002 Change to byte based block size limit Iker Alustiza, Nazar Hussain Standards Track Active
0003 Uniform ordering of delegates list Iker Alustiza Standards Track Active
0004 Introduce robust peer selection and banning mechanism Jan Hackfeld Standards Track Active
0005 Introduce new flexible, resilient and modular architecture for Lisk Core Nazar Hussain Informational Obsolete
0006 Improve transaction processing efficiency Usman Khan Informational Obsolete
0007 Use a consistent and informative versioning scheme Maciej Baj Informational Active
0008 Remove pre-hashing for block and transaction signatures Andreas Kendziorra Standards Track Active
0009 Mitigate transaction replay on different chains Manu Nelamane Siddalingegowda, Iker Alustiza Standards Track Active
0010 Use SHA3-256 hash of block header as blockID Andreas Kendziorra Standards Track Withdrawn
0011 Implement extensible data persistence model Nazar Hussain Informational Obsolete
0012 Remove redundant properties from transaction objects Andreas Kendziorra Standards Track Withdrawn
0013 Replace static fee system by dynamic fee system Iker Alustiza Standards Track Active
0014 Introduce BFT consensus protocol Jan Hackfeld Standards Track Active
0015 Enable transaction invalidation by using nonces instead of timestamps Andreas Kendziorra Standards Track Active
0016 Implement fee estimation algorithm for dynamic fee system Iker Alustiza Standards Track Active
0017 Make multisignature accounts more flexible, prevent spamming, and prevent signature mutability Andreas Kendziorra Standards Track Active
0018 Use base32 encoding of long hash of public key plus checksum for address Andreas Kendziorra Standards Track Active
0019 Use full SHA-256 hash of transaction header as transactionID Andreas Kendziorra Standards Track Active
0020 Use full SHA-256 hash of block header as blockID Andreas Kendziorra Standards Track Active
0021 Change to one vote per account Jan Hackfeld Standards Track Withdrawn
0022 Use Randao-based scheme to include standby delegates and reorder delegate list Iker Alustiza Standards Track Active
0023 Introduce vote locking periods and new vote weight definition Maxime Gagnebin Standards Track Active
0024 Punish BFT violations Maxime Gagnebin Standards Track Active
0025 Introduce minimum balance requirement for accounts Iker Alustiza Standards Track Active
0026 Establish block validity by applying transactions sequentially Maxime Gagnebin Standards Track Active
0027 A generic serialization method Maxime Gagnebin, Andreas Kendziorra Informational Active
0028 Define schema and use generic serialization for transactions Iker Alustiza Standards Track Active
0029 Define schema and use generic serialization for blocks Alessandro Ricottone Standards Track Active
0030 Define schema and use generic serialization for account state Alessandro Ricottone Standards Track Active
0031 Introduce Merkle trees and inclusion proofs Alessandro Ricottone Informational Active
0032 Replace payload hash with Merkle tree root in block header Alessandro Ricottone Standards Track Active
0033 Introduce numbering scheme for transaction types Nazar Hussain, Iker Alustiza Informational Withdrawn
0034 Define new block schema and processing for genesis block Jan Hackfeld, Nazar Hussain Standards Track Active
0035 Define decentralized snapshot and hardfork process Jan Hackfeld, Nazar Hussain Standards Track Active
0036 Introduce transaction properties moduleID and assetID Shusetsu Toda Standards Track Active
0037 Use message tags and chain identifiers for signatures Andreas Kendziorra Standards Track Draft
0038 Introduce BLS signatures Andreas Kendziorra Informational Draft
0039 Introduce sparse Merkle trees Alessandro Ricottone Informational Draft
0040 Define state model and state root Alessandro Ricottone Informational Draft
0041 Introduce Auth module Alessandro Ricottone, Ishan Tiwari Standards Track Draft
0042 Define state transitions of Reward module Iker Alustiza, Mehmet Egemen Albayrak Standards Track Draft
0043 Introduce chain registration mechanism Iker Alustiza Standards Track Draft
0044 Introduce Validators module Alessandro Ricottone, Andreas Kendziorra, Rishi Mittal Standards Track Draft
0045 Introduce Interoperability module Alessandro Ricottone, Mitsuaki Uchimoto Standards Track Draft
0046 Define state and state transitions of Random module Iker Alustiza, Ishan Tiwari Standards Track Draft
0047 Introduce PoA module Iker Alustiza, Ishan Tiwari Standards Track Draft
0048 Introduce Fee module Maxime Gagnebin, Mitsuaki Uchimoto Standards Track Draft
0049 Introduce cross-chain messages Maxime Gagnebin Standards Track Draft
0050 Introduce Legacy module Maxime Gagnebin Standards Track Draft
0051 Define state and state transitions of Token module Maxime Gagnebin Standards Track Draft
0052 Introduce NFT module Maxime Gagnebin Standards Track Draft
0053 Introduce cross-chain update mechanism Maxime Gagnebin Standards Track Draft
0054 Introduce sidechain recovery mechanism Iker Alustiza Standards Track Draft
0055 Update block schema and block processing Andreas Kendziorra, Alessandro Ricottone, Rishi Mittal Standards Track Draft
0056 Add weights to Lisk-BFT consensus protocol Jan Hackfeld Standards Track Draft
0057 Define state and state transitions of DPoS module Maxime Gagnebin, Nazar Hussain, Mehmet Egemen Albayrak Standards Track Draft
0058 Introduce BFT module Jan Hackfeld, Mitsuaki Uchimoto Standards Track Draft
0059 Introduce unlocking condition for incentivizing certificate generation Jan Hackfeld Standards Track Draft
0060 Update genesis block schema and processing Iker Alustiza, Rishi Mittal Standards Track Draft
0061 Introduce certificate generation mechanism Jan Hackfeld Standards Track Draft
0062 Use pre-hashing for signatures Maxime Gagnebin Standards Track Draft
0063 Define mainnet configuration and migration for Lisk Core v4 Andreas Kendziorra, Sergey Shemyakov Standards Track Draft
0064 Disallow non-required properties in Lisk codec Andreas Kendziorra Standards Track Draft
0065 Introduce events and add events root to block headers Alessandro Ricottone, Mehmet Egemen Albayrak Standards Track Draft
0066 Introduce tree based key derivation and account recovery Maxime Gagnebin Informational Draft
0067 Introduce a generic keystore Maxime Gagnebin Informational Draft
0068 Define new transaction schema Grigorios Koumoutsos, Maxime Gagnebin Standards Track Draft
0069 Update Lisk SDK modular blockchain architecture Shusetsu Toda Informational Draft