sliv3r_ has quit [Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in]
kevkevin has quit [Ping timeout: 276 seconds]
sliv3r__ has joined #bitcoin-core-dev
<sipa>
laanwj: yeah, i don't think it'll find many interesring things for us, but i'm still curious
kevkevin has joined #bitcoin-core-dev
kevkevin has quit [Remote host closed the connection]
<sipa>
but i also don't want to cause it to go spam the repo
kevkevin has joined #bitcoin-core-dev
sirecmg has quit [Ping timeout: 260 seconds]
PaperSword has quit [Read error: Connection reset by peer]
PaperSword has joined #bitcoin-core-dev
Christoph_ has quit [Quit: Christoph_]
eugenesiegel has quit [Ping timeout: 240 seconds]
eugenesiegel has joined #bitcoin-core-dev
dviola has quit [Ping timeout: 252 seconds]
diego has joined #bitcoin-core-dev
Christoph_ has joined #bitcoin-core-dev
eugenesiegel has quit [Ping timeout: 240 seconds]
Guyver2 has left #bitcoin-core-dev [Closing Window]
<ghost43>
hi. I was reading this post by Jeremy Rubin https://rubin.io/bitcoin/2025/03/11/core-vuln-taproot-dos/ , re PR #24105, and wanted to ask why the caching was not done for bip-143 sighash_single. Naively, the same issue applies there, and the last two comments even mention this, but ultimately without follow-up. (compare interpreter.cpp#L1544 and interpreter.cpp#L1589) Is the taproot DOS vector more effective somehow? (e.g. maybe some
<ghost43>
related consensus limit changed?)
<ghost43>
Is it maybe because of the "Script size limit" mentioned in bip-342? Does that limit also refer to the max size of a scriptPubKey? The PR got auto-locked a long time ago, so I cannot ask there :(
<ghost43>
btw is there somewhere a best-effort document listing different consensus and policy limits? such as the max size of a scriptPubKey :)
<sipa>
ghost43: pre-taproot, scriptPubKeys are limited to 10000 bytes by consensus (see the MAX_SCRIPT_SIZE check at the beginning of EvalScript)
<sipa>
i'm sure i've written a few answers on bitcoin.stackexchange.com regarding difference between policy and consensus limits
<sipa>
ehh, not just scriptPubKeys, i mean any actually executed scripts (so including P2SH redeemscripts, and P2WSH witnessscripts)
<ghost43>
sipa: ah right! thanks. I saw the check in EvalScript but did not realise it is called also for scriptPubKeys for some reason. but I see now it is called in VerifyScript()
<ghost43>
tbh in bip-342, I find it unclear what is exactly covered by the lifted "Script size limit". but I guess it's all kinds of scripts then, as per your comment above
<sipa>
ghost43: yes, all executed scripts
<ghost43>
well I guess the remark in the bip is about the test in EvalScript :)
<bitcoin-git>
[bitcoin] hebasto opened pull request #32242: guix: Remove no longer necessary `file` package (master...250408-guix-file) https://github.com/bitcoin/bitcoin/pull/32242
pablomartin has joined #bitcoin-core-dev
<darosior>
ghost43: reading the blog post it claims "blocks to take 60s or more to validate with specially crafted standard transactions". That sounds extremely concerning because it would mean such a transaction could have been submitted to a node without costing any hashpower to the attacker. Thankfully this is incorrect, a CTxOut with 23k bytes
<darosior>
scriptPubKey is not standard.
<instagibbs>
I didn't read it that way, maybe could have been more clear, but at the end it made it clear that it was nonstd
vasild_ has quit [Ping timeout: 264 seconds]
<darosior>
Oh indeed, "variants of this attack that can rely on standard transactions as well"
vasild has joined #bitcoin-core-dev
<darosior>
Great find in any case.
<ghost43>
what is the standardness limit for it? is it the same 10 kbytes? where is it checked?
<instagibbs>
largest std output size, which I'm guessing is a 40-byte witness program
<sipa>
largest standard output is p2pkh or p2sh, i think?
<sipa>
oh, or op_return
<_aj_>
multisig?
<instagibbs>
right bare multisig
<instagibbs>
uncompressed
<sipa>
is bare multisig still standard?
<ghost43>
are these the checks in solver.cpp, line 155 and on?
<sipa>
oh yes
sirecmg has joined #bitcoin-core-dev
SpellChecker has quit [Remote host closed the connection]
vasild has quit [Remote host closed the connection]