Gregory Maxwell [ARCHIVE] on Nostr: 📅 Original date posted:2013-02-13 📝 Original message:On Wed, Feb 13, 2013 at ...
đź“… Original date posted:2013-02-13
📝 Original message:On Wed, Feb 13, 2013 at 3:10 PM, Stephen Pair <stephen at bitpay.com> wrote:
> If you've already validated the majority of transactions in a block, isn't validating the block not all that compute intensive? Thus, it's really not blocks that should be used to impose any sort of scarcity, but rather it's the costs associated with the validation and propagation of the transactions themselves...which is the way it should be.
The cost to whom? This is important because the cost of validating
blocks is borne by all the participants in Bitcoin— or at least all
the participants who haven't given up on the decenteralized trustless
stuff and are simply trusting someone else. Even a small cost
becomes large when hundreds of thousands.
And perhaps you don't lament people delegating their trust to large
entities— but keep in mind: Bitcoin was created for the express
purpose of creating a money system which didn't require trust because
it was based on cryptographic proof— mathematical law— instead of
politics and human law. Take that away and you have a really poorly
understood inefficient system operated by entities which are less
trustworthy and rightfully entitled to authority than the ones
operating the established major currencies.
> When I think about issues like this, I like to remind myself that the mesh network isn't really an essential part of Bitcoin.
Thats absolutely true— but I don't know that it's relevant in this case.
> Nodes can at some point start to charge fees to collect and distribute transactions and blocks.
They can— but doing so would radically undermine Bitcoin.
A refresher:
If you combine digital signatures with simple transaction rules you
can have a purely autonomous monetary system based entirely on math.
It would be perfect, anonymous, scalable ... except for the problem
of double spending. To solve double spending the participants must
agree on which of a set of duplicated payments is one the
authoritative one. Coming to this agreement is fundamentally hard just
at the basics of physics— a result of relativity is that observers
will perceive events in different orders depending on the observer's
and the events relative locations. If no observer is privileged (a
decenteralized system) you have to have a way of reaching a consensus.
This kind of efficient consensus we need— which which participants can
join or enter at any time, which doesn't require exponential
communication, and which is robust against sock-puppet participants—
was long believed to be practically impossible. Bitcoin solved the
problem by using hashcash to vote— because real resources were forever
expended in the process the sock-puppet problem is solved. But the
vote only works if everyone can see the results of it: We assume that
the majority of hashpower isn't a dishonest party, and that honest
nodes can't be prevented from hearing the honest history. Nodes choose
then rules-valid history that has the most work (votes) expended on
it... but they can only choose among what they know of. As Satoshi,
wrote: "[Bitcoin] takes advantage of the nature of information being
easy to spread but hard to stifle".
The requirement for everyone to hear the history doesn't get talked
about much— at least with reasonably sized blocks and today's
technical and common political climates the assumption that
information is easy to spread but hard to stifle is a very sound one.
It's a good thing, because this assumption is even more important than
the hash-power honesty assumption (a malicious party with a simple
majority of hashpower is much weaker than one who can partition the
network). ... but that all goes out the window if communicating
blocks is costly enough that the only way to sustain it is to
jealously guard and charge for access/forwarding.
The consequence of such a change is that the Bitcoin consensus
algorithm would be handicapped. How long must you wait before you know
that the history you have won't get replaced by a more authoritative
one? Today an hour or two seems relatively solid. In a world with
non-uniform block forwarding perhaps it takes days— if ever— before
any participant is confident that there isn't a better history
lurking.
All doubly so if the bookkeeping required for this payment ends up
necessitating additional transactions and adds to the load.
[This is also the flaw in the 'Red Balloons' paper, making
transactions a dozen times longer just to attach credit for forwarding
doesn't seem wise compared to keep transactions so cheap to transmit
that even a small number of altruists make the equilibrium state be
liberally-forwarding]
> They would also charge for the propagation of blocks based on the work required to validate them.
Large miners would obviously locate and connect to each other. Even
enormous blocks are no problems for big industrial players.
Don't want to pay the cost to get their big blocks from them? Your
loss: If you don't take their blocks and they constitute the longest
history, you'll be believing the wrong history until such a time as
you wise up and pay the piper. Your transactions will be reversed and
you'll lose money.
You can hypothesize some cartel behavior external to the rules of the
system— where by some consensus mechanism (????) some super large mass
of participants agree to reject blocks according 'extrajudicial
rules', some rule existing outside of Bitcoin itself— but there must
be a consensus because rejecting blocks by yourself only gets you
ripped off.
I don't see how this works— it basically embeds another hard consensus
problem (what is the criteria for blocks to be valid?) inside our
solution to a hard consensus problem (which are the best valid
blocks?), but doesn't benefit from the same incentive structure—
locally-greedy miners obviously want to produce the largest blocks
possible— and in hashpower consensus non-miners don't have a voice.
That might be acceptable for ordering, but now you're deciding on the
rules of the system which all non-trusting participants must validate.
You could instead solve that consensus problem with politically
stipulated regulation or industry cartels, or good old-fashion kneecap
busting or whathave you. But then Bitcoin loses the transparency and
determinism that make it worthwhile.
I sure hope to hear something better than that.
This is basically the gap: Right now I could afford hardware that
could process multiple gigabyte blocks— maybe it only costs as much as
a small house which is not an insane cost for a large business. But
the cost would be decidedly non-negligible and it would be rational
for me to let someone else take it. Applied to everyone, you end up
with a small number of the most vested parties doing all the
validation, and so they have full ability to manipulate like today's
central banks.
For a great many to perform validation— keeping the system honest and
decentralized as it was envisioned— without worrying about the cost
requires that the cost be almost unnoticeable. A tiny fraction of what
some industrial player— who profit from consolidation and
manipulation— could easily handle. I'm skeptical about the system
internally self-regulating the size because of what gets called
"evaporative cooling" in social sciences— the cost goes up, some
people cross their "hey, I'm better off if I externalize the cost of
keeping Bitcoin secure by not participating" boundary and lose their
voice.
There is probably some equilibrium where Bitcoin is compromised
frequently enough that more validators spin up (and ignore past rule
violations which can't be undone without economic Armageddon), and eat
the costs even though there is an insane amount of freeloading going
on. The trustworthiness of today's monetary systems suggests to me
that if there is an equilibrium point here it isn't a very trustworthy
one. There is an even stronger equilibrium state available too: don't
use Bitcoin at at all. If you want a system which is dominated by
political whim and expedience and large industrial players and is, as
a result, only somewhat trustworthy you can just use government issued
currencies— they're well established and have a lot less overhead than
this decentralized stuff.
(And generally— Security makes for a terrible market, security is
naturally a lemon market. The need is only clear in hindsight. In our
case it would be one with an enormous freeloading problem)
> P.S. such a fee structure would address the spam issue with economics rather than rules about spammy transactions
Our current anti-spam one is primarily an economic one— transactions
prioritized based on fee per KB in scarce blocks or priority (another
scarce commodity), the only really non-very-economic part is the
very-small-output heuristic. I would argue that our economic
anti-spam mechanisms are currently failing at their job: Various
parties are engaging in transaction patterns with near pessimal
efficiency— using a dozen (— sometimes thousands) of transactions
where one or two would be adequate. This isn't limited to just one or
two sites— many parties are using inefficient transaction patterns—
creating externalized costs on all future Bitcoin users—, simply
because there is hardly any incentive not to.
Though much discussion among technical people, no one has come up with
any reparametrizations that seem likely to achieve the desired
incentive alignment in the near term. Of all the elements of the
anti-spam policy, it seems to me that the least economic— the minimum
output size— is actually the most effective (most spam suppression
relative to efficient usage suppression), especially as we move to
focusing on the UTXO set size. (The minimum output value requirement
discourages the creation of UTXOs which will never be economically
rational to redeem).
Published at
2023-06-07 11:32:34Event JSON
{
"id": "d15e2b3c390e83aaa59e2c40641bc09ba24d5ed44076063fb4a594bfa89a98d3",
"pubkey": "4aa6cf9aa5c8e98f401dac603c6a10207509b6a07317676e9d6615f3d7103d73",
"created_at": 1686137554,
"kind": 1,
"tags": [
[
"e",
"2e561ad47e92fd0bdf1706fe9a8ca4496d0e4a334280ca5b47233a968945935f",
"",
"root"
],
[
"e",
"c18cb9c5c558f15a6d51930e6d21657eb889b381ef5908ff883ace01c6b5c731",
"",
"reply"
],
[
"p",
"daa2fc676a25e3b5b45644540bcbd1e1168b111427cd0e3cf19c56194fb231aa"
]
],
"content": "📅 Original date posted:2013-02-13\n📝 Original message:On Wed, Feb 13, 2013 at 3:10 PM, Stephen Pair \u003cstephen at bitpay.com\u003e wrote:\n\u003e If you've already validated the majority of transactions in a block, isn't validating the block not all that compute intensive? Thus, it's really not blocks that should be used to impose any sort of scarcity, but rather it's the costs associated with the validation and propagation of the transactions themselves...which is the way it should be.\n\nThe cost to whom? This is important because the cost of validating\nblocks is borne by all the participants in Bitcoin— or at least all\nthe participants who haven't given up on the decenteralized trustless\nstuff and are simply trusting someone else. Even a small cost\nbecomes large when hundreds of thousands.\n\nAnd perhaps you don't lament people delegating their trust to large\nentities— but keep in mind: Bitcoin was created for the express\npurpose of creating a money system which didn't require trust because\nit was based on cryptographic proof— mathematical law— instead of\npolitics and human law. Take that away and you have a really poorly\nunderstood inefficient system operated by entities which are less\ntrustworthy and rightfully entitled to authority than the ones\noperating the established major currencies.\n\n\u003e When I think about issues like this, I like to remind myself that the mesh network isn't really an essential part of Bitcoin.\n\nThats absolutely true— but I don't know that it's relevant in this case.\n\n\u003e Nodes can at some point start to charge fees to collect and distribute transactions and blocks.\n\nThey can— but doing so would radically undermine Bitcoin.\n\nA refresher:\n\nIf you combine digital signatures with simple transaction rules you\ncan have a purely autonomous monetary system based entirely on math.\nIt would be perfect, anonymous, scalable ... except for the problem\nof double spending. To solve double spending the participants must\nagree on which of a set of duplicated payments is one the\nauthoritative one. Coming to this agreement is fundamentally hard just\nat the basics of physics— a result of relativity is that observers\nwill perceive events in different orders depending on the observer's\nand the events relative locations. If no observer is privileged (a\ndecenteralized system) you have to have a way of reaching a consensus.\n\nThis kind of efficient consensus we need— which which participants can\njoin or enter at any time, which doesn't require exponential\ncommunication, and which is robust against sock-puppet participants—\nwas long believed to be practically impossible. Bitcoin solved the\nproblem by using hashcash to vote— because real resources were forever\nexpended in the process the sock-puppet problem is solved. But the\nvote only works if everyone can see the results of it: We assume that\nthe majority of hashpower isn't a dishonest party, and that honest\nnodes can't be prevented from hearing the honest history. Nodes choose\nthen rules-valid history that has the most work (votes) expended on\nit... but they can only choose among what they know of. As Satoshi,\nwrote: \"[Bitcoin] takes advantage of the nature of information being\neasy to spread but hard to stifle\".\n\nThe requirement for everyone to hear the history doesn't get talked\nabout much— at least with reasonably sized blocks and today's\ntechnical and common political climates the assumption that\ninformation is easy to spread but hard to stifle is a very sound one.\nIt's a good thing, because this assumption is even more important than\nthe hash-power honesty assumption (a malicious party with a simple\nmajority of hashpower is much weaker than one who can partition the\nnetwork). ... but that all goes out the window if communicating\nblocks is costly enough that the only way to sustain it is to\njealously guard and charge for access/forwarding.\n\nThe consequence of such a change is that the Bitcoin consensus\nalgorithm would be handicapped. How long must you wait before you know\nthat the history you have won't get replaced by a more authoritative\none? Today an hour or two seems relatively solid. In a world with\nnon-uniform block forwarding perhaps it takes days— if ever— before\nany participant is confident that there isn't a better history\nlurking.\n\nAll doubly so if the bookkeeping required for this payment ends up\nnecessitating additional transactions and adds to the load.\n\n[This is also the flaw in the 'Red Balloons' paper, making\ntransactions a dozen times longer just to attach credit for forwarding\ndoesn't seem wise compared to keep transactions so cheap to transmit\nthat even a small number of altruists make the equilibrium state be\nliberally-forwarding]\n\n\u003e They would also charge for the propagation of blocks based on the work required to validate them.\n\nLarge miners would obviously locate and connect to each other. Even\nenormous blocks are no problems for big industrial players.\n\nDon't want to pay the cost to get their big blocks from them? Your\nloss: If you don't take their blocks and they constitute the longest\nhistory, you'll be believing the wrong history until such a time as\nyou wise up and pay the piper. Your transactions will be reversed and\nyou'll lose money.\n\nYou can hypothesize some cartel behavior external to the rules of the\nsystem— where by some consensus mechanism (????) some super large mass\nof participants agree to reject blocks according 'extrajudicial\nrules', some rule existing outside of Bitcoin itself— but there must\nbe a consensus because rejecting blocks by yourself only gets you\nripped off.\n\nI don't see how this works— it basically embeds another hard consensus\nproblem (what is the criteria for blocks to be valid?) inside our\nsolution to a hard consensus problem (which are the best valid\nblocks?), but doesn't benefit from the same incentive structure—\nlocally-greedy miners obviously want to produce the largest blocks\npossible— and in hashpower consensus non-miners don't have a voice.\nThat might be acceptable for ordering, but now you're deciding on the\nrules of the system which all non-trusting participants must validate.\n\nYou could instead solve that consensus problem with politically\nstipulated regulation or industry cartels, or good old-fashion kneecap\nbusting or whathave you. But then Bitcoin loses the transparency and\ndeterminism that make it worthwhile.\n\nI sure hope to hear something better than that.\n\nThis is basically the gap: Right now I could afford hardware that\ncould process multiple gigabyte blocks— maybe it only costs as much as\na small house which is not an insane cost for a large business. But\nthe cost would be decidedly non-negligible and it would be rational\nfor me to let someone else take it. Applied to everyone, you end up\nwith a small number of the most vested parties doing all the\nvalidation, and so they have full ability to manipulate like today's\ncentral banks.\n\nFor a great many to perform validation— keeping the system honest and\ndecentralized as it was envisioned— without worrying about the cost\nrequires that the cost be almost unnoticeable. A tiny fraction of what\nsome industrial player— who profit from consolidation and\nmanipulation— could easily handle. I'm skeptical about the system\ninternally self-regulating the size because of what gets called\n\"evaporative cooling\" in social sciences— the cost goes up, some\npeople cross their \"hey, I'm better off if I externalize the cost of\nkeeping Bitcoin secure by not participating\" boundary and lose their\nvoice.\n\nThere is probably some equilibrium where Bitcoin is compromised\nfrequently enough that more validators spin up (and ignore past rule\nviolations which can't be undone without economic Armageddon), and eat\nthe costs even though there is an insane amount of freeloading going\non. The trustworthiness of today's monetary systems suggests to me\nthat if there is an equilibrium point here it isn't a very trustworthy\none. There is an even stronger equilibrium state available too: don't\nuse Bitcoin at at all. If you want a system which is dominated by\npolitical whim and expedience and large industrial players and is, as\na result, only somewhat trustworthy you can just use government issued\ncurrencies— they're well established and have a lot less overhead than\nthis decentralized stuff.\n\n(And generally— Security makes for a terrible market, security is\nnaturally a lemon market. The need is only clear in hindsight. In our\ncase it would be one with an enormous freeloading problem)\n\n\u003e P.S. such a fee structure would address the spam issue with economics rather than rules about spammy transactions\n\nOur current anti-spam one is primarily an economic one— transactions\nprioritized based on fee per KB in scarce blocks or priority (another\nscarce commodity), the only really non-very-economic part is the\nvery-small-output heuristic. I would argue that our economic\nanti-spam mechanisms are currently failing at their job: Various\nparties are engaging in transaction patterns with near pessimal\nefficiency— using a dozen (— sometimes thousands) of transactions\nwhere one or two would be adequate. This isn't limited to just one or\ntwo sites— many parties are using inefficient transaction patterns—\ncreating externalized costs on all future Bitcoin users—, simply\nbecause there is hardly any incentive not to.\n\nThough much discussion among technical people, no one has come up with\nany reparametrizations that seem likely to achieve the desired\nincentive alignment in the near term. Of all the elements of the\nanti-spam policy, it seems to me that the least economic— the minimum\noutput size— is actually the most effective (most spam suppression\nrelative to efficient usage suppression), especially as we move to\nfocusing on the UTXO set size. (The minimum output value requirement\ndiscourages the creation of UTXOs which will never be economically\nrational to redeem).",
"sig": "6b749c9821fd084f4af310e4cfc371cf4e5b272f22a085e487c7b68b96b1669a62d283e6b33cfbd3d9d1d2bae1ece3aac2d85943467688b4ca7b05c472f30bc2"
}