Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
143 lines (82 sloc) 4.85 KB
FATIP Title Status Category Author Created
13 Mineable Token Standard WIP Token Standard Devon Katz<devonk@dbgrow.com> 8-17-2018

Summary [OUT OF DATE]

This standard defines a mineable token standard that takes inspiration from Bitcoin and EIP-918.

Motivation

Address the main caveat of existing FAT standards: Issuance is not trustless. FATIP-0 and FATIP-1 require signatures from the issuing identity to coinbase transaction the initial tokens into existence, after which trade is trustless and decentralized.

The mineable token standard allows tokens to be distributed trustlessly like in reputable ERC-20 ICO's and other smart contract platforms. This effectively turns the initial coin offering into an initial mining offering (IMO) which anyone can participate in.

Specification inherits FATIP-0

This standard inherits upon the Fungible Token Standard (FTIP-0) for its core functionality.

Issuance Chain inherits FATIP-0

Issuance Entry inherits FATIP-0

Fields Excluded

Field Reason
supply Mineable tokens asymtote towards their final supply

Fields Added

Field Type Description Validation Required
difficulty number Difficulty coefficient for the POW problem integer >= 1 Y
blockInterval number Number of Factom blocks to limit each problem to. integer >= 1 Y
reward number Reward in amount FAT tokens for each solution number >= 0 Y

Transaction Chain inherits FATIP-0

Transaction Entry inherits FATIP-0

Fields Excluded

Field Reason
idSalt ID sig verification replaced with PoW
idNonce ID sig verification replaced with PoW
idSignature ID sig verification replaced with PoW

Fields Changed

Field Type Description Validation Required
input.amount number The amount of tokens to send. Ignored for coinbase transactions due to PoW solution reward. >=0 Y

Fields Added

Field Type Description Validation Required
solution string The solution to the current POW problem Proof of solution via hashcash algorithm Y

Contextual Validation

At the heart of the standard lies the contextual proof of work validation rules for entries on the transaction chain.

Proof Of Work Implementation

Participating paties run a hashcash algorithm to solve a proof of work problem that increases in difficulty over time, similar to Bitcoin.

In this case the Factom Blockchain is used as a source of randomness and determinism to facilitate an reliable PoW system. Seed material for the problem is provided by Factom.

Problem Calculation

The hash to find is calculated in a decentralized way using several fields and parameters:

  • difficulty - The number of F's to prefix the problem with. From the token's issuance
  • blockInterval - The interval in Factom blocks for invalidating the PoW problem starting from 0. From the tokens issuance.
  • keyMR - The key merkle root of Factom for the given block
problem = difficulty + keyMR
problem = 0000000 + d0a5f8048231efd6ddfba469834db6b2efb9c0f505d9e400f5c39e14713139d1

Every blockInterval blocks a new problem is deterministically calculated by participants.

Redemption & Reward

The first participant to solve the current proof of work problem submits a transaction entry with the solution to the Factom blockchain. Valid solutions entitle the participant to send a reward quantity of FAT tokens sent to a public Factoid address of their choice.

Implementation

Notes

This approach can also be applied to FAT tokens with somewhat more complexity

Copyright

Copyright and related rights waived via CC0.

You can’t perform that action at this time.