Procházet zdrojové kódy

PIP-0012: Change account recovery to 10 years

Herman Schoenfeld před 7 roky
rodič
revize
fb6d79a682
2 změnil soubory, kde provedl 54 přidání a 0 odebrání
  1. 53 0
      PIP/PIP-0012.md
  2. 1 0
      PIP/README.md

+ 53 - 0
PIP/PIP-0012.md

@@ -0,0 +1,53 @@
+<pre>
+  PIP: PIP-0012
+  Title: Change account recovery to 10 years
+  Type: Protocol
+  Impact: Hard-Fork
+  Author: Herman Schoenfeld <i>&lt;[email protected]&gt;</i>
+  Comments-URI: https://discord.gg/sJqcgtD  (channel #pip-0012)
+  Status: Proposed
+  Created: 2018-01-03
+</pre>
+
+## 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.

+ 1 - 0
PIP/README.md

@@ -18,4 +18,5 @@ If they wish to continue, copy [this template](PIP-template.md) and ensure your
 | [9](PIP-0009.md)      | RandomHash: GPU & ASIC Resistant Hash Algorithm | Herman Schoenfeld       | Protocol       | Proposed |
 | [10](PIP-0010.md)     | 50% Inflation Reduction                  | Herman Schoenfeld              | Protocol       | Proposed |
 | [11](PIP-0011.md)     | 20% Developer Reward                     | Herman Schoenfeld              | Protocol       | Proposed |
+| [12](PIP-0012.md)     | Change account recovery to 10 years      | Herman Schoenfeld              | Protocol       | Proposed |