<div dir="ltr"><div>Good morning list,</div><div><br></div><div>I have been digging into Anthony Towns&#39; <a href="https://github.com/ajtowns/bips/blob/bip-anyprevout/bip-anyprevout.mediawiki" target="_blank">anyprevout BIP</a> proposal to verify that it has everything we need for <a href="https://blockstream.com/eltoo.pdf" target="_blank">Eltoo</a>.</div><div><br></div><div>The separation between anyprevout and anyprevoutanyscript is very handy (compared to the previous noinput proposal). </div><div>Unless I&#39;m missing something, it would simplify the funding tx (to a simple multisig without cltv/csv) and remove the need for the trigger tx.</div><div><br></div><div>The more tricky part to integrate is the chaperone signature.</div><div>If I understand it correctly (which I&#39;m not guaranteeing), we would need to modify the update transactions to something like:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">OP_IF</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    10 OP_CSV</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    1 A(s,i) B(s,i) 2 OP_CHECKMULTISIGVERIFY          &lt;- public keys&#39; first byte in this line is 0x02 or 0x03</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    2 A(s,i) B(s,i) 2 OP_CHECKMULTISIGVERIFY          &lt;- public keys&#39; first byte in this line is 0x00 or 0x01</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">OP_ELSE </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    &lt;S(i) + 1&gt; OP_CLTV</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    1 A(u) B(u) 2  OP_CHECKMULTISIGVERIFY          &lt;- public keys&#39; first byte in this line is 0x02 or 0x03</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    2 A(u) B(u) 2  OP_CHECKMULTISIGVERIFY          &lt;- public keys&#39; first byte in this line is 0x00 or 0x01</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">OP_END </blockquote><div><br></div><div>(I ommitted the tapscript changes, ie moving to OP_CHECKSIGADD, to highlight only the chaperone changes)</div><div><br></div><div>When updating the channel, Alice and Bob would exchange their anyprevoutanyscript signatures (for the 2-of-2 multisig).</div><div>The chaperone signature can be provided by either Alice or Bob at transaction broadcast time (so that it commits to a specific input transaction).</div><div><br></div><div>It seems to me that using the same key for both signatures (the chaperone one and the anyprevoutanyscript one) is safe here, but if someone knows better I&#39;m interested.</div><div>If that&#39;s unsafe, we simply need to introduce another key-pair (chaperone key).</div><div><br></div><div>Is that how you guys understand it too? Do you have other ideas on how to comply with the need for a chaperone signature?</div><div><br></div><div>Note that as Anthony said himself, the BIP isn&#39;t final and we don&#39;t know yet if chaperone signatures will eventually be needed, but I think it&#39;s useful to make sure that Eltoo could support it.</div><div><br></div><div>Cheers,</div><div>Bastien</div></div>