Mariusz Nowostawski [ARCHIVE] on Nostr: š
Original date posted:2015-11-14 š Original message:> Date: Fri, 13 Nov 2015 ...
š
Original date posted:2015-11-14
š Original message:> Date: Fri, 13 Nov 2015 11:37:51 -0500
> From: Emin G?n Sirer <el33th4x0r at gmail.com>
> To: bitcoin-dev at lists.linuxfoundation.org
> Subject: [bitcoin-dev] How to evaluate block size increase
> suggestions.
> Message-ID:
> <CAPkFh0s-o6BXAEC-s9s1UmFwVfMFQKStoJaM0u2Lct9yiP5QBQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> By now, we have seen quite a few proposals for the block size increase.
> It's hard not to notice that there are potentially infinitely many
> functions for future block size increases. One could, for instance, double
> every N years for any rational number N, one could increase linearly, one
> could double initially then increase linearly, one could ask the miners to
> vote on the size, one could couple the block size increase to halvings,
> etc. Without judging any of these proposals on the table, one can see that
> there are countless alternative functions one could imagine creating.
>
> I'd like to ask a question that is one notch higher: Can we enunciate what
> grand goals a truly perfect function would achieve? That is, if we could
> look into the future and know all the improvements to come in network
> access technologies, see the expansion of the Bitcoin network across the
> globe, and precisely know the placement and provisioning of all future
> nodes, what metrics would we care about as we craft a function to fit what
> is to come?
>
> To be clear, I'd like to avoid discussing any specific block size increase
> function. That's very much the tangible (non-meta) block size debate, and
> everyone has their opinion and best good-faith attempt at what that
> function should look like. I've purposefully stayed out of that issue,
> because there are too many options and no metrics for evaluating proposals.
>
> Instead, I'm asking to see if there is some agreement on how to evaluate a
> good proposal. So, the meta-question: if we were looking at the best
> possible function, how would we know? If we have N BIPs to choose from,
> what criteria do we look for?
>
> To illustrate, a possible meta goal might be: "increase the block size,
> while ensuring that large miners never have an advantage over small miners
> that [they did not have in the preceding 6 months, in 2012, pick your time
> frame, or else specify the advantage in an absolute fashion]." Or "increase
> block size as much as possible, subject to the constraint that 90% of the
> nodes on the network are no more than 1 minute behind one of the tails of
> the blockchain 99% of the time." Or "do not increase the blocksize until at
> least date X." Or "the increase function should be monotonic." And it's
> quite OK (and probably likely) to have a combination of these kinds of
> metrics and constraints.
>
> For disclosure, I personally do not have a horse in the block size debate,
> besides wanting to see Bitcoin evolve and get more widely adopted. I ask
> because as an academic, I'd like to understand if we can use various
> simulation and analytic techniques to examine the proposals. A second
> reason is that it is very easy to have a proliferation of block size
> increase proposals, and good engineering would ask that we define the
> meta-criteria first and then pick. To do that, we need some criteria for
> judging proposals other than gut feeling.
>
> Of course, even with meta-criteria in hand, there will be room for lots of
> disagreement because we do not actually know the future and reasonable
> people can disagree on how things will evolve. I think this is good because
> it makes it easier to agree on meta-criteria than on an actual, specific
> function for increasing the block size.
>
> It looks like some specific meta-level criteria would help more at this
> point than new proposals all exploring a different variants of block size
> increase schedules.
>
> Best,
>
> - egs
Hi,
Good point. I found it also to be important. Enumerating first exactly
WHAT and WHY is being solved and then formulating HOW the proposed
solutions can be evaluated, resonates with me, probably because I'm an
academic. We need to be able to predict if a given proposal addresses
the actual problem at hand and we need to know how to evaluate the
proposals.
But first, we need to re-evaluate the problem. I think the original
problem of the increasing demands on the transaction throughput of the
bitcoin blockchain have been derailed into a rather constrained
discussion on the block size increase. This is fundamentally broken. The
debate should be reverted back to the actual problem: how to deal with
the increasing demands of the transaction throughput on the bitcoin
blockchain, what exactly is the problem, and what possible ways exist in
dealing with those problems? In other words, how to deal with the
scalability of the bitcoin blockchain.
Somewhat surprisingly, all the solutions proposals so far focused on a
"centralized" model in which Bitcoin blockchain plays the central role
in any future economy. Bitcoin has been compared to VISA and questions
have been asked how to handle 1000s of transactions per second - via the
Bitcoin blockchain. Should any form of electronic value transfer such as
assets, currencies, etc be handled by THE SINGLE CHAIN? A single chain
that does it ALL? Is that the objective for the Bitcoin blockchain?
There are some contradictions: from one hand the Bitcoin blockchain
offers transparent, distributed ledger that can be used for verification
of transactions, which is a good thing. At the same time, it uses p2p
technology, consensus, and limited transaction throughput (regardless of
where the actual block size limit sits), which are bad when considering
processing and validating large volumes of financial transactions such
as currently processed by VISA.
Planning the Bitcoin blockchain to handle everything will simply never
scale, it might turn out impossible, and also it will hinder innovation,
and can ultimately work against the Bitcoin blockchain (e.g. by
inadvertent and irreversible centralization of verification nodes, or
simply reducing the full verification nodes count).
(Devil's advocate): limit stays on 1MB and there are more transactions
generated every 10min that can potentially fit into the block. Then,
this follows:
1. There will be a strong incentive for fees to grow.
Is it a bad thing? Are growing fees unavoidable anyway? Miners need to
recover the costs of mining when the crossing-point of rewards/fees
happens, and that means growing fees, right? Can this be modeled? Can
we predict how much the fees will actually grow to weed out all the
"noise" transactions that currently get through because it is cheap to
do so?
2. Some transactions will simply never made it to the chain.
Is it a bad thing? Perhaps it is just a self-adaptation to weed out
"invaluable" transactions from the system? Do we need to process and
cater for ALL the transactions? Including all the NOISE that doesn't
really contribute to anything? Can we model this?
Personally, I think transaction fees for electronic transfers should be
close to ZERO, but, at the same time, I think transaction costs of
Bitcoin blockchain should be high enough to keep this chain special,
noise free, and compact, with large number of validating nodes working
in p2p fashion.
So are points 1 and 2 really fundamentally BAD, or are they just a
self-regulating anti-noise mechanism? I can pack-up thousands of
transactions in auxiliary systems, and validate them via a SINGLE
bitcoin blockchain transaction, and this would scale.
3. Companies generating large number of transactions will have to look
into ways of saving costs and combining multiple individual transactions
into larger ones to save on FEE costs.
Is it a bad thing? No - it is a very good thing, and the sooner it
happens the better ;)
4. Companies, governments and institutions would have to look into ways
of improving their own performance and scalability OUTSIDE of the
Bitcoin blockchain. For example through client-server, extremely
efficient centralised blockchains, Open Chain-like models, and only
using Bitcoin blockchain for validation/verification in a transparent
and verifiable manner. How about running thousands of financial
transactions per second on open chain and only recording merkel root
hashes for batches of transactions every 10min in a Bitcoin blockchain
for transparency and verification?
So, coming back to the original question about CRITERIA:
*1* The ability to setup and run low-cost fully validating node should
remain the same or should improve; upon deployment of a given proposal
there should be an increase in a number of fully validating nodes, or at
worst, there should be no decrease.
*2* The ability to include additional data into Bitcoin blockchain (e.g.
via OP_RETURN) should improve or, at worst, remain the same as it is now.
*3* Upon deployment of a given proposal, the noise in the ledger should
be reduced, or at worst, remain the same.
*4* A proposal should address long-term scalability, and offer the
possibility of combining Bitcoin blockchain with well-defined auxiliary
protocols to offer high-transaction throughputs.
cheers
Mariusz
Published at
2023-06-07 17:44:48Event JSON
{
"id": "9ef11e2f58a0fbcc67451ffec28566e9afc2d896141dc36fae73b74084a13976",
"pubkey": "d1110ffc3652a8d60a46476708ee56ca3462a1a90d2729fb43c9df2953a96da2",
"created_at": 1686159888,
"kind": 1,
"tags": [
[
"e",
"3a0a71e06daf4df40d34d7d4df38f6afd927082ae4667eeee9d89bbe73cc655b",
"",
"root"
],
[
"e",
"0eac05ed290e1191601b527e81f6aaa4e0adb8c2c33093c1f4dbd1166e9887aa",
"",
"reply"
],
[
"p",
"96b5dcd8eedfa403b3a94c15f3bab1cb084736a0f2f1301119d1819109ecc06d"
]
],
"content": "š
Original date posted:2015-11-14\nš Original message:\u003e Date: Fri, 13 Nov 2015 11:37:51 -0500\n\u003e From: Emin G?n Sirer \u003cel33th4x0r at gmail.com\u003e\n\u003e To: bitcoin-dev at lists.linuxfoundation.org\n\u003e Subject: [bitcoin-dev] How to evaluate block size increase\n\u003e \tsuggestions.\n\u003e Message-ID:\n\u003e \t\u003cCAPkFh0s-o6BXAEC-s9s1UmFwVfMFQKStoJaM0u2Lct9yiP5QBQ at mail.gmail.com\u003e\n\u003e Content-Type: text/plain; charset=\"utf-8\"\n\u003e \n\u003e By now, we have seen quite a few proposals for the block size increase.\n\u003e It's hard not to notice that there are potentially infinitely many\n\u003e functions for future block size increases. One could, for instance, double\n\u003e every N years for any rational number N, one could increase linearly, one\n\u003e could double initially then increase linearly, one could ask the miners to\n\u003e vote on the size, one could couple the block size increase to halvings,\n\u003e etc. Without judging any of these proposals on the table, one can see that\n\u003e there are countless alternative functions one could imagine creating.\n\u003e \n\u003e I'd like to ask a question that is one notch higher: Can we enunciate what\n\u003e grand goals a truly perfect function would achieve? That is, if we could\n\u003e look into the future and know all the improvements to come in network\n\u003e access technologies, see the expansion of the Bitcoin network across the\n\u003e globe, and precisely know the placement and provisioning of all future\n\u003e nodes, what metrics would we care about as we craft a function to fit what\n\u003e is to come?\n\u003e \n\u003e To be clear, I'd like to avoid discussing any specific block size increase\n\u003e function. That's very much the tangible (non-meta) block size debate, and\n\u003e everyone has their opinion and best good-faith attempt at what that\n\u003e function should look like. I've purposefully stayed out of that issue,\n\u003e because there are too many options and no metrics for evaluating proposals.\n\u003e \n\u003e Instead, I'm asking to see if there is some agreement on how to evaluate a\n\u003e good proposal. So, the meta-question: if we were looking at the best\n\u003e possible function, how would we know? If we have N BIPs to choose from,\n\u003e what criteria do we look for?\n\u003e \n\u003e To illustrate, a possible meta goal might be: \"increase the block size,\n\u003e while ensuring that large miners never have an advantage over small miners\n\u003e that [they did not have in the preceding 6 months, in 2012, pick your time\n\u003e frame, or else specify the advantage in an absolute fashion].\" Or \"increase\n\u003e block size as much as possible, subject to the constraint that 90% of the\n\u003e nodes on the network are no more than 1 minute behind one of the tails of\n\u003e the blockchain 99% of the time.\" Or \"do not increase the blocksize until at\n\u003e least date X.\" Or \"the increase function should be monotonic.\" And it's\n\u003e quite OK (and probably likely) to have a combination of these kinds of\n\u003e metrics and constraints.\n\u003e \n\u003e For disclosure, I personally do not have a horse in the block size debate,\n\u003e besides wanting to see Bitcoin evolve and get more widely adopted. I ask\n\u003e because as an academic, I'd like to understand if we can use various\n\u003e simulation and analytic techniques to examine the proposals. A second\n\u003e reason is that it is very easy to have a proliferation of block size\n\u003e increase proposals, and good engineering would ask that we define the\n\u003e meta-criteria first and then pick. To do that, we need some criteria for\n\u003e judging proposals other than gut feeling.\n\u003e \n\u003e Of course, even with meta-criteria in hand, there will be room for lots of\n\u003e disagreement because we do not actually know the future and reasonable\n\u003e people can disagree on how things will evolve. I think this is good because\n\u003e it makes it easier to agree on meta-criteria than on an actual, specific\n\u003e function for increasing the block size.\n\u003e \n\u003e It looks like some specific meta-level criteria would help more at this\n\u003e point than new proposals all exploring a different variants of block size\n\u003e increase schedules.\n\u003e \n\u003e Best,\n\u003e \n\u003e - egs\n\n\n\nHi,\n\nGood point. I found it also to be important. Enumerating first exactly\nWHAT and WHY is being solved and then formulating HOW the proposed\nsolutions can be evaluated, resonates with me, probably because I'm an\nacademic. We need to be able to predict if a given proposal addresses\nthe actual problem at hand and we need to know how to evaluate the\nproposals.\n\nBut first, we need to re-evaluate the problem. I think the original\nproblem of the increasing demands on the transaction throughput of the\nbitcoin blockchain have been derailed into a rather constrained\ndiscussion on the block size increase. This is fundamentally broken. The\ndebate should be reverted back to the actual problem: how to deal with\nthe increasing demands of the transaction throughput on the bitcoin\nblockchain, what exactly is the problem, and what possible ways exist in\ndealing with those problems? In other words, how to deal with the\nscalability of the bitcoin blockchain.\n\n\nSomewhat surprisingly, all the solutions proposals so far focused on a\n\"centralized\" model in which Bitcoin blockchain plays the central role\nin any future economy. Bitcoin has been compared to VISA and questions\nhave been asked how to handle 1000s of transactions per second - via the\nBitcoin blockchain. Should any form of electronic value transfer such as\nassets, currencies, etc be handled by THE SINGLE CHAIN? A single chain\nthat does it ALL? Is that the objective for the Bitcoin blockchain?\nThere are some contradictions: from one hand the Bitcoin blockchain\noffers transparent, distributed ledger that can be used for verification\nof transactions, which is a good thing. At the same time, it uses p2p\ntechnology, consensus, and limited transaction throughput (regardless of\nwhere the actual block size limit sits), which are bad when considering\nprocessing and validating large volumes of financial transactions such\nas currently processed by VISA.\n\nPlanning the Bitcoin blockchain to handle everything will simply never\nscale, it might turn out impossible, and also it will hinder innovation,\nand can ultimately work against the Bitcoin blockchain (e.g. by\ninadvertent and irreversible centralization of verification nodes, or\nsimply reducing the full verification nodes count).\n\n\n(Devil's advocate): limit stays on 1MB and there are more transactions\ngenerated every 10min that can potentially fit into the block. Then,\nthis follows:\n\n1. There will be a strong incentive for fees to grow.\nIs it a bad thing? Are growing fees unavoidable anyway? Miners need to\nrecover the costs of mining when the crossing-point of rewards/fees\nhappens, and that means growing fees, right? Can this be modeled? Can\nwe predict how much the fees will actually grow to weed out all the\n\"noise\" transactions that currently get through because it is cheap to\ndo so?\n\n2. Some transactions will simply never made it to the chain.\nIs it a bad thing? Perhaps it is just a self-adaptation to weed out\n\"invaluable\" transactions from the system? Do we need to process and\ncater for ALL the transactions? Including all the NOISE that doesn't\nreally contribute to anything? Can we model this?\n\nPersonally, I think transaction fees for electronic transfers should be\nclose to ZERO, but, at the same time, I think transaction costs of\nBitcoin blockchain should be high enough to keep this chain special,\nnoise free, and compact, with large number of validating nodes working\nin p2p fashion.\n\nSo are points 1 and 2 really fundamentally BAD, or are they just a\nself-regulating anti-noise mechanism? I can pack-up thousands of\ntransactions in auxiliary systems, and validate them via a SINGLE\nbitcoin blockchain transaction, and this would scale.\n\n\n3. Companies generating large number of transactions will have to look\ninto ways of saving costs and combining multiple individual transactions\ninto larger ones to save on FEE costs.\nIs it a bad thing? No - it is a very good thing, and the sooner it\nhappens the better ;)\n\n\n4. Companies, governments and institutions would have to look into ways\nof improving their own performance and scalability OUTSIDE of the\nBitcoin blockchain. For example through client-server, extremely\nefficient centralised blockchains, Open Chain-like models, and only\nusing Bitcoin blockchain for validation/verification in a transparent\nand verifiable manner. How about running thousands of financial\ntransactions per second on open chain and only recording merkel root\nhashes for batches of transactions every 10min in a Bitcoin blockchain\nfor transparency and verification?\n\n\n\n\nSo, coming back to the original question about CRITERIA:\n\n*1* The ability to setup and run low-cost fully validating node should\nremain the same or should improve; upon deployment of a given proposal\nthere should be an increase in a number of fully validating nodes, or at\nworst, there should be no decrease.\n\n*2* The ability to include additional data into Bitcoin blockchain (e.g.\nvia OP_RETURN) should improve or, at worst, remain the same as it is now.\n\n*3* Upon deployment of a given proposal, the noise in the ledger should\nbe reduced, or at worst, remain the same.\n\n*4* A proposal should address long-term scalability, and offer the\npossibility of combining Bitcoin blockchain with well-defined auxiliary\nprotocols to offer high-transaction throughputs.\n\n\n\ncheers\nMariusz",
"sig": "fb7fe6370f1fff744776f8c3cda436e6ae2c0b6edcac07539d524cdd21d23cc2cb6ef9d38439e48bc3c6142618d1d43471f938c1d60e3f7207922dead8422279"
}