Bitcoin is one of the best ways to store wealth on the modern age. But in late 2016 and 2017 it has become apparent that Bitcoin is not ready to be used by the masses. This is because the the bitcoin blockchain is not ready to handle large numbers of transactions in a single day.
This issue has been coined Bitcoin’s scalability issue. With the current block limits (due to the code) the Bitcoin network can only run 300,000 transactions a day. Compare this to VISA, which handles on average around 2,000 transactions per second.
When speaking about blockchain technology, a block is simply a collection of transactions that get added to the public ledger (blockchain) that anyone can look at, at any time.
The two major solutions have been proposed buy Bitcoin Core and Bitcoin Unlimited, both will change the Bitcoin protocol, aka the bitcoin rules.
SegWit believes the solution is to change how blocks are stored. Essentially, it creates smaller blocks more often. It also brings several other benefits, some are calling a “bonus”.
The Segregated Witness proposal requires a “soft-fork”. This means it is a smaller and less risky upgrade to the blockchain.
Bitcoin transactions are identified by a 64-digit hexadecimal hash called a transaction identifier (txid) which is based on both the coins being spent and on who will be able to spend the results of the transaction.
Unfortunately, the way the txid is calculated allows anyone to make small modifications to the transaction that will not change its meaning, but will change the txid. This is called third-party malleability. BIP 62 (“dealing with malleability”) attempted to address these issues in a piecemeal manner, but was too complicated to implement as consensus checks and has been withdrawn.
For example, you could submit a transaction with txid ef74…c309 to the network, but instead find that a third-party, such as a node on the network relaying your transaction, or the miner who includes your transaction in a block, modifies the transaction slightly, resulting in your transaction still spending the same coins and paying the same addresses, but being confirmed under the completely different txid 683f…8bfa instead.
More generally, if one or more of the signers of the transaction revise their signatures then the transaction remains valid and pays the same amounts to the same addresses, but the txid changes completely because it incorporates the signatures. The general case of changes to signature data (but not the outputs or choice of inputs) modifying the transaction is called scriptSig malleability.
Segwit prevents third-party and scriptSig malleability by allowing Bitcoin users to move the malleable parts of the transaction into the transaction witness, and segregating that witness so that changes to the witness does not affect calculation of the txid.
Who benefits from SegWit?
- Wallet authors tracking spent bitcoins: it’s easiest to monitor the status of your own outgoing transactions by simply looking them up by txid. But in a system with third-party malleability, wallets must implement extra code to be able to deal with changed txids.
- Anyone spending unconfirmed transactions: if Alice pays Bob in transaction 1, Bob uses that payment to pay Charlie in transaction 2, and then Alice’s payment gets malleated and confirmed with a different txid, then transaction 2 is now invalid and Charlie has not been paid. If Bob is trustworthy, he will reissue the payment to Charlie; but if he isn’t, he can simply keep those bitcoins for himself.
- The Lightning Network: with third-party and scriptSig malleability fixed, the Lightning Network is less complicated to implement and significantly more efficient in its use of space on the blockchain. With scriptSig malleability removed, it also becomes possible to run lightweight Lightning clients that outsource monitoring the blockchain, instead of each Lightning client needing to also be a full Bitcoin node.
- Anyone using the block chain: smart contracts today, such as micropayment channels, and anticipated new smart contracts, become less complicated to design, understand, and monitor.
Bitcoin Unlimited believes the solution is to change how blocks are created.
Bitcoin Unlimited will require a hard fork. This is a complete upgrade of the software and everyone will have to agree to run the new software. With a hard fork you run the risk of splitting the one currency into two, like Ethereum and Ethereum Classic. Some miners will want to run the old version and not the new one.
Every node operator or miner can currently choose their own blocksize limit by modifying their client. Bitcoin Unlimited makes the process easier by providing a configurable option for the accepted and generated blocksize via a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe setting allowing you to accept a block larger than your maximum accepted blocksize if it reaches a certain number of blocks deep in the chain.
By moving the blocksize limit from the protocol layer to the transport layer, Bitcoin Unlimited removes the only point of central control in the Bitcoin economy – the blocksize limit – and returns it to the nodes and the miners.An emergent consensus will thus arise based on free-market economics as the nodes/miners converge on consensus focal points, creating in the process a living, breathing entity that responds to changing real-world conditions in a free and decentralised manner.
Bitcoin miners vote with their hashpower (aka by mining with the version they support).
SegWit needs 95% of the total network mining power to activate.
Bitcoin Unlimited needs 51% of the total network mining power to activate.
Are There Faster Blockchains?
Yes the BitShares and Steem blockchains have demonstrated incredible transactions speeds. On a public distributed test net, Steem sustained 10,000 transactions per second. These blockchains can theoretically process 180,000+ transaction per second on well spec’d nodes.
These blockchains are inherently different as they run a Delegated Proof of Stake consensus mechanism and utilize the Graphene 2.0 Blockchain framework developed by the Bitshares blockchain architects.