Pages:
Author

Topic: Gavin Andresen Proposes Bitcoin Hard Fork to Address Network Scalability (Read 18413 times)

legendary
Activity: 994
Merit: 1035
Good discussion about network scalability concerns :

https://www.youtube.com/watch?v=FEliXGr5Bl8

Peter Todd does have some valid concerns, although I believe he exaggerates a bit by suggesting 10x more transactions might require 10x more centralization, but I also like how he correctly points out that raising the block limit is the easy solution and we need to ultimately create other solutions(Like the lightning network) for Bitcoin to remain sufficiently decentralized.

This being said, I think a 20MB bump while other solutions are tested may be a fine adjustment as long as we don't simply adapt the habit of constantly increasing the block size limit.
hero member
Activity: 700
Merit: 500
It seems Bitcoin community can't reach consensus on this issue, a lot of people against the proposal.

There seem to be a few people who want some OTHER algorithm for increasing the block size, but I'm hearing very broad consensus that we do need a hard fork to increase the size.

That is progress.

I'll be running some experiments using actual blockchain data to see where the current code breaks; if it can already handle 20MB blocks then I'll work through the details to propose a hard fork (write BIPs, write code, write tests, ...).


Thank you Gavin for responding to this topic!


Your logic on this is very sensible. I feel like anyone who is "going against" a hard fork is right to question it if questioning it intelligently, and it is nice to see your response to those questions. It can be very frustrating to see some of the local clowns chiming in and we agree they can be offensive.



Everyone,

I am not sure of most people's backgrounds here on this forum, but software can almost always be improved upon and is necessary to sometimes change. Any fellow coders here could think about a time they made a program or coded a module, then later learned a different way of going about it that makes it run faster or has less code to complete the same function, or added functionality is coded to deal with other factors or upgrades. They can also think about if something is needed in the business world or a new demand arises how something will fill that demand, once the Iphone was out did they keep making the exact same Iphone or was it constantly changed as time went on? Do companies who always do the same thing always stay in business? Look at the auto industry and how hard they were going to crash unless the government stepped in for some of them. Why did the government step in and give them bail out money? Because they didn't change with the times, they were still making gas guzzling trucks and SUVs while foreign companies were bringing over more fuel efficient smaller cars. Eventually after the bail out they started to change and get their act together.


TL:DR
Do we all want to wait until bitcoin needs a "bail out" before something gets changed in the code? Or do we analyze potential future problems and correct them before something bad happens?


Thanks Smiley
legendary
Activity: 1652
Merit: 2311
Chief Scientist
As best I can tell there is no ability or desire to include this level of rigor in the development of Bitcoin.  As a holder I must factor this into the confidence I have in the solution.

You don't seem to have the "jump in and help" mentality needed to participate in a radically open project like Bitcoin.

As I have said repeatedly in the past: you don't have to ask anybody for permission or advice. You are part of the process-- make it happen.

Personally, I don't know nuthin about "opfor teams" ...  (but am the creator of the Bitcoin testnet, so am offended by you saying there is no ability or desire to bring more testing rigor to Bitcoin).
legendary
Activity: 4760
Merit: 1283

Organizations who are serious in what they do do what are called 'war games' to facilitate effective development.  The excersizes are as realistic as resources allow.  Done correctly, the 'opfor' (opposing forces) team has every method at their disposal that a real opponent might have.

In Bitcoinland this would (or should) take the form of a testnet where opfor has gear installed which can do deep packet analysis, filtering, and packet manipulation.  To be fair, traffic analysis of transit should dictate what types of traffic operations are allowed.  So, say, if real-world traffic is routed through a carrier who could conceivably be subject to legal mandates to perform certain operations, the opfor team would be allowed to employ the same.

As best I can tell there is no ability or desire to include this level of rigor in the development of Bitcoin.  As a holder I must factor this into the confidence I have in the solution.

sr. member
Activity: 259
Merit: 250
100% Positive EBAY Feedback Since 2001
There seem to be a few people who want some OTHER algorithm for increasing the block size, but I'm hearing very broad consensus that we do need a hard fork to increase the size.

That is progress.

I'll be running some experiments using actual blockchain data to see where the current code breaks; if it can already handle 20MB blocks then I'll work through the details to propose a hard fork (write BIPs, write code, write tests, ...).


"How often do you get the chance to work on a potentially world-changing project?"

Every day presents another opportunity...thank you for your work Gavin.  I'm guessing Reid, Eric, Jerry and the rest of these boys have already reached out to you about evolution of the blockchain...
http://blogs.wsj.com/moneybeat/2014/11/17/linked-in-sun-microsystems-founders-lead-big-bet-on-bitcoin-innovation/
legendary
Activity: 1652
Merit: 2311
Chief Scientist
It seems Bitcoin community can't reach consensus on this issue, a lot of people against the proposal.

There seem to be a few people who want some OTHER algorithm for increasing the block size, but I'm hearing very broad consensus that we do need a hard fork to increase the size.

That is progress.

I'll be running some experiments using actual blockchain data to see where the current code breaks; if it can already handle 20MB blocks then I'll work through the details to propose a hard fork (write BIPs, write code, write tests, ...).
sr. member
Activity: 300
Merit: 250
It seems Bitcoin community can't reach consensus on this issue, a lot of people against the proposal.
sr. member
Activity: 364
Merit: 250
I'm really quite sane!
Can another testnet be created?
Yes, however I don't think that a lot of people utilize the testnet nor do a lot of people mine on it (and those that do, don't have the same economic incentives that people who mine on the Bitcoin blockchain have).

I don't think that forking only the testnet would yield any additional information that would apply to Bitcoin
hero member
Activity: 700
Merit: 500
I have not seen anymore news about this. Anyone have any links to further discussion on it? Sorry if I missed another topic on it but I don't think I saw any floating around the first few pages.


Thanks Smiley !!!
legendary
Activity: 4760
Merit: 1283
...
I'm also operating under the assumption that miners/processors in sidechains have income from fees as well.  Ultimately, for bitcoin to get the same fees it would get otherwise, users would have to pay more to use sidechains so that the entities running the sidechains can make their money, too.  Quite frankly, sidechains for transfer of value just don't seem likely to have benefits that outweigh their costs, but that is IMO.

I've learned over the years that 'nothing is free' and to be highly suspect of things which are.  Initially at least I would only use a sidechain which entailed some sort of a fee.  As always, I'd want to be able to see exactly what is becoming of those fees and would expect the sidechain to be completely transparent in all ways and in this way in particular.  I would expect that if there was an excess which was not refunded to users it would be going toward support of the Bitcoin core.

I expect that one thing which will develop would be that organizations run their own sidechains.  In this case they can make an economic justification for subsidizing costs.  I probably would use these types of sidechains as well as needed, but here again I would even more strongly favor this class of sidechains based on their demonstrable support of the Bitcoin core (in it's original decentralized and non-controlled form.)  This would, in fact, be a big factor in my choosing to do business with them at all.

2)  I think sidechains for added benefits would be fine, but pruning and blocksize increases need implemented in bitcoin regardless.

Ya, well, don't hold your breath on that one.  Voice of experience based on years of waiting and seeing a giant nothingburger.  Maxwell did make an oblique reference to 'working on something better' probably at least a year ago.  Possibly that was sidechains and if so I'd strongly agree that it is a more promising avenue.  In the mean time the cost of bringing up a full node continues to build on the back of a giant pile of absurd and inconsequential garbage.

One fairly safe method which occurred to me would be a massively POW'd optimized re-base.  As in half the hashing power working on the best solution for at least a quarter, and maybe with the results inserted into the codebase.  This, however, was never part of the design of Bitcoin.  Maybe it will be on a sidechain.

hero member
Activity: 727
Merit: 500
Minimum Effort/Maximum effect
Can another testnet be created?

for example, create a subnetwork with different rules to the main network, splitting the network in two and exchanging the coins between the high TPS network and the original Low TPS network.

We exchange the the coins between the network using a signature hash from the wallet, marking that someone decided to turn the coin into a high TPS coin marking it for exchange to the new network.

This way only people interested in doing a lot of transactions can apply and there should be a way to transfer the coin back to a low TPS network. The people with lots of hard drive space can try out the new network and function as nodes.


This will create a new market and exchange, the hashes of the high TPS network can be integrated into the low TPS network as a single transaction, a high priority transaction that gets taken care of first before all other transactions to prevent the network from failing.

The new network will be a little less secure by probability but will be equally secure because it will use the same mining network but simply at a faster pace with a lower hash target.
legendary
Activity: 924
Merit: 1132
Okay, I've finally seen a proposal for side chains that I can at least consider serious. 

The side chain creates coins ex nihilo based on a transaction in the Bitcoin blockchain which locks up BTC in a txout that will not be released without a "proof of legitimacy" from a pegged side chain.  The Bitcoin scripting language is modified to accept a "proof of legitimacy" from a pegged side chain, responding to it by "unlocking" one or more of the "locked" txouts in the bitcoin blockchain, creating two new txouts: one controlled by the entity/key specified in the "proof of legitimacy" and a "change" txout which then becomes part of the "locked" set. 

The crucial missing element is the addition to Bitcoin's scripting language.  Without it, pegged side chains simply will not work.  This is the crucial bit that means secrets (keys) associated with individual main-chain txouts do not need to be transmitted through the side chain somehow.  And this is why a pegged side chain will not work at all with the current Bitcoin infrastructure.

The side chain destroys its BTC when a "transfer" transaction is recorded in its blockchain - the "transfer" transaction producing a proof of legitimacy (with a key) that can be used in an "unlock" transaction in the Bitcoin blockchain.   

The possibility of reorgs, both in the side chain and in the main bitcoin chain, undoing just one side of the transfer-out and transfer-in transactions, creates a lot of security issues and results in transfers (in either direction) taking a long time - essentially twice the time required for a coinbase payment to become spendable, in the best case.  In the worst case, this has to be seen as a whole new attack surface and seriously examined - several weeks to several months of full time analysis by a pro would be required. 

The side chains are assumed to be merge-mined with the main chain, which seems only sensible. 

But it seems that the side chains would have to operate without a mining subsidy (ie, miners live on transaction fees alone) in order for the current bitcoin-supply structure to be maintained. 

So the question becomes, is it worth it for miners to merge-mine one or more side chains just for the tx fees generated by the side chain?  On the one hand, it requires no more hashing infrastructure than they've got now, and the configuration could be truly automatic if it were built into the default client which they base their code on.   On the other, the bandwidth and storage required would be proportional to the number of transactions performed and the number of blocks from the side chain's "genesis block". 

One possibility for compensating miners would be to let them have any coins whose keys get lost by people in the side chain.  The obvious way to do this is to have the side chains be finite in duration -- a few months to a year or two -- and have all coins not transferred out of the chain by its final day distributed among the miners in proportion to the number of side chain blocks they got for the full duration of the side chain.  As additional benefits, when a side chain comes to an end, the storage required (and bandwidth required for setting up a full node) is "pruned" from the history of all Bitcoin transactions, and Bitcoin itself would become less deflationary as coins are less likely to be permanently lost. 

Anyway, this seems possible, but it would need to function for a long-ish time on testnets and in altcoins before it became reasonable to do with Bitcoin itself. 

Do any of the proponents of side chains have a working testnet implementation?
sr. member
Activity: 353
Merit: 253
We talked some time ago about implementing a network of micro-payment channels, which is a way to leverage third parties to make trustless instant off-chain transactions between bitcoin users.
This is, imho, a good approach to carry on, together with the parallel increase of the block size limit.
The market will decide if it's better to have off-chain instant transactions or normal transactions...

Best regards,
ilpirata79

legendary
Activity: 1204
Merit: 1028
What happened with the latest LTC hardfork? didnt it contribute crashing the price?
hero member
Activity: 798
Merit: 1000
Move On !!!!!!
As much as a hard fork might suck for the commerces and end users I think it is necessary. Bitcoin development needs to speed up.
hero member
Activity: 807
Merit: 500
1) The idea of sidechains is that many millions of relatively low-importance transactions could, and usually would, be aggregated into one bitcoin transaction.  I might send one Bitcoin in one transaction to the sidechain peg of some sidechain dedicated to tipping.  I would then perform micro-transactions within the sidechain to my heart's content.  On the other side, a person being tipped would probably rarely bother to cash out into Bitcoin (or a different sidechain.)

This is not very different to what we have today with exchanges where huge amounts of trading happen 'off-chain'.  A difference is that with a decent implementation I don't have to trust the sidechain and I can verify to a reasonable degree that this is so (just like with Bitcoin proper.)  This is not at all the case with non-backed solutions and because of this they regularly steal and probably inflate the currency as well.  The user basically sees a display transmitted out of a black box...an hears all kinds of marketing about how honest to operator is of course.

Ultimately all this does to Bitcoin is to make it seem like there are mostly large players doing important and high value transactions (and thus capable of paying generous transaction fees) where in reality a universe of people are reaping the rewards promised of a solution such as Bitcoin.  This is no loss at all to Bitcoin and I think it is a giant benefit because trying to service the world's exchange economies cannot help but balloon the system to something which doesn't really resemble the original almost at all.  Not only that, but a 'batch mode' system like Bitcoin is inherently disadvantaged for real-time operations as are most burger sales.  Sure there are bandaids but they are kind of ugly in my opinion, and ultimately result in provoking the same non-trustless system constructs that we see in the current crop of non-backed off-chain providers.

2)  Yes, 1 billion transactions is 1 billion transactions.  The point is that there would be many many sidechains which I don't give two shits about.  If I am acting as an infrastructure provider (by running a node or whatever) most of them don't effect me.  I support the chains that I need and care about, and those which have not grown to a point that is uncomfortable for me.  I'll be more than happy to support the Bitcoin core as well if I can.  That's why I'm so keen to avoid having it bloat to the point where doing so is no longer realistic.
Edit:  And because of the peg I don't have to worry about throwing money down a rat-hole when I choose what sidechains I like.  If it fails I can get my money back (again, if properly implemented and I do my due diligence correctly.)  That is one of the biggest reason I've not messed around with alts which, in principle, I've never had anything against even if they do draw interest/value away from Bitcoin.  Sidechains give the benefits I like in well implemented alts without those two disadvantages.

3)  Not sure what you are getting at with 'gift card' but in most mainstream implementations they are highly centralized...as are most mainstream things generally.  Some sidechains might (and probably would) work on a sort of a token model.  Those could be considered micro-gift cards of sorts, though simply one's footprint in the sidechain would also.
1) While I still don't see how this can work as great as you think it can (even if there were a trustless way to do it) unless all of the sidechains are cooperating and you can transfer directly between them, I'm also operating under the assumption that miners/processors in sidechains have income from fees as well.  Ultimately, for bitcoin to get the same fees it would get otherwise, users would have to pay more to use sidechains so that the entities running the sidechains can make their money, too.  Quite frankly, sidechains for transfer of value just don't seem likely to have benefits that outweigh their costs, but that is IMO.

2)  I think sidechains for added benefits would be fine, but pruning and blocksize increases need implemented in bitcoin regardless.

3)  I'm not sure what you're getting at in wanting sidechains instead of bitcoin or cash, so I'm shooting in the dark.  Regardless, 0 confirm transactions are not a concern for small transactions, and waiting for confirmation is not a concern for large transactions, so I'm not sure what benefit you are looking for in sidechains (assuming pruning is implemented in bitcoin to address your [2]).

All of that having been said, I don't feel like we're arguing, but I don't feel like we're making headway in understanding each other, either, and I have no problem with this conversation dropping.

Actually, that's about the price he is currently paying due to credit card fees, it's just hidden so he doesn't know he's paying it.

Most of my BTC spendings do receive discounts.
Well, good, and true in the online world, but I'm talking about stopping by a gas station.  Some of them do give discounts for buying with cash, but the majority do not, and for established retailers that do not give a discount for cash, it seems unrealistic to expect a discount for bitcoin, especially if they are paying a processor, even if that processor costs far less than the credit card processor they use.
legendary
Activity: 3878
Merit: 1193
Actually, that's about the price he is currently paying due to credit card fees, it's just hidden so he doesn't know he's paying it.

Most of my BTC spendings do receive discounts.
legendary
Activity: 4760
Merit: 1283
Lastly (and back closer to topic), I would point out that to Bitcoin a sidechain should look much like any old user.  It is no more 'storing Bitcoin information outside of the Bitcoin blockchain' than it would be keeping one's private keys private.  To the extent that it is, that is a good thing in my mind.  There is utterly no need to document your purchase of a hamburger in a persistent (forever) way which is replicated on multiple copies of the blockchain and distributed around the world.  Cool as it may be, it costs money and limits flexibility.  It is also something of a privacy issue to be honest.
I think a gift card is a good solution to this.  I also think that using a theoretical (not yet possible based on all I've read in this thread) sidechain would ultimately use just as much data overhead to send the Bitcoin to the same places unless you actually bought hamburgers in two separate instances at the same establishment before said establishment converted back to Bitcoin.  The only way around that issue is to give someone or something else control of your Bitcoin private key.  We've already discussed the possibility of a trustless system that could resolve that, but even then, it would effectively be a mixer, and potentially regulated accordingly.
ETA: Also, the trustless system presumably has less hashpower, so is less secure.  Moreover, cash would be another good way to work around the hamburger issue, and ATMs are even popping up to deal with this, but I'm assuming you want a sidechain that is effectively denominated in BTC either because you don't want to carry cash, which may allow for the gift card option, or you are imaging a future where fiat isn't a thing, in which case a gift card could be denominated in BTC.

1) The idea of sidechains is that many millions of relatively low-importance transactions could, and usually would, be aggregated into one bitcoin transaction.  I might send one Bitcoin in one transaction to the sidechain peg of some sidechain dedicated to tipping.  I would then perform micro-transactions within the sidechain to my heart's content.  On the other side, a person being tipped would probably rarely bother to cash out into Bitcoin (or a different sidechain.)

This is not very different to what we have today with exchanges where huge amounts of trading happen 'off-chain'.  A difference is that with a decent implementation I don't have to trust the sidechain and I can verify to a reasonable degree that this is so (just like with Bitcoin proper.)  This is not at all the case with non-backed solutions and because of this they regularly steal and probably inflate the currency as well.  The user basically sees a display transmitted out of a black box...an hears all kinds of marketing about how honest to operator is of course.

Ultimately all this does to Bitcoin is to make it seem like there are mostly large players doing important and high value transactions (and thus capable of paying generous transaction fees) where in reality a universe of people are reaping the rewards promised of a solution such as Bitcoin.  This is no loss at all to Bitcoin and I think it is a giant benefit because trying to service the world's exchange economies cannot help but balloon the system to something which doesn't really resemble the original almost at all.  Not only that, but a 'batch mode' system like Bitcoin is inherently disadvantaged for real-time operations as are most burger sales.  Sure there are bandaids but they are kind of ugly in my opinion, and ultimately result in provoking the same non-trustless system constructs that we see in the current crop of non-backed off-chain providers.

2)  Yes, 1 billion transactions is 1 billion transactions.  The point is that there would be many many sidechains which I don't give two shits about.  If I am acting as an infrastructure provider (by running a node or whatever) most of them don't effect me.  I support the chains that I need and care about, and those which have not grown to a point that is uncomfortable for me.  I'll be more than happy to support the Bitcoin core as well if I can.  That's why I'm so keen to avoid having it bloat to the point where doing so is no longer realistic.
Edit:  And because of the peg I don't have to worry about throwing money down a rat-hole when I choose what sidechains I like.  If it fails I can get my money back (again, if properly implemented and I do my due diligence correctly.)  That is one of the biggest reason I've not messed around with alts which, in principle, I've never had anything against even if they do draw interest/value away from Bitcoin.  Sidechains give the benefits I like in well implemented alts without those two disadvantages.

3)  Not sure what you are getting at with 'gift card' but in most mainstream implementations they are highly centralized...as are most mainstream things generally.  Some sidechains might (and probably would) work on a sort of a token model.  Those could be considered micro-gift cards of sorts, though simply one's footprint in the sidechain would also.

sr. member
Activity: 504
Merit: 250
Earn with impressio.io
The lead dev works exclusively for big business.

Please stop trolling. I think what I think and do what I do because I want the Bitcoin Project to be even more wildly successful.

If I was motivated by greed I would have a much higher salary. And lots of stock options.

The majority of Bitcoin users here want transaction fees less than a penny; I want them to be as low as practical. The only way to get there is to increase the block size.



I'm not trolling that's what I really believe. You are being paid by an organization that has proven its not responsive to the people and it makes really bad decisions.

I don't think your motivated by greed I think your controlled by business.

Increasing the block size allows an increase in the number of transactions. Do you disagree that this favors increased business adoption? Aren't you the one that continuously calls Bitcoin expermental and advises people to only invest what they can afford to lose? How will increasing adoption favor a system in Beta that shouldn't be trusted?

This is absolutely ridiculous, your logic is that making bitcoin more widely available for business in general is a bad thing? Supporting more transactions is a bad thing? A growing community is a bad thing? Having bitcoin successful is a bad thing?

As long as the protocol maintains it's decentralization no external businesses can influence the protocol in any bad way. Read up how all this works and then get back and reply.

In general, I agree with you.  Business investment is usually good for growth, which increases the likelihood of success.  But, you do challenge me to ask how it could develop counter to original principles if businesses dominate bitcoin.  One possibility is that anonymity can be removed through transaction association.  This would require X percent of transactions to go through entities that identify their customers.  Add to this regulatory collection and aggregation of data, and global sharing, something that is pervasive in the financial industry despite our civil rights putting up many decaying barriers in the communications industry, and the probability is difficult to dismiss. 

We're already seeing this phenomenon in one decentralized protocol - internet surfing, where site plugins constantly identify and market to us behind the scenes.  In the 90s, there were proposals to require identification on the Internet.  The regulations turned out to be unneeded, as online marketing naturally grew to fill that gap. 


 
sr. member
Activity: 420
Merit: 250
Ever wanted to run your own casino? PM me for info

High transaction fees:


7 tps limit:

5 bitcoins (transaction reward) / 4200 (tranactions per block) = 0.001190 transaction fee. Way too high for the consumer paying his hamburger at a restaurant.

Actually, that's about the price he is currently paying due to credit card fees, it's just hidden so he doesn't know he's paying it.
That works out to ~$0.41 per transaction, credit card transactions tend to start at ~$.27 due to minimum "TX" fees for credit card payments. As the amount being transacted increases with a credit card, the fee will increase in proportion to the dollar value of the transaction, this is not the case for bitcoin
Pages:
Jump to: