Showing posts with label BitcoinXT. Show all posts
Showing posts with label BitcoinXT. Show all posts

Monday, August 1, 2016

Contentious Bitcoin fork WILL create a split

Contentious Bitcoin fork WILL create a split

The Bitcoin community has debated a potential hardfork to Bitcoin for over a year now. There have been various solutions proposed to change the hard cap on block size and increase the amount of transactions that can go into any single block.

Leaving aside the discussion as to which approach would be the best for Bitcoin in the long run, we can agree that there is a disagreement on the issue and any hard fork that may happen will not be as unanimous as the previous forks were. Looking at some recent examples, we can expect that any contentious Bitcoin fork will create a split in the network.

Big players can trump forks - Elacoin


Last year Steve Sokolowski shared his thoughts on a Bitcoin hard fork proposal in a forum post. Other than discussing the actual solution, Steve also shared a story of Elacoin's attempted hard fork. Apparently, it was some unremarkable Proof of Work altcoin which activity has died off after awhile. A new developer came in and decided to breathe new life into the coin by creating a Proof-of-Stake fork. A lot of people got excited for the update and the trading volume and price rose back up.

When the fork was scheduled to take place, despite the backing of the community, the developers and stakers, the fork failed since Cryptsy continued to trade the coin without upgrading their daemon. Eventually the hard fork was deemed a failure while the old coins were still being traded.

This brings to mind the famous experiments with five monkeys, a ladder and a banana. People would trade a coin in anticipation of the fork, then ignore the fork and continue trading the coin due to its increased price and volume, completely forgetting why they were trading it in the first place. Classical altcoin speculators.

This only goes to show that big players, even if they are in a minority, can trump developer forks. While a story like this is rather unlikely to happen in Bitcoin, since the coin itself has many different markets and a vast community, we could experience a different problem when a hard fork happens...

New Coke vs Coke Classic - Ethereum


Not so long ago, Ethereum has experienced The DAO debacle, wherein a large quantity of ethers were drained from a high-profile smart contract. This prompted the Ethereum developers to create a hard fork that invalidated the attack. For a few days everything seemed to go smoothly - the majority of the network supported the fork, everyone transitioned just fine and it looked like the network could put the kerfuffle behind them. Then came Ethereum Classic...

Ethereum Classic is, I suppose, an "un-fork" of Ethereum - a codebase designed to ignore the DAO hard fork and continue the network as if it never happened. Whether the developers believe that they are supporting the community that disagrees with the fork, or they just want to make a quick buck, the fact is that the classic ethers (ETC) started being traded on Poloniex, probably one of the biggest altcoin exchanges currently, and now are being actively traded on a number of other exchanges with a current market cap of $200M and 24h trade volume of $65k - forth market cap after Bitcoin, Ethereum and Ripple, and having double the trading volume of Ethereum, second only to Bitcoin...

From a perspective of any Bitcoin core developer wanting to fork Bitcoin, this is probably the worst thing that could have happened in the given situation. Exchanges supporting both sides of a fork can set a precedent of what will happen when Bitcoin is forked in any fashion short of full unanimity. Even if the unforked version of Bitcoin has 1% of its market cap, that's $94M market waiting for an exchange to take their money - it would be the 7th largest coin market, around the halfway point between Litecoin and Dash.

As an Ethereum Developer pointed out in an Ethereum Foundation Skype Chat leak - ignoring Ethereum Classic means there is no money to be made, while embracing it allows you to tap into some "vestigial value remaining from the shared chain history".

Even if any potential fork has all of the support from all of the developers and miners, there isn't much one can do to stop the un-fork, perhaps short of a Coiledcoin-esque 51% attack. Even if networks like Ethereum implemented "the bomb" (a special smart contract that prints tokens out of thin air, intended to kill an un-forked network), a developer could just create another hard fork to disable that code pretty much like the DAO was disabled...

Kill it with fire


So when all is said and done, it looks like the only way to ensure only one version of Bitcoin is around, one would need to reach an overwhelming consensus with the developers, the miners and the exchanges to support only one part of the fork. Anything short of that will create a split network with duplicate tokens being created on both tines of the fork.

To ensure the rest of the network follows suit, someone should put aside some funds and mining power to be able to execute 51% attacks on any un-fork that would start being traded at an exchange. While a 51% attack in normal cases might be in the legal murky territory, perhaps using it to enforce a hard fork might not be seen as an attack on the currency, but as a part of the upgrade process. The law might not catch up to this conundrum for years still.

Conclusions


Anything short of an unanimous hard fork to Bitcoin will most likely result in a network split where both sides of the fork. The split will most likely be motivated by short-term profit to extract some remaining value from the alt-chain. A good way to ensure no such split happens would be to divert some resources to performing 51% attacks on the minority chain and thus causing whatever exchange that tries to trade them to lose money.

Related discussions:


Monday, March 14, 2016

On /r/Bitcoin moderation - three years in review

In the past few months the moderation of /r/Bitcoin has become a contentious issue. Ever since the ban on discussion of alt-clients like BitcoinXT, the community seems to have fractured into a  few camps, sometimes vilifying one another. I was asked to clarify where I stand on this and a few other issues, so I might as well roll a few /r/Bitcoin-related topics into a blog post for future reference.

The XT censorship


As many /r/Bitcoin moderators might tell you, the decision to censor BitcoinXT was made solely by Theymos. Along with justification as to why this would happen, the message was pretty clear:

"[...] I currently intend to remove all XT submissions single-handedly if necessary, and to remove any moderator who undoes my actions, even if all other /r/Bitcoin moderators disagree."

Some moderators decided to quit out of principle, others found out later that Theymos wasn't kidding with the threat of removals.

So, the big question a few people have asked me - what is my stance on the matter?

My stance


I had a few phases of thinking as I learned more and more about XT. In my initial reaction - I was against the censorship of BitcoinXT - it was a project by a respected Bitcoin developer and it was proposing changes that needed to happen.

After debating it with Theymos and learning his point of view - I agreed with his logic that XT could be considered an altcoin that branches off of Bitcoin and that in future we could have similar forks by less reputable developers that change other contentious parts of Bitcoin - coin limit, redlisting, etc. However, that still wasn't the full story.

I've reached my final conclusions after discussing the topic with the community and learning that BitcoinXT would only fork when it is in the super-majority and becomes the de-facto Bitcoin network. For me, that was a good enough reason to not consider XT and similar clients altcoins - they don't just fork in a "revolution" and create their own network at a whim, but instead they take a reformist approach of winning the network over in a more "evolutionary" approach.

So in the end, my stance is - a client that attempts to introduce a hard fork into Bitcoin through super majority should be on topic for /r/Bitcoin.

As such, I have never removed any such topic or discussion, and I am participating in both the /r/Bitcoin subreddit, as well as the alternatives of /r/bitcoin_uncensored and /r/btc .

Unfortunately, even if I'm in favour of allowing discussion of BitcoinXT and similar clients, this decision is not in my hands. Which leads to another question - why don't I resign in protest?

Protesting


Some people have suggested that I and other moderators should resign in protest against the censorship rules. I personally disagree with this logic on the following basis - if you resign, you are showing that you don't support a given decision, but once you're out, you've basically done everything you could in the matter. You will get replaced by another mod sooner or later, and the capacity of a subreddit to function will be restored. The only difference you will make is to remove the voice of opposition from the pool of moderators, hurting your position in the long run.

So my approach is to remain a /r/Bitcoin moderator, continue moderating it like I was doing up until now, stick to my conviction of not censoring the discussion of BitcoinXT and similar clients, and voice my disagreement with the policy as appropriate in the future.

It might not be as glamorous as taking an umbrage, throwing a tantrum and leaving the moderation team as some would prefer, but this is the approach I prefer.

"Lets not moderate anything" - a day in life of a moderator


Every now and then, some people propose that we shouldn't moderate any discussion on /r/Bitcoin or similar subreddits. While the idea might be in-line with the semi-anarchist nature of Bitcoin, it doesn't really work. This is what moderation has to deal on a daily basis:


Sometimes, the spam is more organized - there are some communities that use Reddit for promoting their coin of choice. Over at /r/CryptoCurrency for example, we had to start limiting Reddcoin spam because the astroturfing was getting out of hand.

Some of the spam moderation can be automated - we have a fairly extensive automoderator script running on /r/Bitcoin that takes care of a lot of bad submissions for us.

When we're not dealing with spam, we're dealing with trolls. Some people would see this as more of censorship, but the truth is - too many trolls can spoil the community and drive away the good people you want to have around. A few years back I had a conversation with one of the "Bitcoin celebrities", and he told me that he doesn't post in /r/Bitcoin any more because of a number of trolls dogging him each time he posts. Trolls can also derail conversations and generally make the comment section a place you don't really want to venture into.

Initially /r/Bitcoin didn't ban anyone - Theymos was against it years back since the same trolls can come back again and again under new usernames. However, after getting a lot of complaints about a single, prolific troll, we started banning the trolls. The guy in question went through a lot of different usernames, got banned reddit-wide and even had to resort to switching IPs to avoid IP bans. While as it turns out - we didn't manage to drive him off completely (he resurfaced in some comment section a year or two after we started banning him to have a small chat), we did manage to make him lose interest in trolling every thread on the subreddit.

The last activity that takes up a bulk of moderation is answering to people complaining. Some rightfully so when their submission gets caught in some spam filter when it shouldn't, some less so when they decide to tell us that we can go and die since we won't be able to ban all of their accounts.

The remaining 1% of time of being a mod is where everything else happens - discussing rules, answering some questions, etc.

All in all, moderation is a pretty boring, thankless job.

A comic on Reddit moderation

Bitcoin memes and my biggest mistake


Now that we've talked about /r/Bitcoin censorship and how moderation works, let's talk about memes. Reddit and memes seem to go together hand in hand. However, this doesn't always work for every situation. If you want to have a subreddit focused on having serious discussions, memes can have a detrimental effect.

Checking out a photo or reading some short, witty meme can take a few seconds, after which a user would be able to vote confidently whether something is good or not. Page-long thought-provoking discussion about the meaning of live, the universe and everything on the other hand can take minutes to read before someone can say whether they consider the submission good or not. Because of this, memes get more upvotes faster, meaning they bubble up to the front of Reddit, getting even more exposure and votes, drowning bigger posts in their wake.

Worse than that, people then turn around and proclaim "memes seem to get a lot of upvotes, which must mean this is what the subreddit wants!". This can create a further self-fulfilling prophecy. The argument also ties to the above mentioned notion that we should just use votes to decide what should be posted on a given subreddit. Here is a comic explaining this.

This is why some communities choose to ban memes altogether - moderation and removing submission is not about what gets the most / least votes, it's about what fits the given subreddit. How does this fit in to /r/Bitcoin?

Bitcoin memes


Bitcoin and memes have a complicated relation. Some people believe that Bitcoin should be all about serious business and memes have no place in /r/Bitcoin. Others embrace the internet culture and the light-hearted nature of Bitcoin that has been around ever since the Alpaca Socks (heck, a meme is the origin of Dogecoin). As far as anyone can tell, the community is pretty evenly divided on this issue - none of the sides are in a decisive majority. So while we have a meme-centric Bitcoin subreddit, /r/Bitcoin is also welcoming of the memes and silly photos.

Most of the time, the subreddit is fairly balanced and you don't have a flood of memes. This, however, changes every now and then....

Price memes


Bitcoin price meme, circa late 2013

When the Bitcoin price swings rapidly, the Bitcoin subreddit tends to fill with numerous posts of either elation or woe. There are numerous posts shouting out the newest price (usually 5-10 of very similar posts at a time). Understandably enough, there were a lot of people that didn't like when this happened and called for ban on memes. One such person, with his post on 2013-12-07 was /u/ShakeThatBass .

For those that haven't been around /r/Bitcoin in 2013, that username might not mean much. ShakeThatBass was an anonymous early Bitcoiner that organized one of the biggest Bitcoin givaways in history, giving away 350BTC (worth at the time $7000) through Bitcointip to people that donated to various charities. The giveaway was held on 2013-03-04 on /r/Bitcoin. This act of generosity has earned him a lot of respect from a lot of people, myself included.

Back to price memes. So having read his highly-upvoted post 11 days prior, on 2013-12-18, when the "news" of China cracking down on Bitcoin was swung he price plummeting down to about $500 from the high of $1100 just two weeks prior, a number of Bitcoin price memes started to surface again. Then, I made a decision that I still consider my biggest mistake in my /r/Bitcoin moderating career - I issued a temporary ban on memes and price posts that lasted for about a day.

The decision came only from myself (no other mods were consulted), driven by the will of the community. When the dust settled and everything got calmer, I learned an important lesson in moderation and added another rule for myself to follow - don't make big decisions single-handedly. Everyone makes mistakes and at the heat of the moment a decision might seem justified, but other peoples may disagree. This is why when it comes to important moderation decisions I consult with other mods to hear their opinion and see if they agree - now even if I'm the second most senior mod I wouldn't do such things again without another mod's backing. While not necessary for the mundane mod chores like approving / removing submissions or banning obvious trolls, it is useful for the big decisions.

Moderation consistency


The last rule I follow is moderation consistency. /r/Bitcoin is currently moderated by 10 people and one bot. Everyone can have their opinion on various matters, but at the end of the day we have to act consistently to avoid moderation wars:

Months of moderation wars for Tonal Bitcoin discussion page between Luke-JR and Aleš Janda.

To avoid such petty squabbles, moderators should first discuss a contentious issue and then apply the consensus in practice (or at least, become a conscientious objector, rather than engaging in mod wars), even if they hold an opposing view. Whether it comes to banning trolls, removing spammy websites or the like, consistency is important.

Conclusions


Being a subreddit moderator is a thankless job. It takes a lot of work to remove spam and trolls. Sometimes we make important moderation decisions, and sometimes we make mistakes in our judgement like everyone else.

Overall, my personal moderation stance is as follows:


  • Moderation is essential for combating spam and trolls, as well as keeping the subreddit on-topic
  • Moderation consistency is very important and mod wars should be avoided
  • Important decisions on moderation and the direction of a subreddit should be made by at least two moderators, or a consensus for really big decisions
  • I disagree with the ban on BitcoinXT and similar clients, but for moderation consistency, I remain a conscientious objector
  • I don't believe in leaving a moderation team over a disagreement on moderation policy as it can remove the voice of opposition from the future discussions
  • Everyone makes mistakes, admitting to them is not the end of the world


I hope this covers some of the questions people might've had over the last three years of me being a /r/Bitcoin moderator and gives something for other cryptocurrency subreddit moderators to think about.

Wednesday, June 10, 2015

Handling bitcoins during a hard fork - pondering Bitcoin XT

Handling bitcoins during a hard fork - pondering Bitcoin XT

As everyone might've heard by now, there is a big debate in the Bitcoin community about whether or not we should increase the block size limit. Some core devs are pushing for the size increase with the Bitcoin XT version, and it looks like some people might be committed to the hard fork even if the community would be against it. This can be a potentially dangerous move that fragments the Bitcoin world to those that use Bitcoin QT and those that use Bitcoin XT. If this was to happen and both of the versions were to coexist, there is a lot more than just confusion to be had for anyone that holds funds on behalf of their customers.

Hard fork and the transactions


Initially, when the hard fork happens, all transactions will be interchangeable between the two blockchains - after all, they will be spending the same outputs using the same algorithms. You could broadcast the same transaction to both blockchains and they will be able to get into the blocks just fine. However, this also means that any withdrawal from shared wallet, like from an exchange or CoinBase, may siphon the funds out of both chains even if the service is using only one chain. If a service was to ever switch over to the other chain, their balances might be out of order.

Over time, the networks will start drifting apart. Any transaction that spends the coinbase transaction of a block minted post-fork won't be copyable to the other chain. Similarly, any conflicting transactions will only be valid on one chain.

Since Bitcoin network currently has a lot of unspent outputs (such as the ones tied in physical bitcoins), we will probably see transactions valid on both chains for years to come.

Confusion about addresses


After the fork happens, there can be a lot of confusion as to what network everyone is on. If the address structure remains identical, someone asking you "to send 1BTC to 1PiachuEVn6sh52Ez7o6Fymvw54qvQ4RBm" might be confused when you send that amount of money to the listed address, but on a different network.

Maybe the devs behind BitcoinXT will take some precautions to prevent such mistakes by altering the Base58 alphabet in a similar fashion to Ripple (yes, Ripple addresses are identical to Bitcoin with the difference of the final Base58 alphabet used). Perhaps BitcoinXT addresses would start with an X instead of 1 without changing the underlying mathematics behind address creation or net bytes?

Recommendations for exchanges and other services


Even if one side of the fork will be more likely to stick around than the other, it is still useful to be prepared to exist on both sides of the fork. My recommendation for any exchange or service relying on a shared wallet is to make a backup of all user balances on the day the fork occurs. Since those Bitcoin balances would be valid on both chains, if the service was to support both sides of the fork, users should receive the same balance in BitcoinQT and BitcoinXT.

After that, both the hot and cold wallet balances should be spent on both chains in a conflicting fashion (send all funds to A on BitcoinQT, and all funds to B on BitcoinXT). After both transactions are confirmed on the separate forks, there will be no chance of the same transaction being copied between the chains. The balance of whichever chain is not used should be safely stored for the time being along with the backup of user balances.

If an exchange was to support both of the chains, supporting them straight away would create the least amount of confusion. Users should receive the same balance on BitcoinXT as they currently have on BitcoinQT, with their fiat balance remaining intact. Afterwards, the users would be free to trade both coins like they would be separate altcoins.

Conclusions


A Bitcoin hard fork might be coming. Exchanges and hosted wallets should have a plan of action if both chains were to co-exist.