LearnBitcoin

Bitcoin Dev Archive 2021

Trinary Version Signaling for softfork

7 messages, 27 to 30 Jun 2021. Started by Prayank.

Eric Voskuil (3), Prayank (2), Zac Greenwood (2)

Permalink Original thread on gnusha.org

Prayank permalink original

Hello Eric, I have few questions:

Quoted text (1 line)
> Without majority hash power support, activation simply means you are off on a chain split.

So majority hash power not following the consensus rules can result in chain split? Why would majority of miners decide to mine a chain that nobody wants to use? What are different things possible in this case based on game theory?

Quoted text (1 line)
> And activation without majority hash power certainly does not “ensure” this.

Do miners and mining pools participate in discussions before signaling for a soft fork begins? Can they still mine something else post activation even if signaling readiness for soft fork?

Quoted text (1 line)
> If one wants to enforce a soft fork (or otherwise censor) this is accomplished by mining (or paying others to do so). Anyone can mine, so everyone gets a say. Mining is trading capital now for more later. If enough people want to do that, they can enforce a soft fork. It’s time Bitcoiners stop thinking of miners as other people. Anyone can mine, and that’s your vote.

Who enforces consensus rules technically in Bitcoin? Full nodes or Miners?

Is soft fork signaling same as voting?

According to my understanding, miners follow the consensus rules enforced by full nodes and get (subsidy + fees) for their work. Signaling is not voting although lot of people consider it voting including some mining pools and exchanges.

Eric Voskuil in reply to Prayank permalink original

Hi Prayank,

Quoted text (1 line)
> So majority hash power not following the consensus rules can result in chain split?

Any two people on different rules implies a chain split. That’s presumably why rule changes are called forks. There is no actual concept of “the rules” just one set of rules or another.

Quoted text (1 line)
> Why would majority of miners decide to mine a chain that nobody wants to use?

I don’t presume to know why people prefer one thing over another, or what people want to use, nor does economics.

Quoted text (1 line)
> What are different things possible in this case based on game theory?

I’ve seen no actual demonstration of the relevance of game theory to Bitcoin. People throw the words around quite a bit, but I can’t give you an answer because I have found no evidence of a valid game theoretic model applicable to Bitcoin. It’s not a game, it’s a market.

Quoted text (1 line)
> Do miners and mining pools participate in discussions before signaling for a soft fork begins?

Who knows, I don’t get invited to round table meetings.

Quoted text (1 line)
> Can they still mine something else post activation even if signaling readiness for soft fork?

A person can mine whatever they want. Signaling does not compel a miner to enforce. Each block mined is anonymous. But each miner seeing the signals of others, unless they are coordinating, would presumably assume that others will enforce.

Quoted text (1 line)
> Who enforces consensus rules technically in Bitcoin? Full nodes or Miners?

A node (software) doesn’t enforce anything. Merchants enforce consensus rules when they reject trading for something that they don’t consider money. Every time two people trade both party validates what they receive (not what they trade away). Those receiving Bitcoin are economically relevant and their power is a function of how much they are doing so.

Miners censor, which is inconsequential unless enforced. Majority miners can enforce censorship by simply not building on any non-censoring blocks. This is what soft fork enforcement is.

Quoted text (1 line)
> Is soft fork signaling same as voting?

I don’t see that it needs a label apart from signaling. There are many kinds of voting. It would be hard to equate signaling with any of them. It’s a public signal that the miner who mined a given block miner intends to censor, that’s all.

Quoted text (1 line)
> According to my understanding, miners follow the consensus rules enforced by full nodes and get (subsidy + fees) for their work.

Miners mine a chain, which ever one they want. There are many. They earn the block reward.

Quoted text (1 line)
> Signaling is not voting although lot of people consider it voting including some mining pools and exchanges.

What people consider it is inconsequential. It has clearly defined behavior.

e

From: Prayank <prayank@tutanota•de> Sent: Sunday, June 27, 2021 5:01 AM To: eric@voskuil•org Cc: Bitcoin Dev <bitcoin-dev@lists•linuxfoundation•org> Subject: Re: [bitcoin-dev] Trinary Version Signaling for softfork

Hello Eric,

I have few questions:

Quoted text (1 line)
> Without majority hash power support, activation simply means you are off on a chain split.

So majority hash power not following the consensus rules can result in chain split? Why would majority of miners decide to mine a chain that nobody wants to use? What are different things possible in this case based on game theory?

Quoted text (1 line)
> And activation without majority hash power certainly does not “ensure” this.

Do miners and mining pools participate in discussions before signaling for a soft fork begins? Can they still mine something else post activation even if signaling readiness for soft fork?

Quoted text (1 line)
> If one wants to enforce a soft fork (or otherwise censor) this is accomplished by mining (or paying others to do so). Anyone can mine, so everyone gets a say. Mining is trading capital now for more later. If enough people want to do that, they can enforce a soft fork. It’s time Bitcoiners stop thinking of miners as other people. Anyone can mine, and that’s your vote.

Who enforces consensus rules technically in Bitcoin? Full nodes or Miners?

Is soft fork signaling same as voting?

According to my understanding, miners follow the consensus rules enforced by full nodes and get (subsidy + fees) for their work. Signaling is not voting although lot of people consider it voting including some mining pools and exchanges.

Zac Greenwood in reply to Eric Voskuil permalink original

Hi Eric,

Quoted text (1 line)
> A node (software) doesn’t enforce anything. Merchants enforce consensus

rules

… by running a node which they believe to enforce the rules of Bitcoin.

A node definitely enforces consensus rules and defines what is Bitcoin. I am quite disturbed that this is even being debated here.

Zac

On Wed, 30 Jun 2021 at 11:17, Eric Voskuil via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:

Quoted text (184 lines)
> Hi Prayank,
>
>
>
> > So majority hash power not following the consensus rules can result in
> chain split?
>
>
>
> Any two people on different rules implies a chain split. That’s presumably
> why rule changes are called forks. There is no actual concept of “the
> rules” just one set of rules or another.
>
>
>
> > Why would majority of miners decide to mine a chain that nobody wants to
> use?
>
>
>
> I don’t presume to know why people prefer one thing over another, or what
> people want to use, nor does economics.
>
>
>
> > What are different things possible in this case based on game theory?
>
>
>
> I’ve seen no actual demonstration of the relevance of game theory to
> Bitcoin. People throw the words around quite a bit, but I can’t give you an
> answer because I have found no evidence of a valid game theoretic model
> applicable to Bitcoin. It’s not a game, it’s a market.
>
>
>
> > Do miners and mining pools participate in discussions before signaling
> for a soft fork begins?
>
>
>
> Who knows, I don’t get invited to round table meetings.
>
>
>
> > Can they still mine something else post activation even if signaling
> readiness for soft fork?
>
>
>
> A person can mine whatever they want. Signaling does not compel a miner to
> enforce. Each block mined is anonymous. But each miner seeing the signals
> of others, unless they are coordinating, would presumably assume that
> others will enforce.
>
>
>
> > Who enforces consensus rules technically in Bitcoin? Full nodes or
> Miners?
>
>
>
> A node (software) doesn’t enforce anything. Merchants enforce consensus
> rules when they reject trading for something that they don’t consider
> money. Every time two people trade both party validates what they receive
> (not what they trade away). Those receiving Bitcoin are economically
> relevant and their power is a function of how much they are doing so.
>
>
>
> Miners censor, which is inconsequential unless enforced. Majority miners
> can enforce censorship by simply not building on any non-censoring blocks.
> This is what soft fork enforcement is.
>
>
>
> > Is soft fork signaling same as voting?
>
>
>
> I don’t see that it needs a label apart from signaling. There are many
> kinds of voting. It would be hard to equate signaling with any of them.
> It’s a public signal that the miner who mined a given block miner intends
> to censor, that’s all.
>
>
>
> > According to my understanding, miners follow the consensus rules
> enforced by full nodes and get (subsidy + fees) for their work.
>
>
>
> Miners mine a chain, which ever one they want. There are many. They earn
> the block reward.
>
>
>
> > Signaling is not voting although lot of people consider it voting
> including some mining pools and exchanges.
>
>
>
> What people consider it is inconsequential. It has clearly defined
> behavior.
>
>
>
> e
>
>
>
> *From:* Prayank <prayank@tutanota•de>
> *Sent:* Sunday, June 27, 2021 5:01 AM
> *To:* eric@voskuil•org
> *Cc:* Bitcoin Dev <bitcoin-dev@lists•linuxfoundation•org>
> *Subject:* Re: [bitcoin-dev] Trinary Version Signaling for softfork
>
>
>
> Hello Eric,
>
>
>
> I have few questions:
>
>
>
> > Without majority hash power support, activation simply means you are off
> on a chain split.
>
>
>
> So majority hash power not following the consensus rules can result in
> chain split? Why would majority of miners decide to mine a chain that
> nobody wants to use? What are different things possible in this case based
> on game theory?
>
>
>
> > And activation without majority hash power certainly does not “ensure”
> this.
>
>
>
> Do miners and mining pools participate in discussions before signaling for
> a soft fork begins? Can they still mine something else post activation even
> if signaling readiness for soft fork?
>
>
>
> > If one wants to enforce a soft fork (or otherwise censor) this is
> accomplished by mining (or paying others to do so). Anyone can mine, so
> everyone gets a say. Mining is trading capital now for more later. If
> enough people want to do that, they can enforce a soft fork. It’s time
> Bitcoiners stop thinking of miners as other people. Anyone can mine, and
> that’s your vote.
>
>
>
> Who enforces consensus rules technically in Bitcoin? Full nodes or Miners?
>
>
>
> Is soft fork signaling same as voting?
>
>
>
> According to my understanding, miners follow the consensus rules enforced
> by full nodes and get (subsidy + fees) for their work. Signaling is not
> voting although lot of people consider it voting including some mining
> pools and exchanges.
>
>
>
>
>
> --
>
> Prayank
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation•org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
Eric Voskuil in reply to Zac Greenwood permalink original

A million nodes saying a transaction is invalid does nothing to enforce that knowledge.

An economic node is a person who refuses to accept invalid money. A node only informs this decision, it cannot enforce it. That’s up to people.

And clearly if one is not actually accepting bitcoin for anything at the time, he is not enforcing anything.

The idea of a non-economic node is well established, nothing new here.

e

Quoted text (12 lines)
> On Jun 30, 2021, at 04:33, Zac Greenwood <zachgrw@gmail•com> wrote:
>
> 
> Hi Eric,
>
> > A node (software) doesn’t enforce anything. Merchants enforce consensus rules
>
> … by running a node which they believe to enforce the rules of Bitcoin.
>
> A node definitely enforces consensus rules and defines what is Bitcoin. I am quite disturbed that this is even being debated here.
>
> Zac
Prayank in reply to Eric Voskuil permalink original
Quoted text (1 line)
> I’ve seen no actual demonstration of the relevance of game theory to Bitcoin. People throw the words around quite a bit, but I can’t give you an answer because I have found no evidence of a valid game theoretic model applicable to Bitcoin. It’s not a game, it’s a market.

Agree its difficult to predict and include all the possible things that may happen. Two articles I had read in past that explained few things based on game theory:

https://jimmysong.medium.com/uasf-bip148-scenarios-and-game-theory-9530336d953e

https://jimmysong.medium.com/segwit2x-game-theory-scenarios-part-1-7f863904a72

Quoted text (1 line)
> Who knows, I don’t get invited to round table meetings.

My question was related to discussions on mailing list, IRC channels, Reddit, Twitter, GitHub etc. Not sure if everyone does but few had no issues with Taproot before signaling according to https://web.archive.org/web/20210316221837/https://taprootactivation.com/

Quoted text (1 line)
> Every time two people trade both party validates what they receive (not what they trade away). Those receiving Bitcoin are economically relevant and their power is a function of how much they are doing so.

Agree. Running and 'using' the node for economic activity can be considered enforcing consensus rules.

Quoted text (1 line)
> Majority miners can enforce censorship by simply not building on any non-censoring blocks. This is what soft fork enforcement is.

I am not sure about this.

Quoted text (1 line)
> I don’t see that it needs a label apart from signaling. There are many kinds of voting. It would be hard to equate signaling with any of them. It’s a public signal that the miner who mined a given block miner intends to censor, that’s all.

Signaling can be done for many things. In this case I think miners are signaling 'readiness'.  Pieter Wuille had answered a related question on SE: https://bitcoin.stackexchange.com/questions/97043/is-there-an-active-list-of-bips-currently-open-for-voting/

Since this is misunderstood or misinterpreted by many, I had even requested Hampus Sjöberg to mention this in https://taproot.watch/ : https://github.com/hsjoberg/fork-explorer/issues/57

Zac Greenwood in reply to Eric Voskuil permalink original

Eric,

Quoted text (1 line)
> A million nodes saying a transaction is invalid does nothing to enforce

that knowledge

It does. Nodes disregard invalid transactions and invalid blocks as if they never existed. It is not possible for any party to transact bitcoin in a way that violates the set of rules enforced by the network of consensus-compatible nodes that we call Bitcoin.

Zac

On Wed, Jun 30, 2021 at 2:03 PM Eric Voskuil <eric@voskuil•org> wrote:

Quoted text (29 lines)
> A million nodes saying a transaction is invalid does nothing to enforce
> that knowledge.
>
> An economic node is a person who refuses to accept invalid money. A node
> only informs this decision, it cannot enforce it. That’s up to people.
>
> And clearly if one is not actually accepting bitcoin for anything at the
> time, he is not enforcing anything.
>
> The idea of a non-economic node is well established, nothing new here.
>
> e
>
> On Jun 30, 2021, at 04:33, Zac Greenwood <zachgrw@gmail•com> wrote:
>
> 
> Hi Eric,
>
> > A node (software) doesn’t enforce anything. Merchants enforce consensus
> rules
>
> … by running a node which they believe to enforce the rules of Bitcoin.
>
> A node definitely enforces consensus rules and defines what is Bitcoin. I
> am quite disturbed that this is even being debated here.
>
> Zac
>
>
Eric Voskuil in reply to Zac Greenwood permalink original
Quoted text (8 lines)
> On Jun 30, 2021, at 05:45, Zac Greenwood <zachgrw@gmail•com> wrote:
>
> 
> Eric,
>
> > A million nodes saying a transaction is invalid does nothing to enforce that knowledge
>
> It does. Nodes disregard invalid transactions and invalid blocks as if they never existed. It is not possible for any party to transact bitcoin in a way that violates the set of rules enforced by the network of consensus-compatible nodes that we call Bitcoin.

When Fincen walks into Coinbase and every other exchange (and white market business in the country), and tells them to change a rule or they are taking the CEO out in hancuffs for money laundering, I’m pretty sure that their node with not be able to prevent it.

Enforcement is always people. We use the term node as a metaphorical term for people who use the node to avoid taking bad money. Like those machines that test paper money, they offer no resistance themselves.

A node in a closet checking transactions, unconnected to any human actually rejecting the money in trade, offers no resistance to anything. It can be forked off without any consequence whatsoever.

This subject was discussed here during the BCH split. People were setting up nodes on cloud services, to boost numbers. These non-economic nodes were of course of no consequence, which was not a matter of debate. I’m explaining to you why that is.

The network ignores non-economic nodes as if they never existed.

Quoted text (26 lines)
> Zac
>
>
>> On Wed, Jun 30, 2021 at 2:03 PM Eric Voskuil <eric@voskuil•org> wrote:
>> A million nodes saying a transaction is invalid does nothing to enforce that knowledge.
>>
>> An economic node is a person who refuses to accept invalid money. A node only informs this decision, it cannot enforce it. That’s up to people.
>>
>> And clearly if one is not actually accepting bitcoin for anything at the time, he is not enforcing anything.
>>
>> The idea of a non-economic node is well established, nothing new here.
>>
>> e
>>
>>>> On Jun 30, 2021, at 04:33, Zac Greenwood <zachgrw@gmail•com> wrote:
>>>>
>>> 
>>> Hi Eric,
>>>
>>> > A node (software) doesn’t enforce anything. Merchants enforce consensus rules
>>>
>>> … by running a node which they believe to enforce the rules of Bitcoin.
>>>
>>> A node definitely enforces consensus rules and defines what is Bitcoin. I am quite disturbed that this is even being debated here.
>>>
>>> Zac