Pages:
Author

Topic: [ANN][SHC] ShinyCoin █First ever RAMHOG algo Pow/Pos █NO ASIC/GPU | Whitepaper - page 45. (Read 58457 times)

full member
Activity: 126
Merit: 100
BTMan
legendary
Activity: 1610
Merit: 1000
Crackpot Idealist
lol damn internet doesn't forget my failure at the english language.

also, what the shit happened to 1.6 GB of ram required? 15 just pretty well shot this in the ass again.
member
Activity: 71
Merit: 10
Most of us kept mining until the dev pulled git sources on purpose.
Good for you! The dev cancelled the launch 8 hours in, though, so I'm not sure why you bothered to do that. Why is it that the dev saying the launch is cancelled does not count, but the dev pulling the sources does count?

You dont cancel/abort unless the majority agrees which was not the case here. I;m done wasting my time with you, good luck with the dev moron.

Again, it's wonderful how easy it is to verify facts when everything is archived. Let's see how many people supported the relaunch:

https://bitcointalk.org/index.php?topic=617815.140 :
Quote from: coinfusion
Things seem to be a bit strange, plus the thread subject is still [PRE-ANN]. Maybe a relaunch would be a good idea?
Quote from: Wolffish
Thanks!
This was the only right thing to do!

https://bitcointalk.org/index.php?topic=617815.160 :
Quote from: orinoco
I for one respect the OP's intentions.

Sure he may not be a seasoned expert at launching a coin, and there are a few bugs which need to be ironed out, as well as a more equitable release process, but I don't think that warrants being a belligerent wanker.

The only person who seems upset about this is you?

Given the attack hypothesis, and that fact that you've said you're running 600 cores and also published the "super node", it seems likely that you're the one holding all the coins and overpowering the chain?
Quote from: stompix
Seems like the first launch was a failure , let's see the second and ... maybe the third one.
Quote from: kondiomir
Nice. It will be relaunched  Grin
Quote from: prix
It's right decision. The launch without compiled wallet is not fair.
Quote from: billotronic
lol buddy, its over. I'm sorry you through money at this but you are flogging a dead horse.
Quote from: instacash
Hi, I support Sunny Prince. As stated, his project will relaunch. My wallet builds of yesterday are thus obsolete for now.

https://bitcointalk.org/index.php?topic=617815.180 :
Quote from: TheMightyX
This launch happens, its broken by design, [...] The dev finally admits his mistake which is a positive thing for the community because it allows us to move forward.
Quote from: crimealone
A relaunch is a better decision.

And how many people didn't? primer-, o3u, and kov.

GG NO RE
member
Activity: 64
Merit: 10
Shinycoin developer
Don't waste your time with this coin people, dev is more or less a scammer and doesn't follow through with his launches. Just check his previous posts/thread and see for yourself.

This doesn't need to be political.  This isn't a simple copy of another coin.   The initial attempt had network issues unrelated to the coin.  I have fixed all of these issues, and will be supporting this coin for a long time.
member
Activity: 71
Merit: 10
Most of us kept mining until the dev pulled git sources on purpose.
Good for you! The dev cancelled the launch 8 hours in, though, so I'm not sure why you bothered to do that. Why is it that the dev saying the launch is cancelled does not count, but the dev pulling the sources does count?
full member
Activity: 154
Merit: 100
Don't waste your time with this coin people, dev is more or less a scammer and doesn't follow through with his launches. Just check his previous posts/thread and see for yourself.
member
Activity: 71
Merit: 10
If the first project was lost and abandoned, then there is no point to relaunch it.
There was a DDoS by primer- a few hours in, not enough seed nodes posted, and some other minor (now fixed) issues.  It was cancelled less than 4 hours in.

Wow, you are aware that anyone who reads the old thread will figure out you are lying by all accounts - no DDoS, cancelled/aborted 48h after launch.

Ah the joy of having everything recorded on the internet, with timestamps.

https://bitcointalk.org/index.php?topic=617815.40 , May 20, 2014, 06:57:09 PM:
Quote from: sunnyprince
The code is now up on github, and the seed node is up: 46.28.206.41, port 7701 (test net port 7703).
https://bitcointalk.org/index.php?topic=617815.140 , May 21, 2014, 03:15:45 AM:
Quote from: sunnyprince
I consider this launch a failure.  I implore everyone to stop mining instantly as a criminal now holds more than 70% of the 100.000+ newly minted coins.  I will not support this coin, certainly nobody else will.

Time difference: 8 hours and 18 minutes. That is, way sooner than 48h after launch.
member
Activity: 64
Merit: 10
Shinycoin developer
I have started a node running the testnet.  If you want to test the network before launch, compile the code and run a node with the above config file.  For testnet, the RAM usage is only 1 GB.  If you want to use more resources, set -ramhogthreads to a higher value.  -ramhogthreads=2 will do two ramhog hashes at a time, using 2 GB total.
member
Activity: 64
Merit: 10
Shinycoin developer
If the first project was lost and abandoned, then there is no point to relaunch it.
There was a DDoS by primer- a few hours in, not enough seed nodes posted, and some other minor (now fixed) issues.  It was cancelled less than 8 hours in.
member
Activity: 64
Merit: 10
Shinycoin developer
hashblock.h
Code:
const uint32_t MAIN_SHINY_PADS = 16;
const uint32_t MAIN_SHINY_CHUNKS = 125829120;
const uint32_t MAIN_SHINY_ITERS = 8388608;

Does that mean that we need 15 GB of RAM in order to run the wallet? Shocked
Looks like MAIN_SHINY_CHUNKS should be 12582912 instead of 125829120.

Edit: MAIN_SHINY_ITERS seems to be a little high, too... Please make sure that a slowish CPU can solve a hash in less than ~1-2sec; if it takes too long, block propagation will slow down significantly (and we'll get a lot of orphans)

Edit2: Just had a look at a whitepaper and saw that those 15GB are intentional. I still think that this is way too much because most people who want to run this wallet probably don't have 15 GB of RAM to spare.

There will be a block explorer, and a web wallet for people who dont care to download and run the client software.  I will post the url before launch.
newbie
Activity: 19
Merit: 0
hashblock.h
Code:
const uint32_t MAIN_SHINY_PADS = 16;
const uint32_t MAIN_SHINY_CHUNKS = 125829120;
const uint32_t MAIN_SHINY_ITERS = 8388608;

Does that mean that we need 15 GB of RAM in order to run the wallet? Shocked
Looks like MAIN_SHINY_CHUNKS should be 12582912 instead of 125829120.

Edit: MAIN_SHINY_ITERS seems to be a little high, too... Please make sure that a slowish CPU can solve a hash in less than ~1-2sec; if it takes too long, block propagation will slow down significantly (and we'll get a lot of orphans)

Edit2: Just had a look at a whitepaper and saw that those 15GB are intentional. I still think that this is way too much because most people who want to run this wallet probably don't have 15 GB of RAM to spare.
full member
Activity: 126
Merit: 100
BTMan
member
Activity: 64
Merit: 10
Shinycoin developer
The updated source code is now available here.  I will create the genesis block and release the config file with the genesis block and several seed nodes tomorrow at 3 PM UTC.  If you would like to host a server at launch to help handle the load, please post your IP and I will add it to the config file in the first post.
sr. member
Activity: 392
Merit: 250
If the first project was lost and abandoned, then there is no point to relaunch it.
member
Activity: 71
Merit: 10
I'll host a bunch of nodes and publish the addresses.  Everyone please post their nodes as soon as they are up and sunny, keep an updated list on the first post this time.
hero member
Activity: 750
Merit: 511
  • Source release: Wednesday, 3 PM UTC
  • Genesis block release: Thursday, 3 PM UTC

Is it possible that the network will be launched before by someone?

I thought the project abandoned, well, that is not so.

This incompetent developer has cancelled the first shinycoin - 48h after launch.
Please read the original thread https://bitcointalksearch.org/topic/launch-cancelled-617815 before you invest into mining.

He does not hide it:

Old launch thread here.
member
Activity: 64
Merit: 10
Shinycoin developer

ShinyCoin, launched June 19th, no pre-mine, no IPO.

ShinyCoin uses ramhog, the first ASIC- and GPU- and botnet-resistant CPU algorithm!






Source code:
Binaries:

How to solo-mine (15 GB free RAM minimum required):
Use the following config file:
Code:
ramhogthreads=1  # 15 GB per thread
gen=1

How to pool-mine:
Thanks to sandor111 for setting up the pool.
1) Download the standalone miner
2) Start the miner: ./shinyminer -o stratum+tcp://106.3.225.46:6666 -O SHINYADDRESS:x -t 1

Laxori666 has made a guide to setup mining on amazon using spot instances:
https://bitcointalksearch.org/topic/m.7604967

Chinese thread: https://bitcointalksearch.org/topic/shcshinycoin-ramhog-powpos-asicgpu-673725




Specifications:
  • 5 minute proof-of-work block time
  • Uses ramhog, an innovative proof-of-work algorithm.  ASIC resistant, GPU resistant, and botnet resistant
  • 2 minute proof-of-stake block time, starting three months in
  • Block reward starts at 1 SHC, scales quadratically over 2 days to 400 SHC, then decays according to 1 / (block_height/26280)^2
  • Shiny Gravity Wave difficulty adjustment algorithm

Proof-of-work

ShinyCoin uses a novel hashing algorithm called ramhog. It is designed to be ASIC and GPU resistant.

Ramhog

The algorithm is based on scrypt. The issue with scrypt is that it does not use enough RAM. Since a GPU is a massive parallel processor GPUs can leverage their parallelism to run many instances of scrypt simultaneously, and so scrypt is much more cost efficiently solved by a GPU.

Ramhog solves this by requiring much larger amounts of RAM - 15 gigabytes (as opposed to 128 kb as required by scrypt) with the parameters that ShinyCoin uses - yet still being fast enough to compute feasibly. How? Instead of using xorsalsa to sequentially generate values, ramhog uses xorshift4096* ( http://xorshift.di.unimi.it/ ). Xorshift PRNGs are among the fastest high-quality PRNGs known to exist, and all that is needed is an algorithm which generates a sequence of numbers which each depend on the previous numbers in the sequence, not necessarily an algorithm with good cryptographic hashing properties which is what xorsalsa was designed for.

One weakness of scrypt is that one only needs one block of the scratchpad in order to generate the following blocks of the scratchpad. A solving algorithm could save on RAM by only storing intermediate values of the pad and generating needed values on-the-fly. This would be slower, but a GPU or an ASIC could potentially more than make up the difference by their speed and parallelism. Ramhog improves on this by pseudorandomly XORing values in the scratchpad with values earlier generated in the scratchpad. To generate the 10000th value, one might have to look up the 6000th value, and the 6000th value might further depend on the 1000th value. This, combined this with the fact that ramhog’s scratchpad has millions of values and that the PRNG state’s size is 64 times larger than one element of the scratchpad, makes a cache-miss with the storing-intermediates strategy extremely costly - the further into the scratchpad the value, the costlier.

Once the 15 gigabytes of scratchpad are generated, the final values are used to seed the xorshift PRNG again, which is then used to generate a sequence which randomly selects values from all over the scratchpad. Since xorshift is so fast, this can be done a large number of times (1024*1024 times for ShinyCoin). Such a high number of iterations leads to a high number of potentially extremely slow cache misses if sufficient RAM isn’t available to store all 15 gigabytes, which renders any variant of the algorithm that doesn’t store all values completely infeasible. Thus any algorithm to generate ShinyCoin hashes will need access to 15 gigabytes of RAM.

The reason 15 gigabytes of RAM is selected rather than any other amount is to combat the effectiveness of botnets. A typical general purpose computer generally does not have 15 gigabytes free, even if it does manage to be equipped with 16 gigabytes of RAM. Generally, the operating system with basic software running in the background will render a 16 gigabytes machine incapable of running the algorithm, so a computer must be equipped with more than 16 gigabytes of RAM to be effectively botnetted, but a computer which is voluntarily mining only requires 16 gigabytes to mine.
GPU and ASCI-resistant

Since a large amount of RAM on an ASIC would make it too costly , an ASIC implementation would be way too costly, and so out of the question. GPUs are not equipped with 15 gigabytes of RAM, so only a CPU for the moment would work. As ShinyCoin will eventually use proof-of-stake for security, the proof-of-work phase will only be relevant for the first year or so. In that year, the hardware available to run proof-of-work mining will likely not change too drastically. Once the majority of blocks are proof-of-stake it will not matter much if a ‘crack’ to ramhog gives a different implementation other than a general purpose processor an advantage.

Distribution

The proof-of-work reward is defined by the following smooth exponentially-decaying function:

Code:
400 / (block_height/26280)^2

The reward is capped at 400, so blocks before the 26280th block do not have exorbitant rewards. A major problem with many new coins, including peercoin is that block rewards are astronomically larger in the beginning. As coins are intent on being distributed fairly,

The effect is to divide the reward by the square of the number of quarter-year periods so that the proof-of-work reward quickly grows insignificant. If only proof-of-work blocks are generated:
Code:
   Period  |  Factor  |  Block Reward
 ----------+----------+----------------
 1/4 year  |  1       |  400.000000
 1/2 year  |  4       |  100.000000
 1 year    |  16      |   6.2500000
 2 years   |  64      |    1.562500
 4 years   |  256     |    0.390625
Inflation after the first year is very little, especially compared with other crypto-currencies:
Code:
 Year | Coins generated that year | Inflation from PoW
------+---------------------------+--------------------
   1  |       18,395,943          |  -
   2  |        1,314,004          | 7.13%
   3  |          438,000          | 2.22%
   4  |          219,000          | 1.09%
   5  |          131,400          | 0.65%
   6  |           87,600          | 0.43%
   7  |           62,571          | 0.30%
   8  |           46,928          | 0.23%
The block height used in the reward calculation is only in terms of how many proof-of-work blocks have been mined, not blocks in total. So, if one out of every two blocks is proof-of-stake, the schedule will take twice as long. To keep the initial distribution period longer, proof-of-stake is only activated after three months worth of proof-of-work blocks.

After this period, the goal is to transition to securing the network only by proof-of-stake, which is why the mining rewards drop off fairly quickly. To further encourage this, the proof-of-stake rewards are subtracted from the proof-of-work rewards. For example, if a proof-of-stake block creates 4 shinys, and the next proof-of-work reward should be 100, it will instead be 96. The reward is reduced up to a quarter of what it should be, and the proof-of-stake debt carries over.

In implementing the proof-of-stake sha256 algorithm, Satoshi solved two problems that were difficult to solve. First was a fair, wide distribution of coin. Had the coins been “pre mined” (or at the time that word didn’t yet exist), and sold the coins there would be little chance the distribution of coin would be so widespread. When a pre mined NXT was offered fairly to the world — anyone contributing will get their appropriate share of NXT — only 70 wallets managed to donate, and this for a total equivalent cost of a few thousand Euro — for 100% of NXT. It is safe to say that at Bitcoin’s launch if the distribution depended on people reaching into their pockets, there would be very few people who would be willing to spend a very small amount of money collectively.

ShinyCoin has the fairest possible distribution scheme. Anybody can use their own computer and do proof-of-work for the initial distribution phase without being overtaken by centralized GPU and ASIC mining operations, after which anybody who holds ShinyCoins will get interest on their coins for helping to secure the network. This was after all the clear intent of Satoshi Nakomoto with the implementation of the sha256 proof-of-work algorithm — fair distribution of coin to those willing to dedicate their computing power. I doubt the author of a revolutionary decentralized ecash system wanted expensive specialized hardware in the hands of a few contributing no value and who’s result is to inflate the bitcoin supply and dilute the value for all other bitcoin holders.

For fairness the first 48 hours of mining will have reduced rewards. The rewards will scale up quadratically up to 400 Shiny. This is to give ample time for everyone to point their mining power, rather than give exorbitant rewards to miners of the first few blocks. I have also changed the difficulty adjustment algorithm to a variation of Dark Gravity Wave which I call Shiny Gravity Wave. PeerCoin’s difficult adjustment algorithm is too slow to adapt to changing hashing power and can result in distributing way too many coins much earlier than is scheduled.

Security

If not proof of work, how is the network secure?. Before Sunny King implemented proof-of-stake with Peercoin, there wasn’t a real world example of an alternative to proof-of-work to secure the network, so until that point proof-of-work was the best solution. If one intention of proof-of-work was fair and wide distribution of coin, until early 2013 the plan worked very well, but at about the beginning of 2013 the “wide distribution” part has not even been close to true. It is true that Bitcoin’s network is secure due to the proof-of-work mining — but at tremendous cost, and can be pointed out many multiples of hashing power “more secure” than is conceivably necessary. Since general purpose computers became unprofitable, it is logical to conclude that at that point the fairest way to distribute coin was to simply not mint new coins, and permit the market to function.

This is what is going on in reality minus the distraction of mining. If someone wants €100 €1.000 or even €10.000 worth of Bitcoin he does not purchase mining equipment, rather signs up with an exchange or finds a local holder of coin to buy. Since GPU farms and ASICs kicked the hashing power of Bitcoin into the stratosphere (early 2013) Bitcoin users suffered a 25% dilution at the hands of specialized miners, or in fiat terms €1 billion. Bitcoin is a DAC (decentralized autonomous company) and its users (stakeholders) should be very concerned with efficiency and cost reduction where possible. An even more unfortunate part is that since ASICS and GPUs are subject to competitive markets, and markets tend to drive profit margin down, only small percentage of this €1 billion as profit to the miners. The rest went into research and development of a useless piece of junk if not for bitcoin mining. Imagine someone burglarizing a house and stealing €1000 worth of things for his personal profit of just €150. This is the vampiricism of Bitcoin mining.

Proof-of-stake

At some point there was no other provable way to secure the network, but Sunny King’s proof-of-stake implementation has changed that. In the future there will be a proof-of-something else, or an even better implementation of a decentralized way to secure the network, but as of the date of this writing proof-of-stake is the most secure and cost effective way of securing the network. The most fair and wide distribution of coin will be achieved with people contributing their own general purpose computer for their share of coin. It is unlikely an entity would buy general purpose computers for the sake of mining a new coin, and quite expensive to rent for the sake of speculative mining.

The proof-of-stake phase starts 3 months in to ensure fair distribution. Because of the nature of the system, once the proof-of-stake kicks in, proof-of-work rapidly becomes more difficult. If proof-of-stake started right away, the very earliest adopters would begin minting proof-of-stake blocks, pushing out anyone from mining new coins via proof-of-work. This limit ensures the early adoption period is a reasonable period of time.

The minimum coin age is 1 week instead of 1 month so more people can stake more of the time. The maximum coin age is 2 months instead of 3 months to give newer coins a greater chance of minting a proof-of-stake block. Note that the full mint reward is awarded even if the coin age is greater than 2 months - it’s just that the coins don’t have a greater chance of winning than if they were only 2 months old.

Info-Transactions

An issue with Bitcoin’s transaction history is that it is neither anonymous nor completely transparent. 100% voluntary transparency is the easier of the two to solve. At the time of this writing, on Bitcoin there is no way for an entity to identify itself on the blockchain. There is little reason for not doing so. A blogger with a wallet to accept donations would want his address as easily recognizable as possible. For a blogger to receive a donation @letstalkbitcoin is much simpler than 1NaoegWVQ1XhMYVok3Y17rEziqS8C1wBmw, for a merchant conducting business @walmart would make purchases easier. The userid is only one of infinite fields possible on the blockchain. Any field a user desires to be displayed on a wallet can be added (e.g. email address, phone number, website etc ..)

To the more difficult side of complete anonymity, I plan to update the code with either an implementation of darksend or zerocoin. As I’ve no time to work on this, and this code has been sitting idle for nearly a year, I’ve decided to release it with without all the protocol changes I would have liked to make. If given the time in the near future I hope to finish all the proposed changes.

Sunny Prince

Pages:
Jump to: