PIP-0037.md 1.9 KB

  PIP: PIP-0037
  Title: Distinguish account updates between active/passive mode
  Type: Protocol
  Impact: Hard-Fork
  Author: Albert Molina based on @bentley idea at Discord Channel and others
  Comments-URI: https://discord.gg/sJqcgtD
  Status: Proposed
  Created: 2019-10-20

Summary

Update the previous Account.updated_block field to distinguish between active updates versus passive updates

Motivation

Motivated by the activation of the PIP-0012 and some improvements made that distinguish between an active usage of the account versus a passive modification

Background

Currently the OP_RECOVER operation is based on a single updated_block field that is updated each time an account changes.

The change can be caused by any operation that affects this account, even if the private key of this account has not been used (for example, receiving a transaction)

In order to distinguish when the update has been made in active or passive mode, the proposal is to separate the single update_block field in 2 fields:

  • updated_on_block_active_mode
  • updated_on_block_passive_mode

Adding this distinction, will allow a fair use of the OP_RECOVER operation as was originally designed in initial PascalCoin WhitePaper

Specification

Add 2 new fields on Account object:

  • updated_on_block_active_mode
  • updated_on_block_passive_mode

Delete the previous updated_block field because can be calculated with =MAX( updated_on_block_active_mode, updated_on_block_passive_mode)

Definition of active mode

When an account is the originator of the operation and the private key of this account has been used.

For example: A Sender of any transaction, or when an account has been changed it's state including when is not the signer of the operation

By definition, every time n_operation field is updated, updated_on_block_active_mode is updated too