[12/31] PoW & PoS updatesHuge amount of energies consumed in the cryptocurrency has been a big issue, which is totally opposite to the global efforts in saving energy. This issue should be resolved sooner or later in order to advance the cryptocurrency any further. As one of the possible solutions, that's the reason we have PoS. However, the pure PoS mode would never give rise to decentralization. Any approaches are vain if decentralization cannot be maintained, unless one agrees with a coin with limited time of mining or with total premining, or the such likes. The PoW should be remained in order to distribute coins into a broad audience over time.
The basic rule of dealing with the energy concern is to involve a "braking" mechanism in coin design. Such a rule exists in every piece of things in nature: why earth/electrons should circle the sun/nucleus without collapsing or departure? or just imagine a vehicle without brakes. Bitcoin or litecoin does not put actual limits in the rewards, or that simply not functioning properly. That's where magi plugs in.
# MagiReward-V2The issue to be solved in this upgrade is the removal of the vague dependence of block rewards on the difficulty, due to the fluctuating nature of block time. A basic consideration is applying a filter to smooth out the difficulty data. Details are as follows.
http://www.coinmagi.org/misc/images/magi-thread/OP/2014-12-29/pow-II-V2-diff.png# Necessary to adjust miner efficiency?A direct consequence of the above implementation is the well-shaped block rewards in which big rewards due to network fluctuation are totally avoided. The following figures disclose the real situation most likely:
http://www.coinmagi.org/misc/images/magi-thread/OP/2014-12-29/pow-II-blkrewards-01.pngMining at a network hashrate of 22 Mh/s results in 50 XMG/block, whilst hashrate increases to 36 Mh/s like mining the air.
Who shall mine nothing?Provided that I have a miner with hash rate of 1000 kh/s; I would have big concern of yielding nothing at its full speed, but I don't care throwing 10kh/s at nothing. The reality behind this scene will be a different story; at the time by which the exit of miners will pull the block reward back to some numbers, one is able to mine something by then. Reducing hash rate does sound the right action in this incident.
Attenuating hashrate of miners in mining bitcoins is very unusual or pointless, since the higher the hash rate, the greater the bitcoin amount mined. Except this sole "advantage", there are dozens of facts people should be aware of that increasing hash rate comes along the wrong direction: 1) running a PC miner is totally incompetent since every single person in the world would like to sharpen their miners with high hashrate; 2) running 100% CPU usage miners is impractical in most of situations even if one can do so; 3) mobile devices are incompetent under this scene.
It will be wise to run a hashrate-depressed miner under the improved MagiReward system. Technically by doing so it's possible to run miners everywhere.
# m-cpuminer-legacyWe are "joking" the miner, but this is for real that you'll need it; running it in VPS without incurring limitation imposed by vendors? working computers / school's super computer?
Here is the option.
https://github.com/magi-project/m-cpuminer-legacyminerdlegacy -o stratum+tcp://pool_url:pool_port -u pool_user.worker -p password -t thread_numbers -e cpu_efficiency
This is none different from the regular miner, except that an option "
-e cpu_efficiency" is added, where cpu_efficiency is a number between 1 - 100, for example, 50 representing for 50% of CPU usage. A few instances:
Given 10~30% CPU usage, the miner is more like a regular program. Please notice that neither I nor the magi team shall be responsible for any consequence because you run the miner in your working computers or school super computer.
# PoS-II-V2What we have done in this upgrade is adding rigorous limitation on the amount of coins in one transaction for staking purpose, and reducing maximum staking time within two weeks. We don't expect impact on typical situation where one remains wallet online for PoS stake; the offline time should not exceed more than a week. We also recommend to keep 100 - 1000 XMG in one transaction for best results.
Again, magi implemented a braking mechanism which makes it more secure compared to any other PoS coins. To understand that, take a look at the basic PoS mining equation:
hashProofOfStake <= [Coin-age] x [Target]
[Coin-age] = [amount of coins] x [days in stake]
and,
[PoS-block-reward] = [Coin-age] x APR / [days in a year]
Apparently [Coin-age] is a paramount quantity for PoS, which is the driving force for people to stake with as many coins/days as possible. The major weakness in this mode is a possibility of attacking the network by mining a number of blocks ahead of other PoS miners, which can be done via accumulating significant [Coin-age] by
1) having significant amount of coins, which is technically difficult to be achieved in PPC, but rather easy in a freshly created coin;
2) accumulating significant amount of offline days of coins which shall not undergo any transactions before staking, which is a rather feasible approach.
Approaches to resolve the above situation have been proposed, mostly by manipulating the staking days. In contrast to PPC's linearly increasing coin age with time, BC and RDD are two example coins with efforts towards this, but neither of them take care of both situations simultaneously. The BC's V2.0 takes the staking time out of the equation, i.e., [Coin-age] = [amount of coins], which does not solve the issue #1. It is also none organic that one cannot buy advantages from staking time using a cheap PC, in addition to simply buying coins. The growth rate of staking days over time is compromised in RDD if one stakes coins over a month; it should be noted that any desired attack can happen within a month staking time. In addition to the above point, one should be aware that the difference in the number of coins under stake should be emphasized too. The system should encourage one staking with more coins, but discourage greedy accumulations.
Magi's PoS-II?Magi takes the following form for coin age:
[Coin-age] = [amount of coins] x M(coins, days)
where M(coins, days) is a function of the amount of coins, and the days under stake. [Coin-age] is also the so called stake weight. The best description of M is shown below:
http://www.coinmagi.org/misc/images/magi-thread/OP/2014-12-29/pos-II-V2-02.pngIt's rather empirical to determine the best value of stake days. I am rather taking time to sit down and figure, with a basic rule in mind, to limit it within a week. Let's see how it solves the PoS issues:
1) one holding more than 3000 XMG does not result any good in the stake weight; for staking over 25,000 XMG is like staking with nothing;
2) the maximum offline stake time is four days, beyond which staking weight starts to drop; it's unlikely to accumulate infinite staking time.
A side advantage of the PoS-II is that significant amount of offline time is not allowed. There is no advantage of gaining coin age for offline more than 4 days. For any online stake holders, the block time will be refreshed upon finding blocks. The stake weight (coin-age) nearly increases proportional to the amount of coins when coins in one transaction are between 100 and 1000 XMG.
http://coinmagi.org/misc/images/magi-thread/OP/timeline-0-01.pnghttp://coinmagi.org/misc/images/magi-thread/OP/space.png
http://coinmagi.org/misc/images/magi-thread/OP/space.pnghttp://coinmagi.org/misc/images/magi-thread/OP/timeline-1-01.pnghttp://coinmagi.org/misc/images/magi-thread/OP/timeline-2-01.png