Proof of Not Working

Jan 16, 2019

Many incredibly poorly-thought-out things irritate the hell out of me that I truly believe shouldn't exist, and yet they somehow persevere in spite of their deeply flawed nature; like hard-shelled tacos, or white underwear, or those little teacup dogs that are so unlikely to have ever evolved without human meddling that if you throw one into the forest it'd be dead before it hit the ground. But as many things as there are that annoy me, NOTHING agitates my OCD more than Proof Of Work!

I know most of you proclaim to understand PoW, but deep down you're thinking, "What the hell is Proof-of-Work? Isn't that some thingy that all cryptocurrencies must have?" The answer is no, not all cryptocurrencies are created with the same technology. There really are HUGE differences between some cryptocurrencies, but first let's distinguish a fork from a coin.

Bitcoin has been forked many times, Bitcoin Cash, Bitcoin Gold, Bitcoin Classic, Bitcoin SV, Bitcoin up your ass, on and on. They are all forks of the original Bitcoin. All pretty much the same technology under the hood with modest differences to justify the forks. This was the first generation tech of cryptocurrency, and it does everything poorly, slowly, and expensively.

Then there's Ethereum, fairly described as second generation, which is actually a fork from Ethereum classic, and this blockchain is largely different than the Bitcoin class. Ethereum's claim to fame is distributed computing. It has the same lackluster performance stats as the Bitcoin technology, but it does a lot more than Bitcoin can.

Then there's a bunch of ERC20 coins, which aren't really blockchains, they're just tokens on top of Ethereum, so effectively they are ethereum technology too.

Finally, the real oddball of the bunch, is XRP, the next generation coin. It's so different from anything else out there (except the XRP-ripoff Stellar XLM that I'm not dignifying the presence of), that it bears special attention.

All blockchains share one common requirement: decentralized data integrity. It shouldn't be possible for 'anyone' to maliciously modify the account balances or transactions in the blockchain, otherwise the trust wouldn't be there and the whole thing would be worthless. Let me highlight that fact: TRUST = VALUE. You wouldn't let a convicted thief hold all your money would you? Of course not, so why would you put your money into an apparatus that you can't trust? Exactly. TRUST. VALUE. VALUE. TRUST. Peanut butter. Jelly.

How do they ensure that blockchains are trustworthy? Well, there's quite a few approaches out in the wild, but I'll just talk about the largest coins here.

  • Bitcoin - uses Proof of Work

  • Ethereum - also uses Proof of Work (at the time of writing), but with a twist that makes it a bit harder to have specialized hardware (ASIC-resistance)

  • XRP - uses 80% consensus

Let me break these down for you

Fundamentals of PoW

One day in 2009, a guy named Satoshi said to himself, how can I make a decentralized database that can't be corrupted. Hmm, the light bulb came on and Proof of Work was invented. In a nutshell, he devised a method by which the majority of people's 'commitment' decides what is the truth. His vision was that everyone in every home would run their computer 24/7 so they could be part of deciding what the 'truth' was. If bad people wanted to change the truth, they'd have to somehow have more computer power than everyone else. Seems rational, and statistically sound... except for that bastard Moore's law that I'll get into in a bit.

Ok, so what's this Proof of Work all about? Satoshi created a decentralized method that would determine what the majority felt should be the true version of the state of Bitcoin's accounts, so that the minority of bad people couldn't change this data, assuring everyone that your Bitcoin transactions and balances are tamperproof. That's it. What he created was this 'race' to find a low random number and the first person to find a low enough number would be allowed to add the most recent 10 mins of transactions to the 'truth', and they were rewarded for their efforts, thus motivating people to contribute to this race. Every 10 minutes there's a winner, and then a new race begins. It was expected that more honest people than bad-people-that-could-collude exist, and so the trustworthiness of the Bitcoin blockchain was protected because honest people wouldn't attempt to corrupt it.

To illustrate how PoW works, let's go back in time to the very beginning of Bitcoin, when the first block was being mined. I want you to imagine holding a bow-and-arrow (your computer's CPU) and you need to hit a bullseye (difficulty) 100 feet away. Ya, good luck, but to be fair, the bullseye is pretty big (less difficult). You launch arrow after arrow (SHA-256 double-hashing), hitting the edge, hitting the cat, but finally, eventually, you hit the large bullseye!! (discovered a hash lower than the difficulty level). Congratulations, you have just mined 50 Bitcoins! Well, it sounds more exciting now than it did when Satoshi was doing this back in 2009 when Bitcoins weren't worth anything. Whatever, the point is, when you hit the bullseye, you win, and then the next target is put in position.

Some might say, how do you create money out of thin air? You don't actually, you're merely creating digitally-assigned 'assets' out of thin air, like carving coins out of worthless wood. If you can convince people that it's worth something, then it is actually worth something. Bitcoins are just another form of wooden coins. The trick is to find people that are willing to buy them. It took some time, but many people fell for the vision of a one-world-currency and started trading real money for it. This is how Bitcoins become valuable.

Now admittedly, at the beginning, there wasn't much of a race per se, because there was only Satoshi greedily PRE-MINING his 50-coin allotments like a PRE-MINING BASTARD. But after he PRE-MINED a MILLION BITCOINS (look away, look AWAY.. say the maxis), he finally decided he was ready to start having other people in the mining race. He told his friends, and now there were multiple people launching arrows at the target. Sometimes Satoshi would hit the bullseye, but other times, his friends would hit it, and they'd get the 50 Bitcoins and the race would start over again.

Because so many more combined arrows (total hashrate) are being shot at the target now, the bullseye had to shrink (increased difficulty) so that the odds of hitting the bullseye still takes about 10 minutes on average. They don't want to give too many Bitcoins away too fast, or else they would dilute in value, so 10 minutes was chosen as the desired payout interval, thus the bullseye size (mining difficulty) corresponds to the statistical likelihood that someone will hit a bullseye every 10 minutes.

As time goes on, word gets out about how fun this shit is, and the nerd underground lit up with this prospective blockchain concept. People start imagining all kinds of potential for it, like the ultimate pyramid scheme, or a one-world currency, or Bitcoin for president!! Yes, Bitcoin's libertarian romance was overpowering, and soon people all around the world were shooting arrows from their CPU's, then their graphics cards, then specialty boards like FPGA's, and eventually specialty ASICs.

An ASIC is a custom-built chip that only knows how to do one thing, and it does it very fast. In the context of Bitcoin mining ASICs, picture a cannon loaded with millions of arrows that just keeps firing salvo after salvo. The comparison to the bow and arrow (CPU) mining is incomprehensible. Thing is, now that everyone has these cannons, hitting the historical size of bullseye would be much easier, and the only way to keep the 10-minute interval is to keep shrinking the bullseye (increasing difficulty). The bow-and-arrow miners literally do not have a chance. The bullseye is practically invisible to them, and so the arms race for bigger and bigger arrow cannons continues.

This is where Moore's law enters, at least in spirit. Technology has one exceptional truism, it keeps getting exponentially faster. As ASICs matured and the processes for manufacturing chips improved, producing ever-smaller dies, and orders-of-magnitude faster mining rigs came out...the Bitcoin mining difficulty level has blown through the roof, and now it seems mining equipment (previous generation arrow cannons) becomes obsolete before they even arrive to the owner's hands. I personally have purchased equipment from Hong Kong that arrived completely derelict, as if this 'new' machine had been mining for a year before I got it. This is a very important fact.. The mining equipment we know about, is already outdated. Keep that in mind for the point I'm slowly and painfully getting to.

What is the point of PoW?

Like I described, it was the clever trick that Satoshi devised to statistically keep the blockchain out of corrupt hands. It allowed the honest majority of miners to essentially come to consensus of what everyone's account balances were in a decentralized trustworthy way. In other words, it was the 'validation' mechanism to keep the data in the blockchain intact; all the transaction history, account balances, etc. Without some way to keep this information from being corrupted, there'd be no trust and nobody would use it.

What is a mining pool?

After you've been mining for a while, you realize that with all the competition now, your chances of hitting the bullseye becomes so slim that literally you may never hit it, and your expenses for running mining gear will be lost forever. The idea that people could work together to hit the bullseye and share the profits evolved and soon enough, mostly everyone was mining in 'pools', which is where a central server tells the miners what to mine for. Their combined efforts in trying to hit the bullseye results in regular if tiny payouts, making it at least worthwhile to participate.

To visualize this, picture instead of a 1000 arrow cannons all individually aiming for the bullseye, these cannons instead now point to a colossal mile-high vacuum (the pool) that takes in all these arrows from the 1000 cannons, and combines them to blast one ginormous firehose of arrows at the target, hoping to hit the bullseye. That's the effect of a pool. When the pool hits the bullseye, the winnings are split amongst the cannons using that pool, in the ratio of the number of arrows they contributed compared to the total arrows the pool fired. And because of the incredible number of arrows the pool controls, it hits the bullseye quite often.

What is a double-spend attack? (also known as the 51% attack)

Along with the assumption that more honest people than bad people are going to be mining Bitcoin, it's also assumed that bad people will never be able to control more arrow cannons than the total controlled by good people, so Bitcoin uses a simple rule for determining what data in the blockchain is the legitimate data: whatever Bitcoin blockchain data required more hashpower to produce, is the truth. This is a very specific rule that operates with extreme optimism that there'll never be malicious actors with more arrows (hashpower), so there's zero ability to undo the changes if for any reason a malicious entity was somehow able to control more than half of the 'arrows' for a length of time.

Again, to visualize, no matter whose arrow hits the bullseye, it counts, with no way to determine if it's a good guy or bad guy that hit it. In the case of a tie (at least at the time of block formation), whichever arrow is closest to the exact middle of the bullseye, wins the prize, and decides what goes into the next block on the Bitcoin blockchain.

Now for the difficult part to explain because I just couldn't come up with an analogy that didn't involve the Matrix or Groundhog Day, but here goes: Imagine we could go back to the day around 2010 when Satoshi first started sharing Bitcoin with his best friend, Luigi. Now, also imagine Luigi had a bit of a faster computer, so Luigi started winning the mining awards a bit more frequently. This really pissed Satoshi off and he thought about kicking Luigi's ass, but instead decided that he was going to take out a loan to buy another computer that was faster, but he wasn't going to be just satisfied with winning some of those future mining awards, no, he wanted all of them.

So Satoshi started his new computer but instead of competing with Luigi against the normal target, he instead started shooting his arrows at a hidden target that looks just like the normal target, but only he knew about. Once he hit that target's bullseye, he then created another hidden target that built off the first hidden target, and continued. Satoshi's new super computer was so much faster, that Satoshi had accumulated quite a few hidden bullseyes with higher difficulty. Satoshi didn't say a word about this to Luigi of course. In fact, Satoshi went so far as to borrow money from Luigi to pay off the loan for the computer, and paid Luigi back in Bitcoins! Luigi snickered, thinking he got the deal of a lifetime with all the Bitcoins Satoshi gave him, knowing they were going to be worth $20k each in late 2017.

When Satoshi was satisfactorily ahead in targets, he called up Luigi and said, "Hey asshole, who's your daddy, bitch.. (middle fingers)", and then promptly exposed his hidden bullseyes to the Bitcoin blockchain. The Bitcoin blockchain rules are very simple, whichever string of bullseyes are longest, or in the case of a tie, whichever string of bullseyes are closest on average to the dead center of the bullseye (both referred to collectively, if a bit confusingly, as 'length', longer being better), is the winner, no matter how long ago it happened. Thus, when Satoshi exposed his longer series of bullseyes, the blockchain shrugged its shoulders and just deleted the numerous blocks that Luigi had already created, right back to when Satoshi first started his shadow chain, and put Satoshi's newly exposed blocks in their place.

This means that all of Luigi's mining rewards vaporized, as well as any legitimate transactions that occurred in those blocks, such as the Bitcoins that Satoshi paid Luigi with. Now those Bitcoins were back in Satoshi's accounts AND Satoshi also now owned all mining rewards! Luigi was so pissed!

Ok, I totally get how hard this is to wrap your head around. It doesn't seem to make any sense, right? How can Bitcoin be based upon such a ridiculous validation scheme that can be broken like this? Well, again, the magic is the assumption that most people are honest like Luigi and that the majority of hashing would always prevent longer shadow chains from forming. In order to rip everyone off, you'd need to have more arrows than everyone else (hence, the 51%) so that you can build a shadow chain faster than the honest people can build the main chain, enabling you to drop your longer chain over the main chain and force it to be accepted by the Bitcoin network.

It was easy for Satoshi to go out and buy a somewhat faster computer and then build the shadow chain while Luigi thought he was enjoying his newfound wealth, but today it's a much different story. It would be VERY difficult for some Satoshi today to just go out and buy more arrow power than the ENTIRE Bitcoin mining community... or so you've been lead to believe.. ha ha ha HA HA HA.

(For thoroughness, the 51% attack is most frequently associated with the motivation to perform a double-spend, but the motivation to perform the 51% attack could also be to alter the blockchain in a non-profitable way, or to just break confidence in the blockchain.)

Is it true that it's too expensive for it to ever happen to Bitcoin?

As I mentioned, the original thought process for Proof of Work was that it requires more honest people than criminals to keep Bitcoin safe, but that neglects the possibility that one person can control a massively outsized portion of the hashing. It's easy to think that it's nearly impossible for someone to be able to have more arrow-throwing capacity (hashrate) at their disposal than all the honest arrow-cannons in the world, and many people sleep well believing that statistics is on their side...except, that there's a big chink in the armor there:

  1. Bitcoin global hashrate has stalled/decreased due to market conditions, thus, there's not as many arrows being thrown at the target, making the bullseye bigger (less difficult)

  2. Mining equipment (arrow cannons) is being produced at a phenomenal rate, and these monsters are exponentially faster than previous generations. The amount of arrow-throwing (hashing) power available today makes even a year ago look paltry.

Put these two 'converging' statistics together and you can see that the amount of hashing power protecting Bitcoin from corruption is quickly being outnumbered by the potential 'available' hashing power that all this hardware out in the wild is capable of. A lot of the hashing power out there today is either idle due to being offline because Bitcoin's value has dropped so much and miners can't afford to keep their equipment going, or the hashpower has been working on any of the many other types of coins. As Bitcoin's price continues to suffer, more and more miners drop off, lowering the difficulty, making it much easier for a group of malicious miners to possibly have control of more arrows than the honest miners.

Some would say it would take billions of dollars to purchase all the equipment necessary to successfully out-arrow the good guys, but it is possible to now 'rent' arrow-cannons (hashing power) by the hour, and as Bitcoin's good hashing rate drops because the payouts are so low, eventually it will be reasonable to expect someone will rent enough hashpower to be the majority hashing power on Bitcoin, and then they can pull the Satoshi shadow chain trick, spending all kinds of Bitcoins, then taking them all back by rolling the shadow chain over the main chain, and then quickly converting those returned Bitcoins into cash before the world figures out what happened.

Considering the millions of dollars one could easily steal, the minimal cost of renting this amount of hashpower seems a pittance, nay, an investment. It will happen. It may already be happening. The fact that so much more hashing hardware has been produced lately that ISN'T showing up in Bitcoin or largely anywhere else, might make you realize that a lot of hashpower has gone dark, and that should worry anyone that is invested in PoW tech. PoW's major flawed assumption was that hashrate would always be mostly equitably divided amongst the miners so that the honest majority would also always be reflected in the hashrate. It was never anticipated that the hashrate could ever be so concentrated into the hands of the few.

There could be right now a group of scammers, pitching into the quarter million dollars needed to purchase 1 hour of 51% hashrate to attack Bitcoin, creating that shadow chain while selling their hundreds or thousands of Bitcoins for cash, and when the millions in fresh cash has been secured, drop the shadow chain on Bitcoin, taking those Bitcoins back, and as quickly as possible liquidate them again before the attack can be statistically inferred. Boom!

Some will argue, well, it can only happen on exchanges so it'd be easy to identify the people responsible. No, there's localbitcoins.com, there's whale rooms, there's Bitcoinfog on the dark web for tumbling Bitcoins. There's privacy coins that the value can move through. It would be SO EASY to absolutely mop up without a trace. Whoops, did I just write the plan for the demise of Bitcoin? Hey if I can think of it, so can other psychotics. Err... other people.. look, a bird!

This all aside, there are other means to perform the 51% attack. Remember, all the attackers need is more arrows than the good guys. Incredibly, the easiest source of this hashpower is...the Pools! Right now, in China, 3-4 of their pools constitute well over 51% of all the main-chain Bitcoin-hashing power in the world. If those 3-4 CEOs decided to collude and secretly redirect their customers' hashing power to a shadow chain for an hour, nobody would figure it out until it was too late, not even the miners whose hashing they misappropriated. Meanwhile, they've double-spent hundreds of millions worth of Bitcoins.

Sure, I totally agree, it seems unlikely they would collude to steal from and destroy Bitcoin, but the mere fact that they 'could' should be a supernova in your face that Bitcoin is HORRIFICALLY centralized, and immediately exposed to the 51% attack. It's not theoretical, it's reality, and today, right this minute, we're entirely trusting 3 profit-motivated Chinese CEOs to not fuck with our money. Put another way, would you fly to China and give all your money to 3 Chinese pool operators for safe-keeping? If you're in Bitcoin, that's what you're doing.

How does it affect me?

Blockchain rewrites from a double-spend are very very bad. It's not targeted to specific account holders, literally, anybody's and likely everybody's transactions that occurred in an attack window will probably be eradicated. Imagine you spent $10,000 cash buying Bitcoins, and the next morning you discover that Bitcoin transaction to you was wiped out of the blockchain. Your shiny new Bitcoins are gone, and you have zero recourse, none.

Don't think it can happen to you? You might comfort yourself with, "well, I don't move my coins very much, so it seems unlikely my transactions will fall within an attack window so presumably my coins will mostly be safe as long as I don't move them right?".

This perspective fails in one thing: fear. It doesn't matter that only a handful of people got swiped, the word is getting out there that Bitcoin is no longer the untouchable STORE-OF-VALUE, and now every time you send or receive Bitcoins, there's a chance that transaction will get wiped out. Savvy investors are starting to get out of Bitcoin, and the price will plummet, panic will ensue, miners can't afford to continue mining so the hashrate drops, increasing the likelihood even MORE that the double-spend attack can occur, scaring more people out, and repeat.

This vicious downward spiral is how it affects you. The 51% attack would destroy all confidence in Bitcoin and it would die. What does it matter if they never steal your coins if the value of those coins is destroyed along with Bitcoin. TRUST. VALUE. NO TRUST. NO VALUE. Peanut Butter. Sardines.

Keep in mind, it doesn't even have to be Bitcoin that gets attacked next. We've seen the double-spend attacks move up the ranks, hitting so many coins now, bigger and bigger coins, demonstrating not only the blind will to attack coins, but the increasing capacity to do so. Even a near miss, like BCH or ETH, will probably be enough of a 7.8 earthquake that Bitcoin will crumble anyways without a direct hit. If anything, if we see a successful PoW attack on a neighboring top 10 PoW coin, that might actually erode enough confidence in PoW that Bitcoin falls to a point where a double-spend on it is successful.

Why would someone want to destroy Bitcoin?

  1. Double-spend exit scam - like in my Satoshi example, the double-spend is very lucrative. Sure it destroys all confidence in Bitcoin and it collapses, but hey, the perpetrators cashed out first and are rich as hell, right?

  2. Investors in other coins trying to scare the lucrative Bitcoin investor money into moving their investment into other coins

  3. Politics - Right now, there could be a Chinese leader meeting with the top three mining pools in China, ordering them to destroy Bitcoin as retaliation for the trade war. Like, right now. Putting your money into Bitcoin is precisely the same risk as putting your money into a Chinese bank.

  4. Status - How many senseless non-profitable hackings around the world daily do you need to see before you understand the number of psychotic hackers out there that would kill to have the title of the one that brought down Bitcoin?

  5. To benevolently expose to the world just how worthless PoW is, before a malevolent someone else commits a much more massive defrauding.

Can it be fixed so these attacks can't happen?

No. Bitcoin's heart and soul is this PoW algorithm that requires arrows be shot at a target. There's no way to change it in a way that everyone can soft fork to a new mechanism. PoW defines Bitcoin, and to change that would just create another gremlin fork to join all the others, leaving the current Bitcoin to continue doing its thing. The best thing to do is to accept that these crushing waves of 51% attacks will continue to come and hit bigger coins, so get OUT of PoW coins, and get into the serene safety of XRP. Who would've thought after all that shit-talking from Bitcoin maxis that XRP's pre-mining would've been the one thing that saves XRP from Bitcoin's demise. You fucking assholes.

What's different about Ethereum's Proof-of-work?

Ethereum has a little different approach that originally made it very difficult for ASIC mining, but eventually ASICS evolved to be able to mine Ethereum, so it was all for naught. In fact, ETH forked from ETC, and we all know what happened to ETC so don't even ask.

What happened to ETC?

BOOM! It got storm-raped by a massive $500,000 double-spend attack. Even I, ME, could not believe it happened, already. I always knew this was going to become a big problem, but to see a double-spend hit so high and so hard today!! Well, it's just a harbinger of what's to come my friends. There is a lot more dark hashpower out there than I thought, so don't think for a second that this is 'all they got'.

What is Proof-of-Stake? (PoS)

It's an attempt to virtualize mining. In essence, instead of buying environmentally-disastrous mining gear that produces a calculated rate of return, you just agree to lock up that money in the PoS blockchain and they pay you the same amount as if you were mining it. Virtual mining, dig? (love that joke). There's really no large-scale implementation of it yet so it's not an option at this time, and whether it's immune from a 51% attack or not is a matter of how it's implemented, but we'll have to wait and see when it finally does surface.

Does this double-spend problem affect XRP as well?

No, XRP does not suffer from ANY of the PoW or PoS vulnerabilities because there's simply no mining involved. The strategy for securing the blockchain data and account balances is radically different, provably much more secure, PROFOUNDLY more decentralized (yes really, XRP would continue to work even if the company Ripple went out of business), requires almost no power, and is saving the planet by rendering that black-smoke-belching Bitcoin shitbox obsolete.

In fact, it would require someone to secretly hack into 80% of all XRP validators AROUND THE WORLD, and overwrite the validator software with their own malicious version, in order to bring down XRP. I can't even put a human number on the odds of that ever being accomplished! I mean, I'd be wearing a meteor-helmet long before I'd start worrying about XRP being compromised. Compare this to just 3 Chinese pool operators with Bitcoin's jugular in their fingertips.

The general agreement amongst PoW maxis is that not only is PoW an essential element to securing a blockchain, but they believe it's the ONLY way to secure a blockchain! And unless you ARE using PoW, you aren't EVEN a blockchain AND that you are centralized!.. So stupid. Mining is NOT what gives Bitcoin value, mining is what SECURES Bitcoin's value. Value ONLY comes from its ability to hold/transfer value. To suggest there's NO OTHER WAY possible to secure a blockchain than to burn a mountain of fucking coal every week, reminds me of a joke my mom once told me: What's the difference between a Bitcoin maxi and a 6-year-old child that was raised by wolves?.. Exactly.

What XRP does differently is it relies upon a consortium of validators to come to at least 80% consensus on what the current state of the accounts and transactions are, every 3-4 seconds. Once they agree, balances are updated, the block is sealed, signed, connected to the prior block ,and forever locked in history. There is NO ATTACK that can change the past in XRP, no shadow chains, no 51% attacks, no amount of hardware you can rent to attack it; you can't even spam it without costing yourself a fortune. XRP is a fucking digital fortress; your balances and transactions are permanent. Sleep well.


I never did understand the point of mining, it seems ridiculous to me now in hindsight. Perhaps the notion of having anonymous money is appealing, or the Libertarian notion of everyone having access to Bitcoins (like everyone has access to Bitcoin mining equipment..), but in my mind it's just trivial to figure out how to buy your coins. I remember when I first started mining Bitcoins, I used my CPU, then my graphics card, then bought some FPGA boards, and finally had a room full of USB ASICS. It was a slow-bake oven in there, and I was making a paltry $25 a month after my $480 electricity bill was paid. So goddam stupid. I wish I had the sense to have just bought the goddam Bitcoins instead! If I had done that, I'd be so goddam rich right now. I can almost hear parallel universe galgitron laughing at me, "Hope you like poverty, fucker!.. (middle fingers)"

Point being, mining is a HUGE GAPING VULNERABILITY and it doesn't accomplish any of the equitable distribution it was intended to. PoW has FAILED, people! (works with or without the comma, what a struggle). Pre-mining XRP was simply genius, and XRP remains the sole unrealized king of crypto. Many many MANY self-serving influential people will try to tell you that PoW's 51% attack isn't a big deal, that it can be swept under the rug, or corrected. Don't close your eyes to PoWs skid-marks, look at it.. LOOK AT IT! I hope you now understand, they're just a bunch of dumb people hanging onto their religion till their dying breath. Don't go down with them, in fact, step on their heads and save yourself.

All in XRP.


Comments welcome on Twitter. No tips please! For brevity's sake, please forgive me for not responding to every comment. I do read them all.

Previous Article

Next Article