Skip to content

Latest commit

 

History

History
93 lines (74 loc) · 2.42 KB

File metadata and controls

93 lines (74 loc) · 2.42 KB

  NPIP: 3
  Layer: Consensus (soft fork)
  Title: Community Fund Acummulation Chain Size reduction
  Author: alex v <alex@nav.community>
  Comments-Summary: No comments yet.
  Comments-URI: https://github.com/navcoin/npips/wiki/Comments:NPIP-0003
  Status: Draft
  Type: Standards Track
  Created: 2018-08-11

Table of Contents

Abstract

This NPIP describes a technique to concentrate the accumulation of coins on the Community Fund using fewer transaction outputs.

Motivation

To decrease the size of the blockchain.

Specification

A new consensus parameter nBlockSpreadCFundAccumulation is set for each of the networks. nCommunityFundAmount represents the contribution per block to the Community Fund.

Staking nodes will include an output with the block's contribution to the Community Fund only when the height of the block to be staked is a multiple of nBlockSpreadCFundAccumulation.

Validating nodes will check that only blocks whose height is a multiple of nBlockSpreadCFundAccumulation include a contribution to the Community Fund and that the contribution's value is equal to nCommunityFundAmount * nBlockSpreadCFundAccumulation.

Rationale

With the current implementation, each block's coinstake transaction includes an extra output representing the block's contribution to the Community Fund.

The size of this output is 11 bytes. At a rate of 1 Block per 30 Sec, 1051200 blocks are created per annum, meaning 11,563MB are unnecesarily added every year to the blockchain.

nBlockSpreadCFundAccumulation value Coins accumulated Every MB added per year Reduction
1 0.25NAV 30sec 11,563MB 0%
10 2.5NAV 5min 1,156MB 90%
100 25NAV 50min 0,11563MB 99%
250 62.5NAV 2h 5min 0,04625MB 99.6%
500 125NAV 4h 10min 0,023125MB 99.8%
1000 250NAV 8h 20min 0,0115625MB 99.9%

The reference implementation proposes a value of 500 blocks for nBlockSpreadCFundAccumulation.

Backwards Compatibility

This change is proposed as a Soft Fork, breaking compatibility with older versions of the client once network signals readiness.

The activation of the new consensus rules would be triggered after a minimum amount of staking weight signals the readiness:

  • Through the version bit 14
  • With a start time of May 1st, 2018
  • With an end time of May 1st, 2019

Reference Implementation

https://github.com/aguycalled/navcoin-core/tree/cfund-spread-accumulation