I said k^n (simplified to 2^n), not k*n. The size of the in-script interpreter grows exponentially with the size of the longest script it can interpret. But I already think I jumped the gun here :x it'd be (2^k * n) for k ops which indeed is O(n)
Post by twetch#19901
Eval+reentry (eval arbitrary code read from PUSHTX) is what could cause exponential blowup. Maybe you could do the same static analysis we do for SCALL but I shudder to think how that would look in bitcoin script...
What the chain says
- Block
- 658 203
- Time
- 2020-10-24T01:47:44Z
- Signer
- 1AGioiKPhZnU3mFJj7iJaXFyqGXfbaurWL
- App
- twetch
- Type
- post
- Content type
- text/plain
- Name in tx
- twetch#19901
Fields the transaction did not carry are omitted. Open the payload to see the bytes as stored.
Signed by
1AGioiKPhZnU3mFJj7iJaXFyqGXfbaurWL VerifiedReplies (3)
I think you could do it at runtime with O(n^2) by examining reentry stack
Well most languages have a stack depth limit, and in any case it would be depth^2 not n^2. But yeah it gets pretty unwieldy pretty quick.
Yeah that's totally what I was thinking of but forgot when I had to explain myself mhmm