Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 9104CC002D for ; Tue, 26 Apr 2022 20:49:03 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 68DAA40A8E for ; Tue, 26 Apr 2022 20:49:03 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HYTmywcFMXpn for ; Tue, 26 Apr 2022 20:48:59 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) by smtp2.osuosl.org (Postfix) with ESMTPS id 5730E40A89 for ; Tue, 26 Apr 2022 20:48:59 +0000 (UTC) Received: by mail-lf1-x131.google.com with SMTP id w19so34012716lfu.11 for ; Tue, 26 Apr 2022 13:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=ergbgkwIuWkdhapFaP8qbu9BO4gm5DIycta+EVKrCNQ=; b=YQgVg5pjOiQFFsqLWFI7ZPhzCoLbKB1z19VAekZAXP2eiFJ2raglh5rpgjopSXEIv3 6X+UskwG7uQEb0bqtVziDBgcNvpODZ8dM2yPschBc34vWyXIY+HbwTPEEvVOarojljR0 XdnREUbW6WQxwk/aXiLxKfZZMS+nCS1KLvm8xqR/dRftygYmyc7eVFILwsxs1B+JXgd6 VZz/dQiUbV5LlkRXj/XtsZGS50FGE7wMK+vDXmzJDdrr1asVbruk9MzhrRdrRhvVvh8g pA3EKGqx6Y6AsAYdWvQkUNKxpPpkUkl/kQTYaGlmcvZz7dgcxuga2u/mz1wj4Qly7zTS ey7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=ergbgkwIuWkdhapFaP8qbu9BO4gm5DIycta+EVKrCNQ=; b=weCRAuqRtfW33otVc818lq47iZrqt2ncDJc6WJv0lnSW4cBt6VYyvb68bu5m3Rwi+J kS7qM7cXXK2fYddOZmLeIptRBBrSuDBz1jWzEFATU5XsMNHxvRyoL4a5PNho/3CK2w0y CXv1rjxluA+b34Nvtq4+j6etnCHJZ5cmAyEJFuUat+mqtEkOpRgiZcDI8CcJb94lDTyW KvHWoFVDqAaKq13ah/wZ1bSuiMP5oYUOoOW/x2EY5u0Wp+JxaRe0QI9GH2HxrQcVoP/L osbJZlG47FTBAI2y11Gv5H7kw9Cg+aw2DALratHZLSdFooBAiHC1ZDZyW3+Lxfi/sNkp mLkQ== X-Gm-Message-State: AOAM531tGArTSLoLWwuOrnHDizoKFn81Mdsune1DK3lvUUf1ymxDLkr2 99R+S+lo9WOdNAwVGtLfzbZuJyS64fWZv+rBYdg= X-Google-Smtp-Source: ABdhPJzn7RTZROq4OHR6jmRsZvRA8pQpQEXVEGYHjOWQIacbiP0KF1rmK08g2AFolvnCGfhQPlH6g5TvvbSroMZv1Qg= X-Received: by 2002:a05:6512:2346:b0:471:b3cc:ce21 with SMTP id p6-20020a056512234600b00471b3ccce21mr17470784lfu.480.1651006136922; Tue, 26 Apr 2022 13:48:56 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bryan Bishop Date: Tue, 26 Apr 2022 15:39:44 -0500 Message-ID: To: Keagan McClelland , Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="00000000000050378a05dd94d259" Subject: Re: [bitcoin-dev] Towards a means of measuring user support for Soft Forks X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2022 20:49:03 -0000 --00000000000050378a05dd94d259 Content-Type: text/plain; charset="UTF-8" You may be interested in these posts on transaction signalling: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/014193.html https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/014202.html https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014251.html On Tue, Apr 26, 2022 at 3:12 PM Keagan McClelland via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > Hi all, > > Alongside the debate with CTV right now there's a second debate that was > not fully hashed out in the activation of Taproot. There is a lot of > argument around what Speedy Trial is or isn't, what BIP8 T/F is or isn't > etc. A significant reason for the breakdown in civility around this debate > is that because we don't have a means of measuring user support for > proposed sof-fork changes, it invariably devolves into people claiming that > their circles support/reject a proposal, AND that their circles are more > broadly representative of the set of Bitcoin users as a whole. > > It seems everyone in this forum has at one point or another said "I would > support activation of ____ if there was consensus on it, but there isn't". > This statement, in order to be true, requires that there exist a set of > conditions that would convince you that there is consensus. People have > tried to dodge this question by saying "it's obvious", but the reality is > that it fundamentally isn't. My bubble has a different "obvious" answer > than any of yours. > > Secondly, due to the trauma of the block size wars, no one wants to utter > a statement that could imply that miners have any influence over what > rulesets get activated or don't. As such "miner signaling" is consistently > devalued as a signal for market demand. I don't think this is reasonable > since following the events of '17 miners are aware that they have the > strong incentive that they understand market demand. Nevertheless, as it > stands right now the only signal we have to work with is miner signaling, > which I think is rightly frustrating to a lot of people. > > So how can we measure User Support for a proposed rule change? > > I've had this idea floating around in the back of my head for a while, and > I'd like to solicit some feedback here. Currently, all forms of activation > that are under consideration involve miner signaling in one form or > another. What if we could make it such that users could more directly > pressure miners to act on their behalf? After all, if miners are but the > humble servants of user demands, this should be in alignment with how > people want Bitcoin to behave. > > Currently, the only means users have of influencing miner decisions are A. > rejection of blocks that don't follow rules and B. paying fees for > transaction inclusion. I suggest we combine these in such a way that > transactions themselves can signal for upgrade. I believe (though am not > certain) that there are "free" bits in the version field of a transaction > that are presently ignored. If we could devise a mapping between some of > those free bits, and the signaling bits in the block header, it would be > possible to have rules as follows: > > - A transaction signaling in the affirmative MUST NOT be included in a > block that does not signal in the affirmative > - A transaction that is NOT signaling MAY be included in a block > regardless of that block's signaling vector > - (Optional) A transaction signaling in the negative MUST NOT be included > in a block that signals in the affirmative > > Under this set of conditions, a user has the means of sybil-resistant > influence over miner decisions. If a miner cannot collect the fees for a > transaction without signaling, the user's fee becomes active economic > pressure for the miner to signal (or not, if we include some variant of the > negative clause). In this environment, miners could have a better view into > what users do want, as would the Bitcoin network at large. > > Some may take issue with the idea that people can pay for the outcome they > want and may try to compare a method like this to Proof of Stake, but there > are only 3 sybil resistant mechanisms I am aware of, and any "real" view > into what social consensus looks like MUST be sybil resistant: > > - Hashpower > - Proof of personhood (KYC) > - Capital burn/risk > > Letting hashpower decide this is the thing that is currently contentious, > KYC is dead on arrival both on technical and social grounds, which really > just leaves some means of getting capital into the process of consensus > measurement. This mechanism I'm proposing is measurable completely > en-protocol and doesn't require trust in institutions that fork futures > would. Additionally it could be an auxiliary feature of the soft fork > deployment scheme chosen making it something you could neatly package all > together with the deployment itself. > > There are many potential tweaks to the design I propose above: > 1. Do we include a notion of negative signaling (allowing for the > possibility of rejection) > 2. Do we make it such that miner signaling must be congruent with >X% of > transactions, where congruence is that the signal must match any > non-neutral signal of transaction. > > Some anticipated objections: > > 1. signaling isn't voting, no deployment should be made without consensus > first. > - yeah well we can't currently measure consensus right now, so that's not > a super helpful thing to say and is breeding ground for abuse in the form > of certain people making the unsubstantiated claim that consensus does or > does not exist for a particular initiative > > 2. This is just a proposal for "pay to play", we should not let the > wealthy make consensus decisions. > - I agree that wealth should not be able to strong-arm decision making. > But the status quo seems even worse where we let publicly influential > people decide consensus in such a way where not only do they not "lose > ammunition" in the process of campaigning, but actually accrue it, creating > really bad long-term balances of power. > > 3. Enforcing this proposal requires its own soft fork. > - Yes. It does...and there's a certain cosmic irony to that, but before we > consider how to make this happen, I'd like to even discuss whether or not > it's a good idea. > > 4. This gives CoinJoin pool operators and L2 protocol implementations > power over deciding consensus. > - I see this as an improvement over the status quo > > 5. This encourages "spam" > - If you pay the fees, it's not spam. > > The biggest question I'd like to pose to the forum is: > - Does a scheme like this afford us a better view into consensus than we > have today? > - Can it be gamed to give us a *worse* view into consensus? How? > - Does it measure the right thing? If not, what do you think is the right > thing to measure? (assuming we could) > - Should I write a BIP spec'ing this out in detail? > > Cheers, > Keagan > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > -- - Bryan https://twitter.com/kanzure --00000000000050378a05dd94d259 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
You may be interested in these posts on transaction signal= ling:
https://lists.linuxfoundation.org/pipermail/bitcoi= n-dev/2017-April/014193.html
https://lists.linuxfoun= dation.org/pipermail/bitcoin-dev/2017-April/014202.html
Hi all,

A= longside the debate with CTV right now there's a second debate that was= not fully hashed out in the activation of Taproot. There is a lot of argum= ent around what Speedy Trial is or isn't, what BIP8 T/F is or isn't= etc. A significant reason for the breakdown in civility around this debate= is that because we don't have a means of measuring user support for pr= oposed sof-fork changes, it invariably devolves into people claiming that t= heir circles support/reject a proposal, AND that their circles are more bro= adly representative of the set of Bitcoin users as a whole.

<= /div>
It seems everyone in this forum has at one point or another said = "I would support activation of ____ if there was consensus on it, but = there isn't". This statement, in order to be true, requires that t= here exist a set of conditions that would convince you that there is consen= sus. People have tried to dodge this question by saying "it's obvi= ous", but the reality is that it fundamentally isn't. My bubble ha= s a different "obvious" answer than any of yours.

<= /div>
Secondly, due to the trauma of the block size wars, no one wants = to utter a statement that could imply that miners have any influence over w= hat rulesets get activated or don't. As such "miner signaling"= ; is consistently devalued as a signal for market demand. I don't think= this is reasonable since following the events of '17=C2=A0=C2=A0miners= are aware that they have the strong incentive that they understand market = demand. Nevertheless, as it stands right now the only signal we have to wor= k with is miner signaling, which I think is rightly frustrating to a lot of= people.

So how can we measure User Support for a = proposed rule change?

I've had this idea float= ing around in the back of my head for a while, and I'd like to solicit = some feedback here. Currently, all forms of activation that are under consi= deration involve miner signaling in one form or another. What if we could m= ake it such that users could more directly pressure miners to act on their = behalf? After all, if miners are but the humble servants of user demands, t= his should be in alignment with how people want Bitcoin to behave.

Currently, the only means users have of influencing miner = decisions are A. rejection of blocks that don't follow rules and B. pay= ing fees for transaction inclusion. I suggest we combine these in such a wa= y that transactions themselves can signal for upgrade. I believe (though am= not certain) that there are "free" bits in the version field of = a transaction that are presently ignored. If we could devise a mapping betw= een some of those free bits, and the signaling bits in the block header, it= would be possible to have rules as follows:

- A transaction signali= ng in the affirmative MUST NOT be included in a block that does not signal = in the affirmative
- A transaction that is NOT signaling MAY be included= in a block regardless of that block's signaling vector
- (Op= tional) A transaction signaling in the negative MUST NOT be included in a b= lock that signals in the affirmative

Under this se= t of conditions, a user has the means of sybil-resistant influence over min= er decisions. If a miner cannot collect the fees for a transaction without = signaling, the user's fee becomes active=C2=A0economic pressure for the= miner to signal (or not, if we include some variant of the negative clause= ). In this environment, miners could have a better view into what users do = want, as would the Bitcoin network at large.

Some = may take issue with the idea that people can pay for the outcome they want = and may try to compare a method like this to Proof of Stake, but there are = only 3 sybil resistant mechanisms I am aware of, and any "real" v= iew into what social consensus looks like MUST be sybil resistant:

- Hashpower
- Proof of personhood (KYC)
- Cap= ital burn/risk

Letting hashpower decide this is th= e thing that is currently contentious, KYC is dead on arrival both on techn= ical and social grounds, which really just leaves some means of getting cap= ital into the process of consensus measurement. This mechanism I'm prop= osing is measurable completely en-protocol and doesn't require trust in= institutions that fork futures would. Additionally it could be an auxiliar= y=C2=A0feature of the soft fork deployment scheme chosen making it somethin= g you could neatly package all together with the deployment itself.

There are many potential tweaks to the design I propose a= bove:
1. Do we include a notion of negative signaling (allowing f= or the possibility of rejection)
2. Do we make it such that miner= signaling must be congruent with >X% of transactions, where congruence = is that the signal must match any non-neutral signal of transaction.
<= div>
Some anticipated objections:

1.= signaling isn't voting, no deployment should be made without consensus= first.
- yeah well we can't currently measure consensus righ= t now, so that's not a super helpful thing to say and is breeding groun= d for abuse in the form of certain people making the unsubstantiated claim = that consensus does or does not exist for a particular initiative

2. This is just a proposal for "pay to play", we = should not let the wealthy make consensus decisions.
- I agree th= at wealth should not be able to strong-arm decision making. But the status = quo seems even worse where we let publicly influential people decide consen= sus in such a way where not only do they not "lose ammunition" in= the process of campaigning, but actually accrue it, creating really bad lo= ng-term balances of power.

3. Enforcing this propo= sal requires its own soft fork.
- Yes. It does...and there's = a certain cosmic irony to that, but before we consider how to make this hap= pen, I'd like to even discuss whether or not it's a good idea.

4. This gives CoinJoin pool operators and L2 protocol = implementations power over deciding consensus.
- I see this as an= improvement over the status quo

5. This encourage= s "spam"
- If you pay the fees, it's not spam.

The biggest question I'd like to pose to the=C2=A0= forum is:
- Does a scheme like this afford=C2=A0us a better view = into consensus than we have today?
- Can it be gamed to give us a= *worse* view into consensus? How?
- Does it measure the right th= ing? If not, what do you think is the right thing to measure? (assuming we = could)
- Should I write a BIP spec'ing this out in detail?

Cheers,
Keagan
_______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev


--
--00000000000050378a05dd94d259--