Anthony Towns [ARCHIVE] on Nostr: 📅 Original date posted:2017-09-29 📝 Original message:On Thu, Sep 28, 2017 at ...
📅 Original date posted:2017-09-29
📝 Original message:On Thu, Sep 28, 2017 at 06:06:29PM -0700, Mark Friedenbach via bitcoin-dev wrote:
> Unlike other proposed fixes to the fee model, this is not trivially
> broken by paying the miner out of band.
I think CPFP allows this to break: a miner getting paid out of band
would just make the block look like:
(1) 100kB of 5s/byte transactions
(2) 850kB of 35s/byte transactions
(3) 50kB of 95s/byte transactions, miner paying themselves
As long as every transaction in (1) has an output spent in (3), that seems
like it would be perfectly legitimate for CPFP.
I think it would be cheaper overall than the fee refund transactions
as well. People making arrangements with miners directly would have to
pay for block space to cover:
out:
30-40B dest address
30-40B change address
10B cpfp link
in:
36B cpfp txid
then to actual spend their change:
in:
36B+70B txid+idx + witness for change
for a total of 142-162B plus 70B witness, as well as some sort of out of
band payment to the miner (paying fees directly to miners via a lightning
channel, comes to mind).
If I understand your suggestion correctly, it would look like:
coinbase:
30-40B fee overflow payment back to transactor
out:
30-40B dest address
30-40B change address
30-40B fee-overflow output marker
and to spend their change:
in:
36B+70B txid+idx + witness for change
36B+70B txid+idx + witness for fee overflow
for a total of 192-232B plus 140B witness; so that's 40%-50% more block
weight used. The fee overflow would probably be pretty small amounts,
as well, so kind of annoying to actually collect.
If you end up with two change addresses per tx generally, that also seems
like it might it annoyingly easy to link your transactions together
(unless fees end up getting coinjoined or run through satoshidice or
something). If you end up sending lots of fee overflows to a single
address, that links your txes too of course.
A miner might be willing to do that in order to charge a two-part tariff:
ie, a very high "subscription" fee that's paid once a year or similar,
along with very low per-tx fees. The only reason I can think of why
someone would buy a subscription is if the miner's effectively a monopoly
and submitting transactions via the p2p network isn't reliable enough;
the whole point of a two-part tariff is to be as expensive as each user
can bear, so it won't ever be any cheaper.
FWIW, I think reliability-based-price-discrimination might allow higher
mining revenue via having txes with differing fee rates in the same
block: eg if people are happy to pay 100s/byte for confirmation within
30 minutes, and likewise willing to pay 10s/byte for confirmation within
3 hours, and there aren't enough transactions of either type to hit the
block size limit, then a monopoly miner / mining cartel would do better
by accepting 100s/byte txes at any time, while accepting 10s/byte txes
in any given block, but only with about a 1-in-7 chance for any given tx.
Looking at estimatefee.com, there's currently apparently ~200kB of 82s/B
or more transactions, while to fill a 1MB block you'd have to go all the
way down to 2.1s/B -- so if you have to charge all txes at the marginal
fee rate, that's 200kB at 82s/B for 0.16 BTC rather than 1MB at 2.1s/B
for 0.021 BTC.
I think ideally, it would probably be better to let the block weight
limit adjust to deal with high-frequency components to changes in demand,
and have fee rates adjust more slowly to address the long-term trends
in changes to demand: if fee rates only adjust slowly, then they're
(by definition) easily predictable and you don't *have* to have much
concern about getting them wrong. (You'd still need to add the correct
fee at the time you want to publish a pre-signed transaction that was
very old, but CPFP isn't too bad at that).
Cheers,
aj
Published at
2023-06-07 18:06:36Event JSON
{
"id": "721bd3f9a9aae29fb231974adbb2b16f3f76b3262a71e6d0d94270c26dc45fe0",
"pubkey": "f0feda6ad58ea9f486e469f87b3b9996494363a26982b864667c5d8acb0542ab",
"created_at": 1686161196,
"kind": 1,
"tags": [
[
"e",
"ae5bb64562efc3a1339440e5c70f6b3b8b12997d5b034703d0bb377a6fd6447b",
"",
"root"
],
[
"e",
"b92bd237b153026c826585e3852d1cac0494764b70538503fbf09eb564ff0f65",
"",
"reply"
],
[
"p",
"1c61d995949cbfaf14f767784e166bde865c7b8783d7aa3bf0a1d014b70c0069"
]
],
"content": "📅 Original date posted:2017-09-29\n📝 Original message:On Thu, Sep 28, 2017 at 06:06:29PM -0700, Mark Friedenbach via bitcoin-dev wrote:\n\u003e Unlike other proposed fixes to the fee model, this is not trivially\n\u003e broken by paying the miner out of band.\n\nI think CPFP allows this to break: a miner getting paid out of band\nwould just make the block look like:\n\n (1) 100kB of 5s/byte transactions\n (2) 850kB of 35s/byte transactions\n (3) 50kB of 95s/byte transactions, miner paying themselves\n\nAs long as every transaction in (1) has an output spent in (3), that seems\nlike it would be perfectly legitimate for CPFP. \n\nI think it would be cheaper overall than the fee refund transactions\nas well. People making arrangements with miners directly would have to\npay for block space to cover:\n\n out:\n 30-40B dest address\n 30-40B change address\n 10B cpfp link\n in:\n 36B cpfp txid\n\nthen to actual spend their change:\n\n in:\n 36B+70B txid+idx + witness for change\n\nfor a total of 142-162B plus 70B witness, as well as some sort of out of\nband payment to the miner (paying fees directly to miners via a lightning\nchannel, comes to mind). \n\nIf I understand your suggestion correctly, it would look like:\n\n coinbase:\n 30-40B fee overflow payment back to transactor\n\n out:\n 30-40B dest address\n 30-40B change address\n 30-40B fee-overflow output marker\n\nand to spend their change:\n\n in:\n 36B+70B txid+idx + witness for change\n 36B+70B txid+idx + witness for fee overflow\n\nfor a total of 192-232B plus 140B witness; so that's 40%-50% more block\nweight used. The fee overflow would probably be pretty small amounts,\nas well, so kind of annoying to actually collect.\n\nIf you end up with two change addresses per tx generally, that also seems\nlike it might it annoyingly easy to link your transactions together\n(unless fees end up getting coinjoined or run through satoshidice or\nsomething). If you end up sending lots of fee overflows to a single\naddress, that links your txes too of course.\n\n\nA miner might be willing to do that in order to charge a two-part tariff:\nie, a very high \"subscription\" fee that's paid once a year or similar,\nalong with very low per-tx fees. The only reason I can think of why\nsomeone would buy a subscription is if the miner's effectively a monopoly\nand submitting transactions via the p2p network isn't reliable enough;\nthe whole point of a two-part tariff is to be as expensive as each user\ncan bear, so it won't ever be any cheaper.\n\n\nFWIW, I think reliability-based-price-discrimination might allow higher\nmining revenue via having txes with differing fee rates in the same\nblock: eg if people are happy to pay 100s/byte for confirmation within\n30 minutes, and likewise willing to pay 10s/byte for confirmation within\n3 hours, and there aren't enough transactions of either type to hit the\nblock size limit, then a monopoly miner / mining cartel would do better\nby accepting 100s/byte txes at any time, while accepting 10s/byte txes\nin any given block, but only with about a 1-in-7 chance for any given tx.\n\nLooking at estimatefee.com, there's currently apparently ~200kB of 82s/B\nor more transactions, while to fill a 1MB block you'd have to go all the\nway down to 2.1s/B -- so if you have to charge all txes at the marginal\nfee rate, that's 200kB at 82s/B for 0.16 BTC rather than 1MB at 2.1s/B\nfor 0.021 BTC.\n\n\nI think ideally, it would probably be better to let the block weight\nlimit adjust to deal with high-frequency components to changes in demand,\nand have fee rates adjust more slowly to address the long-term trends\nin changes to demand: if fee rates only adjust slowly, then they're\n(by definition) easily predictable and you don't *have* to have much\nconcern about getting them wrong. (You'd still need to add the correct\nfee at the time you want to publish a pre-signed transaction that was\nvery old, but CPFP isn't too bad at that).\n\nCheers,\naj",
"sig": "eda6188f9150bb8e596822a711ca6e1b5e587188f13f8c9f44df6860acf45ffd3a6b15919306b7b0a2f6cf0c31e9cd0f16c732bf7c07164ed562dddb3089d6d8"
}