Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

Table of Contents
minLevel2

This is a Work In Progress.

Table of Contents
minLevel2

REV Vault Composition

Vaults are used to hold/send/receive REV, and are composed as follows:

...

  1. Bob asks Alice to fund her Vault. (For example, Alice is an exchange and Bob sends USD to Alice to convert to REV.)
  2. Alice gets a REV Address form Bob. (This REV Address is created by generating and EC key-pairs, and converting the public key into a REV Address.)
  3. Alice uses an app that generates the rholang code that will send REV from her Vault to a new Vault that is controlled using Bob's private key.
  4. Alice signs and deploys the rholang code
    1. DeployData should point to a publicKey, timestamp, "max gas limit".
  5. Alice proposes.
  6. SOMEHOW the system sets up code that reserves "max gas limit" from the sender's (Alice's) Vault (It will ultimately transfer from Alice's Vault to CasperPool Vault).
  7. Code in step 6 gets executed.
  8. After rholang code gets executed. Bob's REV Address is visible in the REV Vault Registry.
  9.  ("max gas limit" - "actual gas used") is refunded to Alice's REV Vault

REVAddress

Requirements:

  1. versioned 
  2. magic number - to make sure it refers to REV and not other coins
  3. checksum - to make sure that the whole address can be

...

  1. verified 
  2. compact
  3. human-readable - Base58 is recommended for avoiding human copying errors

Algorithm

rev-address = prefix + payload + checksum

payload = base58(hash(public-key))

checksum = base58(take(4, hash(prefix + payload)))

prefix = arbitrary ASCII prefix. We can choose here any string we want. Example: "rev", "revtest" etc

The hash algorithm used is Blake2b

REV Address Map

A registry of REV Addresses with the following characteristics is needed.

...