Showing posts with label Bitcoin Core. Show all posts
Showing posts with label Bitcoin Core. Show all posts

Saturday, August 1, 2015

What Is Bitcoin XT & What Is Happening With Development of The Bitcoin Core


After many attempts to debate the current block size consensus developer Gavin Andresen and Mike Hearn have forked Bitcoin Core into a patch called Bitcoin XT.

“Once XT 0.11A is launched (which will include the bigger blocks patch set by Gavin and myself), there will be a separate git branch that is Core 0.11 + only those patches and nothing else.”

Bitcoin XT is a project set aside from the core network lead by Hearn. The Core code and XT are very much the same in character, however the latter is used for a test net for changes in the code. Implementations such as block size and the relaying of double spends can be be added. The two software forks can work together although the consensus in XT has changed its block size.

Andresen has recently proposed to hard fork the Core code to the XT version via sourceforge. He would like the community to adopt the patch with its changes to block size and come to consensus with its protocol. Either core will have to adapt to the process or just step aside and let XT take the reigns. From the XT readme shown on Github the description tells that the code is more "experimental" than Bitcoin. On XTnodes.com it gives a full description of “ Why Use Bitcoin XT?”



“XT includes a bunch of other changes aside from blocksize that are also controversial.  If you're wanting bigger blocks, you are already on board with a change that is considered so controversial it must not happen, according to the Bitcoin Core developers. So you may wish to think about what "controversial" actually means, who gets to label something as "controversial" and how much you care about their opinions.”

XT currently has roughly 90 nodes in propagation and nodes are used by the team Lighthouse to check if pledges are valid. Nodes in the network are completely compatible with the existing core node structure. XT changes do absolutely nothing to the current core protocol, in time though they will not be compatible and consensus may move to this version of the blockchain trail.

Gavin's proposed increase to Core for March 2016 is a 20mb increase in block size. Hearn has a unit test comment saying XT will have an increase of 8mb and doubling every two years. Jeff Garzik’s BIP 100 and 102 block size proposal is far smaller in increase. Garzik says: “This [BIP 102] is an alternative to BIP 100, as a fallback if other consensus is not reached. It allows for limited experimentation to explore a size increase without going overboard. But it’s not flexible, probably requires another hard fork, and still is an arbitrary [economic] policy not informed by the market, so inferior to BIP 100. However, having a minimum-agreed backup plan is better than no plan at all.”

“Unit test and code for a bigger-block hard fork. Parameters are: 8MB cap ... doubling every two years (so 16MB in 2018) ... for twenty years ... earliest possible chain fork: 11 Jan 2016 ... after miner supermajority ... and grace period once miner supermajority achieved — The activation state of the fork is stored in the block tree database; it is written when the threshold is met (and unwritten if the threshold block is re-forked out of the best chain), and read at startup.”— Code review and bug fixes by Mike Hearn.

According to "Why Use Bitcoin XT" the patch has principles the developers believe are important:

“One of the things we've been working on that will also launch with the new XT is a manifesto that lays out principles we consider to be important. These are how XT differentiates itself from Core. The other changes in XT all follow those principles, so you can read them and evaluate whether you believe those principles are controversial or common sense. If you believe the latter, you should have no worries about the other patches.”— Mike Hearn




The debate continues everyday with someone giving their subjective valuation of whether or not the code should change. It seems raising the block size has become a pretty big deal. There are those that think the entire change to the protocol is not that alarming and it should be adopted. Mike Hearn and Gavin Andresen do not think the increase should cause for such alarm and are proceeding with Bitcoin XT because consensus cannot be met. However the hope is consensus will meet for a full adoption of XT by the community or a copy of its concepts via Bitcoin Core.


What do you think of the fork Bitcoin XT? Let us know in the comments below.

Images courtesy of InsideBitcoins and Redmemes 

Thursday, July 30, 2015

Mike Hearn & Gregory Maxwell The Great Bitcoin Debate Continues


Mike Hearn decided to clear the air as he made public a chat between Gregory Maxwell and himself. A popular reddit post called "Thank You Mike Hearn" had found its way to the front page with what seems to be a copy & pasted debate between Hearn and Maxwell arguing over Bitcoin scale. The post starts with a statement from Maxwell:

"It was well .... understood that the users of Bitcoin would wish to protect its decentralization by limiting the size of the chain to keep it verifiable on small devices."

Immediately following is a response from Hearn who seems upset throughout all of his responses. Hearn says that it was "something you invented yourself" in reply to the to the limiting for small devices. After this statement Hearn reaches into the vault of Satoshis words located in the Satoshi Nakamoto Institute. Quoting Nakamoto's words in defense to Maxwell belief that Bitcoin was to remain limited. The quote reads:

"At first, most users would run network nodes, but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware."

Hearn continues to describe Satoshis words and interpretations of Moore's Law and streaming video. At which point Hearn tells Maxwell that he's been working on Bitcoin longer and that Maxwell's statements are an attempt to falsify the original intent. He continues saying "this is not a personality cult" and that the work on Bitcoin was to be a shared vision.

"I have been both working on and using Bitcoin for longer than you have been around, Gregory. Please don't attempt to {expletive] me about what the plan was. 

And stop obscuring what this is about. It's not some personality cult - the reason I keep beating you over the head with Satoshi's words is because it's that founding vision of the project that brought everyone together, and gave us all a shared goal."

The lead developer of Bitcoin XT the alternative blockchain to Bitcoin core said if Satoshi did say from the start that he intended for the protocol to never scale. "then I'd have not bothered getting involved. I'd have said, huh, I don't really feel like putting effort into a system that is intended to NOT be popular. And so would many other people." He continues to tell Maxwell that he means what he says and that he is not "wrong" concerning this matter.


This is where the the reddit post really gets heated. In a statement apparently made directly to Hearn and core developer Gavin Andresen, Maxwell claims "market failure results from you and Gavin years long campaign to ignore problems in the mining ecosystem" In reply to this jab Hearn denies the claim entirely. Calling Gregory "crazy" to say that Gavin and his work on Bitcoin has been "insanely toxic". Hearn clearly upset says:

"Gregory, you are getting really crazy now. Stop it. The trend towards mining centralisation is not the fault of Gavin or myself, or anyone else. And SPV is exactly what was always intended to be used. It's not something I "fixated" on, it's right there in the white paper. Satoshi even encouraged me to keep working on bitcoin before he left!"

When finishing this intense comment Mike tells Gregory to go and build his own altcoin. Telling him to call it "GregCoin" and implement features that can only be verifiable by small devices. He tells Gregory to make sure he tells his coin community all the details and that the scale will never change. When the community asks to up the capacity that he will have to send out emails to the users saying "no, GregCoin is meant to always be verifiable on small devices, that's our social contract and it's written into the consensus rules for that reason". Mike signs off the post letter style saying:



"But your attempt to convert Bitcoin into that altcoin by exploiting a temporary hack is desperate, and deeply upsetting to many people. Not many quit their jobs and created companies to build products only for today's tiny user base. My list of "things a full node is useful for" wasn't ordered by importance, by the way."
-Mike Hearn

It seems the inner fights continue about the radical change in the Bitcoin protocol. Developers are currently at odds. This hard fork proposed for March 2016 is truly becoming a "fork in the road". Many wonder if everyone will come together in the end to do or not do this change. To change the code or not? That is the question on everyone's mind. Eventually a decision will be made.

Do you think consensus will be made by March 2016? Let us know in the comments below.

Images courtesy of Blockstream, insidebitcoins, and Redmemes 

Friday, July 24, 2015

The Great Big Block Size Debate



Since core developer Gavin Andresen announced his proposal to the Bitcoin community to increase the block size many have been in high debate. The question is when the March 2016 date arrives will consensus be met? With miners, exchanges, core developers and the community in such an uproar it's hard to say.

Bitcoin is an open source protocol. Its core development is headed by Wladimir J. van der Laan, Gavin Andresen, Jeff Garzik, Gregory Maxwell, and Pieter Wuille. Among these five developers the code has seen others such as Peter Todd contribute to the Bitcoin code. Roughly 259 individuals have added to the the protocol and its core. Between them all and other voices over 7,400 commits have happened.

“I am - in general - in favor of increasing the size blocks: as technology grows — Pieter Wuille, Developer

This leads to another important question. Does everyone take part in this system and have a final say in the code? The answer as of now would be yes. Gavin does indeed influence the Bitcoin project to an extent. Widely recognised as the main developer behind the scenes, and all five of them have great and different opinions. However if any of the five core developers chose not to seek consensus, or were to change any core aspect of the client they would fail. It would undermine the work of many, and there would be many disagreements. Not just from those who have contributed code but also wallet servers, miners and mining pools, and exchanges. March 11, 2013 is a perfect example of miners refuting a hard fork. Bitcoin is a peer to peer system and completely open source.

Over the course of this discussion many in the community had a lot to say about Gavins proposal and his following blog posts. Blog posts which addressed certain arguments against his idea showed Andresen has been committed to this change. People like Peter Todd, Mike Hearn, and Andreas Antonopoulos had very strong opinions from the get go. Todd and others stating from the get go of Andresens proposal that not all the developers agreed with the increased block size. Arguments such as higher fees, and centralization are core issues with the increase. Positives of increasing the size include faster transaction times, and various scaling fixes.

“Block size is a question to which there is no answer, but which
certainly has a LOT of technical tradeoffs to consider.”
— Gregory Maxwell, Developer

These debates have fueled many different Bitcoin clients appearing to the public. Such as Bitcoin XT run by developer Mike Hearn. Bitcoin XT acts as a test net for the Bitcoin core and is increasing its block size as we speak. Even Andresen has expressed the intentions of adoption in a SourceForge message saying Bitcoin Core users would be asked to adopt the new changes and then approach the miners. Mike Hearn currently leads and has full commit access to XT.

Bitcoin Core is not really changed in drastic ways. There have been a bunch of hard and soft forks throughout its existence. Developer van der Laan said the core is changed in a “non-controversial and janitorial” manner. Two of China's largest exchanges BTCChina and Huobi have been against the 20mb increased proposed by developers. Some miners and various pools have also disagreed with the Increase. Various pools from China have requested an 8mb increase rather than the 20. The increased number of megabytes has been all over the map in this heated debate.

A higher limit can be phased in once we have actual use closer to the limit and make sure it’s working OK. — Mike Hearn Developer

On June 22nd core developer Jeff Garzik had an interesting discussion with another fellow developer Pieter Wuille. Posted to reddit Jeff shows the public his discussion. Peter writes:

Some people have called the prospect of limited block space and the development of a free market a change in policy compared to the past. I respectfully disagree with that. Bitcoin Core is not running the Bitcoin economy, and its developers have no authority to set its rules. Change in economics is always happening, and should be expected. Worse, intervening in consensus changes would make the ecosystem more dependent on the group taking that decision, not less.

This completely ignores reality, what users have experienced for the past ~6 years.

Jeff responds with: "Change in economics is always happening" does not begin to approach the scale of the change.

For the entirety of bitcoin's history, absent long blocks and traffic bursts, fee pressure has been largely absent.

Users & market are forced through a second period of chaos and disruption as the free market is rebooted again by changing the block size limit.

The average user hears a lot of noise on both sides of the block size debate, and really has no idea that the new "let a fee market develop" Bitcoin Core policy is going to raise fees on them.

It is clear that - "let the free market develop, Right Now" has not been thought through - Users are not prepared for a brand new economic policy - Users are unaware that a brand new economic policy will be foisted upon them” — Jeff Garzik Bitcoin, Developer

A week ago Jeff has proposed to increase the Bitcoin Core block size to 2mb. The Linux expert and self described libertarian has often given his views publicly to redditors. Currently blocks are created every 10 minutes and only hold 1mb of transaction data. If core developers reach an agreement, Garzik and several others want to initiate BIP 102 a fallback plan if consensus does not meet around the entire network.

"All that has to do be done to change bitcoin to a new economic policy - not seen in the entire 6 year history of bitcoin - is to stonewall work on block size.

"Closing size increase PRs and failing to participate in planning for a block size increase accomplishes your stated goal of changing bitcoin to a new economic policy."

"no [code] change"... changes bitcoin to a brand new economic policy, picking economic winners & losers. Some businesses will be priced out of bitcoin, etc.

Stonewalling size increase changes is just as much as a Ben Bernanke/FOMC move as increasing the hard limit by hard fork. — Jeff Garzik, Developer

Needless to say the debate is not over. Many are worried that consensus may never be reached with all the disagreements. With accusations flying everywhere, and the supposed use of sock puppets one would wonder if a conclusion can be met. A lot of people are skeptical of the proposed upcoming hard fork, and offer different alternatives showing testing as example.

However many are also positive about increasing the the block size and show in test net environments why the increase works as well. Increased transaction time could make global remittance solutions possible with Bitcoin. A smaller block size may not be adequate to handle such commitment. Although there's also the voice of ‘If its not broke, don't fix it’ which is also represented in this argument.


Do you see consensus reached by March 2016? Let us know in the comments below.

Images courtesy of Twitter and Redmemes 

Sunday, July 19, 2015

The Block Size Debate and 'Sock Puppet' Accusations



A recent post on reddit titled “5+5 BTC Bounty for proof of block size debate manipulation” shows some interesting parts to the highly debated block size discussion. The post is a research PDF written by Andre Haynes on July 10, stating that many of the people commenting on this topic were “sock puppets” Most of these multiple account were found debating high profile core developers, most notably Peter Todd.

A “Sock Puppet” is an anonymous account created by a user typically used to “troll” or rustle a debate or conversation. Sock accounts can be found all over the internet on literally every social media application. This is why platforms such as Facebook have recently been requiring identity confirmation. Sock puppets are seen quite a lot in debate on r/bitcoin, u/bitcoin, and u/petertodd which were recorded by Haynes.

In his introduction Haynes writes:

“The current block size debate is critical to reach consensus on issues that affect the scalability and overall future of the Bitcoin network. The process for consensus is one that typically involves Bitcoin core developers, miners, merchants and other experts and stakeholders, but there has been difficulty reaching a viable agreement on the block size.”

The difficulty being multiple accounts manipulating the discussion. The paper is in response to two people offering a bounty of 5 Bitcoins each for proof of debate manipulation. Haynes tries to attack the problem in an unbiased way and uses machine learning throughout the research process. Haynes writes: “this report seeks to identify cases of multiple account use on the Bitcoin subreddits.”




The data collected used the reddit API to gain access to all threads related to the block debate. All users comments stored into the database were compiled into two groups, “Seen Data” and “Unseen Data”. Both groups commentary were analysed and broken down to 10 or more comment collections. From here the commentary was pre-processed to remove common words in the activity.

“Other users who responded to the bounty did not dig deep enough into the data and were not able to find evidence of socks. An analysis of this scale takes a lot of time and computational resources.”

The project found similar styles in each author's commentary throughout the debates. Finding that commentary on these threads were indeed coming from multiple accounts. Although Haynes says on reddit: “The title is click bait and I should have been more careful in my choice of words in this post. To be clear, I am not accusing anyone of being a sock puppet. I am simply stating that given the assumptions of the models, the listed users were suggested as probable cases of sock puppets by the model.” Rankings and possible sock puppet pairs can be found here.

Haynes is a data scientist by trade and says that his analysis methods may help people find out about the true identity of Satoshi. Or whether Satoshi was a sock puppet, which seems to be the case. Haynes insists his studies are not perfect saying: “ There is a high False positive rate, but this was done as a tradeoff to recover as many relevant cases as possible. These could have been removed by hand but that would have introduced the same subjective biases that this analysis was trying to avoid. The above lists represent a starting point to look for sock puppets and nothing more.”


Do you think this research has found Sock Puppets manipulating consensus? Let us know in the comments below.

Images Courtesy of GitHub and Crypto-Graphics.com

Saturday, July 4, 2015

Improper Network Block Validation Leads to Advisory 30-Confirmation Wait on Bitcoin Transactions

The Bitcoin world is on the edge of their seat right now, as Bitcoin Core Developers have advised users not to spend any incoming transactions until they have at least 30 network confirmations. Even though most people don’t like to wait around for six transactions to begin with, 30 network transactions will cause additional delays to fully “receive” funds. But there is a good reason as to why this warning is being sent out.

Issues With Transaction Confirmation Scores and Mining Pools

Bitcoin is a decentralized network, which is only as strong as the total amount of people, mining pools and nodes supporting the network. The way transaction occur, is by broadcasting them to the network, and once deemed valid, the transaction will be included in the next Bitcoin block on the network. These blocks are generated roughly every 10 minutes, and will serve as the first validation of your transaction.

However, Bitcoin Core development is evolving, and many network users are still running an older client on their computers. For those digital currency enthusiasts who are running Bitcoin Core version 0.9.4 or previous builds, they should wait for at least 30 confirmation per transaction - or upgrade to Bitcoin Core 0.10.2 as soon as possible.

The same story goes for both web wallet users - unless the service provider is using Bitcoin Core version 0.9.5 or higher - and lightweight (SPV) wallet users. Especially this latter category will need to wait for the 30 confirmation limit to avoid any issues with incoming and outgoing transactions. Any individual user running the Bitcoin Core client 0.9.5 or higher is unaffected by this issue.

At the time of publication, there is one remaining Bitcoin mining pool which is not correctly validating new blocks on the network. As a result, they are losing money for both themselves and people mining on their pool. According to the information we have received, the affected pools is BTC Nuggets, who have not responded yet at this time.

UPDATE: F2Pool have fixed the issue and are now properly confirming blocks once again.

Solo Bitcoin miners who are not using Bitcoin Core 0.10.2 at this time, are urged to upgrade their client as soon as possible. Halting your solo mining until this upgrade has completed is mandatory, as your client may not correctly validate the blocks being mined either. It is in your best interest to follow these guidelines. Otherwise, you could end up losing mined coins.

Generating Invalid Blocks on the Network

Whenever a new Bitcoin block is mined on the network, it not only includes a ton of transactional data, but it also rewards miners with [a share of] 25 BTC. Mining an invalid block will not only mess up the transaction confirmations, but it can also issue coins that are not officially validated on the Bitcoin network - and are thus invalid.

At this time, some miners are generating these invalid blocks, which can lead to Bitcoin network instability. To make matters even worse, these invalid blocks will be accepted - under certain conditions - by all Bitcoin software clients that are not using Bitcoin Core 0.9.5 or above as a foundation. Even BitcoinJ version 0.11-SNAPSHOT has been confirmed to be vulnerable to these invalid blocks.

When asked about the reason the number 30 was chosen, Theymos explained:

“30 is just a conservative guess at a safe value. As far as I know, there might be as much as 25% of mining power mining on the wrong chain, so it's within the realm of possibility that they get a 6-block lead over the remaining miners, and 1- and 2-block leads are fairly likely. A 30-block lead seems sufficiently unlikely.”

So far, no incidents have been reported in terms of coins gone missing after invalid confirmations. However, the threat is far from over, and Bitcoin Core developers are remaining vigilant until everyone has safely upgraded their clients.

What are your thoughts on third-party services using an earlier version of Bitcoin Core? Let us know in the comments below!

Source: Reddit

Images courtesy of Shutterstock and Bitcoin Core.