For the stable currency, there will be many details in the design process. Today, I will talk about some problems in the process of designing the certificate.
- Calculating the handling fee
The calculation fee is part of the transaction fee and is transferred to the kUSD miner and is determined by the following formula:
Its gasUsed(t) is the Gas used to process the transaction t, and the gasPrice(t) is the price t of a unit at the time of the transaction. The definitions of gasUsed(t) and gasPrice(t) are similar to Ethereum, and the calculation fee itself is similar to Ethereum's “contract execution fee”.
For simple transfer transactions, gasUsed(t) is set to 21,000, and for smart contract transactions, the value will depend on the action triggered by the associated smart contract. The default value for gasPrice(t) is currently set to 2 x 10^-8.
The sum of the calculation fees for all transactions in the current block will be given to the elected sponsor of the block:
- Destruction of coins
The amount of block destruction is defined as half of the sum of the dimensional stability costs of all transactions for a given block:
Where T(b) is the set of all transactions that form block B.
The amount of destruction is sent to a dead address, which has a supply that permanently reduces kUSD. Over time, the amount of destruction allows kUSD to effectively respond to a reduction in demand. For example, if only 15% of the US dollar (average) kUSD supply per day is made through a chain transaction, the amount of destruction within 30 days will be reduced by more than 8%, and will exceed 41% in 180 days.
- Maintaining stability and maintaining stability contracts
The purpose of the stability award is twofold: to allow the network to be involved by an expanding group of people and to motivate support for network utility (by reducing the number of kUSD available for sale at prices below $1). The allocation of stability bonuses to kUSD holders is managed through a stability contract, which is a special-purpose smart contract that is implemented as a sub-contract of a single main contract.
Then divide the dimensional stability into individual stability rewards. For each stability contract, use the following formula:
Where b is the block number, a is the source address with the associated stability contract, A(b) is the set of all source addresses associated with the dimensional stability contract for block b, and savingssBalance(b,x) is obtained from Balance.
During block b, block b of the savings address associated with the smart contract with source address x. The stability bonus for each smart contract will be transferred to the relevant stability reward address, and the second trading constraint prevents the stability bonus from being transferred until the price of kUSD returns to $1 or higher. Although the owner can remove funds from his savings address at any time, he can only receive funds from the stable reward address when the price of kUSD returns to $1 or higher. If he removes the savings address funds before this time, the relevant stability bonus will be forfeited.
4, mUSD and other mToken
The Kowala Agreement is a dual pass system. The primary token in the Kowala protocol blockchain is kCoin, a stable value payment token such as kUSD. In addition, associated with each kUSD is a secondary mining pass or mToken; for example, the mTokens associated with kUSD are referred to as mUSD. The proof of ownership of these minimum quantities (currently 30,000) is a requirement for mining kCoin.
Each mToken will be associated with an encrypted address and other meta information for secure management
a) tracking the situation of mining;
b) the address of the recipient of the mining award;
c) mToken ownership;
d) Entrust the mining responsibility to a third party.
A dedicated smart contract will be created to manage this information, and each kCoin will have 2^30 (1,073,741,824) mTokens cast. Once the original mTokens are cast, the smart contract feature will prevent additional mTokens from being created in the future.
5, Konsensus: Kowala's consensus agreement
Kowala's consensus agreement, Konsensus, has a formal set of rules that allows a dispersed group of participants to agree on the advancement of the blockchain, including the processing of transactions and the distribution of incentive rewards.
Konsensus is from Tendermint, a majority of asynchronous consensus protocols that are themselves based on Byzantine Fault Tolerance (BFT). The work is based on Tendermint because it has achieved transaction performance far superior to other widely used methods, POW-based blockchain consensus protocols, and because it has an easy-to-understand security profile. Like Tendermint, Konsensus requires its participants to stay in touch with each other.
In Konsensus, a network consists of two or more nodes connected by a well-defined communication protocol. In this context, a node is a computer running a mining client that is compatible with the Kowala protocol. Communication is achieved using the standard Ethereum model of TCP and UDP.
Like other cryptocurrencies, kUSD will be mined. For each block, all eligible miners have the opportunity to earn a reward for kUSD by contributing to the progress and safety of the blockchain.
The miner is the active node on the network, controlling the minimum number (currently set to 30,000) mTokens. In order to advance the blockchain, the network must include at least one miner, although we usually expect more.
Mining in Konsensus will dig a block at a time. For each block, there is a leader, called the proposer, that is deterministically selected from the current miners. All other miners are called verifiers during the block.
The function of the proposer is to combine and propose the next block in the chain. The function of the verifier is to vote whether to accept the suggested block or reject it.
The proposer first assembles the available chunks containing the unprocessed trades and then distributes the chunks to the verifier for verification. Each verifier checks if the block is appropriate and then performs a cryptographic signature vote to accept or reject the block.
If two-thirds or more of the verifiers vote for the block, the proposer submits the block to the blockchain and signals the entire network that the block has completed.
If the pass rate of two-thirds is not reached, the block is rejected.
The process then begins again, selecting a new proposer to propose another block.
- Election based on mToken ownership
Miners may not have the opportunity to be elected as proponents; instead, the likelihood of their selection is proportional to the number of mTokens that the node has. The possibility of electing a miner is given by:
Where m and M(b) are the collection of specific miners and all miners mined in the current block b, respectively. Over time, the miner will be selected as the proponent, the frequency of which is proportional to the number of passes held by him or her and the total number of passes held by all active miners. After the election, the proposer must correctly perform the proposed actual work and then be rewarded for this work.
If you have an exchange about blockchain learning, you can contact me in the following ways:
Add me to WeChat, note the note: Blockchain learning
Micro signal: elninowang
github: https://github.com/omnigeeker
telegram: @elninowang
twitter: @elninowang
medium: https://medium.com/@elninowang_cn
steemit: https://steemit.com/@elninowang
zhihu: https://www.zhihu.com/people/elninowang/activities
jianshu: https://www.jianshu.com/u/103321b574ba