Signum SODIUM Hard Fork
- On May 10, 2020, version 2.5.0 of Signum Node (Java) was released. On June 20th, 2020, active nodes running the new version automatically participated in a hard fork at block height 765,000 to support the updated consensus protocol, SODIUM.
- Included CIPs 20, 22, 23, 24, and 25.
SODIUM was released in a dormant state in BRS 2.5.0 and activated on Block 765K, unlocking new platform-wide features, better performance, and security improvements.
The hard fork contained a set of modifications to the Signum protocol, specifically CIPs 22, 23, 24, and 25 (detailed at the end of this document).
To address easy community adoption and to ensure the stability of the network, a plan was developed involving the release of two new versions of the BRS software (now Signum Node)..
Stage 1: BRS 2.5
Including the protocol changes comprising SODIUM, major features, several fixes, and CIP updates. It was thoroughly tested on Testnet independently and in conjunction with BRS 3.0 to simulate both normal and failover scenarios.
Stage 2: BRS 3.0
Released in the second half of 2020, BRS 3.0, created by Harry1432, brought more major improvements to BRS in terms of architecture, performance, and user experience. It opened up new possibilities and made it easier to deploy on any platform or hardware architecture. It was much faster and more efficient than prior BRS versions, making running a BRS 3.0 node easier and more energy-efficient. It represented years of work toward making Signum greener while staying truly decentralized.
Phoenix, an open-source cross-platform Signum Wallet UI, became the default wallet UI in BRS 3.0. Phoenix provides multiple account management features, improved security, and better interoperability between Signum applications, making it easy for developers to expand on the Signum platform. Phoenix makes it easy to integrate Signum in projects and webshops for quick and easy payments. For users who would want to use the legacy UI, it was included alongside Phoenix
Included Protocol Upgrades by CIP
Smart Contract Upgrade (CIP20)
Prior to the Sodium hardfork, Signum’s smart contracts had a limiting state and page size. They would also have been prohibitively expensive in a future where the value of Signa was higher. The SODIUM protocol modifications based on CIP20 significantly upgraded Singum’s implementation of smart contracts, allowing for 50 times larger complexity with 10 times cheaper deployment and 100 times cheaper execution. Combined with the BlockTalk Java Smart Contract compiler, these changes ushered in a new chapter of implementing trustless projects on the Signum blockchain (DeFi, Non-Fungible Tokens, DEXs, Games, etc.).
Signum Deep Link Specification (CIP 22)
This specification of deep linking simplified the interoperability between Signum applications. It permitted the feature-rich platform to be split into specialized applications, i.e., asset exchange, basic wallet functions, messaging application, etc. while maintaining an integrated user experience. This made possible the creation of “meta-applications”, which serve as a container for those applications.
Fee Slot Enforcement (CIP23)
Concerning CIP23, the slot-based transaction fee system allows for variable fees depending on the transaction load on the blockchain. As a secondary goal, it prevents spamming blocks with a lot of transactions with minimum fees. However, the block validation did not strictly enforce the minimum fees relative to the slot numbers.
Implementing CIP23 enabled the block validation process to check the fee amounts of all transactions to ensure that the fees conformed to the minimum and to deem a block invalid if they do not. This change removed the possibility of forging blocks where all fees are disregarded causing an unenforceable and unbalanced distribution of fees among the blocks and their miners.
Blocktime Stabilization (CIP24)
A new logarithmic time constant was implemented to determine when blocks are accepted on the blockchain, giving everyone a more predictable timespan for transactions to be validated and an average blocktime closer to the the target of 4 minutes per block. The deadline computation and block time control prior to the Sodium hardfork provided a nearly perfect average block time of 4 minutes. However, as implemented, individual block times had a broad variation, with individual block times typically ranging from 10 to 2000 seconds. With the CIP24 protocol upgrade, this variation was reduced, resulting in block times ranging from 100 to 360 seconds. There were no changes to the expected (average) value of 240 seconds (4 minutes), and mining software was unaffected.
Subscription Fee Reduction (CIP25)
When the new fee model was introduced with CIP03, the execution costs of a subscription remained at 1 Signa per subscription payment. This change makes the fee for a subscription payment 0.00735 Signa.
SODIUM, BRS 2.5, and BRS 3.0 together represented over a year’s worth of work for the Signum Network, with rigorous testing, reviews, and iterations. As with all Signum hardforks, significant outreach to the community was undertaken so that the hardfork would represent consensus and be a smooth transition. The signum network attempts to reach 80% consensus on all hardforks as signified by the percentage of nodes upgrading to new protocols.