Skip to content

Latest commit

 

History

History
53 lines (33 loc) · 2.92 KB

PIP-0012.md

File metadata and controls

53 lines (33 loc) · 2.92 KB
  PIP: PIP-0012
  Title: Change account recovery to 10 years
  Type: Protocol
  Impact: Hard-Fork
  Author: Herman Schoenfeld <herman@sphere10.com>
  Comments-URI: https://discord.gg/sJqcgtD  (channel #pip-0012)
  Status: Proposed
  Created: 2018-01-03

Summary

It is proposed that the RECOVER operation be changed from 4 years to 10 and to include the account itself in the recovery.

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. Whilst this is a good start, it does not solve the problem of PASA-rot, which is a far more limited (and important) resource than PASC. Also, community has expressed discomfort with the 4 year period, pointing out long-term savers could be seriously afflicted.

Specification

The proposal here is to simply to change RECOVER operation inactivity period from 4 years to 10 and to simply update the key of the recovered account rather than transferring it's balance. This allows both the PASA and PASC to be recovered in a single operation, with minimal code changes.

Definitions

let RecoverOperation denote the recovery operation.

let RecoverOperation.InactiveAccount denote the account being recovered

let RecoverOperation.NewOwnerAccount denote the destination account to transfer the recovered PASC to.

Current Algorithm

  1. Verify RecoverOperation in similar way to TRANSACTION operations
  2. Verify ( SafeBox.LastBlockNumber - SafeBox.Accounts[ RecoverOperation.InactiveAccount].LastUpdatedBlock ) >= 420480
  3. Transfer balance from RecoverOperation.InactiveAccount to RecoverOperation.NewOwnerAccount

Proposed Algorithm

let RecoverOperation.NewOwnerKey denote the new owners account key.

  1. Verify RecoverOperation in similar manner to CHANGE KEY operation
  2. Verify ( SafeBox.LastBlockNumber - SafeBox.Accounts[ RecoverOperation.InactiveAccount ].LastUpdatedBlock ) >= 1051200
  3. Change key of InactiveAccount to RecoverOperation.NewOwnerKey

Rationale

Other approaches were considered such as allowing partial recovery of funds every sub-period. For example, allowing 10% of the balance to be recovered every 2 weeks, after 4 years of inactivity. All such approaches were significantly more complicated and required much more development, which adds hard-fork risk (especially when combined with other PIPs in V3 release). As a result, the simplest most elegant solution was chosen.

Backwards Compatibility

This proposal is not backwards compatible and requires a hard-fork activation. However, since PascalCoin has not been around for 4 years, the old RECOVER algorithm can safely be discarded from the protocol.