<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">Bitcoin Developers,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">Pleased to announce refinements to the BIP draft for OP_CHECKTEMPLATEVERIFY (replaces previous OP_SECURETHEBAG BIP). Primarily:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">1) Changed the name to something more fitting and acceptable to the community<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">2) Changed the opcode specification to use the argument off of the stack with a primitive constexpr/literal tracker rather than script lookahead</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">3) Permits future soft-fork updates to loosen or remove "constexpr" restrictions</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">4) More detailed comparison to alternatives in the BIP, and why OP_CHECKTEMPLATEVERIFY should be favored even if a future technique may make it semi-redundant.<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">Please see:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">BIP:<a href="https://github.com/JeremyRubin/bips/blob/ctv/bip-ctv.mediawiki" target="_blank"> https://github.com/JeremyRubin/bips/blob/ctv/bip-ctv.mediawiki</a></div><div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">Reference Implementation:<a href="https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify" target="_blank"> https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify</a></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">I believe this addresses all outstanding feedback on the design of this opcode, unless there are any new concerns with these changes.<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">I'm also planning to host a review workshop in Q1 2020, most likely in San Francisco. Please fill out the form here <a href="https://forms.gle/pkevHNj2pXH9MGee9">https://forms.gle/pkevHNj2pXH9MGee9</a> if you're interested in participating (even if you can't physically attend).<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">And as a "but wait, there's more":<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">1) RPC functions are under preliminary development, to aid in testing and evaluation of OP_CHECKTEMPLATEVERIFY. The new command `sendmanycompacted` shows one way to use OP_CHECKTEMPLATEVERIFY. See: <a href="https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify-rpcs" target="_blank">https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify-rpcs</a>. `sendmanycompacted` is still under early design. Standard practices for using OP_CHECKTEMPLATEVERIFY & wallet behaviors may be codified into a separate BIP. This work generalizes even if an alternative strategy is used to achieve the scalability techniques of OP_CHECKTEMPLATEVERIFY.<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">2) Also under development are improvements to the mempool which will, in conjunction with improvements like package relay, help make it safe to lift some of the mempool's restrictions on longchains specifically for OP_CHECKTEMPLATEVERIFY output trees. See: <a href="https://github.com/bitcoin/bitcoin/pull/17268" target="_blank">https://github.com/bitcoin/bitcoin/pull/17268 </a>This work offers an improvement irrespective of OP_CHECKTEMPLATEVERIFY's fate.<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">Neither of these are blockers for proceeding with the BIP, as they are ergonomics and usability improvements needed once/if the BIP is activated.<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div></div><div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">See prior mailing list discussions here:</div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">* <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016934.html" target="_blank">https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016934.html</a></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">* <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-June/016997.html" target="_blank">https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-June/016997.html</a></div></div><div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">Thanks to the many developers who have provided feedback on iterations of this design.<br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">Best,</div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">Jeremy</div><br></div><div><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr">--<br><a href="https://twitter.com/JeremyRubin" target="_blank">@JeremyRubin</a><a href="https://twitter.com/JeremyRubin" target="_blank"></a></div></div></div></div>