Proof of Stake is a proposed alternative to Proof of Work. Like proof of work, proof of stake attempts to provide consensus and doublespend prevention. Because creating forks is costless when you aren't burning an external resource Proof of Stake alone is considered to an unworkable consensus mechanism.
So, I want to clear something up that a lot of the crypto community seems to be unaware of. SolidCoin, not Peercoin, was the first currency to do proof of stake (PoS).
SolidCoin v2.0 was released October, 2011
Peercoin was released 12 August, 2012
I am not claiming the proof of stake methods used in SolidCoin v2 and Peercoin are the same because they are not. In my opinion Peercoin has a much better implementation of proof of stake. Just because I released a working implementation of proof of stake first does not mean I invented it first. The idea first seemed to come up on the Bitcointalk forums in July 2011 https://bitcointalk.org/index.php?topic=27787.0 . At least according to Bitcoin wiki.
Was he the first person? I doubt it, he may have been the first person to post about it though. I don't think this idea is some massive invention that takes a genius to come up with. I came up with it in a week of thinking about how to solve the problems facing SolidCoin in regards to hash rate and I am not an Einstein.
Some early days background..... this is probably boring to nearly everyone so you can skip to the end where I mention the proof of stake differences if you want.
In the Beginning
Let us rewind to Septemberish 2011 . Namecoin was out and people were like "Huh, you can use Bitcoin code for other things? Cool." Then some guy released IXCoin, which was nearly a blatant recompile of Bitcoin with a name change. There was a great Namecoin exchange at the time by a great guy called doublec. It was very simplistic looking, like out of Linux terminal, however it was fast and did all the basics right. He had coded it in some weird language I forget right now, but he was very smart and honest and it worked well.
This is how I found out about IXCoin because it was on doublec's exchange relatively quickly and strangely it did very well for some days in regards to exchange activity. Why strangely? Well it was nothing but a recompile of Bitcoin with barely any changes. Who would think that would have value? I didn't, but it was probably the first altcoin "pump-n-dump" and I was there to witness it. Very soon IXCoin died due to price dropping and then all the miners left to go back to Bitcoin and there were no more blocks.
Difficulty adjustment is how Bitcoin adjusts to differences in hash rate in an effort to keep the same block times. So if hash rate doubles, the difficulty doubles so that we stay at 10 minute blocks, instead of 5 minute blocks. If hash rate halves, the difficulty divides by 2, but it doesn't happen instantly, there is an algorithm. Bitcoin had a relatively poor method for doing this, highlighted by Namecoin and IXCoin to this point. It was at this time someone started I0Coin, planning to fix the difficulty bug that had frozen both IXCoin and Namecoin.
It was around this time that some Bitcoin devs told me anything less than 10 minute blocks was insane because it would fork the entire network and create such a mess it would never be possible. These days fast blocks are taken for granted but back then you were insane for mentioning that Bitcoin could be improved in any way. I was interested in helping Bitcoin to be better because I loved the notion of it. I was drawn into Bitcoin not to make money but because of the freedom it could give us all when it comes to finances. I wanted it to be the best it could be, I wanted to use it for my own goods and services.
So I spoke to the IOCoin guy and I was like, dude, 10 minute blocks? That shizz is crazy, divide that by 4 and we have a winner! And he was like, fuck that is the greatest idea I've heard! Well not really but it went something like that. So he changed the difficult code, and added my idea to do quicker blocks, and released that. After having seen IXCoin get pumpNdumped I thought no one would be stupid enough to buy I0Coin but I was proven a fool again because it went crazy, more than IXCoin I believe. At this stage I0Coin had just a couple minor improvements on Bitcoin, better than IXCoin at least. However due to a bug in I0Coin it broke. Some NTP time based thing it used in difficult adjustment I believe.
Which is why I did SolidCoin, I was like "these guys don't know what they are doing with all those bugs! Let me show you!" So I added some other things I thought would be nice like fixed transaction fees, a couple GUI changes, a much better difficulty adjustment to handle hit-n-run miners and fast blocks. I spent maybe 2 hours on it, and gave little care about it, it was just exciting to improve Bitcoin to me.
It was released pretty quickly, it wasn't pre-mined -- which could be found out by comparing the first block with the forum thread created announcing it. However that didn't stop some people claiming it was. Upwards of 15% of Bitcoin hashrate hit SolidCoin v1 at various times. Way more than IXCoin and I0Coin had achieved, it was put on a lot of the biggest pools at the time like BTCGuild and it went fairly crazy. I think after IXCoin and I0Coin a lot more Bitcoiners became more interested in altcoins because of the money being made, so by the time SolidCoin was released more people were ready for it, which explained the increase in activity. It also had a pump-n-dump, as we found out later like pretty much every coin that is released does, but it wasn't as bad as the other coins as the difficulty bug didn't slow the coin down very much so it just kept going and going. The first to do such.
Small Rant about trading and mining
I would like to say something about trading coins or even mining them. I traded Namecoins, Ixcoins, I0Coins and SolidCoins up until this point. I even had a couple GPUs for mining. Profit was made on some things, lost on others, including SolidCoin. Is that right that I mine and trade SolidCoin? Many people think not. But I don't see a problem with it personally and don't mind being honest about it. Was I one of the first SolidCoin miners? Yes I was. Did I have massive hash rate? No I didn't. Can I prove that? No, so believe what makes sense to you.
If you want to believe I was some mastermind pump-n-dumper with grand plans to mine and control currencies to profit, well, you can believe that I guess. The thing is when it comes to trading, as soon as you click the buy button, you take a risk and the only person responsible for that risk is you. The people who try to blame others for their own shortcomings - you guys suck. As are the white knights who try to "protect" these people. I wish more people took responsibility for their own actions instead of blaming others.
So the thing is I wouldn't care if I was that mastermind some people say I am, if I was actually that, because I believe in taking responsibility for the risks you take. And one of those risks you take is there are bigger manipulators of price than yourself. I have no doubt there are manipulators in every single thing that is traded. Everyone wishes they could manipulate the market to such an extent they could profit.
The only harm with this is if you are doing it outside the rules everyone else is playing by, that is something I do not agree with and have never been involved with. But every time I click buy of course I hope the price goes up, who doesn't? But I don't blame other people for losses incurred with normal trading risks. It is absurd some people do.
SolidCoin Community forms
After some time I sort of started caring about the people who were mining it and buying it and whatever. A community had formed and people had THEIR ideas too on things to improve, and I was a coder and listening. People seemed to be excited by it and it was an exciting time I think in crypto world. It seemed like a new cottage industry was springing up, little did I know what it would eventually turn into what we have today with over 600, nearly all Bitcoin derived coins.
First SolidCoin Problems
The fixed transaction fees turned out to be a massive problem because I wasn't aware Bitcoin supported a feature that wasn't widely used back then, and that was creating as many outputs as you wanted based on the inputs. Bitcoin had a ~100KB fixed maximum transaction size, I thought it was much smaller which is why I set the fees so low (0.01 per transaction, regardless of size).
Artforz was a big time GPU miner back then and mentioned it to me in chat but I didn't think it would be an issue because "who would attack a currency". Well he did and "bloated" it with about 50MB of transactions over a couple days. Someone did the same thing to Litecoin on a bigger scale some months after, too. And people have been doing the same to Bitcoin for a long time, too. At the time this attack annoyed me a lot, but looking back on things now I realize this is just how the crypto community operates.
If you can be attacked then you will be. So I don't have any bad feelings towards Artforz now, but I understand if he still does towards me. Strangely I found out something about him in the last years that also increased my respect for his skills, which I will mention later in the post.
So after the currency bloat attack I thought the best idea was to "stop" SC1 and release some new, improved, fan-dangled SC2 with improvements! How does one stop a peer-to-peer currency? Well, I just said so! Haha. I realize now that this is another thing that angered the Bitcoin community, one guy just deciding to stop a coin. It looks highly controlling I guess, but all I said was SC2 would be starting fresh using SC1 coins at a certain block. And anything past that isn't considered valid on SC2. It seemed most people considered that "ok", including exchanges and so it happened like that.
I mean I had no power to stop SC1 really and many people continued to mine it. It is just if you wanted SC2 you shouldn't consider any coins past block 40000 or something valid. The democratic consensus allowed this to happen, but I still understand how it looked at the time to other people, that I had full control over something supposed to be decentralized.
There were also various mining attacks planned for SolidCoin v2.0, as in groups attempting to control the network with their huge SHA256 mining operations. Back then Bitcoin was very GPU dominated and there were one-person operations with huge GPU farms. With my lack of awareness for the crypto community at the time, some of my comments in regards to Bitcoin having problems angered some people which is partly why all these things were happening. Fair enough.
The down-time between SC1 and SC2
I needed to come up with something quickly to fix SC1 problems because people wanted this release to happen fast. Some people were annoyed at me for various silly reasons, like I was devaluing their coins and they couldn't do anything about it so the pressure was high but I felt up to it. So my fixes included transaction fee changes back to something like Bitcoin used, a more CPU friendly custom mining algorithm to stop the Bitcoin miners raping the currency in hit and run attacks AND a proof of stake mechanism to offer increased 51% attack protection. There were a lot of smaller things added too, but not worth going into.
I publicly announced, like a fool, that SolidCoin2 was going to use a new mining algorithm. Something that CPUs would be good at too! Damn those GPUs. Artforz read what I was going to do and because we had that "competition" going where I would say something about him and he would say something about me, he actually released a coin that did this before me! Using scrypt, he created GielstGeld? I think that is the name, which would later be used in Litecoin by Coblee. It came out before SolidCoin2 and was the first alternative mining algorithm, so credit to Artforz for that.
My CPU-friendly method was a custom hash, a KDF like Scrypt but all custom. Both Scrypt and my method proved to be fairly good at being good on CPU, I think my method ended up being better over the time period because the parameters Artforz used for scrypt weren't ideal and GPUs eventually clearly dominated it. GPUs with my system were a bit better efficiency-wise over a CPU but it wasn't a complete whitewash. But it is not like as much effort went into GPUfying the custom system I made, so I won't say for certain it was, it just appears that way currently.
An interesting thing I found out later (which has not been fully confirmed, so grain of salt required) is that Artforz had reversed-engineered my algorithm from my BETA binary builds. And on top of that he made a GPU version of it which apparently was fairly good. I don't know the exact details of when, but at least near the launch of SolidCoin2, he had a GPU version already going and used it to mine a fair amount of coins using his GPU farm. It may not sound like much to some of you guys but to reverse engineer a binary and figure out my algorithm and then code a GPU version of it is quite a complicated thing to pull off. I gained a lot more respect for his skills after finding that out.
I didn't think a GPU version would be very good at all with my algorithm but mtrlt eventually tried his hand at it and got a GPU Miner out which was close to the efficiency level of the CPU version. His later builds would make it maybe 30-100% better than CPUs. It is possible Artforz had that level of efficiency or even better in his GPU version. I suppose we will never know unless he ever releases it or makes mention of it.
Proof of stake is invented (again)
On top of my custom mining algorithm to help security of SC2, I wanted some else. I realized that Proof of Work was highly vulnerable especially with coins just starting out or not as popular as Bitcoin. I wanted something extra. So I thought about it and in about a week I had a proof of stake system. I didn't know that term existed however so I called it "Trust nodes" . Which is probably a poorer wording than it needed to be because even Coblee, the Litecoin programmer, failed to understand what it was in a speech he did about SolidCoin.
SC2 proof of stake worked like this: If you had a high amount of SolidCoins -- this magic number in SC2 being 1 million -- then you could sign every "other" block to say "this chain is valid". Why 1 million? Well to me it seemed like if you had 1 million or more, you cared about SolidCoin and wouldn't want to harm it. So we had miners mining proof of work blocks, and then these people with money would sign the next block and say "I saw this previous block". They didn't make money signing those blocks, they just signed them and gave that chain more "power" than the pure proof of work chain. So basically double spending was eliminated UNLESS you had a million SolidCoins *AND* a lot of mining power *AND* there was no one richer than you to give more power to a non-double-spent chain. For these reasons I thought it was better than Proof of Work alone.
Conflicts with the signing of the "stake blocks" were resolved using money. So if you were a really powerful miner who had obtained 1 million SC and tried to double spend, it would be nearly impossible if there was a much higher SC signer around. Basically the "stake" blocks had more "voting power" the higher the SC balance that was used to sign it. If two nodes did signed stake blocks at the same time it was resolved with SolidCoins: the more SolidCoins the more "power" the block had.
Controversy! Trusted nodes? WTF
When SC2 launched there was no one with 1 million coins. So I created 12 accounts with 1.1 million SolidCoins in each of them, the idea being that until there were people with 1 million coins these accounts could be used to sign the stake blocks. These 12 accounts could not be spent on the network, every node was programmed to reject them - not only on the network but no block could contain them.
This created controversy in numerous ways as people didn't understand they couldn't be spent. Or thought I would later change it, or whatever. I mean if I could later change it to make them spendable then surely I could later change it to just invent coins too right, why go to all this trouble?
It somewhat centralized the chain, as now we had 12 accounts who could sign the stake blocks at the start, instead of the potential of anyone creating a mined block like in Bitcoin. And who had the 12 accounts was left up to me, in the end I think we only used 3 of them, I had one and 2 other people had one. We learned some interesting things from this setup, but in the end there was never a SolidCoin double-spend and all coins were secured. I felt somewhat a victory on this as I wanted a secure coin.
Another controversy was that there was a "coin protection fund" added to SolidCoin 2. The nodes that signed stake blocks actually had to pay a small fee to this coin protection fund. The idea being rich people should support the network a bit and give back to the community. This fund was supposed to be used for various things in helping the coin. It was a big controversy because "who owned that account?" and it seemed now like I'm just getting money doing nothing. In the end none of that money was ever used, it just sat there dormant which is a shame, but the fact it existed bothered a lot of Bitcoin people. It had about 140K SC in it by the end of SolidCoin 2's life.
More controversy existed around my constant changes. I had at least 3 versions which were hardforks, that you literally had to be on because the only accounts over 1 million SC were controlled by the team and me. So if you disagreed with the hardfork, too bad, because no one else had enough money to overrule it. This same problem exists in Bitcoin at the moment, when it comes to a couple miners having all the control. If they don't like the proposed changes and they are over 51% of the network, well too bad. But at least there is a voting mechanism in the Bitcoin blockchain to help resolve these issues, and provided the miners don't go rogue it seems to work ok. My changes came about by discussing with the forum what needed to happen, we would come to some agreement and then implement it. Pretty centralized in that I had the final decisions coding it all, but I tried to democratize it as much as possible.
Hindsight is a bitch
SolidCoin v1 was not some serious coin attempt by me, it was simply a proof of concept for fast blocks, improved difficulty adjustment and a couple other things. I made it to hopefully better the crypto community, which I think it did in some ways. I got attached to the community that formed and got roped in to developing something I later wished I hadn't done.
I learnt many things about Bitcoin working on SolidCoin v2 and the never-released v3. I spent many months re-coding Bitcoin to do things it didn't want to do because I was in a bubble. In fact at some stage I think Satoshi was the only guy who had touched more Bitcoin code than me. I'm sure nearly everyone has been in the same thing, a rut, unable to look past what they are already doing, and that was me for nearly a year with SolidCoin. And in the end all I got from this experience is a lot of people angry at me which in turn led to getting trolled a lot.
Examples of such trolling are things like this. http://www.ripoffreport.com/r/Micro...thentic-Sounding-PayPal-Clone-Internet-876599
Honestly I find things like that very funny, they often make me laugh. What is sad is how some people seem to believe such things. I don't know how stupid one must be to take such articles seriously. And things like that are just the tip of the iceberg, there is a list of names commonly associated with me and I'm supposed to be all of them for some reason. If there is a scammer in the Bitcoin world then of course it is me.
No one needs any proof in the crypto world, if someone on a forum says you are X then you are X. If you ever ask someone to provide evidence for a claim they use prior posts of people alleging things without evidence as their proof. Kind of like some weird proof-of-scam system whereby if you make a new claim and back it up with the last invalidated one, it somehow makes your proof of scam chain stronger. "Proof of scam", maybe that is a new invention I just coined.
The reality is I am a fairly decent programmer with a large range of experience and I can literally make anything that can be used on a computer and nearly have done so. From an operating system, to network libraries, cryptocoins, games, databases, apps, websites, etc anything you can think of I can make. If I had the Bitcoin idea I could have made that in the 90s because my skillset already included everything in Bitcoin at this time. But I didn't have the idea, Satoshi did and that is something that is important to realize. You can be a great programmer, make the best code possible but it is not hard to be a great programmer. Its hard to have good ideas and then implement them.
The point I am making is the best way to make money is through innovative goods and services. It is not through creating a cryptocurrency -- even if it is innovative. If you think you can create a cryptocurrency that is somehow all owned by the few, you are either a money chaser or an idiot. I think the majority of people who created coins did it for that reason, to make money. But even with these projects that started that way there are now people behind some of them that are stuck in the same rut I was with a coin, trying to make it better. And credit should be given to these guys because it is at least not ALL about making money for them, nor was it for every coin created. It is a lot about improving things, as it was for me at the time.
tldr: Life is strange
I hope this has cleared some things up or been entertaining to whoever reads it.
Last edited: Feb 27, 2016