For Starcoin, all Tokens are first-class citizens on the chain, so STC also conforms to the Token specification of Starcoin. After each type of Token is generated, the issuing account will get the seigniorage, and only the accounts with the seigniorage can mint the Token.
The genesis account 0x1 is the issuance account for STC, which is only used for the generation transaction and the meta transaction execution of the blocks (similar to the coinbase transactions for Bitcoin). In the generation transaction, the genesis account will mint all STCs at once and deposit them in the treasury, and then revoke the seigniorage to ensure that no more STCs can be issued.
Then the following operations will be performed:
Note: The linear withdrawal right is only a credential of ownership, and Tokens are not involved in the transfer. The owners can periodically withdraw the Tokens from the Treasury that are linearly released by owning the withdrawal rights.
The block rewards in Starcoin follow the model of linear release in time, and the rewards of each block are calculated by the following equation:
During initialization, base_block_reward is 10 STCs, and base_block_time_target is 10 seconds, which means that one STC is released in each second. If the target block generation time of the current Epoch is 15 seconds, the reward for each block of the current Epoch is 15 STCs.
Among them, base_block_reward and base_block_time_target are on-chain configurations and can be adjusted through on-chain governance. The block target time (block_time_target) of each Epoch will be dynamically adjusted according to the uncle block rate of the previous Epoch (for specific adjustment methods, please refer to the technical white paper).
In order to encourage miners to report uncle blocks in the network, Starcoin will give additional rewards to each miner that has the uncle block header (note: miners who dig out the uncle block are not rewarded).
Among them, base_reward_per_uncle_percent is the on-chain configuration, which is initialized to 10% and can be adjusted through on-chain governance. uncle_count is the number of uncle headers included in the current block with a maximum value of 2. In other words, if a block contains 2 uncle blocks, you can get an additional 20% reward.
The reward of each block is extracted from the Treasury by the genesis account, and sent to the miner who offered the block, delayed by N blocks to the account, and the initial value is 7 blocks. If the balance in the Treasury is 0, there is no block reward for this block.
Starcoin has a built-in DAO contract. In the generation transaction, the genesis account will initialize a DAO and set the STC as the governance Token. STC holders can participate in the governance of the following governance items:
For voting, one STC accounts for one vote. When the number of affirmative votes exceeds the minimum number of votes in the DAO and is greater than the number of negative votes, the proposal is accepted. The minimum number of votes is calculated by the multiplication of both the circulating STC amount and the DAO threshold ratio (the initial threshold is 4%). The initial voting period is 7 days. All participating STCs in the voting period will remain locked in the proposal until the end of the voting.
Note: the circulating STC amount = total minted STC amount - Treasury balance. In other words, if the linear withdrawal right is not used, it will not be counted towards actual circulation.
Treasury withdrawal rights are an STC distribution mechanism in addition to miner rewards. Any one can initiate proposals and submit it to the ecological project construction party to apply for withdrawal rights. The following is the initiation process:
In the current PoW-based public chain, PoW is not only a security-wise consensus mechanism, but also a Token distribution strategy. In the economic model of the PoW chain, Tokens are firstly distributed to miners and then transferred to other ecosystems.
However, for chains such as BTC that target value storage, this model can form an ecological closed loop. But for smart contract chains, the value of Tokens depends on the prosperity of the on-chain ecology, so the Token distribution strategy should be leaning toward the upper-level ecological applications, and at the same time, Tokens need to be distributed through ecological construction, not simply through miners.
In the long run, the basic on-chain ecological benefits are finally included in the Treasury. If the funds in the Treasury can finally cover future R&D investment and miner rewards, it means that the economic model of the chain has bootstrapped itself up.