From: Rusty Russell <rusty@rustcorp.com.au>
To: "Bitcoin Protocol Discussion" <bitcoin-dev@lists.linuxfoundation.org>
Cc: Russell O'Connor <roconnor@blockstream.com>,
Kalle Alm <kalle.alm@gmail.com>
Subject: [bitcoin-dev] BIP 117 Feedback
Date: Tue, 09 Jan 2018 21:52:18 +1030 [thread overview]
Message-ID: <87608btgyd.fsf@rustcorp.com.au> (raw)
I've just re-read BIP 117, and I'm concerned about its flexibility. It
seems to be doing too much.
The use of altstack is awkward, and makes me query this entire approach.
I understand that CLEANSTACK painted us into a corner here :(
The simplest implementation of tail recursion would be a single blob: if
a single element is left on the altstack, pop and execute it. That
seems trivial to specify. The treatment of concatenation seems like
trying to run before we can walk.
Note that if we restrict this for a specific tx version, we can gain
experience first and get fancier later.
BIP 117 also drops SIGOP and opcode limits. This requires more
justification, in particular, measurements and bounds on execution
times. If this analysis has been done, I'm not aware of it.
We could restore statically analyzability by rules like so:
1. Only applied for tx version 3 segwit txs.
2. For version 3, top element of stack is counted for limits (perhaps
with discount).
3. The blob popped off for tail recursion must be identical to that top
element of the stack (ie. the one counted above).
Again, future tx versions could drop such restrictions.
Cheers,
Rusty.
next reply other threads:[~2018-01-09 11:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-09 11:22 Rusty Russell [this message]
2018-01-09 12:40 ` [bitcoin-dev] BIP 117 Feedback Mark Friedenbach
2018-01-09 14:21 ` Pieter Wuille
2018-01-09 22:57 ` Mark Friedenbach
2018-01-12 10:48 ` Russell O'Connor
2018-01-16 1:06 ` Rusty Russell
2018-01-16 3:27 ` Gregory Maxwell
2018-01-16 4:15 ` Luke Dashjr
2018-01-16 8:39 ` Russell O'Connor
2018-03-05 15:28 ` Johnson Lau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87608btgyd.fsf@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=bitcoin-dev@lists.linuxfoundation.org \
--cc=kalle.alm@gmail.com \
--cc=roconnor@blockstream.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox