PIP-0014.md 3.4 KB

   PIP: PIP-0014
   Title: New operation to certify accounts for extended recovery period
   Type: Protocol
   Impact: Hard-Fork
   Author: Dr. Muhammad Amer <[email protected]>
   Comments-URI: https://discord.gg/sJqcgtD  (channel #pip-0014)
   Status: Proposed
   Created: 2018-01-04
 

## Summary

It is proposed to pay a fee to the development fund by an account holder in order to keep the account active for an extended period of time (20 years).

## Motivation

Coinrot is a serious economic issue afflicting almost all other cryptocurrencies. Coinrot is the phenomenon of coins being permanently lost due to lost/corrupted keys and/or natural death. It is estimated that 20% of Bitcoins have already rotted. PascalCoin solves this problem by allowing PASC to be transferred from an account, without owners signature, after an inactivity period of 4 years. Although this solves the coinrot problem at the same time many users want to keep PascalCoin in their wallet for longer period of time without fear of forgetting to do transaction and losing funds within these 4 years. Community has expressed discomfort over this as funds cannot be saved for longer period of time.

## Specification

A new operation called Certify Account is proposed which allows an account to prevent recovery for 20 years and which pays 1 PASC to account 0-10.

New Operation: CERTIFY ACCOUNT

This operation will be composed of the following fields:

  • Account: the account which is to be certified
  • Fee: the network fee paid to miner
  • Developer Fee: the fee to pay developers
  • Signer: the account which pays both fees
  • Signature: ECDSA signature of entire operation

Consensus Rules

  • The Developer Fee must equal 1 PASC
  • The Signer Account balance must greater than or equal to (Fee + Developer Fee)
  • The public keys for Signer Account and Account must be identical
  • The Signature must be well-formed ECDSA signature verifiable using Signer Account's public key

Mutation Rules

  • Account.State is changed to new state called CERTIFIED
  • Account.LockedUntilBlock field is changed to CURRENT BLOCK NUMBER + 2102400, which is 20 years from the date minted into a block.
  • The Developer Fee is transferred from Signer Account to account 0-10

Update Operation: RECOVER ACCOUNT

In order to support Certified Accounts, the RECOVER ACCOUNT operation must add the following consensus rule:

If (Account.State = CERTIFIED) AND (CURRENT_BLOCK_NUMBER >= Account.LockedUntilBlock) then
   // proceed to next step of existing RECOVER ACCOUNT consensus rules
else 
   Error('Cannot RECOVER an unexpired certified account')

## Rationale

As there is already a PIP in place to extend the recover operation from 4 years to 10, by adopting this PIP, the user can also make an informed decision to get his account maintained for longer period of time without fear of losing funds and account. The fee will be paid to Developer Fund which will be beneficial for the growth of PascalCoin.

## Backwards Compatibility

This proposal is not backwards compatible and requires a hard-fork activation.

## Acknowledgements

The technical specification was provided by Herman Schoenfeld based on the concepts provided in this PIP.

Links

  1. PIP-0012: Change account recovery to 10 years