Show Posts
|
Pages: [1]
|
4
|
Bitcoin / Development & Technical Discussion / "Bitcoin Unlimited" is not convergent due to the "excessive block depth" idea
|
on: December 24, 2015, 04:30:00 PM
|
A new software implementation of Bitcoin has been released called “Bitcoin Unlimited” ( http://www.bitcoinunlimited.info). Admittedly I do not fully understand the proposal, which aims to allow the blocksize limit to move based on signals on the ability to accept larger blocks. The relevant quotes are included below: 3. Addition of an Unlimited Dialog / command line option to change the default block “accept” size. Blocks larger than this (excessive blocks) will only be accepted if they are N deep in the blockchain. This will be 16MB by default.
4. Addition of an Unlimited Dialog / command line option to set the excessive block accept depth. This is the N parameter in the description of #3. The default value will be 4.
Source: https://bitco.in/forum/threads/buip001-unlimited-inspired-extensions-to-the-bitcoin-client.222Within the Bitcoin Unlimited proposal I will talk about three key numbers: - L = The blocksize limit at which miners produce blocks, the default is 1MB
- M = The blocksize limit for incoming blocks, which will be accepted as valid, if the lead is large enough, the default is 16MB
- N = The lead required over the chain with the blocksize limit L, in order to accept the blocks with a larger size as valid, the default is 4
The above element of the Bitcoin unlimited proposal seem to undermine the principal of a confirmation and partially invalidate the longest chain rule principal behind Bitcoin. At the same time I do not see how this proposed methodology converges on a single version of the blockchain. Let me consider some scenarios below, all of which exclude the fact that both N and the default blocksize limit are locally customizable, creating even more divergence about the one true chain. Scenario 1 – Upgrade to larger blocksIn this example, L=1MB, M=16MB and n=4. There is then a desire to produce a 2MB block. A miner therefore produces a 2MB block B. Most nodes by default reject 2MB block B as it only has one confirmation. Two chains are created an in the example image below, the 1MB block B receives 4 confirmations before the 2MB chain eventually gets a 4 block lead and since N=4, this chain is now considered valid. Transactions which had received 4 confirmations can now be double spent.  However, this upgrade system is not convergent at all, there is no reason why this battle between the 2MB chain and 1MB chain should be resolved quickly. This could occur over many blocks (greater than 4). The two chains in this example could contain conflicting transactions and this "upgrade" process can encourage double spends, with the meaning of a confirmation hugely depreciated. Scenario 2 – Failed upgrade to larger blocksConsider the above example again, except the next block to be found is a 1MB G block. Once this block is found nodes would reject the 2MB G, H, I & J blocks, since the 2MB chain no longer has a 4 block lead. This means that finding only one block can invalidate 4 confirmations. This attack could be very attractive for those wishing to do double spends. The whole consensus property of Bitcoin is destroyed. Unless anyone can tell me why this analysis is incorrect, I would recommend the Bitcoin Unlimited team remove this "excessive block depth" idea from the software and proposal.
|
|
|
5
|
Bitcoin / Development & Technical Discussion / Why I support Jeff's BIP100
|
on: August 27, 2015, 01:20:51 AM
|
Balanced compromiseRational miners will vote to maximise their revenue. When the block reward is low, this can be calculated from the following equation. Mining revenue = the economic value of network security = bitcoin fx rate * transaction volume * average fee BIP100 is a balanced, dynamic and market driven compromise, which maximises the product of these three important metrics. Many people are arguing about the relative importance of these three metrics, BIP100 could be the long term solution we are after. Reacting to demandBIP100 does reflect adoption/demand. If demand increases the price elasticity of demand may fall, therefore miners may vote to increase the limit. Miners vote to maximise their revenue and they therefore need to evaluate the price elasticity of demand when they vote. BIP100 enables capacity to adjust to meet demand. Over time miners will become better at voting. This method is better than estimating what demand will look like now for the next 20+ years, which is very difficult for anybody to do. Why can't miners apply their own voluntary size limit?For example, a miner may prefer smaller blocks so that fees are higher. i.e. the miner thinks the negative impact from a reduction in volume would be smaller than the positive impact of a fee increase from the smaller blocks. Therefore the miner wants smaller blocks. However, the miner could make a large block anyway to benefit from larger fees in the short term, from that block, in the hope other miners make smaller blocks. This plan will fail because each miner will also operate in their own selfish interest and make larger blocks. Fees then downwardly spiral to zero and network security falls. This is happening in the oil market right now, loss making oil companies are pumping more and more oil to get cash in the short term and the oil price keeps falling. Oil firms then get more desperate for short term cash. Each oil company hopes other firms will reduce production so the price increases, but the nash equilibrium is for each oil producer to keep pumping. We must not allow this race to the bottom to occur in bitcoin mining. Lets learn the lesson from oil production and the mining of other commodities. For oil of course this does not matter, eventually oil firms go bankrupt and shut down, then supply falls and the oil price rises. This correction can not occur in bitcoin because supply does not correct. Bitcoin miners keep the network secure, they do not supply capacity. One remaining miner can provide all the capacity we need, but not the security. Due to this imbalance, a blocksize limit is required. If the above is true, why fees are not zero now, despite blocks not being full?. It is for the following four reasons: - Orphan risk costs are high, however in the long term these may fall due to bandwidth improvements and other technology like IBLT.
- Mining is not competitive enough. There are currently a few large pools, however if Bitcoin is to succeed in the long term, there needs to be many miners and a high level of competition.
- Miners are not mature businesses yet. Miners are often pro bitcoin people or bitcoin speculators, miners often care about the health of bitcoin. In the long term they may be more focused on margins and profit.
- The block reward is high, therefore miners don't worry much about fee income as it is small relative to revenue. The block reward will fall in the long term and miners will therefore focus on maximising fee income.
Is BIP100 like a price cartel?Yes, BIP100 is like a cartel for price fixing in some ways. What BIP100 does is allow the price to be fixed as if a cartel like structure existed, but actually have many competing miners. This is why BIP100 is quite clever. It is ironic like Bitcoin in a way. Bitcoin is about achieving abosolute order, while at the time ensuring everyone has freedom to do what they want. BIP100 has cartel like pricing, but with many members who have freedom to do what they want. Without BIP100, the only way for price fixing to occur is if there was a very small group of miners who controlled the network. BIP100 would not be needed then and the price would be fixed. Without BIP100, if there were too many miners the cartel would fall apart, as members would defect from the cartel. BIP100 kind of provides a framework for a cartel like structure to apply, but with many competing members. As Meni pointed out when BIP100 was released, under many assumptions as to what Bitcoin is for, this may mean volumes are too low or suboptimal. I still think BIP100 is the best proposal out there, although its far from perfect or even complete.List of points requiring further clarification1. What voting options will be available? e.g. choices between -50%, -10%, -5%, 0%, +10%, +50% and +100%? 2. Will the miner vote for the size limit be rolling or happen every set number of blocks? 3. Over how many blocks will the miner vote occur? 4. Will there be a lower bound 1MB cap on the size limit? 5. How will voting take place? Is it the lowest 20% + 1 for an increase and the lowest 80% - 1 for a decrease?
|
|
|
6
|
Bitcoin / Development & Technical Discussion / Require a proof of work for each transaction - blocksize issue solution
|
on: May 10, 2015, 06:00:02 PM
|
I propose the following idea, which could help with Bitcoin scalability economics:
Miners are required to include a "mini proof of work" for each transaction in a block (excluding the coinbase transaction), also based on SHA256. The difficulty of the mini proof of work could be a small fraction, say 10,000x less difficult, than the main block difficulty.
Advantages: 1. The system provides a variable marginal cost to the miner of including each additional transaction in a block 2. The system incentivizes miners to keep blocks smaller and therefore no maximum blocksize is needed 3. The total cost of mining or work done will not change as this extra work will be factored into the 10 minute target time 4. It makes sense for the Bitcoin miners to do the mini proof of work as there are economic synergies between the two proofs (This could always be enforced somehow if necessary)
Possible disadvantages: 1. The community will need to decide on the fraction (There could be a target fraction, that adjusts every two weeks, for example initially 10% of work is allocated to transactions and 90% to the block, these ratios can adjust as the block reward changes) 2. This increases complexity 3. Blocksizes will initially increase, as the extra hashes will take up space 4. This creates another economic use of SHA256 not directly related to Bitcoin security
EDIT: Now I see miners would need to solve multiple problems, which would advantage large miners making this scheme unworkable.
|
|
|
7
|
Bitcoin / Development & Technical Discussion / Blocksize Economics
|
on: October 16, 2014, 02:18:16 PM
|
Dear Gavin Thanks for providing the update on the Scalability Roadmap piece and for focusing more on some of the economic issues. See https://bitcoinfoundation.org/2014/10/blocksize-economics/ I think it’s very good that you have addressed and discussed some of these crucial economic and incentive type issues. First let me address your comment that “economic theory says that in a competitive market, supply, demand, and price will find an equilibrium where the price is equal to the marginal cost to suppliers plus some net income (because suppliers can always choose to do something more profitable with their time or money). In this case, price is transaction fees, supply is the willingness or ability of miners to confirm transactions, and demand is the number of transactions people want to have confirmed.” It is important to realise that Bitcoin is in some respects unique and unlike any system that came before it, it is not always possible to apply the normal rules of “economic theory” to this system. This is not a normal market with normal supply and demand. There are several key differences: 1. Normal markets do not have a difficulty adjustment every two weeks 2. In normal markets there is no reason why having a large number of suppliers competing is important 3. In normal markets suppliers don’t compete in a bingo like random competition to be awarded the contract Contrasting the market for space in blocks with other markets is a useful exercise, however one must realise the dynamics are potentially very different and requires careful analysis. Neither I, nor the other people saying that having no arbitrary limit in the block size would mess up mining economics are saying the limit does not need to be increased. I think there is a strong consensus that an increase is necessary. I merely maintain that some limit is necessary for economic reasons. When the block reward falls there is no guarantee that any system will produce enough revenue to miners to secure the network. An arbitrary level of scarcity in the block size limit (at a much higher level than 1MB), is the best method I can think of for providing this security, even though it is far from perfect. Many thanks
|
|
|
8
|
Economy / Economics / Economics of the blocksize limit
|
on: October 08, 2014, 08:50:46 PM
|
There is a discussion about this is the technical forum: https://bitcointalk.org/index.php?topic=813324.0;allHowever the blocksize limit also appears to be an economic type of problem. Current supply & demand curves for space in blocks - If the blocksize limit increases and transaction fees fall, this can increase the velocity of money, boost inflation and stimulate the economy.
- In contrast if the blocksize limit falls, the velocity of money can fall, causing deflation and an economic slowdown.
Having a “Blocksize policy committee” to manage the economy, is not very consistent with Bitcoin’s values. Therefore some other mechanism to determine the blocksize limit may be required. Does anyone have any ideas?
|
|
|
9
|
Bitcoin / Development & Technical Discussion / A Scalability Roadmap
|
on: October 06, 2014, 06:02:49 PM
|
Please see Gavin's writeup below: https://bitcoinfoundation.org/2014/10/a-scalability-roadmap/I think this is a very good and interesting read with some fantastic points, however this is likely to be considered controversial by some in this community. In particular a fixed schedule for increasing the block size limit over time is a significant proposal. Is Gavin saying this should grow at 50% per year because bandwidth has been increasing at this rate in the past? Might it not be safer to choose a rate lower than historic bandwidth growth? Also how do we know this high growth in bandwidth will continue? Gavin mentioned that this is "similar to the rule that decreases the block reward over time", however the block reward decreases by 50%, an increase by 50% is somewhat different. A 50% fall every 4 years implies that there will never be more than 21 million coins, 50% growth in the block size limit implies exponential growth forever. Perhaps after 21 million coins is reached Bitcoin will stop growing, therefore if one wants to make a comparison, the block size limit increase rate could half every 4 years, reaching zero growth when 21 million coins are reached. Although I do not know the best solution to this. Can anyone explain why exponential growth is a good idea? In my view, should volumes increase above the 7 transaction a second level in the short term, a quick fix like doubling the block size limit should be implemented. A more long term solution like an annual increase in the block size limit could require more research into transaction fees and the impact this could have on incentivising miners. Ultimately we may need a more dynamic system where the block size limit is determined in part by transaction volume, the network difficulty and transactions fees in some way, as well as potentially a growth rate. Although a more robust theoretical understanding of this system may be required before we reach that point. Many thanks
|
|
|
10
|
Bitcoin / Development & Technical Discussion / O(1) block propagation
|
on: August 11, 2014, 03:11:18 PM
|
Dear all I have read Gavin’s proposal on O(1) block propagation, available here: https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2If there is another thread on this I apologise, I couldn’t find it. I think the proposal is interesting and could be brilliant. However there are various basic aspects to it which I do not understand, if possible could some of you try to help explain these: 1. Is this a proposal for initial block propagation only, with the old style blocks still being propagated with a delay or will the blockchain only contain the new smaller style of blocks? 2. What is the incentive to propagate the old block format, with all the transactions, as this will presumably no longer be required for mining? Couldn’t this make the problem of a lack of full nodes worse? 3. If the blockchain now only contains only the new type of block, how does the client get the history of all bitcoin transactions? Will clients need to connect to the memory pool of other nodes and how will all historic transactions be reconstructed? 4. How will miners be incentivised once the block reward drops, as if there is no longer as much scarcity in the blockchain, the fees may be too low to incentivise miners? Many thanks
|
|
|
11
|
Bitcoin / Development & Technical Discussion / Possible “reasons” for the transaction fee and possible price implications
|
on: June 28, 2014, 04:34:13 PM
|
The transaction fee in Bitcoin is an area that has always confused me and I am unable to picture all the complexities behind the fee at the same time. I also fail to understand how the price of the fee could be determined or if a market based fee could work overall. Please see below a short list of all the possible “reasons” for transaction fees that I can think of, which I have tried to analyse independently of each other. Please let me know if there are any I missed or some of these should not be here. I think we need to work out how these “reasons” can be “combined” to determine the price of the transaction fee and if a market based solution could work overall. Do some of the “reasons” below make others redundant?
1. To allocate the limited supply of space on the blockchain The blockchain is a valuable public resource, which many Bitcoin participants need to store and share. Due to the limitations of storage space, bandwidth and block propagation time which could increase mining centralisation; the system needs to have incentives to limit increases in the level of data and therefore the amount of transactions on the blockchain. Therefore an arbitrary block size limit is imposed in Bitcoin's core implementation, which ensures there is a finite supply of space for transactions in each block. A transaction fee is required to address this problem. If demand for transactions exceeds the finite supply, the transaction fee should increase to ensure supply and demand meet and the market clears. Miners then include the transactions with the highest fees. Market based mechanism appears viable: Yes Price implications: Potentially high transaction fees, possibly dependent on Moore’s law
2. To incentivise miners to continue to mine after the block reward becomes too low Currently miners are incentivised primarily by the block rewards, however the block reward will half approximately every four years. A transaction fee is therefore necessary to ensure that miners are incentivised to continue to mine when the block reward becomes too small. Without the transaction fee, at some point in the future, miners would begin to leave the system and core consensus mechanism behind Bitcoin would become insecure. The aggregate fees need to be high enough to ensure miners remain incentivised. Market based mechanism appears viable: Unclear, since a tragedy of the commons situation appears to occur Price implications: Unclear impact, dependant on transaction volume
3. To compensate for the marginal cost to miners of including the transaction in a block In a competitive market, price should equal marginal cost. There is a cost to miners of including transactions in blocks: 1) a small amount of computing power is required to put a hash of the transaction data into the block header, 2) the transaction increases the size of the block and this will increase the block propagation time, which could increase the orphan rate. A transaction fee is therefore required to compensate miners for this cost. Since these costs to miners are very low, the transaction fee should also be very low. Market based mechanism appears viable: Yes Price implications: Potentially very low transaction fees
4. The economic reality of how miners will prioritise double spending zero conformation transactions Currently by default, if a Bitcoin miner sees a double spend attempt with zero conformations, the miner should attempt to put the first transaction it saw into a block. However the assumption behind this fails to appreciate that miners, as rationale actors, will ultimately act in their own self interest. Therefore miners will eventually prioritise double spend transactions based on the one with a higher fee. Transaction fees are therefore necessary to facilitate this. Transaction fees could be a tool used in low value transactions; for buyers to be able to cancel zero conformation transactions, or a tool for sellers who could insist on a particular transaction fee for a zero conformation transaction. However if a buyer has no intention of double spending, or intends to wait for conformations, the fee should be zero. Market based mechanism appears viable: Unclear Price implications: Potentially moderate or zero transaction fees
|
|
|
|