Current Bitcoin XT contains a network splitting bug. Rather than behaving responsibly, the maintainers of BitcoinXT are smearing the developers of Bitcoin Core (whom had nothing to do with their bug).
Recently XT integrated a change to how it fetches blocks to make "creative use" of the filteredblock functionality to send blocks using less space which they are calling "thinblocks". This was originally proposed and implemented by Pieter Wuille in ~late 2012 but the idea was not pursued because it was slow, inefficient, and complex to get right. More recently Mike Hearn attempted a new implementation. The way it is intended to work in XT is that when a block shows up, it is fetched with the BIP37 filtered block functionality using a match-everything filter. This causes it to send a list of all transactions and the transactions themselves, but-- hopefully-- skip the transactions that had already been sent, thus saving bandwidth. Because of how the Bitcoin protocol works, once a transaction is in a block it cannot reliably be by itself fetched from a peer. The Bitcoin protocol provides no random access to the blockchain (as this would require resource intensive additional indexes). This is why BIP37 has any functionality to send transactions themselves at all. I say "not reliably" because there is a limited memory for recently advertised transactions which still can be fetched. Bitcoin XT has mempool space management that makes it forget unconfirmed transactions. This interacts fatally with the thinblocks behavior, since peers will remember that a peer previously knew about transactions that peer has since forgotten (due to eviction) and never send them; causing block reconstruction to fail. Unable to receive the block, a mining XT node would be forced to go and create a ledger fork. In Bitcoin Core 0.12 we switched the datastructure that remembers what has already been received from or sent to other peers to a probabilistic one in order to have a longer memory but use less space. Because there could be false positives, we removed the already sent filtering from the filteredblock as it is imperative for existing SPV wallets to not withhold transactions there (as otherwise they'll never learn from them there), and required by the BIP37 specification not withhold. A side effect of this is that it cures the above described network splitting bug-- but it also kills all of the space savings. For reasons unclear to me, XT cherry-picked this change out of core and included it in their thinblocks patch. This is very surprising to me because the change was very clearly described. They then merged that thinblocks patch-- even though it would have no space savings when speaking to another copy of itself, which indicates that they merged it without even enough tests to show it helped. Today they began posting claiming that Core 'sabotaged' their project; which caused me to look at what they were actually doing in order to defend my reputation. After a quick review of their approach I realized that their design was fundamentally flawed and would fork the network, and was actually protected by the code they took from core that they were complaining about. They responded that they'd "noticed" that sometimes it didn't get all the transactions it needed and were working on making it fetch them-- apparently unaware that they cannot reliably fetch them (they can only fetch ones that had been 'recently' offered). Avoiding problems like this takes an incredible amount of review and testing even by the most experienced developers. If the testing isn't even enough to detect that two copies of the same node don't even get any space savings, it surely isn't going to detect a network splitting effect that only happens due to mempool eviction... or god knows whatever other bugs lurk inside. To me, going on the attack against Bitcoin Core for the regular maintenance of it's own software, while paying little attention do the deficient testing that failed to notice that the functionality didn't function is a really significant and objective warning sign that XT's developers do not currently have the resources or disposition required to maintain safe Bitcoin node software. The critical result of that inadequate testing was a failure to discover network forking bug. Implicitly depending on review from contributors to another project which they attack and slander is not a realistic and professional development practice.
Current Bitcoin XT contains a network splitting bug. Rather than behaving responsibly, the maintainers of BitcoinXT are smearing the developers of Bitcoin Core (whom had nothing to do with their bug). /r/bitcoinxt
[#2] A row over changing the software that produces bitcoins could split the virtual currency, core developers say. Bitcoin XT, a new version, is currently being recommended by the currency's chief scientist, Gavin Andresen. [worldnews] 0 comments
The power players of consumer finance in the 21st century will be crypto-native companies who build with blockchain technology at their core.
The crypto landscape is still nascent. We’re still very much in the fragmented, unbundled phase of the industry lifecycle. Beyond what Genesis Block is doing, there are signs of other companies slowly starting to bundle financial services into what could be an all-in-one bank replacement. So the key question that this series hopes to answer:
Which crypto-native company will successfully become the bank of the future?
We obviously think Genesis Block is well-positioned to win. But we certainly aren’t the only game in town. In this series, we’ll be doing an analysis of who is most capable of thwarting our efforts. We’ll look at categories like crypto exchanges, crypto wallets, centralized lending & borrowing services, and crypto debit card companies. Each category will have its own dedicated post. Today we’re analyzing big crypto exchanges. The two companies we’ll focus on today are Coinbase (biggest American exchange) and Binance (biggest global exchange). They are the top two exchanges in terms of Bitcoin trading volume. They are in pole position to winning this market — they have a huge existing userbase and strong financial resources. Will Coinbase or Binance become the bank of the future? Can their early success propel them to winning the broader consumer finance market? Is their growth too far ahead for anyone else to catch up? Let’s dive in. https://preview.redd.it/lau4hevpm7f51.png?width=800&format=png&auto=webp&s=2c5de1ba497199f36aa194e5809bd86e5ab533d8
The most formidable exchange on the global stage is Binance (Crunchbase). All signs suggest they have significantly more users and a stronger balance sheet than Coinbase. No other exchange is executing as aggressively and relentlessly as Binance is. The cadence at which they are shipping and launching new products is nothing short of impressive. As Tushar Jain from Multicoin argues, Binance is Blitzscaling. Here are some of the products that they’ve launched in the last 18 months. Only a few are announced but still pre-launch.
Binance is well-positioned to become the crypto-powered, all-in-one, bundled solution for financial services. They already have so many of the pieces. But the key question is:
Can they create a cohesive & united product experience?
Binance is strong, but they do have a few major weaknesses that could slow them down.
Traders & Speculators Binance is currently very geared for speculators, traders, and financial professionals. Their bread-and-butter is trading (spot, margin, options, futures). Their UI is littered with depth charts, order books, candlesticks, and other financial concepts that are beyond the reach of most normal consumers. Their product today is not at all tailored for the broader consumer market. Given Binance’s popularity and strength among the pro audience, it’s unlikely that they will dumb down or simplify their product any time soon. That would jeopardize their core business. Binance will likely need an entirely new product/brand to go beyond the pro user crowd. That will take time (or an acquisition). So the question remains, is Binance even interested in the broader consumer market? Or will they continue to focus on their core product, the one-stop-shop for pro crypto traders?
Controversies & Hot Water Binance has had a number of controversies. No one seems to know where they are based — so what regulatory agencies can hold them accountable? Last year, some sensitive, private user data got leaked. When they announced their debit card program, they had to remove mentions of Visa quickly after. And though the “police raid” story proved to be untrue, there are still a lot of questions about what happened with their Shanghai office shut down (where there is smoke, there is fire). If any company has had a “move fast and break things” attitude, it is Binance. That attitude has served them well so far but as they try to do business in more regulated countries like America, this will make their road much more difficult — especially in the consumer market where trust takes a long time to earn, but can be destroyed in an instant. This is perhaps why the Binance US product is an empty shell when compared to their main global product.
Disjointed Product Experience Because Binance has so many different teams launching so many different services, their core product is increasingly feeling disjointed and disconnected. Many of the new features are sloppily integrated with each other. There’s no cohesive product experience. This is one of the downsides of executing and shipping at their relentless pace. For example, users don’t have a single wallet that shows their balances. Depending on if the user wants to do spot trading, margin, futures, or savings… the user needs to constantly be transferring their assets from one wallet to another. It’s not a unified, frictionless, simple user experience. This is one major downside of the “move fast and break things” approach.
BNB token Binance raised $15M in a 2017 ICO by selling their $BNB token. The current market cap of $BNB is worth more than $2.6B. Financially this token has served them well. However, given how BNB works (for example, their token burn), there are a lot of open questions as to how BNB will be treated with US security laws. Their Binance US product so far is treading very lightly with its use of BNB. Their token could become a liability for Binance as it enters more regulated markets. Whether the crypto community likes it or not, until regulators get caught up and understand the power of decentralized technology, tokens will still be a regulatory burden — especially for anything that touches consumers.
Binance Chain & Smart Contract Platform Binance is launching its own smart contract platform soon. Based on compatibility choices, they have their sights aimed at the Ethereum developer community. It’s unclear how easy it’ll be to convince developers to move to Binance chain. Most of the current developer energy and momentum around smart contracts is with Ethereum. Because Binance now has their own horse in the race, it’s unlikely they will ever decide to leverage Ethereum’s DeFi protocols. This could likely be a major strategic mistake — and hubris that goes a step too far. Binance will be pushing and promoting protocols on their own platform. The major risk of being all-in on their own platform is that they miss having a seat on the Ethereum rocket ship — specifically the growth of DeFi use-cases and the enormous value that can be unlocked. Integrating with Ethereum’s protocols would be either admitting defeat of their own platform or competing directly against themselves.
The crypto-native company that I believe is more likely to become the bank of the future is Coinbase (crunchbase). Their dominance in America could serve as a springboard to winning the West (Binance has a stronger foothold in Asia). Coinbase has more than 30M users. Their exchange business is a money-printing machine. They have a solid reputation as it relates to compliance and working with regulators. Their CEO is a longtime member of the crypto community. They are rumored to be going public soon.
Let’s look at what makes them strong and a likely contender for winning the broader consumer finance market.
Different Audience, Different Experience Coinbase has been smart to create a unique product experience for each audience — the pro speculator crowd and the common retail user. Their simple consumer version is at Coinbase.com. That’s the default. Their product for the more sophisticated traders and speculators is at Coinbase Pro (formerly GDAX). Unlike Binance, Coinbase can slowly build out the bank of the future for the broad consumer market while still having a home for their hardcore crypto traders. They aren’t afraid to have different experiences for different audiences.
Brand & Design Coinbase has a strong product design team. Their brand is capable of going beyond the male-dominated crypto audience. Their product is clean and simple — much more consumer-friendly than Binance. It’s clear they spend a lot of time thinking about their user experience. Interacting directly with crypto can sometimes be rough and raw (especially for n00bs). When I was at Mainframe we hosted a panel about Crypto UX challenges at the DevCon4 Dapp Awards. Connie Yang (Head of Design at Coinbase) was on the panel. She was impressive. Some of their design philosophies will bode well as they push to reach the broader consumer finance market.
Early Signs of Bundling Though Coinbase has nowhere near as many products & services as Binance, they are slowly starting to add more financial services that may appeal to the broader market. They are now letting depositors earn interest on USDC (also DAI & Tezos). In the UK they are piloting a debit card. Users can now invest in crypto with dollar-cost-averaging. It’s not much, but it’s a start. You can start to see hints of a more bundled solution around financial services.
Let’s now look at some things that could hold them back.
Slow Cadence In the fast-paced world of crypto, and especially when compared to Binance, Coinbase does not ship very many new products very often. This is perhaps their greatest weakness. Smaller, more nimble startups may run circles around them. They were smart to launch Coinbase Ventures where tey invest in early-stage startups. They can now keep an ear to the ground on innovation. Perhaps their cadence is normal for a company of their size — but the Binance pace creates quite the contrast.
Institutional Focus As a company, we are a Coinbase client. We love their institutional offering. It’s clear they’ve been investing a lot in this area. A recent Coinbase blog post made it clear that this has been a focus: “Over the past 12 months, Coinbase has been laser-focused on building out the types of features and services that our institutional customers need.” Their Tagomi acquisition only re-enforced this focus. Perhaps this is why their consumer product has felt so neglected. They’ve been heavily investing in their institutional services since May 2018. For a company that’s getting very close to an IPO, it makes sense that they’d focus on areas that present strong revenue opportunities — as they do with institutional clients. Even for big companies like Coinbase, it’s hard to have a split focus. If they are “laser-focused” on the institutional audience, it’s unlikely they’ll be launching any major consumer products anytime soon.
Coinbase Wrap Up
At Genesis Block, we‘re proud to be working with Coinbase. They are a fantastic company. However, I don’t believe that they’ll succeed in building their own product for the broader consumer finance market. While they have incredible design, there are no signs that they are focused on or capable of internally building this type of product. Similar to Binance, I think it’s far more likely that Coinbase acquires a promising young startup with strong growth.
Other US-based exchanges worth mentioning are Kraken, Gemini, and Bittrex. So far we’ve seen very few signs that any of them will aggressively attack broader consumer finance. Most are going in the way of Binance — listing more assets and adding more pro tools like margin and futures trading. And many, like Coinbase, are trying to attract more institutional customers. For example, Gemini with their custody product.
Coinbase and Binance have huge war chests and massive reach. For that alone, they should always be considered threats to Genesis Block. However, their products are very, very different than the product we’re building. And their approach is very different as well. They are trying to educate and onboard people into crypto. At Genesis Block, we believe the masses shouldn’t need to know or care about it. We did an entire series about this, Spreading Crypto. Most everyone needs banking — whether it be to borrow, spend, invest, earn interest, etc. Not everyone needs a crypto exchange. For non-crypto consumers (the mass market), the differences between a bank and a crypto exchange are immense. Companies like Binance and Coinbase make a lot of money on their crypto exchange business. It would be really difficult, gutsy, and risky for any of them to completely change their narrative, messaging, and product to focus on the broader consumer market. I don’t believe they would ever risk biting the hand that feeds them. In summary, as it relates to a digital bank aimed at the mass market, I believe both Coinbase and Binance are much more likely to acquire a startup in this space than they are to build it themselves. And I think they would want to keep the brand/product distinct and separate from their core crypto exchange business. So back to the original question, is Coinbase and Binance a threat to Genesis Block? Not really. Not today. But they could be, and for that, we want to stay close to them. ------ Other Ways to Consume Today's Episode:
What if Bitcoin Core becomes a major altcoin after a fork?
Hello. This is from a conversation about the Bitcoin XT fork over here. First I will post the full quote then reply to individual quotes:
But as for the three coins though- remember that unless explicitly told not to, nodes on the two chains will still try to relay transactions to each other. That leads to a few scenarios:
Old-coin transaction with low fee- overloaded Core chain rejects, 101 chain accepts. Core chain thinks coins haven't moved, 101 chain thinks they have. Double spend possible (spend once with 101 merchant and low fee, spend again with Core merchant and higher fee). Since old coins make up a majority of the market right now, this attack may become common.
Old-coin transaction with high fee- overloaded Core chain accepts, 101 chain accepts. Both chains see coins have moved. As long as they are moved to a fresh address they stay 'old' and in sync on both chains. Double spend not possible.
Core-coin transaction- rejected by 101 chain as originating address doesn't have coins in it. Double spend not possible.
101-coin transaction- rejected by Core chain either due to insufficient fee or because originating address doesn't have coins in it. Double spend not possible.
The real problem comes when an address gets mixed coins- for example when you take an old-coin address (such as a paper wallet) and then send coins to it in a transaction that only works on one chain. Now you have two copies of that address, one on each chain, each with different ideas about how many coins are in the address and where they came from.
Double spend possible (spend once with 101 merchant and low fee, spend again with Core merchant and higher fee). Since old coins make up a majority of the market right now, this attack may become common.
Wait a second. How many people believe this gibberish? If Core is making blocks much slower than 101, won't RBF make it extremely easy to keep the 101 transactions from being included on Core? [Update: Apparently it will be easier to split the dual-chain-bitcoins by tainting them. Please ignore my instructions before this edit on New Years day 2016.] This doesn't even require a modified Bitcoin Core client, does it? That isn't really a "double spend", that is why a Core client allows it. Let me name the three currencies that will exist after the fork:
Core-bitcoin - bitcoin that is ONLY valid on the Core chain
101-bitcoin - bitcoin that is ONLY valid on the 101 chain
Dual-chain-bitcoin - bitcoin residing at the same addresses on both chains and for which a transaction could be valid on both chains (I'm not exactly sure what happens when derps send different transactions to the same addresses on both chains but I do know this is a bad idea.)
The only way to be sure we have "Bitcoin" back is if Core reverts 101 and everyone gives up on 101. If that happens it means that the transaction on the 101 chain was not really a Bitcoin transaction. Either everyone gives up on Core, or we have three currencies, or everyone splits all their dual-chain-bitcoin into the two currencies, and/or Core reverts 101. None of these scenarios require "double spending" or a "51% attack", they are conflicting/competing definitions of Bitcoin.
Old-coin transaction with high fee- overloaded Core chain accepts, 101 chain accepts. Both chains see coins have moved. As long as they are moved to a fresh address they stay 'old' and in sync on both chains. Double spend not possible.
You don't want to be waiting for confirmations on Core every time you spend your 101-bitcoins do you? So the first thing anyone with a brain will want to do is split their dual-chain-bitcoin. Do this by sending bitcoin to a new wallet on the 101 chain and using RBF to send it to a different wallet on Core.
The real problem comes when an address gets mixed coins- for example when you take an old-coin address (such as a paper wallet) and then send coins to it in a transaction that only works on one chain. Now you have two copies of that address, one on each chain, each with different ideas about how many coins are in the address and where they came from.
That is a small educational problem for the clueless. The real problem is if Bitcoin whales choose Core. Splitting the dual-chain-bitcoin is going to be a pain in the ass if Core is going very slow with all blocks being filled to the max. Therefore Core miners are likely to use another patch that will prioritize ALL transactions by fee no matter when they were sent (okay you could call this legalized "double spending" if you consider unconfirmed transactions to be "spent"). The 101 believers will want to sell their Core-bitcoins so they pay very high transaction fees on the Core chain. They will pay these fees with "Bitcoins" they have already spent on the 101 chain so this will not be expensive if Core quickly dies as they believe it will. Then Theymos, etc, sell their 101-bitcoins and buy Core-bitcoins. Then more miners go back to Core because it becomes more profitable (even if they want to be paid in 101-bitcoins). We have observed how far the price of Bitcoin can fall when it is one currency and most of the bitcoin has hardly moved. Who is going to buy all Theymos' and Satoshi's 101-bitcoins? Bitstamp? BitPay? CORE MINERS?!?!? Can they even afford to do so? Miners may have to mine both chains just to pay their bills. Then 101 "investors" may have big problem. You could make a poll of Bitcoin holders and ask when they might buy/sell 101-bitcoins or Core-bitcoins, but just like the miner "votes" this isn't any kind of binding commitment. A well-funded Ethereum prediction market would be a very good way to predict the outcome of this battle, especially after the decentralized Bitcoin exchange Dapp has had its "security audit". Notice that Satoshi will soon have a third chain they can buy into without identifying themselves or trusting an exchange. She could also bet on this prediction market. If she is lucky, someone will write an exchange Dapp to allow separate trading of Core-bitcoins, 101-bitcoins, and dual-chain-bitcoins. Bitcoin/ASIC owners would be wise to make sure this Dapp will be available. If Satoshi's only way out of 101 or Core, is to trade them for Ether or Dogecoin, this bitcoin's price may fall through the floor and many sha256 miners could go out of business.
History of BitcoinXT and Mike Hearn as you know it. + EDA / DA bonus discussion
Although I've tried to research and understand the history of bitcoin as best as I can there are gaps in my knowledge and understanding. The quote below is from bashco.
Aside from the fact that Mike Hearn was secretly working for the R3 bank cartel and his shills wanted to hand him control of the Bitcoin code repository on a silver platter? BitcoinXT would inevitably have split the network and caused a lot of people to lose money due to factors like the lack of replay protection, lack of exchange support, lack of developer support, etc. It would have been even worse than the clusterfuck that Bcash caused when they completely abandoned Satoshi's white paper by resetting difficulty and gutting the entire difficulty adjustment algorithm. That's really just scratching the surface, but it very well could have been the end of Bitcoin. Thankfully that attack and the attacks that followed were all thwarted.
I'd like to hear your perspective and perhaps start a debate on this. Please tell me the history of BitcoinXT as you recall. Is there any truth to Bashco's statements? Has anyone heard of Mike's links to the R3 bank cartel? Regarding the difficulty Algo, the EDA as it was called, my understanding was that was put in place to ensure the survival of BCH even if it was the minority chain. I've also heard other theories that it was intended to cripple BTC by causing wild swings of hash power. My gut instinct tells me that it was the former intention, but it didn't function as well as intended, and that's why they fixed it pretty quickly with the new DA that is still current. My personal opinion is that it's an improvement on bitcoin and is not something that fundamentally alters the properties of bitcoin as intended in the white paper. Or does it? Does the new DA change an important property of bitcoin that was intended by Satoshi in the white paper?
One secretive person (Theymos) owns /bitcoin and holds the opinion that the Bitcoin protocol should not be easily changed, and certainly not via a contentious hardfork. Their reasoning is that if you can change something via contentious hardfork, you can change anything, even the 21 million limit. Therefor they spread their believe (FUD) that such a hardfork would split the network. And anyone who disagrees and tries to push a hardfork is by their definition an attacker (or a fool). That is how they justify censorship & attacks against anything or anyone who tries to hardfork the network (so Bitcoin XT, then Bitcoin Classic and Bitcoin Unlimited). But (as I see it) the main reason a blocksize increase via hardfork is contentious is because it is contentious. There aren't actually many people who want a 1Mb limit. There is just a whole bunch of people who fear a contentious/dangerous Hardfork. You could say that Bitcoin has been paralysed with fear. Big blockers (and most people on /btc) are a bit more pragmatic. And most believe a simple majority must be in charge. Because the alternative is that a random minority can veto anything and thereby change Bitcoin for the worse. And a non-change like, not upgrading the limit, is definitely a huge change(!). If the intended use of the limit changes, then that should need consensus (and a proper design). Basically we want the free-market to be in charge, because that will lead to the most profitable Bitcoin, and by extension the most ideal blocksizes (which clearly needs to be balanced). What we now have is FUD and over-engineers being in control. Which is ironic because /bitcoin likes to call /btc FUD-sters. When it is clearly the other way around. The sad thing is that this sub desperately wants to believe in conspiracy theories, that Blockstream is behind all this. Something I can't disprove, but there is also not enough proof for this theory that you should take it seriously. The motivation of Core supporters/small blockers already makes total sense, and is very consistent. There is no need for alternative motives on either side. Edit: Btw, you can change anything (even the 21 million limit) via soft-fork. So the obsession with softforks over at /bitcoin makes no sense. The only advantage it still has is that only Blockstream/Core is willing to put the time/effort to make these complicated soft-forks, big thanks to VC funding. Which effectively puts Core in charge, and effectively makes Bitcoin a technocracy. Yet ironically you see Core dev's continue to say they are not in control. TL;DR: Minority veto's, softforks forever, censorship and attacks clearly put Core in control of Bitcoin's future.
An incomplete history of the Bitcoin Cash's origin and the Minimum Viable Fork project
A common meme is that Roger Ver, Jihan Wu, and Craig Wright are the ones responsible for the creation of Bitcoin Cash. This is untrue. Those are figureheads who played a role in popularizing or (for Bitmain, allegedly) funding later development, but they played almost no part until Bitcoin Cash development was long since underway. The Bitmain UAHF contingency plan blog post was made on 2017-06-14. This was the first event in Bitcoin Cash's history that reached a wide audience, but it came 15 months after work on what later became Bitcoin Cash began. The public decision to do a minority hard fork happened 2016-07-31, and was spearheaded by singularity87 and ftrader. ftrader did most of the initial development, which he had started back in March 2016. Even back then, the plan to fork before Segwit's activation was clear:
Bitmain was merely joining their effort in 2017, not starting it. Bitcoin Cash evolved out of the Minimum Viable Fork project that ftradeFreetrader started in March 2016, and which was discussed in /btcfork and /btc. Freetrader blogged about it quite a bit. If you read through his posts, you can see his initial prototype was built on Bitcoin Classic. In Oct 2016, a MVF version based on Bitcoin Core was made. Development on MVF stalled during the latter half of 2016 when it seemed like Bitcoin Unlimited's emergent consensus proposal was likely to gain adoption, but heated up again in early 2017 when BU lost support after a few remote crash 0-day exploits were found and used against BU on March 15 and again in April. Freetrader restarted his MVF work on Bitcoin Unlimited in April. The first mention of Bitcoin ABC is from May 7, 2017. The ABC project was started by deadalnix, but with mostly the same goal as ftrader's work using Core as the base instead of BU or Classic. At that time, ABC was just Core 0.14 minus RBF and Segwit; it didn't yet have any blocksize changes. Deadalnix reached out to Freetrader and asked him if he wanted to help, which Freetrader did. Freetrader made the first prototype of Bitcoin ABC with a blocksize limit other than 1 MB on or before May 21, 2017, while still working in parallel on the Bitcoin Unlimited version of the MVF. Ftrader and deadalnix continued to work on Bitcoin ABC for a couple months before Bitmain even mentioned their support for the contingency plan, and their contingency plan was basically the same as what ftrader and singularity87 had proposed back in June 2016 (but with more refinements and details worked out) -- perform a minority hard fork from BTC before Segwit activates to increase the blocksize limit, and do so in a way that ensures as clean a split as possible. Bitcoin ABC was announced to the public on July 1st, 2017, by ftrader and by deadalnix, about 2-3 months after deadalnix and ftrader began working on it, and 2 weeks after Bitmain announced its intent to support the UAHF. On the date that BCH forked, there were four separate compatible full-node clients:
Bitcoin ABC, developed mostly by Amaury Sechet/deadalnix and freetrader;
Bitcoin Unlimited, developed by the BU team (Andrew Stone/thezerg, Peter Tchipper, Andrea Suisani/sickpig, Peter Rizun, freetrader, and a few others, and funded by anonymous donors in 2016 for their Emergent Consensus proposal);
Bitcoin XT, developed initially by Gavin Andresen and Mike Hearn, and later by Tom Harding/dgenr8 and dagurval
Of those developers, the only ones who received money while they were working on these clients were possibly deadalnix (alleged but unconfirmed to be paid by Bitmain), and Gavin (MIT Digital Currency Initiative). Everybody else was a volunteer. At the time, BU's funds only paid for conferences, travel expenses, and a $20,000 bug bounty; BU didn't start paying its developers until after the BCH hard fork. A lot of Bitcoin Cash's early support came from Haipo Yang of ViaBTC. ViaBTC's exchange was the first to offer BCH trading pairs, and ViaBTC's pool was the first public pool to support BCH. I've also heard that Haipo Yang was the one who coined the name Bitcoin Cash -- can anyone confirm or deny this? ViaBTC played a significant role in BCH's deployment, far more than Roger Ver or Craig Wright, and had a comparable amount of influence to Bitmain. However, this was not obvious on the outside, because Haipo Yang is the kind of person who quietly builds things that work, instead of just being a prominent talking head like Craig Wright and Roger Ver are. Roger himself actually didn't fully support Bitcoin Cash until after the fork. Initially, he had his hopes up for Segwit2x, as did I. His name was conspicuously missing in an Aug 1, 2017 article about who supports Bitcoin Cash. It was only after Segwit2x failed on Nov 8, 2017 that he started to support BCH. Craig Wright on the other hand did praise the Bitcoin Cash initiative early on, probably largely because he hated Segwit for some reason. But he didn't do anything to help create BCH; he only spoke in favor of it. (I really wish he hadn't. His involvement in BCH fostered a lot of false beliefs among Bitcoin Cash's userbase, like the belief that selfish mining doesn't exist. We were only able to get rid of his crazed followers when BSV forked off. I'm very grateful that happened. But I digress.) Most people didn't take him seriously, but a modest minority bought his narrative hard. He was a pretty minor player at the time, and remained so until 2018. These are the people who created Bitcoin Cash. It's easy to place all the credit/blame on the most vocal figureheads, but the marketing department does not create the product; they just sell it. If you weren't around during the product's development, it's hard to know who actually built the thing and who was just a bandwagon joiner. CSW and Roger just hopped on the bandwagon. Jihan Wu/Bitmain and Haipo Yang/ViaBTC joined the crew of the bandwagon and contributed substantially to its development and survival, but by the time they had joined the bandwagon was already in motion. The real instigators were the community members like ftrader, deadalnix, singularity87, the BU crew, the Electron Cash crew (Calin Culianu, kyuupichan, Jonald Fyookball, etc.) and the many others who contributed in various ways that I haven't documented. For those of you who played a role or know of someone else who did but whom I didn't mention in this post, please make a comment below so we can all hear about it.
A Guide To The BCH Fork on November 15th - Be Informed!
BCH November 15th Forking Guide
Intro As you may have heard, on 15th November 2018 the Bitcoin Cash Blockchain will fork into at least two separate chains. We felt it our duty to provide information to the community on the situation that we hope will offer some clarity on this rather complex situation.
What Is A Fork? A fork occurs when at least one group of miners decide to follow a separate set of rules from the current consensus protocol. Due to the way bitcoin is designed, these miners will then operate on a separate network from the current network. This was in fact how Bitcoin Core and Bitcoin Cash was created from the original Bitcoin. Both changed the consensus rules in different ways that made them incompatible. To make the current situation slightly more complex, there are to be two sets of miners that are changing the protocol rules away from the current protocol. It is not expected that the currently operating consensus rules will be in operation by any significant set of miners after November 15th. This means that after November 15th there will be two new sets of competing protocol rules. For simplicity these will be described as the BitcoinABC ruleset and the BitcoinSV ruleset (although other implementations such as Bitcoin Unlimited, bcash, bchd, BitcoinXT and bitprim all also have the ABC consensus ruleset). This is quite a unique fork situation as one side (BitcoinSV) has indicated that they will be willing to attack their competition (BitcoinABC) using reorgs and doublespends to destabilise and reduce confidence in it.
BitcoinABC Fork Details The main new features in the BitcoinABC that make it incompatible with the current protocol are CTOR and DSV. To summarise: CTOR (Canonical Transaction Ordering) is a technology that allows blocks to be transmitted in a much more efficient way. This means that as blocks become larger as the network gains more adoption, the hardware and bandwidth requirements on nodes is decreased. This reduces centralisation pressures and allows us to scale the network with fewer adverse effects. You can read more about CTOR in this excellent ARTICLE by u/markblundeberg. DSV (CheckDataSigVerify) is a technology that allows oracles directly on the Bitcoin blockchain. This means that the transactions on the Bitcoin blockchain can be dependent on actions that happen in the real world. For example you could bet on the weather tomorrow, or if a specific candidate wins an election, all directly on the blockchain. You can read more about DSV at this excellent ARTICLE by u/mengerian.
BitcoinSV Fork Details The main new features in the BitcoinSV that make it incompatible with the current protocol are an increase in the default block size limit to 128MB, increase of the 201 opcode limit within Bitcoin’s script system to a maximum of 500 opcodes, and a new set of opcodes including; OP_MUL, OP_LSHIFT, OP_RSHIFT, OP_INVERT. The increase in the default block size limit will in theory allow miners on the BitcoinSV ruleset to produce and propagate blocks up to 128MB in size. It may be the case that the current state of the network cannot handle, or at least sustain, 128MB blocks but this will allow miners to decide if they want to try and produce blocks over 32MB (the current protocol limit agreed upon by miners). Increasing the opcode limit will allow miners to make transactions using scripts of larger lengths. This means that more complex scripts can be developed. The new opcodes allow new operations to happen within the Bitcoin scripting system.
What Are Your Options? When the fork happens your coins will become available on both chains. This is because both chains will share the same blockchain history up until the point the fork occurs. Things are unfortunately not quite as simple as that (when are they ever in cryptoland?). Transactions that would be valid on both chains will occur on both chains. Your transactions will be considered valid on both chains as long as you do not use any of the exclusive features from either ruleset, or use inputs from transactions that are considered invalid on one of the chains. You can alternatively split your coins so that you can control them exclusively on each chain. So what should you do? We won’t recommend what you should do with your own money, and this is not financial advice, but here are some of your options.
Do Nothing and HODL The simplest option is to keep your Bitcoin Cash in a wallet you control and wait for things to blow over. Make sure you have the private keys and or the seed written down in at least one place to be able to recover your funds if needed. As long as you do not move your funds they will be available on both chains after the fork. Risks - Price volatility. Like always the price can go up and down any amount. Only risk what you can afford to lose.
Sell BCH for Fiat Another simple option is to sell your BCH for fiat. This means moving your Bitcoin Cash to an exchange such as Bitstamp.net, Kraken.com or Coinbase, and then selling them for a fiat currency. You may also consider then withdrawing your funds to your bank account for extra security (exchanges have been known to implode with everyone’s funds every now and again). Risks - If the BCH price increase while you hold fiat your BCH holdings will be less if and when you buy back. Exchanges and banks can confiscate your money if they like (that why love Bitcoin remember). By selling you may also be liable for taxes in your jurisdiction.
Split Your Coins and HODL If you want to be ready for anything then you can split your coins after the fork occurs. This means that you will be able to control your coins exclusively on each chain. You will still need to make sure you have your wallet(s) backed up and have the private keys and seeds written down somewhere. To split your coins you can use a tool developed on Electron Cash HERE. This is unfortunately not a simple tool to use right now. Make sure to read the tips and advice given in that thread. You can also use http://forkfaucet.cash/ to receive a tiny amount of split coins to your address(es) so that they will become split once you spend from them. Risks - This has the same risks as simply HODLing your BCH. You should also be aware that some services have decided to refuse to use split coins during the fork. This means that if you send them split coins they will not allow you to spend them. These services include: Yours.org, moneybutton, HandCash, CentBee and CoinText.
Split Your Coins and Sell Some If you interested in gambling on which chain will be more successful you can split your coins using the method above, and can then send coins from either chain to an exchange that allows buying and selling of specific sides of the chain. Most exchanges have decided to close deposits and withdrawals of BCH and even trading of BCH until the outcome of the forks have become more clear. After the fork occurs exchanges will likely make announcements about whether which chain they will support (potentially both), and you will then be able to trade each fork as separate cryptocurrencies. Risks - By selling your coins on one of the chains you will no longer be invested in that side of the fork. In the case that one side of the fork ceases to exist and you are only holding coins on that side, you will have lost that money. By selling you may also be liable for taxes in your jurisdiction.
Summary It is unfortunate that Bitcoin Cash has to go through a fork without unanimous consensus on the new protocol rules. The unique situation with this fork, in particular, has presented some interesting new issues, and it is likely that we as a community will learn a lot from it. We hope that in similar situations in the future that the major entities in the industry, including miners, developers, businesses and community leaders can come together to find compromise that keeps the ecosystem stable and focused on adoption. Further Resources You can get more information at bitcoincash.org, bitcoinabc.org, bitcoinsv.io, and bitcoin.com. If you have further questions about this or just want to discuss the fork in general, we encourage you to join our chat at bitcoincashers.org/chat and join the conversation.
Don't agree with POSM? Think only hash matters? Then by all means delete your social media account and buy a miner and leave us all alone.
The SV shilling has reached epic proportions. I find it rather amusing that this team of trolls has absolutely plastered this entire sub with their drivel about POSM. Pot, meet kettle. They don't even have the slightest clue what they're talking about. One seems to think that ABC has implemented a fixed block size cap. Huh? Same guy told me it's better to "just raise the cap and let miners figure it out." Newsflash.: miners are figuring it out. It's called Graphene and it'll work great with CTOR. Another one seems to believe that "only hash matters". As though BCH is the majority chain. Yet another seems to believe "SV good because backed by miners" but at the same time "ABC bad because backed by miners"....? I'm glad to participate in an uncensored sub where these bozos can clown around and make fools of themselves for everyone else to see. But I'll be more glad when they figure their shit out, or leave. If CSW and his buddies want to fork the coin it's their prerogative. BCH is permissionless. Knock yourselves out. But be aware. ABC, XT, BU, Flowee, Bitcoin.com, Coinbase, and many more are in agreement on BCH. It's you guys that are out in left field. Why? Because you think the default value in a config file should be 128 not 32. That's it. Yeah there's an opcode too but who cares. All anyone here talks about is how SV is "raising the block size." But the block size doesn't need "raising". It is configurable. don't you know that? So. You're going to split the community over a default value in a user-editable config file. This is like splitting the community over the order of items in a drop down list. Really?! But again it's your right to fork. I wish you guys the best... until the first time one of you mines hostile blocks on the BCH chain. Then I wish you the worst. Because you'll be doing BTC's dirty work for them. WAKE UP. Nothing will make Gmax happier than watching BCH fight itself. For the sake of all that is holy, wake up and call this stupid fork off.
A reminder of who Craig Wright is and the benefits to BCH now he has gone.
This needs to be repeated every so often on this subreddit so new people can understand the history of the fork of BCH into BCH and BSV From Jonald Fyookball's article https://medium.com/@jonaldfyookball/bitcoin-cash-is-finally-free-of-faketoshi-great-days-lie-ahead-bb0c833e4c5d Craig S. Wright (CSW) leaving the Bitcoin Cash community is a wonderful thing. This self-described “tyrant” has been expunged, and now we can get back to our mission of bringing peer-to-peer electronic cash to the world. The markets will rebound when they see the chaos is over, but regardless of the price, we will keep building. Nothing will stop the sound money movement. Calling Out Bad Behavior As Rick Falkvinge recently explained, there is a difference between small-minded gossiping about personalities and legitimately calling out bad behavior. CSW’s bad behavior must be called out, because he has done tremendous damage to Bitcoin Cash (and possibly even the entire cryptocurrency sector). The brief history is that he gained his reputation by claiming to be Bitcoin’s creator (Satoshi Nakamoto). He said he would provide “extraordinary proof” but he has never done so. Supposedly, he did some “private signings” to a few people, and this allowed him to gain influence in the BCH community. The destruction he has been causing was not widely recognized until after a huge mess had been made. Thanks to u/Contrarian__ for the following compliation of CSW’s misgivings: Some background on Craig’s claim of being Satoshi, for the uninitiated:
He faked blog posts He faked PGP keys He faked contracts and emails He faked threats He faked a public key signing He has a well-documented history of fabricating things bitcoin and non-bitcoin related He faked a bitcoin trust to get free money from the Australian government but was caught and fined over a million dollars.
And specifically concerning his claim to be Satoshi:
He has provided no independently verifiable evidence He is not technically competent in the subject matter His writing style is nothing like Satoshi’s He called bitcoin “Bit Coin” in 2011 when Satoshi never used a space He actively bought and traded coins from Mt. Gox in 2013 and 2014 He was paid millions for ‘coming out’ as Satoshi as part of the deal to sell his patents to nTrust — for those who claim he was ‘outed’ or had no motive
Caught Red Handed Plagiarizing No respectable academic, scientist, or professional needs to stoop so low as to steal and take credit for the work of others — least of all Satoshi. Yet, CSW has already been caught at least 3 times plagiarizing.
His paper on selfish mining has full sections copied almost verbatim from a paper written by Liu & Wang. His “Beyond Godel” paper which purports to claim that Bitcoin script is turing complete, is heavily plagiarized. A paper on block propagation was blatantly and intentionally plagiarized.
Can’t Even Steal Code Correctly CSW was also caught attempting to plagiarize a “hello world” program (the simplest of all computer programs). He apparently does not understand base58 or how Bitcoin address checksums work (both of these are common knowledge to experienced Bitcoiners), and has made other embarrasing errors. So How Did Such an Obvious Fraud Gain So Much Power and Influence? There are no easy answers here. It seems that as humans, we are very susceptible to manipulation and misinformation. The greatest weapon against sinister forces is a well-educated populace. This is something that can only improve over the long run. The “Satoshi factor” is a powerful one and appeals to the glamorization of a mythical figure. Even people such as myself, who are technically astute, gave CSW all benefit of the doubt until the evidence staring us in the face could no longer be denied. The seduction of the BCH community was also facilitated by CSW becoming a strong advocate for the on-chain/big-block scaling movement at a time when the community was dying to hear it. This message, delivered with a brazen, in-your-face style, was a sharp contrast to anything seen before. In addition, CSW was able to find obscure topics (“2pda”), network topology, etc, that seemed to establish him as an expert with esoteric knowledge above and beyond anyone else. Basically, he was using technobabble, but it wasn’t immediately obvious except to very technical people… who were then attacked and discredited. Eventually, as more and more of the community began to realize his technical claims were bogus, CSW banned those people from his twitter feed and slack channel, leaving only a group of untechnical “believers”, which the larger BCH community referred to as “the church” AKA the Cult-of-Craig. Finally, if some believed that CSW possesed Satoshis’s stash of 1M BTC, then they may have been gnawing to get a piece of it. But it may turn out that these are the coins that never were. Broken Promises If this article so far seems like an “attack piece” on CSW, remember it is important to get all the facts out in the open. We’ll get to the silver lining and bright future in a moment… but let’s continue here to “get it all out”. One of the biggest ways that CSW has damaged the community is to make an endless series of broken promises. This caused others to wait, to waste time on his unproven ideas and solutions, and to postpone or drop their own ideas and initiatives.
He said he was building a mining pool to “stop SegWit” He said he was bringing big companies to use the BCH chain He said that he was providing a fungibility solution based on blind threshold signatures He said he was providing novel technology based on oblivious transfers He said he was providing a method where people could do atomic swaps without using timelocks He said he was going to show everyone how we can do bilinear pairings using secp256k1 He said he was going to release source code for nakasendo He said he was releasing some information that would “kill the lightning network” He said he was going to show everyone how the selfish mining theory is wrong He said he was going to show everyone how we can tokenize everything in the universe squared He said a few times “big things are coming in 2 months”
How CSW Has Damaged the BCH Community In addition to the broken promises, the BCH community was wounded due to:
The division of the community (with classic divide and conquer tactics) Loss of focus. Huge amounts of drama and distraction from building and adoption Investor confidence has been shaken due to uncertainty and chaos. BCH is a laughing stock to outsiders due to CSW’s antics Gemini deployment of BCH and other rollouts paused Loss of developer talent due to toxic and abrasive personality Various patent and legal threats
The Hash War Event and Split into BitcoinSV Every 6 months, BCH has a scheduled network upgrade. This is technically a “hard fork” but a non-contentious fork does not result in a split of the chain — it is simply new network rules being activated. Bitcoin Cash has multiple independent developer groups including Bitcoin ABC, Bitcoin Unlimited, Bitcoin XT, Bitprim, BCHD, bcash, parity, Flowee, and others. The nChain group, led by CSW, introduced an alternate set of changes a week before the agreed cut-off date, intentionally causing a huge controversey. These changes were incompatible with the changes being discussed between the other groups. nChain objected to the changes being proposed (cannonical transaction ordering) despite specifically agreeing to it almost a year earlier. The last minute objections were in my opinion, an attempt at sabotage. An emergency meeting was held in Bangkok to attempt to resolve the differences between the nChain group and the rest of the community. Not only did CSW refuse to listen to the other presentations, he walked out of the meeting after his own speech had been given. The other nChain people refused to discuss the technical issues. After this, nChain built their own software (“BitcoinSV”) to attempt to compete for the Bitcoin Cash network. But rather than split off to follow their own set of rules, they threatened to attack Bitcoin Cash. Their attitude was “you follow our rules or we burn it all down”. The CSW sycophants adopted a strange interpretation of the Bitcoin whitepaper and proselytized the idea that if nChain could “out hash” everyone else, the market should be obliged to follow them. This faulty thinking was eloquently debunked by u/CatatonicAdenosine. As it turns out, nChain was unable in any case to win at their own game. But Here’s the Obviously Good News… CSW is gone. It’s over. He can do whatever he wants on the BitcoinSV chain. He will never be allowed to influence Bitcoin Cash again. And all the negative things and negative people that were a consequence of his involvement in Bitcoin Cash are gone with him. As a community, we will redouble our efforts and get back to our mission of peer-to-peer electronic cash. We will learn to work together better than ever, and we will learn to detect and punish bad behavior sooner. The attempted attacks with hashpower also sparked innovation and a focus on the problem of how to stop such attacks in the future. This is only making Bitcoin Cash (BCH) and the entire class of Proof-of-Work coins stronger. Nothing will stop us. The reason why millions of dollars were spent to attack and also to defend Bitcoin Cash is because it’s something truly worth fighting over. It’s sound money. It’s permissionless. It’s what Satoshi Nakamoto wrote about in 2008. It’s Bitcoin, a Peer-to-Peer Electronic Cash System.
Go to the profile of Jonald Fyookball Jonald Fyookball More from Jonald Fyookball Jimmy Song Tries to Claim Bitcoin Cash is “Fiat Money”… Seriously? Go to the profile of Jonald Fyookball Jonald Fyookball Related reads 600 Microseconds Go to the profile of Awemany Awemany Related reads The scams in Crypto Go to the profile of Craig Wright (Bitcoin SV is the original Bitcoin.) Craig Wright (Bitcoin SV is the original Bitcoin.) Responses
A personal opinion with a collection of links and quotes
I don't take much joy in writing this post, however, with the upcoming fork and all the drama surrounding it, I felt compelled to do so. One thing I have advocated over the years along with many others in this space is to judge ideas based on their merit, and not based on the person presenting the idea. However, it's crucial that along with this general rule of thumb, that we as humans also align with our own philosophical ideas, morals, and ethics when we make decisions. Otherwise we end up with a conflict of our own self-interests; i.e., cognitive dissonance. For example, let's just say I'm completely against the state. For this example, let's say I'm also an anarchist. Hypothetically speaking, someone presents an idea that is technically sound, and is overall an amazing idea by itself. I may like it a lot! However, I find out later the person presenting the idea is completely pro-state, and has made statements that he will use this idea in order to promote statist ideas and agendas. Even though the idea itself is sound and good, I know that the person presenting the idea has different principles than me that are in so much conflict with my own philosophies in life...that I will then begin to discount the idea -- not because the idea itself is bad -- but because I know the person behind the idea will use it in ways that don't align with my own personal life views. Another thing I've advocated over the years is to think critically, independently, and have an open mind. I believe I've stayed true to this, and this is exactly what I am doing here. Bitcoin is built by humans, and is not artificial intelligence (at least not yet). This means, although ideas alone can have merit, we must also consider all the factors that go into an idea and how that idea will be used. If this goes into conflict with our life views, then we need to consider that as well when evaluating ideas. Below are a collection of links and quotes of Craig Wright, in just the order I found them and they present the following:
This person wants to be the King of Bitcoin, the sole ruler
This person wants full control of Bitcoin; if they could control 100% of hashing, he would
This person has no care for decentralization
This person does not care about anonymity at all
This person does not want permissionless innovation
This person cares more about the state than individual freedoms
This person is a patent troll who will undoubtedly use his patents for evil
This person is a liar (see plagiarism and previous claims to being Satoshi)
This person is pro-censorship (believes in blacklisting transactions and censoring discussion forums)
This person does not believe in unity and is dividing and fracturing us with the goal of gaining control
This person does not care about you or I, and certainly not the economic freedom of the world
The longer this war continues, the more it becomes clear that the intent of the war is to harm Bitcoin Cash, the true Bitcoin: a Peer-to-peer Electronic Cash System. At this point, the SV hostile takeover has failed. The SV chain has decisively split away from the chain followed by all other BCH clients - ABC, XT, BU, and Flowee, among others. There will be no unified chain that includes SV. The market has decisively spoken out against SV. The only industry support it has at this point is from a handful of companies funded by nchain and a handful of politically motivated exchanges and thought leaders that are sympathetic to BTC and hostile to BCH (ie bitfinex). At this point, continued infighting serves only the goal of harming the mission of peer to peer cash. It is time to end the war and resume building peer to peer cash. I therefore call on my fellows for reconciliation. Lay down your arms, cease this senseless attack, come back to building Bitcoin: a Peer-to-peer Electronic Cash System with us on BCH. We will welcome your return. Many of us - myself included - fell for our attackers lies and deceits, or were unsure of their true motives, and allied with the attacker, or like myself, failed to recognize the attack for what it was until it was well nigh upon us. People make mistakes. People can learn from mistakes. That's part of being human. It's okay to admit that you have made a mistake. I myself have done so. However. If, going forward, you persist in supporting our attacker, you are therefore identifying yourself as an enemy of peer to peer cash. And make no mistake about it: there are many enemies of peer to peer cash amongst our attackers ranks, including, quite likely, our attackers themselves. We must not allow them to tear us apart. Now is the time to quit fighting and resume building. I therefore call on all supporters of peer to peer cash to come forward, admit your mistakes as I have done, and be welcomed home. Let's continue forward by building what our enemy is most afraid of: Bitcoin: a Peer-to-peer Electronic Cash System.
The uncensored true Bitcoin Cash sub /r/btc is now the #1 crypto sub on reddit according to cryptosub.live, with more 7-day activity than both the censored /r/bitcoin and now /r/cryptocurrency as well. Congrats everyone! Bitcoin Cash will spread Economic Freedom worldwide!
"They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism"
Now we have people openly supporting a minPOW/UASF takeover attack with minority hash trying to steal the BCH ticker and brand. Lead ABC dev Amaury Sechet has admitted they will steal the ticker with minority hash rate. He is [the same guy that had seeked refuge in the Cult of Core and embarrassingly called us "bcash". Coinex and viabtc have also said they will steal the ticker for ABC, and assign the BSV ticker to the majority POW chain. This is an extremely worrying attack on Bitcoin. People need to realize that hash rate decides Bitcoin. And don't give strawmen arguments about Core has more POW. BCH was a voluntary departure from Core, we did not try to usurp the ticker with a dirty minPOW attack movement. If ABC wants to split off voluntarily and create an alt-coin then that is their right, but they will not usurp Bitcoin or change the system or Satoshi's design. Miners will decide the future of Bitcoin Cash, and this means if miners support ABV, BU, XT, or SV, we all should support it whichever implementation wins. If we don't follow the longest POW chain, then it means Bitcoin is broken.
bitcoinxt was an abandoned and empty subreddit when Theymos began censoring Bitcoin. On that day bitcoinxt rapidly became the dominant on-chain scaler's subreddit. As people were banned en masse from Bitcoin thousands coalesced here (BitcoinXT being the name of the implementation being advocated by Mike Hearn and Gavin Andresen). It would be weeks before Roger Ver acquired control of btc which later surpassed this subreddit very quickly. For a year the supporters of Bitcoin as cash were united before the November 2018 split which yielded Bitcoin SV. Going forward I would like this subreddit to again become a place where those that supported Satoshi's Vision can come and discuss the future of Bitcoin as Cash. Those inclined to support BTC can discuss their interests at Bitcoin and elsewhere. Those supporting BCH have btc. And while bitcoincashsv and bitcoinsv exist, I also think there is a place for bitcoinxt, particularly when reconnecting with those that want peer-to-peer cash to succeed but who disengaged or gave up (consensus is hard). In the coming days I will assemble people willing to help me in this effort. I thank everyone for their time, and wish you all well. Even those choosing to smash that unsubscribe button over there ->
Transcript of the community Q&A with Steve Shadders and Daniel Connolly of the Bitcoin SV development team. We talk about the path to big blocks, new opcodes, selfish mining, malleability, and why November will lead to a divergence in consensus rules. (Cont in comments)
We've gone through the painstaking process of transcribing the linked interview with Steve Shadders and Daniell Connolly of the Bitcoin SV team. There is an amazing amount of information in this interview that we feel is important for businesses and miners to hear, so we believe it was important to get this is a written form. To avoid any bias, the transcript is taken almost word for word from the video, with just a few changes made for easier reading. If you see any corrections that need to be made, please let us know. Each question is in bold, and each question and response is timestamped accordingly. You can follow along with the video here: https://youtu.be/tPImTXFb_U8
Connor: 02:19.68,0:02:45.10 Alright so thank You Daniel and Steve for joining us. We're joined by Steve Shadders and Daniel Connolly from nChain and also the lead developers of the Satoshi’s Vision client. So Daniel and Steve do you guys just want to introduce yourselves before we kind of get started here - who are you guys and how did you get started? Steve: 0,0:02:38.83,0:03:30.61
So I'm Steve Shadders and at nChain I am the director of solutions in engineering and specifically for Bitcoin SV I am the technical director of the project which means that I'm a bit less hands-on than Daniel but I handle a lot of the liaison with the miners - that's the conditional project.
Hi I’m Daniel I’m the lead developer for Bitcoin SV. As the team's grown that means that I do less actual coding myself but more organizing the team and organizing what we’re working on.
Connor 03:23.07,0:04:15.98 Great so we took some questions - we asked on Reddit to have people come and post their questions. We tried to take as many of those as we could and eliminate some of the duplicates, so we're gonna kind of go through each question one by one. We added some questions of our own in and we'll try and get through most of these if we can. So I think we just wanted to start out and ask, you know, Bitcoin Cash is a little bit over a year old now. Bitcoin itself is ten years old but in the past a little over a year now what has the process been like for you guys working with the multiple development teams and, you know, why is it important that the Satoshi’s vision client exists today? Steve: 0:04:17.66,0:06:03.46
I mean yes well we’ve been in touch with the developer teams for quite some time - I think a bi-weekly meeting of Bitcoin Cash developers across all implementations started around November last year. I myself joined those in January or February of this year and Daniel a few months later. So we communicate with all of those teams and I think, you know, it's not been without its challenges. It's well known that there's a lot of disagreements around it, but some what I do look forward to in the near future is a day when the consensus issues themselves are all rather settled, and if we get to that point then there's not going to be much reason for the different developer teams to disagree on stuff. They might disagree on non-consensus related stuff but that's not the end of the world because, you know, Bitcoin Unlimited is free to go and implement whatever they want in the back end of a Bitcoin Unlimited and Bitcoin SV is free to do whatever they want in the backend, and if they interoperate on a non-consensus level great. If they don't not such a big problem there will obviously be bridges between the two, so, yeah I think going forward the complications of having so many personalities with wildly different ideas are going to get less and less.
Cory: 0:06:00.59,0:06:19.59 I guess moving forward now another question about the testnet - a lot of people on Reddit have been asking what the testing process for Bitcoin SV has been like, and if you guys plan on releasing any of those results from the testing? Daniel: 0:06:19.59,0:07:55.55
Sure yeah so our release will be concentrated on the stability, right, with the first release of Bitcoin SV and that involved doing a large amount of additional testing particularly not so much at the unit test level but at the more system test so setting up test networks, performing tests, and making sure that the software behaved as we expected, right. Confirming the changes we made, making sure that there aren’t any other side effects. Because of, you know, it was quite a rush to release the first version so we've got our test results documented, but not in a way that we can really release them. We're thinking about doing that but we’re not there yet.
Just to tidy that up - we've spent a lot of our time developing really robust test processes and the reporting is something that we can read on our internal systems easily, but we need to tidy that up to give it out for public release. The priority for us was making sure that the software was safe to use. We've established a test framework that involves a progression of code changes through multiple test environments - I think it's five different test environments before it gets the QA stamp of approval - and as for the question about the testnet, yeah, we've got four of them. We've got Testnet One and Testnet Two. A slightly different numbering scheme to the testnet three that everyone's probably used to – that’s just how we reference them internally. They're [1 and 2] both forks of Testnet Three. [Testnet] One we used for activation testing, so we would test things before and after activation - that one’s set to reset every couple of days. The other one [Testnet Two] was set to post activation so that we can test all of the consensus changes. The third one was a performance test network which I think most people have probably have heard us refer to before as Gigablock Testnet. I get my tongue tied every time I try to say that word so I've started calling it the Performance test network and I think we're planning on having two of those: one that we can just do our own stuff with and experiment without having to worry about external unknown factors going on and having other people joining it and doing stuff that we don't know about that affects our ability to baseline performance tests, but the other one (which I think might still be a work in progress so Daniel might be able to answer that one) is one of them where basically everyone will be able to join and they can try and mess stuff up as bad as they want.
Yeah, so we so we recently shared the details of Testnet One and Two with the with the other BCH developer groups. The Gigablock test network we've shared up with one group so far but yeah we're building it as Steve pointed out to be publicly accessible.
Connor: 0:10:18.88,0:10:44.00 I think that was my next question I saw that you posted on Twitter about the revived Gigablock testnet initiative and so it looked like blocks bigger than 32 megabytes were being mined and propagated there, but maybe the block explorers themselves were coming down - what does that revived Gigablock test initiative look like? Daniel: 0:10:41.62,0:11:58.34
That's what did the Gigablock test network is. So the Gigablock test network was first set up by Bitcoin Unlimited with nChain’s help and they did some great work on that, and we wanted to revive it. So we wanted to bring it back and do some large-scale testing on it. It's a flexible network - at one point we had we had eight different large nodes spread across the globe, sort of mirroring the old one. Right now we scaled back because we're not using it at the moment so they'll notice I think three. We have produced some large blocks there and it's helped us a lot in our research and into the scaling capabilities of Bitcoin SV, so it's guided the work that the team’s been doing for the last month or two on the improvements that we need for scalability.
I think that's actually a good point to kind of frame where our priorities have been in kind of two separate stages. I think, as Daniel mentioned before, because of the time constraints we kept the change set for the October 15 release as minimal as possible - it was just the consensus changes. We didn't do any work on performance at all and we put all our focus and energy into establishing the QA process and making sure that that change was safe and that was a good process for us to go through. It highlighted what we were missing in our team – we got our recruiters very busy recruiting of a Test Manager and more QA people. The second stage after that is performance related work which, as Daniel mentioned, the results of our performance testing fed into what tasks we were gonna start working on for the performance related stuff. Now that work is still in progress - some of the items that we identified the code is done and that's going through the QA process but it’s not quite there yet. That's basically the two-stage process that we've been through so far. We have a roadmap that goes further into the future that outlines more stuff, but primarily it’s been QA first, performance second. The performance enhancements are close and on the horizon but some of that work should be ongoing for quite some time.
Some of the changes we need for the performance are really quite large and really get down into the base level view of the software. There's kind of two groups of them mainly. One that are internal to the software – to Bitcoin SV itself - improving the way it works inside. And then there's other ones that interface it with the outside world. One of those in particular we're working closely with another group to make a compatible change - it's not consensus changing or anything like that - but having the same interface on multiple different implementations will be very helpful right, so we're working closely with them to make improvements for scalability.
Connor: 0:14:32.60,0:15:26.45 Obviously for Bitcoin SV one of the main things that you guys wanted to do that that some of the other developer groups weren't willing to do right now is to increase the maximum default block size to 128 megabytes. I kind of wanted to pick your brains a little bit about - a lot of the objection to either removing the box size entirely or increasing it on a larger scale is this idea of like the infinite block attack right and that kind of came through in a lot of the questions. What are your thoughts on the “infinite block attack” and is it is it something that that really exists, is it something that miners themselves should be more proactive on preventing, or I guess what are your thoughts on that attack that everyone says will happen if you uncap the block size? Steve: 0:15:23.45,0:18:28.56
I'm often quoted on Twitter and Reddit - I've said before the infinite block attack is bullshit. Now, that's a statement that I suppose is easy to take out of context, but I think the 128 MB limit is something where there’s probably two schools of thought about. There are some people who think that you shouldn't increase the limit to 128 MB until the software can handle it, and there are others who think that it's fine to do it now so that the limit is increased when the software can handle it and you don’t run into the limit when this when the software improves and can handle it. Obviously we’re from the latter school of thought. As I said before we've got a bunch of performance increases, performance enhancements, in the pipeline. If we wait till May to increase the block size limit to 128 MB then those performance enhancements will go in, but we won't be able to actually demonstrate it on mainnet. As for the infinitive block attack itself, I mean there are a number of mitigations that you can put in place. I mean firstly, you know, going down to a bit of the tech detail - when you send a block message or send any peer to peer message there's a header which has the size of the message. If someone says they're sending you a 30MB message and you're receiving it and it gets to 33MB then obviously you know something's wrong so you can drop the connection. If someone sends you a message that's 129 MB and you know the block size limit is 128 you know it’s kind of pointless to download that message. So I mean these are just some of the mitigations that you can put in place. When I say the attack is bullshit, I mean I mean it is bullshit from the sense that it's really quite trivial to prevent it from happening. I think there is a bit of a school of thought in the Bitcoin world that if it's not in the software right now then it kind of doesn't exist. I disagree with that, because there are small changes that can be made to work around problems like this. One other aspect of the infinite block attack, and let’s not call it the infinite block attack, let's just call it the large block attack - it takes a lot of time to validate that we gotten around by having parallel pipelines for blocks to come in, so you've got a block that's coming in it's got a unknown stuck on it for two hours or whatever downloading and validating it. At some point another block is going to get mined b someone else and as long as those two blocks aren't stuck in a serial pipeline then you know the problem kind of goes away.
Cory: 0:18:26.55,0:18:48.27 Are there any concerns with the propagation of those larger blocks? Because there's a lot of questions around you know what the practical size of scaling right now Bitcoin SV could do and the concerns around propagating those blocks across the whole network. Steve 0:18:45.84,0:21:37.73
Yes, there have been concerns raised about it. I think what people forget is that compact blocks and xThin exist, so if a 32MB block is not send 32MB of data in most cases, almost all cases. The concern here that I think I do find legitimate is the Great Firewall of China. Very early on in Bitcoin SV we started talking with miners on the other side of the firewall and that was one of their primary concerns. We had anecdotal reports of people who were having trouble getting a stable connection any faster than 200 kilobits per second and even with compact blocks you still need to get the transactions across the firewall. So we've done a lot of research into that - we tested our own links across the firewall, rather CoinGeeks links across the firewall as they’ve given us access to some of their servers so that we can play around, and we were able to get sustained rates of 50 to 90 megabits per second which pushes that problem quite a long way down the road into the future. I don't know the maths off the top of my head, but the size of the blocks that can sustain is pretty large. So we're looking at a couple of options - it may well be the chattiness of the peer-to-peer protocol causes some of these issues with the Great Firewall, so we have someone building a bridge concept/tool where you basically just have one kind of TX vacuum on either side of the firewall that collects them all up and sends them off every one or two seconds as a single big chunk to eliminate some of that chattiness. The other is we're looking at building a multiplexer that will sit and send stuff up to the peer-to-peer network on one side and send it over splitters, to send it over multiple links, reassemble it on the other side so we can sort of transition the great Firewall without too much trouble, but I mean getting back to the core of your question - yes there is a theoretical limit to block size propagation time and that's kind of where Moore's Law comes in. Putting faster links and you kick that can further down the road and you just keep on putting in faster links. I don't think 128 main blocks are going to be an issue though with the speed of the internet that we have nowadays.
Connor: 0:21:34.99,0:22:17.84 One of the other changes that you guys are introducing is increasing the max script size so I think right now it’s going from 201 to 500 [opcodes]. So I guess a few of the questions we got was I guess #1 like why not uncap it entirely - I think you guys said you ran into some concerns while testing that - and then #2 also specifically we had a question about how certain are you that there are no remaining n squared bugs or vulnerabilities left in script execution? Steve: 0:22:15.50,0:25:36.79
It's interesting the decision - we were initially planning on removing that cap altogether and the next cap that comes into play after that (next effective cap is a 10,000 byte limit on the size of the script). We took a more conservative route and decided to wind that back to 500 - it's interesting that we got some criticism for that when the primary criticism I think that was leveled against us was it’s dangerous to increase that limit to unlimited. We did that because we’re being conservative. We did some research into these log n squared bugs, sorry – attacks, that people have referred to. We identified a few of them and we had a hard think about it and thought - look if we can find this many in a short time we can fix them all (the whack-a-mole approach) but it does suggest that there may well be more unknown ones. So we thought about putting, you know, taking the whack-a-mole approach, but that doesn't really give us any certainty. We will fix all of those individually but a more global approach is to make sure that if anyone does discover one of these scripts it doesn't bring the node to a screaming halt, so the problem here is because the Bitcoin node is essentially single-threaded, if you get one of these scripts that locks up the script engine for a long time everything that's behind it in the queue has to stop and wait. So what we wanted to do, and this is something we've got an engineer actively working on right now, is once that script validation goad path is properly paralyzed (parts of it already are), then we’ll basically assign a few threads for well-known transaction templates, and a few threads for any any type of script. So if you get a few scripts that are nasty and lock up a thread for a while that's not going to stop the node from working because you've got these other kind of lanes of the highway that are exclusively reserved for well-known script templates and they'll just keep on passing through. Once you've got that in place, and I think we're in a much better position to get rid of that limit entirely because the worst that's going to happen is your non-standard script pipelines get clogged up but everything else will keep keep ticking along - there are other mitigations for this as well I mean I know you could always put a time limit on script execution if they wanted to, and that would be something that would be up to individual miners. Bitcoin SV's job I think is to provide the tools for the miners and the miners can then choose, you know, how to make use of them - if they want to set time limits on script execution then that's a choice for them.
Yeah, I'd like to point out that a node here, when it receives a transaction through the peer to peer network, it doesn't have to accept that transaction, you can reject it. If it looks suspicious to the node it can just say you know we're not going to deal with that, or if it takes more than five minutes to execute, or more than a minute even, it can just abort and discard that transaction, right. The only time we can’t do that is when it's in a block already, but then it could decide to reject the block as well. It's all possibilities there could be in the software.
Yeah, and if it's in a block already it means someone else was able to validate it so…
Cory: 0,0:26:21.21,0:26:43.60 There’s a lot of discussions about the re-enabled opcodes coming – OP_MUL, OP_INVERT, OP_LSHIFT, and OP_RSHIFT up invert op l shift and op r shift you maybe explain the significance of those op codes being re-enabled? Steve: 0:26:42.01,0:28:17.01
Well I mean one of one of the most significant things is other than two, which are minor variants of DUP and MUL, they represent almost the complete set of original op codes. I think that's not necessarily a technical issue, but it's an important milestone. MUL is one that's that I've heard some interesting comments about. People ask me why are you putting OP_MUL back in if you're planning on changing them to big number operations instead of the 32-bit limit that they're currently imposed upon. The simple answer to that question is that we currently have all of the other arithmetic operations except for OP_MUL. We’ve got add divide, subtract, modulo – it’s odd to have a script system that's got all the mathematical primitives except for multiplication. The other answer to that question is that they're useful - we've talked about a Rabin signature solution that basically replicates the function of DATASIGVERIFY. That's just one example of a use case for this - most cryptographic primitive operations require mathematical operations and bit shifts are useful for a whole ton of things. So it's really just about completing that work and completing the script engine, or rather not completing it, but putting it back the way that it was it was meant to be.
Connor 0:28:20.42,0:29:22.62 Big Num vs 32 Bit. I've seen Daniel - I think I saw you answer this on Reddit a little while ago, but the new op codes using logical shifts and Satoshi’s version use arithmetic shifts - the general question that I think a lot of people keep bringing up is, maybe in a rhetorical way but they say why not restore it back to the way Satoshi had it exactly - what are the benefits of changing it now to operate a little bit differently? Daniel: 0:29:18.75,0:31:12.15
Yeah there's two parts there - the big number one and the L shift being a logical shift instead of arithmetic. so when we re-enabled these opcodes we've looked at them carefully and have adjusted them slightly as we did in the past with OP_SPLIT. So the new LSHIFT and RSHIFT are bitwise operators. They can be used to implement arithmetic based shifts - I think I've posted a short script that did that, but we can't do it the other way around, right. You couldn't use an arithmetic shift operator to implement a bitwise one. It's because of the ordering of the bytes in the arithmetic values, so the values that represent numbers. The little endian which means they're swapped around to what many other systems - what I've considered normal - or big-endian. And if you start shifting that properly as a number then then shifting sequence in the bytes is a bit strange, so it couldn't go the other way around - you couldn't implement bitwise shift with arithmetic, so we chose to make them bitwise operators - that's what we proposed.
That was essentially a decision that was actually made in May, or rather a consequence of decisions that were made in May. So in May we reintroduced OP_AND, OP_OR, and OP_XOR, and that was also another decision to replace three different string operators with OP_SPLIT was also made. So that was not a decision that we've made unilaterally, it was a decision that was made collectively with all of the BCH developers - well not all of them were actually in all of the meetings, but they were all invited.
Another example of that is that we originally proposed OP_2DIV and OP_2MUL was it, I think, and this is a single operator that multiplies the value by two, right, but it was pointed out that that can very easily be achieved by just doing multiply by two instead of having a separate operator for it, so we scrapped those, we took them back out, because we wanted to keep the number of operators minimum yeah.
There was an appetite around for keeping the operators minimal. I mean the decision about the idea to replace OP_SUBSTR, OP_LEFT, OP_RIGHT with OP_SPLIT operator actually came from Gavin Andresen. He made a brief appearance in the Telegram workgroups while we were working out what to do with May opcodes and obviously Gavin's word kind of carries a lot of weight and we listen to him. But because we had chosen to implement the May opcodes (the bitwise opcodes) and treat the data as big-endian data streams (well, sorry big-endian not really applicable just plain data strings) it would have been completely inconsistent to implement LSHIFT and RSHIFT as integer operators because then you would have had a set of bitwise operators that operated on two different kinds of data, which would have just been nonsensical and very difficult for anyone to work with, so yeah. I mean it's a bit like P2SH - it wasn't a part of the original Satoshi protocol that once some things are done they're done and you know if you want to want to make forward progress you've got to work within that that framework that exists.
When we get to the big number ones then it gets really complicated, you know, number implementations because then you can't change the behavior of the existing opcodes, and I don't mean OP_MUL, I mean the other ones that have been there for a while. You can't suddenly make them big number ones without seriously looking at what scripts there might be out there and the impact of that change on those existing scripts, right. The other the other point is you don't know what scripts are out there because of P2SH - there could be scripts that you don't know the content of and you don't know what effect changing the behavior of these operators would mean. The big number thing is tricky, so another option might be, yeah, I don't know what the options for though it needs some serious thought.
That’s something we've reached out to the other implementation teams about - actually really would like their input on the best ways to go about restoring big number operations. It has to be done extremely carefully and I don't know if we'll get there by May next year, or when, but we’re certainly willing to put a lot of resources into it and we're more than happy to work with BU or XT or whoever wants to work with us on getting that done and getting it done safely.
Connor: 0:35:19.30,0:35:57.49 Kind of along this similar vein, you know, Bitcoin Core introduced this concept of standard scripts, right - standard and non-standard scripts. I had pretty interesting conversation with Clemens Ley about use cases for “non-standard scripts” as they're called. I know at least one developer on Bitcoin ABC is very hesitant, or kind of pushed back on him about doing that and so what are your thoughts about non-standard scripts and the entirety of like an IsStandard check? Steve: 0:35:58.31,0:37:35.73
I’d actually like to repurpose the concept. I think I mentioned before multi-threaded script validation and having some dedicated well-known script templates - when you say the word well-known script template there’s already a check in Bitcoin that kind of tells you if it's well-known or not and that's IsStandard. I'm generally in favor of getting rid of the notion of standard transactions, but it's actually a decision for miners, and it's really more of a behavioral change than it is a technical change. There's a whole bunch of configuration options that miners can set that affect what they do what they consider to be standard and not standard, but the reality is not too many miners are using those configuration options. So I mean standard transactions as a concept is meaningful to an arbitrary degree I suppose, but yeah I would like to make it easier for people to get non-standard scripts into Bitcoin so that they can experiment, and from discussions of I’ve had with CoinGeek they’re quite keen on making their miners accept, you know, at least initially a wider variety of transactions eventually.
So I think IsStandard will remain important within the implementation itself for efficiency purposes, right - you want to streamline base use case of cash payments through them and prioritizing. That's where it will remain important but on the interfaces from the node to the rest of the network, yeah I could easily see it being removed.
Cory: 0,0:38:06.24,0:38:35.46 *Connor mentioned that there's some people that disagree with Bitcoin SV and what they're doing - a lot of questions around, you know, why November? Why implement these changes in November - they think that maybe the six-month delay might not cause a split. Well, first off what do you think about the ideas of a potential split and I guess what is the urgency for November? Steve: 0:38:33.30,0:40:42.42
Well in November there's going to be a divergence of consensus rules regardless of whether we implement these new op codes or not. Bitcoin ABC released their spec for the November Hard fork change I think on August 16th or 17th something like that and their client as well and it included CTOR and it included DSV. Now for the miners that commissioned the SV project, CTOR and DSV are controversial changes and once they're in they're in. They can't be reversed - I mean CTOR maybe you could reverse it at a later date, but DSV once someone's put a P2SH transaction into the project or even a non P2SH transaction in the blockchain using that opcode it's irreversible. So it's interesting that some people refer to the Bitcoin SV project as causing a split - we're not proposing to do anything that anyone disagrees with - there might be some contention about changing the opcode limit but what we're doing, I mean Bitcoin ABC already published their spec for May and it is our spec for the new opcodes, so in terms of urgency - should we wait? Well the fact is that we can't - come November you know it's bit like Segwit - once Segwit was in, yes you arguably could get it out by spending everyone's anyone can spend transactions but in reality it's never going to be that easy and it's going to cause a lot of economic disruption, so yeah that's it. We're putting out changes in because it's not gonna make a difference either way in terms of whether there's going to be a divergence of consensus rules - there's going to be a divergence whether whatever our changes are. Our changes are not controversial at all.
If we didn't include these changes in the November upgrade we'd be pushing ahead with a no-change, right, but the November upgrade is there so we should use it while we can. Adding these non-controversial changes to it.
Connor: 0:41:01.55,0:41:35.61 Can you talk about DATASIGVERIFY? What are your concerns with it? The general concept that's been kind of floated around because of Ryan Charles is the idea that it's a subsidy, right - that it takes a whole megabyte and kind of crunches that down and the computation time stays the same but maybe the cost is lesser - do you kind of share his view on that or what are your concerns with it? Daniel: 0:41:34.01,0:43:38.41
Can I say one or two things about this – there’s different ways to look at that, right. I'm an engineer - my specialization is software, so the economics of it I hear different opinions. I trust some more than others but I am NOT an economist. I kind of agree with the ones with my limited expertise on that it's a subsidy it looks very much like it to me, but yeah that's not my area. What I can talk about is the software - so adding DSV adds really quite a lot of complexity to the code right, and it's a big change to add that. And what are we going to do - every time someone comes up with an idea we’re going to add a new opcode? How many opcodes are we going to add? I saw reports that Jihan was talking about hundreds of opcodes or something like that and it's like how big is this client going to become - how big is this node - is it going to have to handle every kind of weird opcode that that's out there? The software is just going to get unmanageable and DSV - that was my main consideration at the beginning was the, you know, if you can implement it in script you should do it, because that way it keeps the node software simple, it keeps it stable, and you know it's easier to test that it works properly and correctly. It's almost like adding (?) code from a microprocessor you know why would you do that if you can if you can implement it already in the script that is there.
It’s actually an interesting inconsistency because when we were talking about adding the opcodes in May, the philosophy that seemed to drive the decisions that we were able to form a consensus around was to simplify and keep the opcodes as minimal as possible (ie where you could replicate a function by using a couple of primitive opcodes in combination, that was preferable to adding a new opcode that replaced) OP_SUBSTR is an interesting example - it's a combination of SPLIT, and SWAP and DROP opcodes to achieve it. So at really primitive script level we've got this philosophy of let's keep it minimal and at this sort of (?) philosophy it’s all let's just add a new opcode for every primitive function and Daniel's right - it's a question of opening the floodgates. Where does it end? If we're just going to go down this road, it almost opens up the argument why have a scripting language at all? Why not just add a hard code all of these functions in one at a time? You know, pay to public key hash is a well-known construct (?) and not bother executing a script at all but once we've done that we take away with all of the flexibility for people to innovate, so it's a philosophical difference, I think, but I think it's one where the position of keeping it simple does make sense. All of the primitives are there to do what people need to do. The things that people don't feel like they can't do are because of the limits that exist. If we had no opcode limit at all, if you could make a gigabyte transaction so a gigabyte script, then you can do any kind of crypto that you wanted even with 32-bit integer operations, Once you get rid of the 32-bit limit of course, a lot of those a lot of those scripts come up a lot smaller, so a Rabin signature script shrinks from 100MB to a couple hundred bytes.
I lost a good six months of my life diving into script, right. Once you start getting into the language and what it can do, it is really pretty impressive how much you can achieve within script. Bitcoin was designed, was released originally, with script. I mean it didn't have to be – it could just be instead of having a transaction with script you could have accounts and you could say trust, you know, so many BTC from this public key to this one - but that's not the way it was done. It was done using script, and script provides so many capabilities if you start exploring it properly. If you start really digging into what it can do, yeah, it's really amazing what you can do with script. I'm really looking forward to seeing some some very interesting applications from that. I mean it was Awemany his zero-conf script was really interesting, right. I mean it relies on DSV which is a problem (and some other things that I don't like about it), but him diving in and using script to solve this problem was really cool, it was really good to see that.
I asked a question to a couple of people in our research team that have been working on the Rabin signature stuff this morning actually and I wasn't sure where they are up to with this, but they're actually working on a proof of concept (which I believe is pretty close to done) which is a Rabin signature script - it will use smaller signatures so that it can fit within the current limits, but it will be, you know, effectively the same algorithm (as DSV) so I can't give you an exact date on when that will happen, but it looks like we'll have a Rabin signature in the blockchain soon (a mini-Rabin signature).
Cory: 0:48:13.61,0:48:57.63 Based on your responses I think I kinda already know the answer to this question, but there's a lot of questions about ending experimentation on Bitcoin. I was gonna kind of turn that into – with the plan that Bitcoin SV is on do you guys see like a potential one final release, you know that there's gonna be no new opcodes ever released (like maybe five years down the road we just solidify the base protocol and move forward with that) or are you guys more on the idea of being open-ended with appropriate testing that we can introduce new opcodes under appropriate testing. Steve: 0:48:55.80,0:49:47.43
I think you've got a factor in what I said before about the philosophical differences. I think new functionality can be introduced just fine. Having said that - yes there is a place for new opcodes but it's probably a limited place and in my opinion the cryptographic primitive functions for example CHECKSIG uses ECDSA with a specific elliptic curve, hash 256 uses SHA256 - at some point in the future those are going to no longer be as secure as we would like them to be and we'll replace them with different hash functions, verification functions, at some point, but I think that's a long way down the track.
I'd like to see more data too. I'd like to see evidence that these things are needed, and the way I could imagine that happening is that, you know, that with the full scripting language some solution is implemented and we discover that this is really useful, and over a period of, like, you know measured in years not days, we find a lot of transactions are using this feature, then maybe, you know, maybe we should look at introducing an opcode to optimize it, but optimizing before we even know if it's going to be useful, yeah, that's the wrong approach.
I think that optimization is actually going to become an economic decision for the miners. From the miner’s point of view is if it'll make more sense for them to be able to optimize a particular process - does it reduce costs for them such that they can offer a better service to everyone else? Yeah, so ultimately these decisions are going to be miner’s main decisions, not developer decisions. Developers of course can offer their input - I wouldn't expect every miner to be an expert on script, but as we're already seeing miners are actually starting to employ their own developers. I’m not just talking about us - there are other miners in China that I know have got some really bright people on their staff that question and challenge all of the changes - study them and produce their own reports. We've been lucky with actually being able to talk to some of those people and have some really fascinating technical discussions with them.
However, the question of whether miners and pools will support that increase in the form of XT, a fork of Bitcoin Core, remains. It currently has 13.7% of bitcoin’s nodes behind it. Split between Original Bitcoin & BitcoinXT Continues The discussion within the Bitcoin community continues, since a large section of the community has rejected BitcoinXT. Read the updates. ... XT software. A large section of the community has rejected BitcoinXT, instead choosing to back BIP100, which proposes a different, more conservative ... Examples of this type of fork include Bitcoin XT, Bitcoin Classic and Bitcoin Unlimited. Soft Fork. A soft fork is when the ruleset is tightened and the Yellow rules are completely covered by the Red rules (thus only Orange and Red rulesets). The chain split can occur whenever a miner creates a Red block. Bitcoin itself is harmed by these “splits”. Whereas “airdrop” is a positive, promotional word, which plays to people’s greed for free money. That’s probably the second-worst possible way to present the matter—other than outright fraudulently implying that Bitcoin Plutonium XT With Ponies be somehow The New Bitcoin. Two well-known bitcoin developers "forked" the technology, releasing software that will allow the community to split away from the core program. ... the only way to get there is via Bitcoin XT. So ...
Where to Buy Bitcoin Cash after the Bitcoin Fork or Split?
Given the fact that the (in)famous bitcoin fork (also referred to as a bitcoin split) might take place in a few days, it should come as no surprise that I've decided to dedicate a section of One ... litecoin LZHVqUWe8JE2PrBS7AuFU3eYgKGYPKnhpe bitcoin 1P6yTbb7CJJVpsDUKpi2VH6CMSsc6uN8jM. Bitcoin Halving Explained Simple - Does it Affect Bitcoin's Price? - Duration: 5:33. 99Bitcoins 90,375 views. 5:33. ... Stock Split And Reverse Stock Split Explained: Why is BRK.B Split Good But ... So today is the big day, August 1, and I've seen many people online wondering where and how to buy Bitcoin Cash. There's a number of exchanges dealing with Bitcoin Cash, my favorite being Bittrex ... August has been a historical month for Bitcoin because it has split and divided opinion as a result. Ryan Radloff, XBT's head of investor relations explains what this so-called forking means for ...