Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 6.81 KB

tip-0022.md

File metadata and controls

60 lines (47 loc) · 6.81 KB
tip title description author discussions-to status type layer created
22
IOTA Protocol Parameters
Describes the global protocol parameters for the IOTA protocol
Wolfgang Welz (@Wollac) <wolfgang.welz@iota.org>
Active
Standards
Core
2021-11-29

Summary

This TIP describes the global protocol parameters for the IOTA protocol.

Motivation

Various other protocol TIPs rely on certain constants that need to be defined for an actual implementations of nodes or other applications using the protocol. This TIP serves as a single document to provide these parameters. It also serves as a historical record of protocol parameter changes.

Detailed design

Name Value Description
Network Name "iota-mainnet" Identifier string of the network. Its hash it used for the Network ID field in transactions.
Protocol Version 2 Protocol version currently used by the network
Max Block Length 32768 Maximum length of a block in bytes. Limits Tangle storage size and communication costs.
Max Parents Count 8 Maximum number of parents of a block.
Min PoW Score 1500.0 Minimum PoW score for blocks to pass syntactic validation.
First Milestone Index 1 First valid milestone index.
Max IOTA Supply 4600000000000000 Total amount of IOTA coins in circulation.
Max Inputs Count 128 Maximum number of inputs in a transaction payload.
Max Outputs Count 128 Maximum number of outputs in a transaction payload.
Max Native Token Count 64 Maximum number of different native tokens that can be referenced in one transaction.
Max Tag Length 64 Maximum length of a Tag field in bytes.
Max Metadata Length 8192 Maximum length of a Metadata field in bytes.
VByte Cost 250 Minimum amount of IOTA that need to be deposited per vbyte of an output.
SLIP-44 Coin Type (decimal) 4218 Registered coin type (decimal) for usage in level 2 of BIP44 described in chapter "Coin type".
SLIP-44 Path Component (coin_type') 0x8000107a Registered path component for usage in level 2 of BIP44 described in chapter "Coin type".
Bech32 Human-Readable Part iota HRP prefix to use for Bech32 encoded IOTA addresses. (e.g. iota1zzy3drvj6zugek60srqwhqctkjldx3qle5yuvapj)
Bech32 Human-Readable Part (Test) atoi HRP prefix to use for Bech32 encoded IOTA addresses on test- or development networks. (e.g. atoi1zzy3drvj6zugek60srqwhqctkjldx3qle5fhvhm6)

Rationale for parameter choices

Transaction and block limits

The block parameter Max Block Length and Max Parent Count, as well as the transaction parameters Max Inputs Count, Max Outputs Count, Max Native Token Count, Max Tag Length and Max Metadata Length govern the block and transaction validity. Their values have been chosen to ensure functionality of the protocol within constrained resource restrictions. Furthermore, choosing more conservatives values here is preferable as increasing such limits can always been done preserving backward compatibility.

Dust protection

The VByte Cost is the core parameter of the dust protection. The reasoning behind its value is explained in TIP-19 Dust Protection.

Copyright

Copyright and related rights waived via CC0.