# Proof of time

--

Problem
All coins in hands of small amount of crooks
Most amount of BITCOINS and other CRYPTO are in the hands of small amount of crooks and that means they can manipulate course and accumulate even more CRYPTO.
KYC
It’s not an easy task to buy some bitcoins or other CRYPTO if you have some FIAT money. You must go through difficult KYC procedure which don’t suit for everyone. You must forget about your anonimity and become absolutly public for crooks and CIA and the other side is absolutly anonymous, most of cryptocurrency exchanges are registered in offshores and some exchanges can even change their registration from time to time.

In the beginning CRYPTO was a substitution of money, now the CRYPTO became an *Exclusive Investment Share* and only small amount of people using CRYPTO as currency.
How to distribute coins evenly ?
The only solution is to distribute your coins for free, but how to do it evenly ?

Solution
Proof of time
The best solution for even distribution is distribution based on time. That means, the user must proof his spent time.
Tokens
The only way to proof time moment is to proof it with token issued at the current moment of time.
The solution is to produce new token every DELTA (default 1 minute) period of time.
Every token is unique and has unique hash.
User need two tokens to proof time period (Start Token and End Token).
The user will recieve payment for proof time period

AMOUNT=COINS*PERIOD
COINS— amount of coins for single time step
PERIOD — amount of tokens issued between period (amount of time steps)
AMOUNT — total amount of coins user will recieve

There are no Users, only tokens and time periods based on tokens.
Coefficient
The main idea of coefficients is to reduce payment amount for similar time periods.
The unique time periods will recieve maximum amount of coins and similar time periods will recieve minimun amount of coins.
The default coefficient is 0.
The maximum coefficient is 1.

We need two coeficients for start and end token (begining and end of time period).
Multiplication
Everytime we make a payment near tokens increase their coefficient
Distribution
Scheme

Formulas
CCC = 0.5
DELTA=End-Start
NewC=COld + ((1-OldC)*CCC)*(Delta-Range)/Delta

CCC — Default increase coefficient
Start — start token number
End — end token number
DELTA — distance between start and end token
NewC — New coefficient
CCurrent — current coefficient
OldC — Old coefficient
Range — range from initial token (start or end) to current point (token)

Payment formula
PAYMENT=COINS*(End-Start)*((CEnd+CStart)/2)

PAYMENT — how much coins the user will recieve ?
COINS — amount of coins for single time step
End — End token number
Start — Start token number
CStart — Start Coefficient of start token
CEnd — End Coefficient of end token

Storage
The best solution for storage of large amount of tokens is NoSQL
Tokens(table)
ID — INTEGER UNSIGNED UNIQUE autoincrement — Token number
CStart — FLOAT — Start coefficient
CEnd — FLOAT — End coefficient
HASH — STRING UNIQUE — Randomly generated hash

Payments(table)
Date — ATETIME UNIQUE — Date of payment
Ammount — FLOAT — Amount of coins
StartHash — STRING — Hash of start token
EndHash — STRING — Hash of end token