This full fork provides an option for users who prefer to follow Satoshi’s vision of a global peer-to-peer currency that is accessible and usable by everyone. Currently a large number of Bitcoin users want to use a version of Bitcoin that scales as originally intended, but have no option to do. I created this project because I intend to use a version of Bitcoin that scales to larger blocksizes, but based on current developer and miner statements it seems likely that this will not happen.
Other users who prefer a version of Bitcoin that scales are welcome to join and participate in this effort. A description of the development plan is provided below.
There are many different views and opinions on how such a full fork should happen, and this project only reflects my preferences. I hope this effort will kick-start multiple different full fork options that offer multiple different options for users to choose from, and that the best option will win in time. In doing so Bitcoin benefits from its open nature and will follow user preferences based on market demand, not the whims of a corrupt board of directors.
This thread is the main discussion thread for the project (
https://bitco.in/forum/threads/announcement-bitcoin-project-to-full-fork-to-flexible-blocksizes.933/)
The github project is here: (
https://github.com/satoshisbitcoin/satoshisbitcoin)
I will host an AMA for the first few hours and then move the discussion back to this thread.
This branch will likely be small when it starts and only a minority of users will participate, and that is fine. If the branch is the right path it will grow over time. This post was censored in
/r/btcso moving here.
Why a full fork?
Bitcoin was designed by Satoshi as a global peer-to-peer currency accessible and usable by everyone with instantaneous low cost transactions. This vision was clearly laid out in the Bitcoin white paper, widely understood and agreed by all users and advertised as the vision on the bitcoin.org website and all Bitcoin related forums and websites since 2009.
Despite this clear vision, Bitcoin is now being artificially constrained to low transaction throughputs well below what the Bitcoin network is capable of supporting. User demand has now reached these artificial constrains and many Bitcoin users are no longer able to use the network and are being denied access.
This artificial change is best described by one of the primary early Bitcoin developers since 2010 in the link below. The reasons are complex but revolve around centralized control. A single company who’s business model develops off-chain solutions now controls Bitcoin development and due to electricity cost advantages mining is no longer performed by the broad user community but by a small number of individuals. As a result, despite the fact that a large majority of Bitcoin users clearly want to scale Bitcoin, those who have taken control refuse to do so. (
https://medium.com/@octskyward/the-resolution-of-the-bitcoin-experiment-dabb30201f7)
However the strength of Satoshi’s design is users are in control of the system. Any individual user or group of users are able to decide for themselves what Bitcoin should be and which set of rules reflect their preferences. Because of this it is impossible for Bitcoin to ever be centrally controlled, as long as users are able to define for themselves which version of Bitcoin is optimal.
Additionally, it is hoped that this effort will demonstrate how users are in control of Bitcoin and kick-start multiple different full fork options that offer different multiple options for users and the market to choose from, and that the best option will win in time. In doing so Bitcoin benefits from its open nature and will follow user preferences based on market demand.
What is the full fork and what is being changed?
The full fork will change the set of rules that define the block chain on a fixed date. After this date a new branch will be created that follows a set of rules that more closely follow Satoshi’s vision. At this point there will be two separate branches of the blockchain and two separate Bitcoins. One branch will follow the existing rules and a new branch will follow the new rules. Each individual user will be able to decide for themselves which branch to follow. The transaction history and BTC owned will be common on both branches up through the fork date, and after that diverge.
The base client used is Bitcoin Classic version 0.11.2. On top of this version the following rule changes will activate at block height 407232, which is the difficulty adjustment scheduled for mid-April 2016. * The block size limit will be removed and replaced with an adjustable limit based on the previous difficulty period’s transaction volume. * The POW algorithm will changed
Note: mid-April 2016 is a target date, the final activation date will depend on development progress which depends on community participation in development as described further below.
I don't want to fork, will this affect me?
No. The fork is fully opt-in and people who do not opt-in will not be effected. To use the fork you have to switch your client from an existing client to the Satoshi's Bitcoin client. Only users who switch clients will follow the fork and use the new branch.
If you continue to use your existing client, you will continue to use the existing blockchain branch and this fork will not affect you in any manner.
Is this client ready?
No. Most development items still need to be completed, but they are relatively straight forward and should be done by the fork date. The work needed is listed below and open to community development.
How will the block size limit be changed?
The block size limit will be changed to follow the same mechanism as the difficulty for mining. Currently difficulty auto adjusts every 2 weeks and this adjustment is rate limited to only increase or decrease by a factor of 4.
The block size limit will similarly be set to auto adjust every 2 weeks based on the previous difficulty period’s transaction volume. The new block size limit for the next difficulty period will be reset to 10 times the previous difficulty period’s transaction volume, the adjustment will also be rate limited to only increase or decrease by a factor of 4.
In this manner the block size limit will function as a spam filter only as originally intended, and transaction throughput can grow based on user demand while providing protection against large block spam attacks.
Why change the POW algorithm?
This step is technically required to implement a full fork where a minority of users wishes to break away from the main chain.
At the fork date it is expected the mining power behind the new fork will be less than the current chain, and as a result the minority chain will not branch and instead continue to follow the larger chain if the same POW is used. By chaining the POW algorithm a hard full fork is set that a minority of users can follow.
Additionally changing the POW algorithm provides an opportunity to re-create a mining ecosystem that more closely follows Satoshi’s vision of one CPU one vote.
Bitcoin mining centralized because the cost structure of SHA256 mining when fully optimized is heavily dependent of electricity costs. As a result those with access to the lowest cost electricity have an artificial advantage and mining centralizes to the few individuals/firms with the lowest electricity costs.
Mining specialization and optimization cannot (and should not) be stopped. However it is possible to select and create algorithms that when fully optimized still use more standard hardware and reduce the advantage of low cost electricity. This creates more even competition in mining and by having more even competition encourages a more diverse miner ecosystem with more active user participation.
Changing the POW algorithm also brings back home hobbyist mining, which was a significant driver of Bitcoin’s early interest and adoption. This version of Bitcoin offers hobbyists the opportunity to actively participate in Bitcoin as in Bitcoin’s early days.
Which POW will be used?
There are two options being considered. One option is to select an existing algorithm that has proven with alt-coins to be ASIC-resistant. ETH is using one such algorithm and may be selected. Another option is to create a new algorithm that improves on existing attempts, as described below.
If a new algorithm cannot be designed on time the first option will be selected, however if a new algorithm can be finalized in time that will be an option for consideration.
(Cut for length requirements)