Maptoken (MAPT) is a utility token designed and implemented to serve a variety of use cases in Miner Ape Pool (MAP) ecosystem. MAPT enables access to MAP future products and projects for the MAPT investors. Users must own a MAP Non-fungible token (NFT) to be a MAPT investor. MAPT transactions are carried out within its own private blockchain network to provide a secure environment and minimize resource usage. Thus the investors don't need to set up their own infrastructure to get mining rewards, instead they can stake MAP NFTs in our decentralized application (dAPP) to collect the mining rewards continuously.
Maptoken (MAPT) applies Proof of Elapsed Time (PoET) and Proof of Work (PoW) consensus mechanisms to accomplish a secure and low energy consumption blockchain network. MAPT is a partially decentralized utility token and runs in a secure environment to provide maximum security for its investors.
MAPT represents digital units on Miner Ape Pool private blockchain network. It provides value to the investors within the MAP ecosystem. Investors can use MAPT as a means of payment on the platform. In addition, MAPT will be an asset in the future to distinguish investors from other users. Even if an investor's total money has been spent, the total gathering throughout transaction history can be obtained by looking at the blocks in the blockchain, thus granting privileges to long-term investors.
Although only the MAP non-fungible token (NFT) owners have access to the MAPT blockchain network it is implemented in a way that will allow users from the follow-up projects of MAP to invest in the future.
MAPT has a unique consensus mechanism that is very similar to the Proof of Elapsed Time (PoET). The algorithm generates a random sleep time for each peer in the private blockchain network. While the blocks are being generated constantly, the node with the lowest wait-time wins the block, becomes the validator, and gets the reward. Although the validation process is similar to the proof of work it does not consume as much energy since the nodes switch off for a certain period.
Transactions and Blocks
Blocks are data structures in the blockchain that store the transactions in the network to make the whole transaction history accessible. Thus a block permanently stores all the records that cannot be altered or removed.
MAPT algorithm constantly generates blocks and adds them to the blockchain if the block is validated by one of the miners. Block generating node stacks transaction into blocks if a transaction is available in the mempool otherwise it uses the current timestamp to generate block data.
A transaction has timestamp, amount, address, public key, and signature fields as shown in the Figure 1. Each transaction has a unique signature generated using the private key of the MAPT account that creates the transaction. A verification process runs before creating a block using the transaction data.
A block contains several fields along with the transaction data as shown in the Figure 2. Block are connected each other with a hash value. Each block's hash value is generated these fields and previous block's hash value to create a link between two. As a result, whole connection creates a chain which is called blockchain.
There are two types of nodes in the MAPT blockchain network; validating nodes those who are miners, and generating node the root node that generates the blocks. A node could be in a separate computer, a virtual machine, or a thread if the whole network is scaled enough. A node stores a full copy of the blockchain data to provide its persistency. A validating node validates blocks, verifies signatures and hashes, and synchronizes data with the other nodes in the network. Each miner, after the mint, starts its own node and becomes a part of the network by validating the incoming blocks.
Nodes can request the blockchain data, they could replace their local blockchain with the requested blockchain data, which makes the validation process possible.
Connection in between all the nodes in the network. Whenever a new block is generated by the generating node, it publishes the block to the block channel with the validation label on it. Afterward, the listener miner in the network with the lowest wait-time gets the block data and validates it then sends it back to the block channel to be added to the blockchain by the nodes. If the validator node's process, the miner with the lowest wait time, shuts down or encounters a fatal error, the block would not be added to the chain. If the winner detects an invalid block then the block is discarded as well.
Block generation is made to be independent of the transactions to make it possible to adjust the generation rate. There are multiple ways to increase the block generation rate:
- Adjust the difficulty of the mining process
- Reduce the miners' sleep time
Block generation rate does not affect the validation process so as the block channel viability. Block channel acts like a pub/sub mechanism and each block generated is validated in sequence and a new block cannot be generated without the previous one to be validated. For this reason, the position of the blocks in the blockchain is guaranteed.
Economics of Maptoken
The supply of MAPT will increase permanently, and all fresh supplies will be given to the miners as a block subsidy. Each block will have a certain amount of token directly proportional to the miner's rarity score. The mining reward is directly linked to the rarity score of the miner non-fungible tokens. The dynamic rarity score of each miner is obtained from a third-party data provider that affects the block data which is subject to the PoW process of the other miners. If rarity scores change with a future update, a version detail and old values will be available in the same data provider to not break the PoW algorithm.
A block generation is a creation of a new block on the blockchain. Blocks are generated by the root node in the network. Each generation could be finalized to be added to the blockchain only after being validated by a miner. During the block generation, the algorithm:
- Gets hash of the previous block,
- Gets the current difficulty level,
- Extracts timestamp from the current time which will eventually represent the exact block creation date,
- Fetches the rarity score of the next validator from the data provider,
- Fetches the data provider version,
- Gets the transaction from the Mempool
then using all these data, tries to generate a proper hash for the difficulty level by adjusting the nonce value. As a result, the block is created with a unique SHA-256 hash value to be validated by the miners.
As the root node starts the process it constantly generates the blocks with the rate calculated using the total amount of miners in the network. If there is at least one miner in the network, the generating node starts reading data from the blockchain to process the data and adjust the nonce field of the block to generate proper hash value for the block as shown in the Figure 3. After the generation, the block is sent to the Block Channel to be validated by the validators. All the peers in the network listens for the validated nodes to be added into their local blockchain.
Block Mining (Validation)
Each miner validates the created block by the root node and decides whether it should be placed in the blockchain or discarded. Basically, a miner mimics the block creation process to check the validness of each block field such as data, hash, previous hash, nonce, and so on. In short, the whole validation process is the reverse-engineered version of the block generation.
The validation process is accomplished by the following rules:
- The block must have the proper previous hash value which represents the hash of the previous block
- The block must meet the PoW requirements
- The block hash must be a valid combination of the block fields
Mining starts with listening to the block channel for the block generations. If a generated block in the block channel contains the id of a specific miner node then the miner node fetches the block data from the channel deserializes it and starts its validation process as depicted in Figure 4. After the validation process is over, the block is sent back to the block channel with the proper label on it to notify other nodes about this newly validate block to be added to their local blockchain. In cases where there is a transaction in the mempool, the miner node should pursue its validation process by considering this transaction.
Block Winner Selection
In the block winner selection process, miners are being selected according to the consensus mechanism among all of the active miners, since the whole process is being handled within a private blockchain network, a secure environment. The algorithm keeps track of the recently selected miners to provide even distribution among them and resets it after each cycle.
Each miner in the network is a validator and there is no other rule to be get rewarded after the block creation other than being active in the network. Network activity is accomplished automatically right after the first non-fungible token metadata request and could be restricted by the administration as a result of term violations.
Mempool acts like a pub/sub mechanism which is very identical to the Block Channel. Each transaction created is sent to the mempool to be fetched by the subscriber root node. Whenever a transaction is available, the transaction would be contained in the block data then be validated by the miners. In this way, while the block generation does not require any transaction to be available, the transaction records will also be possible to keep track of, which makes it possible to detect unintended or malicious transactions.
Maptoken in Miner Ape Pool Ecosystem
All the network activity starts with the first mint. After the first mint, an underlying MAPT account for both the owner and NFTs is created. Owner Ethereum accounts in which they hold the MAP NFTs are directly linked to their MAPT account to pursue signing and verification process using their Ethereum wallets linked to their accounts. However, the underlying mechanism uses elliptic-curve cryptography to generate public and private keys for the MAPT accounts to sign and verify the transactions before sending and reading them from the Mempool respectively. It should be well understood that NFT and holders have different MAPT accounts since the NFTs act like independent miners in the network and get rewarded according to their rarity score. Although holder accounts are directly linked to the MAPT accounts the NFT accounts are not linked to the Ethereum accounts. Therefore the owner's ability to access funds will also be transferred to the new owner if NFT is sold in the secondary market. For example, if an NFT MAPT account has X amount of MAPT as funds, the owner of this NFT sells the NFT on the secondary market without withdrawing MAPT, the owner loses the X amount of MAPT along with this NFT.
Root node starts generating blocks that have a generation rate adjusted with the number of miners (MAP NFTs) in the mining pool. Each NFT acts like a miner and validates the blocks and gets rewarded with MAPT which is proportional to its rarity score. Each NFT account has a maximum amount of MAPT it can deposit. If the amount is exceeded, the miner would stop mining MAPT therefore the amount has to be deposited from the NFT account to the owner account regularly to be able to continue mining without interruptions.