Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 50802C002D for ; Thu, 28 Apr 2022 16:10:00 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 3EED4606A0 for ; Thu, 28 Apr 2022 16:10:00 +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: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JA-TCv_-MclI for ; Thu, 28 Apr 2022 16:09:57 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by smtp3.osuosl.org (Postfix) with ESMTPS id B96056059B for ; Thu, 28 Apr 2022 16:09:56 +0000 (UTC) Received: by mail-ej1-x62c.google.com with SMTP id bv19so10536359ejb.6 for ; Thu, 28 Apr 2022 09:09:56 -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=hi6PDi4TyG4fExOQEISUVledK/I8LTFsEl42eyuE83M=; b=k1PMKpXtbwT8SL+6TXdsJACaqMbH81cWsagId3LjVO3X/dOJnVf6hnPlk0ZG0bYjKb m7asac6uphqaiJAbJRjSBmyjmntF5Oyci0VuAW5OG+CbWUa1/R/G+usOmOED45Q7RIbc MtNRMvr5rHYqD2GZHyeS/+e4/xsTZ2TVC4BYZf91v+jl8imkpUuzkHa5luyCLMgeB+Tr IxS9Ap7dOYJ124v0a2wtN2UC3IVal0hRKgDH5fPsm2+brirYvwwZKSDvlOboP+Hf5meH EKZoiLG0HKBrMxykzQGXztHFedJDxsAm7prfqmstEnQExvyC3GhHTfg0SrUgoTHG8CQ0 kOfg== 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=hi6PDi4TyG4fExOQEISUVledK/I8LTFsEl42eyuE83M=; b=5x8cSUn9K0t1g8yKWUg8YhgeRH7PGGvDgr2YlMakDuZId0aADYubA0cgwiGcEMpF9o rAkWSQRxbEghPHmMalg/SxMWvToNmqmREp9WPJBpoAy4uasL3b8lXKWnHWHAWo5w1lMA LA8VhO4bC5SWduwdb8P1ElAxdkfbtYvYeF+cJ9hEyvpmbaaAXmhNMfIPiF4sgmkjJdg3 M2XONDRTdGE3M55YSqgz7tSgPsMIl/OvOVgMKQFA6tRUO+9pW85xB1D+1uxqApM/bvLq /6JYfXApLEvrp2OhngmkDL/ehn+gAv25sFtLJJN4ox47ohrkJw8Lt8Feubar9pXL4tyI u/gQ== X-Gm-Message-State: AOAM530jsAdAN7DNYr2rqeKmr9uDN/Glk8SZWRvSP2yWa1AZQGPpHsgt acm3qwQXvlIxZBBLZb7vpUDFQriD49UbAIBr8+qkp1/CJZA= X-Google-Smtp-Source: ABdhPJyHVhkEgdoqjoGtWDRmHsm0VGcCh5M5PqfMp8XhxNOJvgF+EjKGp0gc+0S+sWuhsC4jpZ0TULEEFliadFzd/gE= X-Received: by 2002:a17:907:3daa:b0:6e8:969d:564d with SMTP id he42-20020a1709073daa00b006e8969d564dmr31651720ejc.735.1651162194492; Thu, 28 Apr 2022 09:09:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Billy Tetrud Date: Thu, 28 Apr 2022 11:09:36 -0500 Message-ID: To: Erik Aronesty Content-Type: multipart/alternative; boundary="00000000000011c2a005ddb928e1" X-Mailman-Approved-At: Thu, 28 Apr 2022 22:13:55 +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: Thu, 28 Apr 2022 16:10:00 -0000 --00000000000011c2a005ddb928e1 Content-Type: text/plain; charset="UTF-8" @Keagan > we have to have a way (formalized or not) of deciding when the "lesser experts" in aggregate have better judgement. I agree. Its certainly convenient for development speed to limit the number of cooks in the kitchen. But for the largest cryptocurrency in the world, we're going to have to face the reality that the number of stakeholders has grown vastly larger than the developer community and those who implicitly trust the developer community, or any particular part of the dev community working on any particular upgrade. > Perhaps it warrants zooming out beyond even what my proposal aims to solve I very much like the way you framed the question, and I think these are important, potentially existential questions we should urge the bitcoin community to think deeply about. > 1. ... what would be the threshold for saying "this consensus change is ready for activation"? This is indeed the basic question. > 1a. Does that threshold change based on the nature of the consensus change I don't think the threshold of consensus changes should depend on the type of consensus change. Any consensus change, no matter how small, introduces risk, can cause bugs, can open a back door. Naturally, simpler changes should be able to *reach* consensus faster, because presumably it would take less analysis, and be easier to explain and convince people of. But that doesn't mean the bar of consensus should be lower. I think it should not. A change may look small and innocuous when it is in fact not, and it would be less than ideal for people to try to pretend there's sufficient consensus by insisting that a change is so "small" that no more is needed. > 1b. Do different constituencies (end users, wallets, exchanges, coinjoin coordinators, layer2 protocols, miners) have a desired minimum or maximum representation in this "threshold"? There is a lot to say about this simple question. I think it should be recognized that the "say" anyone or any group has depends on their total future (or perhaps only total near-term) economic influence on the network. This is related to the concept of the "economic majority". What is the "economic majority"? We could say this depends exactly on the proportion of bitcoin you own, but I don't think that would be quite right. For example, a miner that (hypothetically) keeps no bitcoin except for what is being changed into fiat has an important role and significant economic influence on bitcoin. Miners provide a service. Their livelihood depends on bitcoiners, and the livelihood of bitcoin depends in part on miners. Similarly, a vendor who accepts bitcoin directly but converts it all to fiat provides a service as well. They expand the network of where bitcoin is directly useful. People willing to pay for things in bitcoin also similarly expand bitcoin's network. I think it only makes sense to align incentives and attempt to match the amount of representation a group gets to the amount of economic influence they have on the network. To do otherwise would invite a schism. Based on the above, I'm thinking that there are only really two components of what should comprise the weight of any person or group's say: 1. the stake they have in bitcoin, and 2. the value they provide to bitcoin. Let me elaborate: Bitcoin has a purpose. That purpose is as a currency. The directly valuable aspects of that are as a store of value and as a means of exchange. The properties of bitcoin lead to benefits to using it as both of those things. Therefore, the stake people have in holding bitcoin should count heavily because the value of holding is a major purpose of bitcoin. But at the same time the ability to transact bitcoin should also count pretty heavily because its also a major purpose of bitcoin and at the same time accepting or spending bitcoin expands the network. If we were able to economically equate those two things, we might get closer to a way to figure out how to ideally distribute representation. Similarly, we could add miners and developers into this mix, comparing them based on the value they provide to the network. So let: holdAmount = the value of bitcoin they're holding over a given period of time T transactionVolume = the volume of transaction value over a given period of time T miningVolume = the value of bitcoin they mined over time period T technologyValue = the value of new technological developments produced over time period T A group's representation should = (holdAmount*A + transactionVolume*B + miningVolume*C + technologyValue*D) / (totalLiveBitcoin*A + totalTransactionVolume*B + totalMiningVolume*C + totalTechnologyValue*D) where A through D are constants that relate the value of holding vs the value of transacting vs the value of mining vs the value of building bitcoin technology. We could split this up so that eg the representation that holders in total should have just by holding is: A/(A+B+C+D) For example, an equivalence could be: how much value does holding bitcoin give the average user per year? How much value does transacting give the average user per year? These are fuzzy and subjective and potentially dubious, but bare with me. Let's say that on average, a holder gets a benefit of 2% of their holdings per year (on a risk adjusted basis). That would be a benefit of $13.25 billion per year. And let's say that the ~$1.642 trillion of transactions per year bitcoin is doing has about 33% being actual exchanges of goods and services and for that 33% the transactors in sum also get a benefit of about 2% of the transacted amount. That would be a benefit of $10.8 billion per year. If we proxy the value of bitcoin mining to the network as the revenue they received, perhaps this is as much as $15.3 billion . How do we calculate the value of developers? I don't know a good proxy for that. But for kicks, why don't we say its as much as miners at $15.3 billion. Using these numbers, the representation for each: Holders: 13.25/(13.25+10.8+15.3+15.3) = 24% Transactors: 10.8/(13.25+10.8+15.3+15.3) = 20% Miners: 15.3/(13.25+10.8+15.3+15.3) = 27% Developers: Also 27% Maybe we could approximate that as each of the four categories has a 1/4th share of representation. Values of A through D are certainly up for debate. In any case, to get back to the question at hand (1b), I don't see any reason to think there's a minimum or maximum representation for each primary constituency. However, there would of course be minimum and maximum bounds on our confidence for how much value/stake each constituency has, and therefore a confidence range on how much representation they should have. But this 4 part group of holders, transactors, miners, and developers seems to make a lot of sense to me. These are the main groups, and any other subgroup can neatly fit into one or more of those. With the assumption that the above numbers are somewhat accurate, it seems reasonable to say that any majority of those four groups should be able to prevent a change from happening. Maybe even any 40% of any of those groups. Were we to roll this all into a single count, 40% of any group of 25% of the whole is 10%, so it kind of supports the idea of a 90% threshold. Although of course right now we have a 90% threshold on just miner signaling. But since that's the only direct signaling we have, I think we prudently erred on the safe side. But perhaps if we have something near 100% consensus in support of a change among the other 3 categories, perhaps we could safely reduce the miner signaling quite a bit, perhaps not to 60% (because of chain split concerns) but perhaps to 70% or 75%. > 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? For 3 of the 4 groups, there seems to me clear mechanisms we can use: * Holders: Something akin to my coin-weighted polling proposal here . * Transactors: Something akin to your transaction signaling proposal above. Tho I would strongly suggest removing the tie between miner signaling and transaction signaling to make it purely informational. * Miner signaling as usual, or perhaps extended to provide a way for miners to actively signal against a change . For developers, I would say we probably need to come to consensus with discussion, but hopefully we could be a bit more structured about it. For example, we could get rough measures of consensus by gathering explicit reviews on a proposal. Opinions like "I don't like it" or "This is great, let's do it!" would count for very little, reviews that look into a particular section deeply or review the broad idea as a whole would count a bit more, and reviews that discuss many good points and reasons about a large fraction of the proposal would carry even more weight. This is of course again subjective, but at least it would provide a framework to work within, and a way to at least approximate a developer consensus weighted by actual knowledge of and thought put into the subject. If we went further to attempt to collect together these reviews in a structured way, it would make it easier for someone to relatively quickly (ie by spending a few hours reading through reviews) verify for themselves approximately what consensus "is". > 3. Can any of the answers to #2 be "gamed"? As long as we understand the limitations of the measurements, I don't think they can be gamed. However, they can leave a lot of room for doubt. Eg, a coin-weighted poll might only have a response rate of 5% of the coin. If we allow signals to both support or oppose a change, I think that would substantially increase the meaningfulness of the data - at least we know the consensus among those who care / are aware enough to signal (without allowing opposition signaling, a low response rate means we have no idea how many of the non signalers oppose a thing). The transaction signaling can be gamed a bit, because someone can simply spend more money to send more signals. This might favor bad actors a bit (honest actors presumably wouldn't attempt to game the system). Miner signaling doesn't really seem gameable. TBH, developer consensus is probably the most gameable. All it is is talk. Putting coin weight behind it would bias things, and often the loudest/frequentest talkers get an advantage. Putting some major thought into how to de-bias developer consensus seems like the most important thing to figure out. > Perhaps .. we are doomed to this painful process of arguing .. until there's only one opinion left standing.. However, if this is the case, I don't think we can honestly claim that devs don't control the protocol. If we argue until the last left standing, is it even "the developers" in control? Might it rather be the talkers, the yellers, the busy bodies? I can't think of anyone worse being in control. I very much hope we're not doomed to that fate. However, to avoid it, we need to come up with a logical solution that is defendable and encodable into the social fabric of bitcoin (just like sound money and nacho keys nacho cheese). On Thu, Apr 28, 2022 at 12:18 AM Billy Tetrud wrote: > @Felipe > > 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 > > We have up til this point been miraculously lucky that the vast majority > of prominent bitcoin developers are in relative alignment on the big > picture philosophy and have all seemed to be honest and open in general. > However, we cannot rely on this era of philosopher kings to continue. > Relying on experts in this way is an enormous attack vector. It should not > be the "most important" devs who carry the most weight, but weight should > be carried by the logic of what is being said. The speaker should ideally > not matter in consensus building. So I agree with Keagan's implication that > this is not how bitcoin should govern itself. We should move away from > appeals to authority towards something more amorphous and difficult to > control. > > @Jeremy > > if there were a way to sign with a NUMS point for ring signature > purposes > > Do you have any link you could point to about NUMS points? I assume this > would be a way to aggregate coin-weighted signals in a way that helps hide > who signaled in what direction? > > > if NUMS points are common these ring signatures protocols might not be > too useful for collecting signals > > I'm curious: why is it better if its less common? I'm used to privacy > properties increasing as the privacy technique used becomes more common. > > @Erik > > it doesn't address the "what about people who don't know there's a vote > going on" > > how nonexperts can "have a say" when they simply don't understand the > relevant issues. > > I think a useful way to think about this is in terms of preferences and > representation, rather than in the terms of coming to the best technical > solution. The fact of the matter is that value is subjective and therefore > there is no "best" technical solution all the time. Sometimes the > preferences of stakeholders must be weighed and a compromise come to. > Hopefully most of these kinds of compromises can happen in the free market > on upper layers. But certainly some of them happen on the consensus layer. > > An expert with deep knowledge can deeply understand a design or change > well enough to come to a full opinion about it according to their > preferences. But even other experts might not have read enough about a > thing, or just don't have time to delve deeply into that particular aspect. > They'll have to rely partly on their ability to make a determination from > partial knowledge and their ability to evaluate the trustworthiness and > skill of those who have deeper knowledge than them. Nonexperts and > non-technical people have to rely on those kinds of things even more so. > Many people only have social signals to rely on. What do the people they > trust say? > > I believe that the truth gets out eventually. Those who have deep > knowledge will eventually convince those who don't, tho that may take a > long time to play out. As annoying as the twitterati is, I think we should > get used to needing to give their opinions a bit of weight in terms of > measuring consensus. Of course, we shouldn't be making technical decisions > based on what nontechnical people want or think, however, what we should do > is make sure that we are explaining the changes we propose to make clearly > enough that a certainly level of comfort diffuses into the social circles > of people who care about bitcoin but don't understand it at a technical > enough level to participate in technical decision making. At a certain > point, if not enough people are comfortable with a change, the change > shouldn't be made yet until enough people are convinced its probably safe > and probably good. Think of the large set of non-technical people to be a > glue that connects together otherwise unconnected pockets of wisdom. > > Doing things this way would almost certainly lead to slower development. > But development of the consensus layer slowing over time should be what we > all expect, and I daresay what we should all want eventually. > > > it will just be a poll of "people who pay attention to the dev list and > maybe some irc rooms" > > Maybe. But if there were mechanisms for broader consensus measuring, > perhaps more would pay attention. Perhaps some way to affect change would > lead more to have discussions and participate. > > Even if its a small group at first, I think it would be very useful > information to see both who explicitly supports something, who explicitly > is against something, and also who is paying attention but neutral (maybe > even actively signaling as "neutral'). > > > unless there's a great ux around the tooling my guess is that it won't > garner a lot of meaningful data: > > I agree. Tooling would be very important here. > > > > > > > > On Wed, Apr 27, 2022 at 3:13 PM Erik Aronesty wrote: > >> >>> >>> Have you taken a look at my proposal >>> ? >>> The proposal is, to be clear, *not* "voting" but rather polling that isn't >>> programmatically connected to activation. The intention is for people >>> (developers) to look at the polling results and make an educated analysis >>> of it as far as how it should contribute to consensus gathering. >>> >> >> it's cool, and i agree it's somewhat censorship resistant >> >> >>> Let's say everyone who participates in polling broadcasts it along the >>> bitcoin network (a separate network would probably be better, so as to not >>> interfere with normal bitcoin, but I digress), >>> >> >> right, anyone can then publish a json file with polling aggregates at a >> certain block height and anyone can quickly check to see if they are lying >> or missing data >> >> >>> Similar structures could be added to any script configuration to allow >>> signing of polls without any significant exposure. >>> >> >> rubin's suggestion around tapscript anon voting could help with anonymity >> >> .... all of this is cool ... >> >> but it doesn't address the "what about people who don't know there's a >> vote going on" or other the other social issues with "weighted polling" in >> general, like how nonexperts can "have a say" when they simply don't >> understand the relevant issues. i personally feel like i'm "only a very >> little bit up on the issues" and i have more tech knowledge than most >> people i know >> >> also, it will just be a poll of "people who pay attention to the dev list >> and maybe some irc rooms" >> >> might be worth experimenting with... but unless there's a great ux around >> the tooling my guess is that it won't garner a lot of meaningful data: >> >> open source, simple cli, gitian build, installs easily on all platforms, >> works well with bitcoind rpc, works with ledger, can import a seed, etc. >> >> --00000000000011c2a005ddb928e1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
@Keagan
>=C2=A0we have to = have a way (formalized or not) of deciding when the "lesser experts&qu= ot; in aggregate have better judgement.

I = agree. Its certainly convenient for development speed to limit the number o= f cooks in the kitchen. But for the largest cryptocurrency in the world, we= 're going to have to face the reality that the number of stakeholders h= as grown vastly larger than the developer community and those who implicitl= y trust the developer community, or any particular part of the dev communit= y working on any particular upgrade.=C2=A0

<= div>>=C2=A0Perhaps it warrants zooming out beyond even what my propo= sal aims to solve

I very much like the way you fra= med the question, and I think these are important, potentially existential = questions we should urge the bitcoin community to think deeply about.=C2=A0=

> 1. ...=C2=A0 what would be the threshold for= saying "this consensus change is ready for activation"?

This is indeed the basic question.=C2=A0

>=C2=A01a. Does that threshold change based on the natur= e of the consensus change

I don't think the th= reshold of consensus changes should depend on the type of consensus change.= Any consensus change, no matter how small, introduces risk, can cause bugs= , can open a back door. Naturally, simpler changes should be able to *reach= * consensus faster, because presumably it would take less analysis, and be = easier to explain and convince people of. But that doesn't mean the bar= of consensus should be lower. I think it should not. A change may look sma= ll and innocuous=C2=A0when it is in fact not, and it would be less than ide= al for people to try to pretend there's sufficient consensus by insisti= ng that a change is so "small" that no more is needed.
=
> 1b. Do different constituencies (end users, wallets, ex= changes, coinjoin coordinators, layer2 protocols, miners) have a desired mi= nimum or maximum representation in this "threshold"?
There is a lot to say about this simple question. I think it s= hould be recognized that the "say" anyone or any group has depend= s on their total future (or perhaps only total near-term) economic influenc= e on the network. This is related to the concept of the "economic majo= rity". What is the "economic majority"?=C2=A0We could say th= is depends exactly on the proportion of bitcoin you own, but I don't th= ink that would be quite right. For example, a miner that (hypothetically) k= eeps no bitcoin except for what is being changed into fiat has an important= role and significant economic influence on bitcoin. Miners provide a servi= ce. Their livelihood depends on bitcoiners, and the livelihood of bitcoin d= epends in part on miners. Similarly, a vendor who accepts bitcoin directly = but converts it all to fiat provides a service as well. They expand the net= work of where bitcoin is directly useful. People willing to pay for things = in bitcoin also similarly expand bitcoin's network.=C2=A0

I think it only makes sense to align incentives and attempt to= match the amount of representation a group gets to the amount of economic = influence they have on the network. To do otherwise would invite a schism.= =C2=A0

Based on the above, I'm thinking that the= re are only really two components of what should comprise the weight of any= person or group's say: 1. the stake they have in bitcoin, and 2. the v= alue they provide to bitcoin. Let me elaborate:

<= font color=3D"#000000" face=3D"arial, helvetica, sans-serif">Bitcoin has a = purpose. That purpose is as a currency. The directly valuable aspects of th= at are as a store of value and as a means of exchange. The properties of bi= tcoin lead to benefits to using it as both of those things. Therefore, the = stake people have in holding bitcoin should count heavily because the value= of holding is a major purpose of bitcoin. But at the same time the ability= to transact bitcoin should also count pretty heavily because its also a ma= jor purpose of bitcoin and at the same time accepting or spending bitcoin e= xpands the network. If we were able to economically equate those two things= , we might get closer to a way to figure out how to ideally distribute repr= esentation. Similarly, we could add miners and developers into this mix, co= mparing them based on the value they provide to the network.=C2=A0

=
So let:
holdAmount =3D the=C2=A0value of bitcoin they're h= olding over a given period of time T
transactionVolume =3D th= e volume of transaction value over a given period of time T
m= iningVolume =3D the value of bitcoin they mined over time period T
technologyValue =3D the value of new technological developments produ= ced over time period T

A group's representation should =3D= =C2=A0
(holdAmount*A=C2=A0+ transactionVolume*B + miningVolume*C + tech= nologyValue*D)
/
(totalLiveBitcoin*A + totalTransactionVolume*B= =C2=A0+ totalMiningVolume*C + totalTechnologyValue*D)
=

where A through D are constants that relate the value of holding vs the va= lue of transacting vs the value of mining vs the value of building bitcoin = technology. We could split this up so that eg the representation that holde= rs in total should have just by holding is: A/(A+B+C+D)

<= /font>
For example, an equivalence could be: how much value does holding bitco= in give the average user per year? How much value does transacting give the= average user per year? These are fuzzy and subjective and potentially dubi= ous, but bare with me. Let's say that on average, a holder gets a benef= it of 2% of their holdings per year (on a risk adjusted basis). That would = be a benefit of $13.25 billion per year. And let's say that the ~$1.642 trillion of transactions per year=C2=A0bitcoin is doing has about 33% being actual exchanges of goods and services= =C2=A0and for that 33% the transactors in sum also get a benefit of about 2= % of the transacted amount. That would be a benefit of $10.8 billion per ye= ar. If we proxy the value of bitcoin mining to the network as the revenue t= hey received, perhaps this is as much as $15.3 billion. How do we calculate the value of de= velopers? I don't know a good proxy for that. But for kicks, why don= 9;t we say its as much as miners at $15.3 billion.
<= font color=3D"#000000" face=3D"arial, helvetica, sans-serif">
Using= these numbers, the representation for each:

Holders:=C2=A0<= /font>13.25/(= 13.25+10.8+15.3+15.3) =3D 24%
Transactors:=C2=A010.8/(13.25+10.8= +15.3+15.3) =3D 20%
Miners:=C2=A0 15.3/(= 13.25+10.8+15.3+15.3) =3D 27%
Developers: Also 27%

=
Maybe we could approximate that as each of the four categories h= as a 1/4th share of representation. Values of A through D are certainly up = for debate.

In any case, to get back to the questi= on at hand (1b), I don't see any reason to think there's a minimum = or maximum representation for each primary constituency. However, there wou= ld of course be minimum and maximum bounds on our confidence for how much v= alue/stake each constituency has, and therefore a confidence range on how m= uch representation they should have.=C2=A0

But thi= s 4 part group of holders, transactors, miners, and developers seems to mak= e a lot of sense to me. These are the main groups, and any other subgroup c= an neatly fit into one or more of those.

Wit= h the assumption that the above numbers are somewhat accurate, it seems rea= sonable to say that any majority of those four groups should be able to pre= vent a change from happening. Maybe even any 40% of any of those groups. We= re we to roll this all into a single count, 40% of any group of 25% of the = whole is 10%, so it kind of supports the idea of a 90% threshold. Although = of course right now we have a 90% threshold on just miner signaling. But si= nce that's the only direct signaling we have, I think we prudently erre= d on the safe side. But perhaps if we have something near 100% consensus in= support of a change among the other 3 categories, perhaps we could safely = reduce the miner signaling quite a bit, perhaps not to 60% (because of chai= n split concerns) but perhaps to 70% or 75%.=C2=A0=C2=A0

> what tests can we devise to measure those levels of support dir= ectly? If we can't measure it directly, can we measure different indica= tors that would help us infer or solve for the knowledge we want?

For 3 of the 4 groups, there seems to me clear mechanisms w= e can use:=C2=A0
* Holders: Something akin to my=C2=A0coin-weighted polling proposal here.
*= Transactors: Something akin to your transaction signaling proposal above. = Tho I would strongly suggest removing the tie between miner signaling and t= ransaction signaling to make it purely informational.
* Miner sig= naling as usual, or perhaps extended to provide a way for miners to actively = signal against a change.

For developers, I wou= ld say we probably need to come to consensus with discussion, but hopefully= we could be a bit more structured about it. For example, we could get roug= h measures of consensus by gathering explicit reviews on a proposal. Opinio= ns like "I don't like it" or "This is great, let's d= o it!" would count for very little, reviews that look into a particula= r section deeply or review the broad idea as a whole would count a bit more= , and reviews that discuss many good points and reasons about a large fract= ion of the proposal would carry even more weight. This is of course again s= ubjective, but at least it would provide a framework to work within, and a = way to at least approximate a developer consensus weighted by actual knowle= dge of and thought put into the subject. If we went further to attempt to c= ollect together these reviews in a structured way, it would make it easier = for someone to relatively quickly (ie by spending a few hours reading throu= gh reviews) verify for themselves approximately what consensus "is&quo= t;.=C2=A0

> 3. Can any of the answers to #2 be = "gamed"?

As long as we understand the li= mitations of the measurements, I don't think they can be gamed. However= , they can leave a lot of room for doubt. Eg, a coin-weighted poll might on= ly have a response rate of 5% of the coin. If we allow signals to both supp= ort or oppose a change, I think that would substantially increase the meani= ngfulness of the data - at least we know the consensus among those who care= / are aware enough to signal (without allowing opposition signaling, a low= response rate means we have no idea how many of the non signalers oppose a= thing).=C2=A0

The transaction signaling can be ga= med a bit, because someone can simply spend more money to send more signals= . This might favor bad actors a bit (honest actors presumably wouldn't = attempt to game the system).=C2=A0

Miner signaling= doesn't really seem gameable.

TBH, developer = consensus is probably the most gameable. All it is is talk. Putting coin we= ight behind it would bias things, and often the loudest/frequentest=C2=A0ta= lkers get an advantage. Putting some major thought into how to de-bias deve= loper consensus seems like the most important thing to figure out.=C2=A0

> Perhaps .. we are doomed to this painful proces= s of arguing .. until there's=C2=A0only one opinion left standing.. How= ever, if this is the case, I don't think we can honestly claim that dev= s don't control the protocol.

If we argue unti= l the last left standing, is it even "the developers" in control?= Might it rather be the talkers, the yellers, the busy bodies? I can't = think of anyone worse being in control. I very much hope we're not doom= ed to that fate. However, to avoid it, we need to come up with a logical so= lution that is defendable and encodable into the social fabric of bitcoin (= just like sound money and nacho keys nacho cheese).

On Thu, Apr 28, 20= 22 at 12:18 AM Billy Tetrud <billy.tetrud@gmail.com> wrote:
=C2=A0 @Felipe=
>=C2=A0the consensus should follow the current line: discussions a= nd tests carried out by experts. We all know that the most important devs h= ave the most weight in discussions. And that's how it should be<= /div>

We have up til this point been miraculously lucky= that the vast majority of prominent=C2=A0bitcoin developers are in relativ= e alignment on the big picture philosophy and have all seemed to be honest = and open in general. However, we cannot rely on this era of philosopher kin= gs to continue. Relying on experts in this way is an enormous attack vector= . It should not be the "most important" devs who carry the most w= eight, but weight should be carried by the logic of what is being said. The= speaker should ideally not matter in consensus building. So I agree with= =C2=A0Keagan's implication that this is not how bitcoin should govern i= tself. We should move away from appeals to authority towards something more= amorphous and difficult to control.

@Jere= my
>=C2=A0if there were a way to sign with a NUMS point for ring = signature purposes

Do you have any link yo= u could point to about NUMS points? I assume this would be a way to aggrega= te coin-weighted signals in a way that helps hide who signaled in what dire= ction?=C2=A0

>=C2=A0if NUMS points= are common these ring signatures protocols might not be too useful for col= lecting signals=C2=A0

I'm curious: why= is it better if its less common? I'm used to privacy properties increa= sing as the privacy technique used becomes more common.

@Erik
> it doesn't a= ddress the "what about people who don't know there's a vote go= ing on"=C2=A0
> how nonexperts can "have a say"= when they simply don't understand the relevant issues.

<= /div>
I think a useful way to think about this is in terms of preferenc= es and representation, rather than in the terms of coming to the best techn= ical solution. The fact of the matter is that value is subjective and there= fore there is no "best" technical solution all the time. Sometime= s the preferences of stakeholders must be weighed and a compromise=C2=A0com= e to. Hopefully most of these kinds of compromises can happen in the free m= arket on upper layers. But certainly some of them happen on the consensus l= ayer.=C2=A0

An expert with deep knowledge can deep= ly understand a design or change well enough to come to a full opinion abou= t it according to their preferences. But even other experts might not have = read enough about a thing, or just don't have time to delve deeply into= that particular aspect. They'll have to rely partly on their ability t= o make a determination from partial knowledge and their ability to evaluate= the trustworthiness and skill of those who have deeper knowledge than them= . Nonexperts=C2=A0and non-technical people have to rely on those kinds of t= hings even more so. Many people only have social signals to rely on. What d= o the people they trust say?=C2=A0

I believe that = the truth gets out eventually. Those who have deep knowledge will eventuall= y convince those who don't, tho that may take a long time to play out. = As annoying as the twitterati is, I think we should get used to needing to = give their opinions a bit of weight in terms of measuring consensus. Of cou= rse, we shouldn't be making technical decisions based on what nontechni= cal people want or think, however, what we should do is make sure that we a= re explaining the changes we propose to make clearly enough that a certainl= y level of comfort diffuses into the social circles of people who care abou= t bitcoin but don't understand it at a technical enough level to partic= ipate in technical decision making. At a certain point, if not enough peopl= e are comfortable with a change, the change shouldn't be made yet until= enough people are convinced its probably safe and probably good. Think of = the large set of non-technical people to be a glue that connects together o= therwise unconnected pockets of wisdom.=C2=A0

Doin= g things this way would almost certainly lead to slower development. But de= velopment of the consensus layer slowing over time should be what we all ex= pect, and I daresay what we should all want eventually.=C2=A0
> it will just be a poll of "people who pay attention t= o the dev list and maybe some irc rooms"

= Maybe. But if there were mechanisms for broader consensus measuring, perhap= s more would pay attention. Perhaps some way to affect change would lead mo= re to have discussions and participate.=C2=A0

Even= if its a small group at first, I think it would be very useful information= to see both who explicitly supports something, who explicitly is against s= omething, and also who is paying attention but neutral (maybe even actively= signaling as "neutral').

> unless the= re's a great ux around the tooling my guess is that it won't garner= a lot of meaningful data:

I agree. Tooling would = be very important here.







On Wed, Apr 27, 2022 at= 3:13 PM Erik Aronesty <erik@q32.com> wrote:


H= ave you taken a look at my proposal? = The proposal is, to be clear, *not* "voting" but rather polling t= hat isn't programmatically connected to activation. The intention is fo= r people (developers) to look at the polling results and make an educated a= nalysis of it as far as how it should contribute to consensus gathering.=C2= =A0

it's cool, and i agree = it's somewhat censorship resistant
=C2=A0
Let's say eve= ryone who participates in polling broadcasts it along the bitcoin network (= a separate network would probably be better, so as to not interfere with no= rmal bitcoin, but I digress),

= right, anyone can then publish a json file with polling aggregates at a cer= tain block height and anyone can quickly check to see if they are lying or = missing data
=C2=A0
Similar structures could be added to any script co= nfiguration to allow signing of polls without any significant exposure.
=

rubin's suggestion around = tapscript=C2=A0anon voting could help with anonymity
=C2=A0
.... all = of this is cool ...

but it doesn't address the= "what about people who don't know there's a vote going on&quo= t;=C2=A0 or other the other social issues with "weighted polling"= in general, like how nonexperts can "have a say" when they simpl= y don't understand the relevant issues.=C2=A0 i personally feel like i&= #39;m "only a very little bit up on the issues" and i have more t= ech knowledge than most people i know

also, it will just be a poll o= f "people who pay attention to the dev list and maybe some irc rooms&q= uot;

might be worth experimenting with... but unless there's a= great ux around the tooling my guess is that it won't garner a lot of = meaningful data:

open source, simple cli, gitian b= uild, installs easily on all platforms, works well with bitcoind rpc, works= with ledger, can import a seed, etc.=C2=A0=C2=A0

--00000000000011c2a005ddb928e1--