<pre>
   PIP: PIP-0014
   Title: New operation to certify accounts for extended recovery period
   Type: Protocol
   Impact: Hard-Fork
   Author: Dr. Muhammad Amer <i>&lt;amereyedc@outlook.com&gt;</i>
   Comments-URI: https://discord.gg/sJqcgtD  (channel #pip-0014)
   Status: Proposed
   Created: 2018-01-04
 </pre>
 
 ## 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:

```pascal
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][1] 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][1]

[1]: https://github.com/PascalCoin/PascalCoin/blob/master/PIP/PIP-0012.md