btc1 / bitcoin

btc1 project bitcoin implementation
MIT License
329 stars 55 forks source link

Conflict of interest setting discount for SegWit #92

Closed btcdiscounted closed 7 years ago

btcdiscounted commented 7 years ago

Given that SegWit seems to be going into Bitcoin, I would like to know how the conflict of interest in setting the discount for witness data is going to be handled. It seems that the only real way to solve it would be to have government regulators decide the discount, which would be against Bitcoin's ethos.

The discount alters the type of transactions miners are economically incentivized to include in the next block. By changing the discount one can effectively exercise economic policy over the Bitcoin network. If that is not enough, it seems the developers are the ones in charge at the moment of deciding the amount of the discount, but these same developers work for companies that benefit from having a certain discount. For example, @jgarzik , leader of the implementation most miners run, has a side chain company that benefits if witness heavy transactions are cheaper. This is not a personal attack on @jgarzik , but even if one believes he is perfectly honest in his intentions, the problem remains that the conflict of interests should not exist. The same applies to other developers, for example from Blockstream, which also benefit if witness heavy transactions are cheaper.

And even if someone believes that Bitcoin can get away with having such conflict of interest, apart from having dubious morals, there is the problem that having the discount opens a door for regulators to start gaining power in Bitcoin. It's very hard to justify to the population (mainly because they have a point) that some individuals working for some private companies are going to decide parameters that have a strong influence on transactions prices, specially when those private companies have an interest in a certain direction. It's very easy to make the case then that Bitcoin needs regulatory oversight. Once regulators are making economic policy by forcing miners to run a tweaked parameter, it's very easy to sell the need to increase the control.

It would also be hard to sell to new users why they should change from a currency where economic policy is made by policy makers, to another currency where economic policy is made by private companies.

The origin of the problem is the discount is a point of centralization and goes against Bitcoin's ethos. The discount is an economic parameter, as it affects prices. It is not purely an engineering parameter, like network latencies for example, but is mainly an economic parameter. By allowing developers to centrally set economic parameters you are creating a conflict of interest and opening the door for regulatory intervention in Bitcoin.

I understand some people will say "just run another client with a different discount", but that is a very weak excuse, as not accepting blocks with the consensus discount would mean forking away. Even if the answer is to say tthe majority has decided the to run with the discount, that answer is equivalent to saying: "vote a different president to get a different Federal Reserve chairman". This situation is something Bitcoin wanted to avoid, not recreate.

The obvious solution would be to make the weight neutral again, and work to remove other centralized economic parameters in bitcoin and replace them with an algorithm that does not require developers or regulators intervention.

ptschip commented 7 years ago

On 19/07/2017 8:21 AM, btcdiscounted wrote:

The obvious solution would be to make the weight neutral again

This makes perfect sense. Giving a discount for off chain txns is nothing more than a marketplace distortion. It's analogous to some sort of goverenment subsidy or tax break for certain companies; in the end it amounts to someone or group deciding which businesses win and which lose rather than letting the free market prevail...

christophebiocca commented 7 years ago

There's been some discussion in the mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-segwit2x/2017-June/000063.html

In practice the weight discount only has a measurable impact if blocks are at their limit. If the limit is above demand, then miners can price tx however they want, and orphaning risk (which has been argued to be the driver of fee-level) is proportional to total tx transmission size, with no discounting whatsoever.

betawaffle commented 7 years ago

Wow, let me try to dispute as much of this as I can.

I would like to know how the conflict of interest in setting the discount for witness data is going to be handled. It seems that the only real way to solve it would be to have government regulators decide the discount, which would be against Bitcoin's ethos.

The only people deciding anything are those running full nodes. All the core developers can do is make recommendations (so far based on actual research) and implement those recommendations. They can't and don't force anything on the network, the network decides.

By changing the discount one can effectively exercise economic policy over the Bitcoin network.

That's no more of an effective argument than if I said changing the block reward one can effectively exercise economic policy over the Bitcoin network. The trick is you'd need to get everyone to adopt such a change.

... the problem remains that the conflict of interests should not exist.

If we take the step of assuming such a conflict does exist, it still doesn't enable any of the developers to foist upon the network a change the network doesn't agree with.

Once regulators are making economic policy by forcing miners to run a tweaked parameter ...

Forcing miners to run a tweaked parameter (if it was even possible) wouldn't cause any of the things you're claiming. Miners can't force anything on the network more than anyone else, there always has to be agreement.

Pheromon commented 7 years ago

The only people deciding anything are those running full nodes. All the core developers can do is make recommendations (so far based on actual research) and implement those recommendations. They can't and don't force anything on the network, the network decides.

So you agree that there should be no discount: if a miner want to tweak its settings, it will do it, no need for central planners to let some bytes count more (or less) than others.

1 byte is 1 byte.

mjamin commented 7 years ago

The discount is a way of increasing the blocksize without a hard fork.

In a hard fork scenario, if you don't upgrade you are shit out of luck.

In the SegWit soft fork scenario, if you don't upgrade you maybe have to pay a slightly higher fee than upgraded nodes do in some circumstances.

Why is the latter worse than the former?

betawaffle commented 7 years ago

So you agree that there should be no discount: if a miner want to tweak its settings, it will do it, no need for central planners to let some bytes count more (or less) than others.

That's not possible without changing the consensus rules. They would have to convince the entire community to do so.

Pheromon commented 7 years ago

That's not possible without changing the consensus rules. They would have to convince the entire community to do so.

fee discount for witness is not a consensus rule: every miner can decide the fees that he wants to include the tx on his block.

Pheromon commented 7 years ago

The discount is a way of increasing the blocksize without a hard fork.

I know, but segwit2x is an hard fork.

And, btw, if you want to make it successfull the block increase must be done together with segwit activation, otherwise all the miners that now are false signaling bit 4 only to activate segwit will not follow the hard fork.

betawaffle commented 7 years ago

fee discount for witness is not a consensus rule: every miner can decide the fees that he wants to include the tx on his block.

Yes, miners can decide that, but they can't change the weight of transactions. If they choose to not include a transaction, they are giving up fees. They are allowed to do this, but it wouldn't be very rational.

kek-coin commented 7 years ago

This has been discussed before and iirc the conclusion was "out of scope". @jgarzik correct me if I'm wrong.

jgarzik commented 7 years ago

I'm very sympathetic as this remains controversial; it's worth addressing in a blog post at a minimum, as it wraps together total block size, block weight, and related details into one package.

Feel free to continue the discussion here - closing the issue as it's not something we will likely address.

mpatc commented 7 years ago

I for one think the block weight should be neutral. I've tried to find a reason why the 75% number is there, and it seems to be arbitrary. Why not 80% discount? Or 70%. There is no mathematical reason I see 75% was chosen.

For this reason, I think the discount (if any) should at least be dynamic. Or simply neutral.

In the long term, pruning solutions seems a much better strategy than the convoluted, arbitrary witness discount.

On Jul 19, 2017 10:15 PM, "Jeff Garzik" notifications@github.com wrote:

I'm very sympathetic as this remains controversial; it's worth addressing in a blog post at a minimum, as it wraps together total block size, block weight, and related details into one package.

Feel free to continue the discussion here - closing the issue as it's not something we will likely address.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/btc1/bitcoin/issues/92#issuecomment-316576501, or mute the thread https://github.com/notifications/unsubscribe-auth/APNcvgDYDc4BB6PO_d2O1y0_L-5Wqh6wks5sPrhAgaJpZM4Oc5Fn .

mjamin commented 7 years ago

@Pheromon:

And, btw, if you want to make it successfull the block increase must be done together with segwit activation, otherwise all the miners that now are false signaling bit 4 only to activate segwit will not follow the hard fork.

In other words you want to block SegWit deployment in order to use it as a bargaining tool to get what you want, despite the fact the the network as a whole obviously doesn't want it in the form you propose.

Why do you think that's OK?

JaredR26 commented 7 years ago

despite the fact the the network as a whole obviously doesn't want it in the form you propose.

Pot, meet kettle.

Pheromon commented 7 years ago

@mjamin it seems like you're good at getting things backward. There is a strong consensus to have both segwit and a block size increase. I argue that the plan to have them in separate activation time gives the small minority a tool to enable the former and block the latter. History will tell.

drunkenclam commented 7 years ago

I for one think the block weight should be neutral. I've tried to find a reason why the 75% number is there, and it seems to be arbitrary. Why not 80% discount? Or 70%. There is no mathematical reason I see 75% was chosen.

It's not arbitrary. If you had tried googling for a few seconds, you would have found something like this.

mjamin commented 7 years ago

@JaredR26

Pot, meet kettle.

What makes you think I'm being hypocritical? Essentially everybody is in favour of SegWit. What SegWit2x tries to do is bundle something everybody wants (or can accept) with something only a presumably tiny subsection of the ecosystem wants. If you dive into the question of why they want it the way they want it, it's usually answered with nothing more than "because".

If you want to hard fork, then simply create a client that hard forks and see how much support you get. Don't use SegWit as a carrot on a stick.

@Pheromon

it seems like you're good at getting things backward.

It might look that way from your perspective.

Pheromon commented 7 years ago

@mjamin

Essentially everybody is in favour of SegWit

If this would be the case, we would have segwit since a long time, don't you agree?

It might look that way from your perspective.

See above: my perspective is grounded on reality. And reality show that segwit is a contentious feature since it changes radically the Bitcoin security: the chain of signatures that defines a bitcoin is no more.

So, there are people that want to continue to use Bitcoin as designed by Satoshi (with its transactions and big blocks), and people that want to use a different security model to move transactions offchain (thus taking away incentives from miners and giving them to LN node operators).

Segwit2X is trying to have both in Bitcoin without forking it in two different coins: the original, and the altcoin with segwit and artificial limitations on block size.

mjamin commented 7 years ago

And reality show that segwit is a contentious feature since it changes radically the Bitcoin security: the chain of signatures that defines a bitcoin is no more.

It's not contentious by any meaningful measure. a) https://en.bitcoin.it/wiki/Segwit_support and b) in the past 24 hours, 80% of the hashrate signalled for it via BIP91.

So, there are people that want to continue to use Bitcoin as designed by Satoshi

Satoshi himself had the core idea behind the Lightning Network: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-April/002417.html

So the Lightning Network is undeniably part of "Satoshi's vision" (something that big blockers like to invoke as a killer argument).

Segwit2X is trying to have both in Bitcoin without forking it in two different coins: the original, and the altcoin with segwit and artificial limitations on block size.

SegWit2x is an attempt to save face and a setup to play the victim in 3 months to keep the anti core narrative going.

btcdiscounted commented 7 years ago

Answering to @betawaffle

The only people deciding anything are those running full nodes. All the core developers can do is make recommendations (so far based on actual research) and implement those recommendations. They can't and don't force anything on the network, the network decides.

This is a coup out. By parts:

  1. The parameter has been decided by Core developers and accepted by miners and bitcoin big business. Anyone else has had no saying and the only option if they disagreed is to leave Bitcoin. That is the reality, saying anything else is lying.

Going forward, the parameter will be changed based on the interests of a few people, developers, miners and maybe big bitcoin business.That is bad design.

Also, non mining full nodes is a sybill-able count and has no value. I don't understand the fetishism for non-mining full nodes that some people have when its a meaningless statistic.

And if you think this coup out is going to work once regulators come in, you are deluded. Once you have a few private business deciding economic parameters in Bitcoin, regulators are going to claim public interests and start to regulate it. Nobody will protest because Bitcoin will still work and the only solution you'll have if you don't want to follow the regulators is fork off with your meaningless non-mining full node. But this excuse of "it was the community who accepted it" is going to be laughed at (and rightly so), because it is obvious that a few private companies with direct interests are setting the parameter.

  1. There is no valid science behind the value of 4 for the discount. The only thing that has been pointed out is this link https://segwit.org/why-a-discount-factor-of-4-why-not-2-or-8-bbcebe91721e . That is a piece of propaganda. I understand the need for propaganda, but, to the person who posted that link, please don't bring propaganda to a proper discussion if you don't want to be taken for a fool.

The reality is the discount is supposed to translate to the transaction price the cost of the utxo vs the cost of the witness data. That is its economic role in the model. Taking only this into consideration, there is no justifiable reason as to why it should be 4 and not 3.5 or 4.5 or any other number. Its completely made up. Too big because some statistical model of past transactions said it, is not a valid reason. Which takes me to the obvious problem.

The obvious problem is the believe that has been harbored by more and more Bitcoin developers that economic parameters can be modeled. They can not, central planning does not work. And if someone believe they can, they should go try reform the Federal Reserve, instead of being involved in Bitcoin. Tell congress how your amazing engineering model can find the correct interest rates for the nation. But trying to introduce economic parameter under the assumption that you can model the economic needs of the future and come up with a right number is anti-Bitcoin.

Introducing the discount was lazy developing. What should have happened is that an algorithm based on crypto and economic incentives should have governed the trade off between the utxo cost and the witness cost. But lazy developers instead introduced a centralization point by introducing a new economic parameter (same developers that claim to worry so much about centralization btw). If you think there is no need for this algorithm and central economic parameters are ok in bitcoin, why not get rid of the fee market, set up a minimum fee updated regularly by the models of developers and accept transactions as first comes first goes? The reason is we know the economic needs of the future are unknown and changing, so a market with correctly aligned incentives produces the best results while at the same time avoiding politics.

It is not random that the backdoor meetings between key players of the Bitcoin ecosystem has started once economic parameters came into play. Governing these economic parameters gives power in the Bitcoin network. This politicking is only going to intensify as long as we have economic parameters decided in a central way in Bitcoin. Eventually, the regulators will take over them. It is sad to see because Bitcoin was supposed to be an open system where everybody was the same because the network was governed by a set of algorithms with the right economic incentives. Not anymore apparently.

By changing the discount one can effectively exercise economic policy over the Bitcoin network.

That's no more of an effective argument than if I said changing the block reward one can effectively exercise economic policy over the Bitcoin network. The trick is you'd need to get everyone to adopt such a change.

The block reward is a constant. Any constant would be acceptable. Instead of starting at 50, it could have started at 500, 1, a billion or 0.000001. There would have been no difference to the bitcoin economic model. The discount regulates the cost between utxo and witness data. A different value has direct economic consequences.

I fail to see how they are remotely similar. This is very basic.

Forcing miners to run a tweaked parameter (if it was even possible) wouldn't cause any of the things you're claiming. Miners can't force anything on the network more than anyone else, there always has to be agreement.

But they do. If regulators come in and claim for the public good that they are going to decide these economic parameters that are being introduced in Bitcoin, people are not going to rebel because the system will keep working very similarly. At least most users wont rebel as long as things keep working more or less similarly. You can fork off with your meaningless non-mining full node if you want out of principle and be happy, but the majority of the network will accept the regulators directives.

christophebiocca commented 7 years ago

For what it's worth, increasing the witness weight from 0.25 to 0.5 or 1 (or 2 :P) merely requires a soft-fork.

So it doesn't have to be addressed at hard-fork time unless there's a desire to set an even higher base-block-size (which is probably out of scope).

betawaffle commented 7 years ago

The parameter has been decided by Core developers and accepted by miners and bitcoin big business. Anyone else has had no saying and the only option if they disagreed is to leave Bitcoin. That is the reality, saying anything else is lying.

If you believe that, then Bitcoin has already failed at its goals. I don't, but if it's true, Bitcoin was a failure.

Also, non mining full nodes is a sybill-able count and has no value. I don't understand the fetishism for non-mining full nodes that some people have when it's a meaningless statistic.

The number of full nodes don't matter. What matters is who's using them. A full node is the only way you can guarantee you're actually receiving Bitcoin that conforms to rules you agree with. If you don't run a full node, you're doing little more than trusting the sender. Without a full node, Bitcoin isn't trustless.

Once you have a few private business deciding economic parameters in Bitcoin ...

That's why we mustn't capitulate to them. What are you even suggesting?

There is no valid science behind the value of 4 for the discount.

There are many reasons it was chosen. Let me see if I can give an overview of some of them:

But trying to introduce economic parameter under the assumption that you can model the economic needs of the future and come up with a right number is anti-Bitcoin.

Bitcoin has always had decisions baked in that affect the economics of it. What makes you think the original choices are any better than future ones? Satoshi himself made many such changes as more information became available. Everyone involved in this research space has more information now on the behavior of the system.

What should have happened is that an algorithm based on crypto and economic incentives should have governed the trade off between the utxo cost and the witness cost.

That is exactly what they did. What makes you think otherwise?

Why not get rid of the fee market?

Nobody can just decide there is to be no market. Markets create themselves.

It is not random that the backdoor meetings between key players of the Bitcoin ecosystem has started once economic parameters came into play. Governing these economic parameters gives power in the Bitcoin network.

Again, what makes you think everyone will accept economic parameters they don't agree with? It's as if you really don't understand how Bitcoin protects itself from such things. If everyone gives up on trustlessness, of course you'll be at the whim of whoever you put your trust in (ie. companies or the government).

You seem to want one thing (the same things I want), then argue against the way we can get there.

It is sad to see because Bitcoin was supposed to be an open system where everybody was the same because the network was governed by a set of algorithms with the right economic incentives. Not anymore apparently.

It only ever works that way if we run truly validating nodes and don't let people walk all over us.

... governed by a set of algorithms with the right economic incentives.

Those algorithms and incentives are what a Bitcoin node does. You can't have them without one.

The block reward is a constant. Any constant would be acceptable. Instead of starting at 50, it could have started at 500, 1, a billion or 0.000001.

If you tried to change the block reward (and got away with it) that would have a huge economic impact.

The discount regulates the cost between utxo and witness data.

The point of the change is to correct the incentives to make running nodes less costly. As I said before, everyone who can't run a full node is missing out on the benefits of Bitcoin, and is at the mercy of everyone else's decisions.

If regulators come in and claim for the public good that they are going to decide these economic parameters that are being introduced in Bitcoin, people are not going to rebel because the system will keep working very similarly. At least most users won't rebel as long as things keep working more or less similarly. You can fork off with your meaningless non-mining full node if you want out of principle and be happy, but the majority of the network will accept the regulator's directives.

What do you think is preventing regulators from doing so right now (pre-segwit)? What are you suggesting we do to prevent it without running full nodes?

Pheromon commented 7 years ago

@mjamin

It's not contentious by any meaningful measure.

So, explain me why it has not even reached 40% of miner support before the segwit2x proposal :-)

in the past 24 hours, 80% of the hashrate signalled for it via BIP91.

Yes, and you should know that BIP91 has been made expressly because 80% is the hashrate required by the segwit2x initiative. Otherwise segwit would be enabled on bit1 client but not on core!

Satoshi himself had the core idea behind the Lightning Network: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-April/002417.html

The LN network is very cool and I hope it can come to reality. I, like many other so called "big blockers" am not against the LN (quite the contrary), I'm against an artifcial limit on the block size, that is kept in place only to force users to use the LN because unable to use onchain transactions.

LN has to compete with onchain transactions with its own merits, not because some central authority decided that only a very small percentage of all users can transact onchain, even if technically possible.

So the Lightning Network is undeniably part of "Satoshi's vision" (something that big blockers like to invoke as a killer argument).

I hope this clears the things a bit for you.

betawaffle commented 7 years ago

... that is kept in place only to force users to use the LN because unable to use on-chain transactions.

Bigger blocks force users out of the ability to run full nodes, which is the only thing protecting them from outside control.

Pheromon commented 7 years ago

Bigger blocks force users out of the ability to run full nodes, which is the only thing protecting them from outside control.

That's completely false, and your sentence has no meaning without specifying how big the blocks. Are you suggesting that with 1MB blocks I can run a node, and with 1.1MB blocks I'm suddendly unable to?

Technology evolves and the cost of running a node which processes bigger and bigger blocks in time is decreasing each year.

Just think that right now I can run a full node on a raspberry that costs like the fees of a few bitcoin transactions...

Full nodes are useful for most of business but not for normal (non power) users, and every kind of business (and power users) can have a pc costing a few hundreds dollars to run it.

christophebiocca commented 7 years ago

Bigger blocks force users out of the ability to run full nodes, which is the only thing protecting them from outside control.

Outside control is trivial through soft-forks, including soft-forks that completely rewrite the near-entirety of bitcoin's rules. I can give you examples if you're interested.

The only rules not subject to change through soft-forks are rules that affect data in the headers (usually, there are exceptions even then), but such rules are also checked by SPV clients.

betawaffle commented 7 years ago

Are you suggesting that with 1MB blocks I can run a node, and with 1.1MB blocks I'm suddenly unable to?

We have already excluded people with 1MB blocks. It's a sliding scale, the larger the blocks, the more people won't be able to afford running a node. We are already going to lose people with the increase that segwit brings.

betawaffle commented 7 years ago

Outside control is trivial through soft-forks, including soft-forks that completely rewrite the entirety of bitcoin's rules. I can give you examples if you're interested.

Please do.

mpatc commented 7 years ago

Dear Andrew Hodges:

I am confused, I hope you can clarify. You said:

There are many reasons it was chosen. Let me see if I can give an overview of some [...]

None of the reasons you give for the discount equal 4. You give some great reasons for a discount in general, but none that I can see for using a value of 4.

Why not 3 or 5.6 or any other number?

Thanks! Apologies for formatting, I'm on mobile.

betawaffle commented 7 years ago

None of the reasons you give for the discount equal 4. You give some great reasons for a discount in general, but none that I can see for using a value of 4.

Ahh, sorry.

It was the best they could do without decreasing the apparent "legacy" block size without also making segwit blocks too big. They determined that 4MB was the most they could responsibly implement, and the discount was as high as they could make it fitting those parameters. They wanted a higher discount, but it would have meant a larger real block size.

christophebiocca commented 7 years ago

Sure, here's a few

Empty chain

A block is invalid if:

Net effect: Bitcoins can never be earned nor sent.

Inner merkle-tree (AKA the no-op forced upgrade).

In addition to the above rules, the coinbase tx must include a commitment to a new merkle tree that obeys the usual bitcoin rules. People who had regular bitcoin have the ability to use it in this inner block.

Net effect: People must upgrade their software to earn or spend Bitcoin.

Communist revolution

Same as no-op except the starting inner UTXO is altered such that each address now has the same amount of coins.

Permaflation

Same as no-op except the reward halving rule is removed.

Demurrage

This one doesn't require an inner-ledger trick:

All tx must include a miner fee of 1% of their value for each year since the output was created.

Inner header (AKA hard fork as a soft fork)

Instead of a merkle tree commitment, require the hash of a new type of header.

Semi-federated sidechain

The inner-header must include a valid signature of a set of pre-ordained keys.

Additional proof-of-work

The inner-header must have valid proof of work using SHA3, which has a target time of 5.5 blocks/hour.

These two are actually less interesting because they cannot obviate the need for proof of work fully, due to the requirement of maintaining the longest chain (and orphaning any minority chain).

Then there's much more hacky techniques that change even block interval. That one's particularly interesting because it requires no cooperation from anyone but the mining majority while changing a rule that literally everyone is supposed to check.

betawaffle commented 7 years ago

@christophebiocca At least some of those aren't very realistic. Also, even soft forks can't happen unless people actually run them.

Pheromon commented 7 years ago

@christophebiocca great list

Only, I fail to see how "communist revolution" and "permaflation" are soft forks: blocks generated with those rules would be rejected by older (non-upgraded) clients.

christophebiocca commented 7 years ago

At least some of those aren't very realistic.

I went for comedy. These are all 100% doable, but no sane miner would do them. That doesn't mean that the reason they can't happen is people running full nodes.

Also, even soft forks can't happen unless people actually run them.

If by people you mean miners yes. If by people you mean non-mining full-nodes then no.

I fail to see how "communist revolution" and "permaflation" are soft forks: blocks generated with those rules would be rejected by older (non-upgraded) clients.

Because the older clients (and any minority miners) don't see the inner ledger at all, and therefore can't enforce any rules in it.

This is similar to how segwit works around the blocksize limit by creating a new commitment to new data that lives outside the data structure validated by older clients. Old clients don't stop it because it's invisible to them. New clients, of course, can be arbitrarily different.

From the perspective of old clients and miners, none of their tx ever confirm, and all of their blocks get orphaned.

betawaffle commented 7 years ago

I went for comedy.

Glad to see you have a sense of humor, but if you hadn't said that people might have believed these as something miners could do without risk.

christophebiocca commented 7 years ago

But can we agree that "people running full nodes" is not what prevents all of these forms of miner-imposed new rules from happening?

betawaffle commented 7 years ago

But can we agree that "people running full nodes" is not what prevents all of these forms of miner-imposed new rules from happening?

Yes, but only to a point. If 90% of nodes don't enforce new miner rules, the miners who defect can earn more money. And obviously if miners did something like "empty chain" there would be an enormous incentive to defect.

betawaffle commented 7 years ago

Other miner-created soft forks that don't cause consensus issues are fine, btw. If they find a way to make additional money, they are welcome to do it.

christophebiocca commented 7 years ago

If 90% of nodes don't enforce new miner rules, the miners who defect can earn more money.

Miners who defect would be orphaned. They would earn nothing.

betawaffle commented 7 years ago

Miners who defect would be orphaned. They would earn nothing.

It really depends on the situation. If 50% of miners are truly colluding in that way, we've already got a problem. Of course it would cause turmoil, but all miners vs all users never works out well for anyone.

christophebiocca commented 7 years ago

If 50% of miners are truly colluding in that way, we've already got a problem.

Yup, but if 50% of miners are not colluding in that way, then SPV is safe from outside control. Which is why your original assertion:

run full nodes, which is the only thing protecting them from outside control.

Is incorrect.

What a full node has that an SPV node doesn't have, is protection against tx inside fraudulent blocks. This is nice but if someone's making destined-to-be-orphaned blocks to defraud you that's a big chunk of change they're spending.

betawaffle commented 7 years ago

Correct. SPV provides more security than nothing at all, but it doesn't protect you from unwanted rule changes.

christophebiocca commented 7 years ago

but it doesn't protect you from unwanted rule changes.

Neither does a full node? We just went over this a minute ago.

mjamin commented 7 years ago

@Pheromon:

So, explain me why it has not even reached 40% of miner support before the segwit2x proposal :-)

You do realize that SegWit2x is the same SegWit as BIP141, just activated differently (lower threshold over a shorter lock-in period) and with an implementation of a hard fork proposal tacked on?

Everybody who supports SegWit2x, also supports -- by definition -- SegWit in general. Everybody who is willing to run SegWit2x but not SegWit as implemented by core is just trying to get a hard fork through by using SegWit as a bargaining tool.

Funny thing is that thanks to BIP91 it doesn't really matter. SegWit will activate and the suggested hard fork will simply not happen as people will continue to use core and the miners and businesses trying to push it will chicken out.

This will be my last reply here, so don't bother asking me further questions.

betawaffle commented 7 years ago

In aggregate it does, if the rules you want coincide with most other bitcoin users.

NiKiZe commented 7 years ago

@mjamin There is a big difference between "agree with" and "concede to" ~50% of those that runs Segwit2x only agrees on Segwit at all if there also is a blocksize increases (which is implemented and not only proposed)

There will be a fork since miners are already running the btc1 codebase which has the enforced 1MB+ blocksize enforcment. And even before the btc1 block enforcement kicks in there will be another one.

So as shown above - your claims are wrong.

Pheromon commented 7 years ago

Everybody who supports SegWit2x, also supports -- by definition -- SegWit in general.

Let me explain you the word "compromise". If I do not like segwit but if I want bigger blocks and I realize that this will not happen alone, I can concede to have it, if this will also raise the block size.

Everybody who is willing to run SegWit2x but not SegWit as implemented by core is just trying to get a hard fork through by using SegWit as a bargaining tool

That's exactly my point.

betawaffle commented 7 years ago

Except that this bargaining tool is non-binding :rofl:

Pheromon commented 7 years ago

Except that this bargaining tool is non-binding

I totally agree, and that's exactly why, in a previous message, I stated that the only way to make sure s2x successful is to bind the hardfork with segwit activation.

JaredR26 commented 7 years ago

@mjamin

What makes you think I'm being hypocritical? Essentially everybody is in favour of SegWit.

This part, right here. The raw facts of the issue, no matter what way you look at it, are that segwit never had the consensus for activation by itself. When core "declared consensus" on December 19th-23rd 2015, a lot of core devs either already had or soon thereafter quit over the issue. There were far more posts, commits, as well as more unique posters before the "consensus" than after. The situation was so bad that one month later 5 core devs met with miners, 72% of whom had signaled for classic at one point in time, to try to derail classic. That was the HK agreement 1.0. It specifically called for a +2mb base block hardfork, but afterwards I literally only found one dev referencing that on the email list, one time. No attempt to deliver on that part of the agreement was made, and every core dev who signed that agreement opposes segwit2x(Less Cory Fields who isn't active anymore). And no, segwit doesn't count as "the agreed block size increase," as the agreement was crystal clear - 2mb base block hardfork.

So what about since then, surely segwit had consensus, after all "essentially everybody is in favor of it" right? The only place you find that opinion is in a censored forum that bans people who don't like segwit. Strange thing that you would find that opinion in such a place...

The facts tell a different story. In a manually run poll(by humans, not online) Segwit only had 71% of people supporting it. In a poll of ~70 well known figures in the community, only 75% supported it, the highest of any metric anywhere. The highest percentage of miners that ever signaled for segwit before segwit2x was 35%. None of that reached the 80% or 95% desired for activation.

What about your claims of node and business support? Running a certain type of software is not the same as support, especially when that software is the only one available with a stable history and the others get DDOS'd frequently. Unless you think that "America supports Trump because they elected him" you need to drop that argument. Businesses too don't get any better - hence why coin.dance differentiated between being segwit "ready" and "supporting segwit." Among unweighted companies it was only 49% that supported it before segwit2x, and with weighting that dropped to currently 27%. Why do they have weighting you ask? Great question, why does luke-jr alone have 2 "companies" representing 3% of the UASF "vote" both of which are basically defunct projects that no one ever used? Why would "Yogh.io" be listed, a project that almost no one has ever heard of that hasn't had a code update in over a year?

Even more, before reddit started including non-logged in users in its counts, /r/btc had nearly 30% of the users online that /r/bitcoin had.

What SegWit2x tries to do is bundle something everybody wants (or can accept) with something only a presumably tiny subsection of the ecosystem wants.

There's substantial evidence that segwit-only never had consensus, and substantial evidence that segwit2x has that missing consensus. 98% of the miners are now signaling for segwit2x, and segwit2x has nearly double the weighted company support that segwit-only had. Your claims are based upon nothing but echo-chamber logic that bans competing logic.

If you dive into the question of why they want it the way they want it, it's usually answered with nothing more than "because".

Have you literally never bothered talking to someone who doesn't agree with you? Because that would explain a lot.

If you want to hard fork, then simply create a client that hard forks and see how much support you get. Don't use SegWit as a carrot on a stick.

The irony of this is that using the same logic, segwit would never activate. Segwit never had consensus, and was not going to get consensus without compromising with the people that they shoved out of the way when they declared they had consensus.

It's not contentious by any meaningful measure. a) https://en.bitcoin.it/wiki/Segwit_support

You do realize that recently a core dev pointed to that exact same link claiming the exact same thing, stating that "developers since 2011... support segwit." And despite that and your claims here, that page REMOVES DEVS WHO HAVEN'T COMMITTED SINCE SEGWIT GOT CONSENSUS BUT ADDS NON-CORE DEVS TO BOLSTER THEIR CLAIMS. It also has literally 5 shades of green for "support." How do you not see what is going on here?

b) in the past 24 hours, 80% of the hashrate signalled for it via BIP91.

Signaled for segwit2x you mean, the compromise that segwit needed to get activated. I can understand your confusion since core attempted to co-opt the meaning of bit-4 signaling (see Peter Todd's recent emails and "issues") and /r/bitcoin then tried to convince themselves that Bit91 predated the compromise (lol, see the first line of the bip91 email).

Sorry, you've been mislead tremendously. Maybe you should try reading in places that don't ban competing opinions, and, you know, actually discussing things with the people you are completely dismissing.

This will be my last reply here, so don't bother asking me further questions.

Or I guess you could just go back to the place where everyone who disagrees you has already been banned. Definitely will help you mentally resolve the facts I listed above!