Thursday, May 1, 2014

The Rise and Fall of Whitecoin

It's funny: after my last public post about why I didn't really like Proof of Stake as a solution, PoS decided to become the Next Big Thing (tm). [Note to self: find another idea to bag on, and then invest in that idea as it appears people like to be contrarians to my opinioins.] This was thanks in no small part to Blackcoin and Blackcoinpool -- the latter being a multi-coin pool that mines whatever is most profitable and then auto-trades for BC. That puts a constant buying pressure on the coin, at least as long as there are large numbers of miners, resulting in higher profits.

The thing is, at the end of the day the PoS stuff is still just encouraging people to hoard coins in the hope of higher profits, while realistically many of these coins will end up dropping more in value in a month than you can possibly hope to gain on the PoS annual percentages. BC for example is 1% nominal annual interest -- and don't get confused by talk of "compounding interest"; you could compound every second but with a nominal 1% annual rate, you'd only end up earning... wait for it...1.00501671%.

Anyway, I was talking about Whitecoin and what has happened since it launched. First off, Whitecoin is basically a clone of Blackcoin, except instead of a 1% nominal annual interest rate it's a 2% rate. Also, the distribution of coins was 300 million WC instead of 100 million BC, with block times of 1.5 minutes instead of 1 minute. (Yawn! It took the developers how long to manage all of this amazing work!?) But WC apparently didn't clone BC, instead choosing to clone some other coin I guess, so they had some errors. With the BC mania in full swing, and the yin-yang aspect of Black vs. White, everything was primed and ready and WC took off like a rocket to the proverbial moon.

Do you know what happened next? After the initial PoW distribution phase concluded roughly 11 days after the launch, as planned, the PoW block rewards continued... only at 10 WC each instead of 30K WC. PoS wasn't happening at all! This should have been the first PoS block, but instead it was still PoW. What was going on?

Funny thing is that I believe I was the first person to notice the problem and comment on it; I posted about it here in the WC thread. However, there was so much excitement about ChunkyPools and Whitecoinpool doing for WC what Blackcoinpool did for BC that everyone totally missed/ignored my post. So 30 minutes later after looking into things a bit more, I followed up with a second post on the subject of PoS. And we had a bunch of people shouting, "Who cares about PoS? Push the coin and let's get to 2000 or 20000 satoshi!" Well, I cared, and the reason was simple.

I am (was) a computer programmer; I haven't done a whole lot of actual coding of late, but I can read other people's code fairly well and figure out what's going on. More importantly, one of the things you learn in studying computer science is that if a major feature of an application is broken/buggy, there will be a ton of secondary effects and basically the whole thing turns into a worthless PoS (that's not Proof of Stake this time). I worked at a company where there was a lot of talk about creating the "Next Generation Internet" clear back in 2000, but the code was a steaming pile of dung and the CEO was a complete disaster. His claim to fame? "Completing final exams in his first year, he became one of the highest grant earners for [George Mason] University." Basically, he had no real skills other than the ability to spew BS and convince the government to fund his pet projects (with the help of his influential father, of course), which went nowhere. Hooray for government bureaucracies!

Over the next day, the problem with PoS not working became a lot more serious, as the hash rate on the WC chain dwindled to nothing. The reason this is a problem is that if you drop too far in hash rate, anyone with a reasonable amount of hardware can perform a 51% attack -- gain 51% of the hash rate and you can perform a double spend. It's not a trivial task, but if you know what to do it can certainly be done. So the PR guy for WC announced over the past weekend that everyone needed to "protect the block chain!" and mine on a specific port of ChunkyPools in order to prevent a 51% attack. Here's my response, again from the WC thread:
So I have a simple question: why do we need to protect against a 51% attack if we're going to hard fork the coin? This is really quite simple:

HARD FORK THE COIN AT BLOCK 10000. Done.

Okay, maybe not 10000, but there's nothing stopping anyone from doing that. We have the block chain right now going past block 10000, but everything happening there is basically meaningless as far as mining. So if not 10000, because of the latest trades and such, then fork it at the current block or one in the very near future (e.g. 12000). What people fail to understand is that if someone were to execute a 51% attack, you could simply unroll the attack by hard forking to before it happened (according to the block chain). In the meantime, all this hand wringing is silliness.

Given that WC is largely based off of Blackcoin, I don't see why it can't just fork to a clone of BC, though there's more work involved than a simple cloning job obviously. Also note that the current WC block explorer is apparently off by a factor of 100 -- the initial blocks up to 10000 were 30000 WC PoW mining each, and now we're seeing 10 WC blocks (not 300 and 0.1 WC blocks, which is what the explorer is showing). So we have a buggy coin with a buggy block explorer. LOL

Anyway, as I see it the hard fork process is a democracy, and it's very simple: you vote by running the wallet you support. Given the source code is already available, anyone could create a new WC wallet, but that doesn't do them any good unless people (and more importantly, pools and exchanges) use the wallet. Since WC is currently broken, nothing good is happening right now regardless. All the exchanges listing WC should freeze all transactions, all WC pools (including ChunkyPool) should do likewise, and we should basically just leave the coin as dead for the couple of days it takes to get a fixed wallet in place -- or maybe a week at most, assuming you have any halfway competent programmer.

It will be painful in the short term, but fundamentally this is a coding problem and it can be best solved with coding, not by "protecting the block chain". Modifying the source code to restart after a specified block and roll things back seems better than wasting hashing power on a useless and unnecessary move to "protect" a coin that is going to be hard forked one way or another. If in the interim someone gains a 51% share and executes an attack, then when a wallet is released that forks the block chain before that attack happened, the community just votes for that wallet (by running it) and we all move on. Just please make sure to test the new wallet properly before starting up trading and mining again, or we'll be back in this same spot.

The real problem is that with several other BC clones, and with WC having proven that it did not have a proper developer, it will take a lot for it to recover. Why in two years would anyone want to use Whitecoin as opposed to Blackcoin, or whatever other coin you want to name that didn't have major problems with it's initial release and wasn't created by a scamming developer? The only reason I'm holding WC is because... well, I'm holding lots of bags (small ones, mind you), and if a few of them take off they can cover for the dozens that suck.
That post comes from four and a half days ago, and in the meantime the WC devs have managed to not release a public wallet. Do you know what happened next? Well, first off, a few exchanges closed down deposits/withdrawals of WC temporarily, but Cryptsy kept their WC exchange running and then several other exchanges decided to join them. With such low hanging fruit, the result was inevitable: someone orchestrated a DDoS attack on Whitecoinpool/ChunkyPools, the network hash rate on WC plummeted even further, and they were then able to execute a 51% attack and apparently performed a double spend. So the WC exchanges (except Cryptsy still?) are apparently closed again.

What happens next is the real question. A fixed wallet will come out, hopefully in the next 24 hours, and at that point the 51% attack can be rolled back. Hopefully Cryptsy and the other exchanges didn't accept any double-spent WC, but considering Bittrex at least saw a price of 1 satoshi for a moment, I'm guessing we'll see a lot of pandemonium before this is all done.

Some will be glad that things rolled back, others will whine, "I bought a bunch of WC at 1 satoshi and they got taken from me!", but really the exchanges shouldn't have even been running. Here's a thought for you exchanges: if the price of a heavily traded coin drops by more than 50% within a matter of minutes -- or even an hour -- you should put a temporary halt on all trading! That flies in the face of profiteering, but it's better that than "pulling a CryptoRush" and going insolvent, wouldn't you say?

The bottom line right now is that Whitecoin was a clone of an existing idea, and the people executing on that idea were apparently not as skilled as they should have been. Instead of repeating what BC did, WC has failed on so many levels that it's difficult to see how it can recover. They could release a perfect wallet at this point, and many people are still going to be gun shy. And rightly so! If they had just listened to my advice early Sunday morning, we could have at least avoiding the past five days of grief, anguish, scams, double spends, etc.

At this point, WC is past block 15000, which means that over one third of all blocks on the block chain are "bad" -- in that they should have been PoS but instead are PoW valued at 10 WC. There are still 300 million WC out there, and a nominal 2% annual interest means we should have had PoS blocks doing around 0.00000570776% per block... which would only have been 17.123 WC PoS per block assuming every single coin of the 300 million WC was properly staking. The difference of course is that you could have 20 wallets running PoS coins and still have only 10-25% CPU load on a quad-core Core i7 system, drawing maybe 15W total for Proof of Stake "work"; instead, we've had hundreds of people throwing 100 times that much power at the problem, and getting 40% lower returns for their trouble.

Can WC recover? Yes. Should it recover? That's debatable. WC looks like a quick money grab by the original developer(s), and it certainly succeeded in that regard. Now the community is left to try and pick up the pieces. The real question is: what will be the next Whitecoin? We have dozens of new candidates every month, and I can guarantee that we have not seen the last catastrophic failure in cryptocurrency, thanks to poor coding, greedy developers, greedy miners, and -- dare I say it? -- Proof of Stake. The only real winners -- other than the developers -- are the people that mined on places like Hashco.ws, Middlecoin, etc. where the WC was already traded, often at relatively high rates, for BTC.

No comments:

Post a Comment