Return-Path: Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 6301DC002D for ; Wed, 27 Apr 2022 18:32:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 5774641A15 for ; Wed, 27 Apr 2022 18:32:49 +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: smtp4.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c46pHlw8va6M for ; Wed, 27 Apr 2022 18:32:47 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by smtp4.osuosl.org (Postfix) with ESMTPS id CE44C41A49 for ; Wed, 27 Apr 2022 18:32:46 +0000 (UTC) Received: by mail-wm1-x32a.google.com with SMTP id bi24-20020a05600c3d9800b00393ff664705so1711558wmb.4 for ; Wed, 27 Apr 2022 11:32:46 -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 :cc; bh=fMrTFa3F9AIAPqYRJk92dvzl0Zcht3mc4Wr+8idBo+s=; b=XhDaDCmbQ84mb8Os1Pdd+eBDWuv5vN+orfHrBzxBH873v1U7mn2UXYNhOm66yrYjlm ma/+sgjIbtDhNkfOqh9xQil6vuNGOo7WtvA5jqV/2NVhlVmslyz3yQpJyifaV6OJYId3 5mXbi5DmsT6hflb+6EVAz/289kI3TOSkURfUQPeLm+KGfgfMxvBX1IUWaLyDUmjwsmg/ tKgU8zaAj6AEv0FDX6tMdl2uwJiO9v2zWMaLKa5sVSIGgpl5wrtQgawTp3ktO+yX6TkC Uyv3XI0FgflNS55tUAKFeNfhY0b+qtBfOT1N/5YPzgtcs1F5adP/8KcEYFfNYFh2cK3w TOLA== 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:cc; bh=fMrTFa3F9AIAPqYRJk92dvzl0Zcht3mc4Wr+8idBo+s=; b=QnTE3fvq3STDxGxtwdmgVGL833oCyTcNQGSz/761eTkEGy800oyz0eXw19B3d0UIzO MJucILK3X4qpSOBkvFSC/E2SIXO8sxJ+vZ4EZk7T4k0YBu2SMfJkGxF/3GeP4BNkd7lU KbaYcZGZB9cDeMOPnLJj97gk7zdaIc3ggdKh+89xDi5ppD9z4QraKlq1//JLMvA9Hywj FAvKo3ZNyjW4wENa33iHHnkkk9g5dQYs03srKdo1+3zPhe7IdybPP214xHt5XePjRVx+ e0U1XnnugdPkdQzS+2Yxyp2zArCcrJpdTmktMjO2tV3o5b6i/6c7sAbN+vjObc6Nu8Px 6Xbg== X-Gm-Message-State: AOAM531J67A7UIfFrfoHi6qRHh+1GihlbP6pO/KX+XZZe1V3agPkAJYA b8PM/GR1lyDIAet3RiVccBfvE/rQMnsKb1UMf+whFz0LimE= X-Google-Smtp-Source: ABdhPJy9/vmrArXLcSgAFn7Db10eJtSeun/zo0J3BUZijorC8LAmC2CI5oS3qMTTfFJcJSzvsxmLKPC+YG962xDrgpc= X-Received: by 2002:a05:600c:4f09:b0:393:ec87:f011 with SMTP id l9-20020a05600c4f0900b00393ec87f011mr14461107wmq.103.1651084364797; Wed, 27 Apr 2022 11:32:44 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Keagan McClelland Date: Wed, 27 Apr 2022 12:32:33 -0600 Message-ID: To: micaroni@gmail.com Content-Type: multipart/alternative; boundary="0000000000000edadf05dda709c8" X-Mailman-Approved-At: Wed, 27 Apr 2022 18:43:57 +0000 Cc: Bitcoin Protocol Discussion 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: Wed, 27 Apr 2022 18:32:49 -0000 --0000000000000edadf05dda709c8 Content-Type: text/plain; charset="UTF-8" Felipe, > For me, the consensus should follow the current line: discussions and tests carried out by experts. We all know that the most important devs have the most weight in discussions. And that's how it should be, because they understand far better than any other lowly mortal. Consensus simply means that there are not at least two or three important people opposing the idea with solid arguments. Is it very subjective and difficult? Yes. For sure. We all yearn for objective answers or methods. However, any method would fail. At the end, after numerous discussions and an apparent consensus, the objective answer and the real consensus will be obtained in the network, in the nodes upgrading. If there is a big war, the network will end up splitting in two, as it has in the past. To avoid any unwanted splits we discuss for exhaustion here in the list. This is essentially an admission that devs have control over the protocol. Users "having control" but deferring their judgement to devs is not meaningfully different than devs "having control". Many people have asserted, quite strongly, that this ought not be how Bitcoin governs itself. I myself am on the fence about what is practically possible or not. However, let's say that your supposition is correct. How would we protect against a corollary scenario where a dev has a proposal that looks great but has dark ends that no one notices yet, if the process for evaluation more or less is to defer to "the most important devs" expertise? Presumably we hash this out in forums like this, but in order to "override" the "most important devs" we have to have a way (formalized or not) of deciding when the "lesser experts" in aggregate have better judgement. Erik, > There are many challenges with on-chain voting, here are a few: This may be hair-splitting but I feel it important to clarify that my proposal isn't voting per se. Calling it that doesn't bug me, but the mechanics are meaningfully different than a simple tally vote which is the intuition that I think that term conveys. As Billy mentions this proposal actually requires that miners block signals from inclusion in the block if they themselves do not signal. I'm not necessarily claiming this is a superior design overall, however the "flaw" you point out is by design in this case. My goal in the proposal was really to give users a means of applying direct economic pressure to miners, who do inevitably play a role in BIP8/BIP9 activation procedure. Ryan, > - you're feeding the Chainalysis beasts, when hodlers move their UTXOs; Definitely a frightening proposition I hadn't considered. It does open up the possibility of tracking individual preferences and targeting of political opponents. > - yuk, it's voting. I don't think the process of collecting information on user preference is in and of itself bad. Where I think Bitcoiners really want to avoid voting is this notion that 51% of the constituency can bully the other 49% into whatever they want. No part of my proposal suggests this, nor is it something I would want. ----- I think there are a few questions surrounding the issue of soft fork activation. Perhaps it warrants zooming out beyond even what my proposal aims to solve. In my mind the most important questions surrounding this process are: 1. In an ideal world, assuming we could, with perfect certainty, know anything we wanted about the preferences of the user base, what would be the threshold for saying "this consensus change is ready for activation"? 1a. Does that threshold change based on the nature of the consensus change (new script type/opcode vs. block size reduction vs. blacklisting UTXOs)? 1b. Do different constituencies (end users, wallets, exchanges, coinjoin coordinators, layer2 protocols, miners) have a desired minimum or maximum representation in this "threshold"? 2. Given an answer from #1, what tests can we devise to measure those levels of support directly? If we can't measure it directly, can we measure different indicators that would help us infer or solve for the knowledge we want? 3. Can any of the answers to #2 be "gamed"? I'm defining "game" here to mean that the measurement taken, diverges from the ground truth we are trying to get at in such a way that its divergence would be undetectable. If we do not answer these sorts of questions we can get technical consensus through this messy process, but when it comes to assessing user consensus, it is just going to devolve into dogma and demagoguery as we each have our own perceptions or agendas and there is no rigorous way for anyone to refute our claims. This would, again, be an admission that devs ultimately do make protocol decisions. Perhaps it's unavoidable and we are doomed to this painful process of arguing with one another until there's only one opinion left standing (either because of merit or just plain old grit). However, if this is the case, I don't think we can honestly claim that devs don't control the protocol (as a group). I don't think we will have broad agreement on #1 as it is ultimately a value judgement and even the most intellectually honest people in Bitcoin dev are going to have different value sets. I think this is OK, to a degree. But where a lot of communication breakdown occurs is when people are debating the properties of #2/#3 when they don't even know that there is disagreement between them on #1. I think that everyone having an individual answer to #1 can make these discussions go a lot more smoothly in the technical sphere since I think most people can suspend their own values for the sake of analyzing the effectiveness of a particular approach. I am concerned, however, that if value differences are allowed to be passed off as technical evaluations, the quality of the conversation may erode to the point where no meaningful advancement can happen anymore, since we will lose our shared framework for understanding. If this occurs too soon, I believe quite strongly that Bitcoin will be captured through the increasing power of custodial institutions. Keagan On Wed, Apr 27, 2022 at 11:22 AM wrote: > The idea seems interesting at first glance, but soon we see several > problems. The biggest problem with votes of this type is that they can be > easily manipulated. Imagine a powerful attacker who impersonates someone in > good faith and arrives with a proposal that looks great but has dark ends > behind it (and that no one has simply noticed yet). It would be enough for > this attacker to convince major wallets, major exchanges and even > individuals to believe him. It could be with a good marketing campaign or > even buying these people. This would create a "false consensus", a > misconception of what consensus means. > > For me, the consensus should follow the current line: discussions and > tests carried out by experts. We all know that the most important devs have > the most weight in discussions. And that's how it should be, because they > understand far better than any other lowly mortal. Consensus simply means > that there are not at least two or three important people opposing the idea > with solid arguments. Is it very subjective and difficult? Yes. For sure. > We all yearn for objective answers or methods. However, any method would > fail. At the end, after numerous discussions and an apparent consensus, the > objective answer and the real consensus will be obtained in the network, in > the nodes upgrading. If there is a big war, the network will end up > splitting in two, as it has in the past. To avoid any unwanted splits we > discuss for exhaustion here in the list. > > I don't think flagging transactions would be a good method to measure this > sort of thing. You are handing important technical discussions into the > hands of those who have no idea about the subject. > > Felipe. > > On Tue, Apr 26, 2022 at 5: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 >> > --0000000000000edadf05dda709c8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Felipe,

>=C2=A0For me, the consen= sus should follow the current line: discussions and tests carried out by ex= perts. We all know that the most important devs have the most weight in dis= cussions. And that's how it should be, because they understand far bett= er than any other lowly mortal. Consensus simply means that there are not a= t least two or three important people opposing the idea with solid argument= s. Is it very subjective and difficult? Yes. For sure. We all yearn for obj= ective answers or methods. However, any method would fail. At the end, afte= r numerous discussions and an apparent consensus, the objective answer and = the real consensus will be obtained in the network, in the nodes upgrading.= If there is a big war, the network will end up splitting in two, as it has= in the past. To avoid any unwanted splits we discuss for exhaustion here i= n the list.

This is essentially an admission tha= t devs have control over the protocol. Users "having control" but= deferring their judgement to devs is not meaningfully different than devs = "having control". Many people have asserted, quite strongly, that= this ought not be how Bitcoin governs itself. I myself am on the fence abo= ut what is practically possible or not. However, let's say that your su= pposition is correct. How would we protect against a corollary scenario whe= re a dev has a proposal that looks great but has dark ends that no one noti= ces yet, if the process for evaluation more or less is to defer to "th= e most important devs" expertise? Presumably we hash this out in forum= s like this, but in order to "override" the "most important = devs" we have to have a way (formalized or not) of deciding when the &= quot;lesser experts" in aggregate have better judgement.
<= div>
Erik,

>=C2=A0There are many challenges with on-chain voting, here are a few:
This may be hair-splitting = but I feel it important to clarify that my proposal isn't voting per se= . Calling it that doesn't bug me, but the mechanics are meaningfully di= fferent than a simple tally vote which is the intuition that I think that t= erm conveys. As Billy mentions this proposal actually requires that miners = block signals from inclusion in the block if they themselves do not signal.= I'm not necessarily claiming this is a superior design overall, howeve= r the "flaw" you point out is by design in this case. My goal in = the proposal was really to give users a means of applying direct economic p= ressure to miners, who do inevitably play a role in BIP8/BIP9 activation pr= ocedure.

Ryan,

> - you= 're feeding the Chainalysis beasts, when hodlers move their UTXOs;

Definitely a frightening proposition I hadn't cons= idered. It does open up the possibility of tracking individual preferences = and targeting of political opponents.

>=C2=A0= =C2=A0 - yuk, it's voting.

I don't think t= he process of collecting information on user preference is in and of itself= bad. Where I think Bitcoiners really want to avoid voting is this notion t= hat 51% of the constituency=C2=A0can bully the other 49% into whatever they= want. No part of my proposal suggests this, nor is it something I would wa= nt.

-----

I think there are a few qu= estions surrounding the issue of soft fork activation. Perhaps it warrants = zooming out beyond even what my proposal aims to solve. In my mind the most= important questions surrounding this process are:

1. In an ideal wo= rld, assuming we could, with perfect certainty, know anything we wanted abo= ut the preferences of the user base, what would be the threshold for saying= "this consensus change is ready for activation"?
=C2= =A0 =C2=A0 1a. Does that threshold change based on the nature of the consen= sus change (new script type/opcode vs. block size reduction vs. blacklistin= g UTXOs)?
=C2=A0 =C2=A0 1b. Do different constituencies (end users, wall= ets, exchanges, coinjoin coordinators, layer2 protocols, miners) have a des= ired minimum or maximum representation in this "threshold"?
=
2. Given an answer from #1, what tests can we devise to measure those = levels of support directly? If we can't measure it directly, can we mea= sure different indicators that would help us infer or solve for the knowled= ge we want?
3. Can any of the answers to #2 be "gamed"? I'= m defining "game" here to mean that the measurement taken, diverg= es from the ground truth we are trying to get at in such a way that its div= ergence would be undetectable.

If we do not answer= these sorts of questions we can get technical consensus through this messy= process, but when it comes to assessing user consensus, it is just going t= o devolve into dogma and demagoguery as we each have our own perceptions or= agendas and there is no rigorous way for anyone to refute our claims. This= would, again, be an admission that devs ultimately do make protocol decisi= ons. Perhaps it's unavoidable and we are doomed to this painful process= of arguing with one another until there's=C2=A0only one opinion left s= tanding (either because of merit or just plain old grit). However, if this = is the case, I don't think we can honestly claim that devs don't co= ntrol the protocol (as a group).

I don't think= we will have broad agreement on #1 as it is ultimately a value judgement a= nd even the most intellectually honest people in Bitcoin dev are going to h= ave different value sets. I think this is OK, to a degree. But where a lot = of communication breakdown occurs is when people are debating the propertie= s of #2/#3 when they don't even know that there is disagreement between= them on #1. I think that everyone having an individual answer to #1 can ma= ke these discussions go a lot more smoothly in the technical sphere since I= think most people can suspend their own values for the sake of analyzing t= he effectiveness of a particular approach. I am concerned, however, that if= value differences are allowed to be passed off as technical evaluations, t= he quality of the conversation may erode to the point where no meaningful a= dvancement can happen anymore, since we will lose our shared framework for = understanding. If this occurs too soon, I believe quite strongly that Bitco= in will be captured through the increasing power of custodial institutions.=

Keagan

=
On Wed, Apr 27, 2022 at 11:22 AM <= micaroni@gmail.com> wrote:
=
= The idea seems interesting at first glance, but soon we see several p= roblems. The biggest problem with votes of this type is that they can be ea= sily manipulated. Imagine a powerful attacker who impersonates someone in g= ood faith and arrives with a proposal that looks great but has dark ends be= hind it (and that no one has simply noticed yet). It would be enough for th= is attacker to convince major wallets, major exchanges and even individuals= to believe him. It could be with a good marketing campaign or even buying = these people. This would create a "false consensus", a misconcept= ion of what consensus means.

Fo= r me, the consensus should follow the current line: discussions and tests c= arried out by experts. We all know that the most important devs have the mo= st weight in discussions. And that's how it should be, because they und= erstand far better than any other lowly mortal. Consensus simply means that= there are not at least two or three important people opposing the idea wit= h solid arguments. Is it very subjective and difficult? Yes. For sure. We a= ll yearn for objective answers or methods. However, any method would fail. = At the end, after numerous discussions and an apparent consensus, the objec= tive answer and the real consensus will be obtained in the network, in the = nodes upgrading. If there is a big war, the network will end up splitting i= n two, as it has in the past. To avoid any unwanted splits we discuss for e= xhaustion here in the list.

I don= 9;t think flagging transactions would be a good method to measure this sort= of thing. You are handing important technical discussions into the hands o= f those who have no idea about the subject.

Felipe.

On Tue, Apr 26, 2022 at 5:12 = PM Keagan McClelland via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.= org> wrote:
Hi all,

Alongside the debate with CT= V right now there's a second debate that was not fully hashed out in th= e activation of Taproot. There is a lot of argument around what Speedy Tria= l 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 activ= ation 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 conditi= ons that would convince you that there is consensus. People have tried to d= odge 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 c= ould 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 f= ollowing the events of '17=C2=A0=C2=A0miners are aware that they have t= he 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 m= y head for a while, and I'd like to solicit some feedback here. Current= ly, all forms of activation that are under consideration involve miner sign= aling in one form or another. What if we could make it such that users coul= d more directly pressure miners to act on their behalf? After all, if miner= s 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 in= clusion. I suggest we combine these in such a way that transactions themsel= ves can signal for upgrade. I believe (though am not certain) that there ar= e "free" bits in the version field of a transaction that are pres= ently 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 t= ransaction that is NOT signaling MAY be included in a block regardless of t= hat block's signaling vector
- (Optional) A transaction signa= ling in the negative MUST NOT be included in a block that signals in the af= firmative

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

Some may take issue with the ide= a that people can pay for the outcome they want and may try to compare a me= thod like this to Proof of Stake, but there are only 3 sybil resistant mech= anisms I am aware of, and any "real" view into what social consen= sus looks like MUST be sybil resistant:

- Hashpowe= r
- Proof of personhood (KYC)
- Capital burn/risk
Letting hashpower decide this is the thing that is currently c= ontentious, KYC is dead on arrival both on technical and social grounds, wh= ich really just leaves some means of getting capital into the process of co= nsensus measurement. This mechanism I'm proposing is measurable complet= ely en-protocol and doesn't require trust in institutions that fork fut= ures would. Additionally it could be an auxiliary=C2=A0feature 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 in= clude a notion of negative signaling (allowing for the possibility of rejec= tion)
2. Do we make it such that miner signaling must be congruen= t with >X% of transactions, where congruence is that the signal must mat= ch any non-neutral signal of transaction.

Some ant= icipated objections:

1. signaling isn't voting= , no deployment should be made without consensus first.
- yeah we= ll 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 abl= e 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.<= /div>

3. Enforcing this proposal requires its own soft f= ork.
- Yes. It does...and there's a certain cosmic irony to t= hat, but before we consider how to make this happen, I'd like to even d= iscuss whether or not it's a good idea.

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

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

The bi= ggest question I'd like to pose to the=C2=A0forum 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 consensu= s? How?
- Does it measure the right thing? If not, what do you th= ink is the right thing to measure? (assuming we could)
- Should I= write a BIP spec'ing this out in detail?

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