<oembed><type>rich</type><version>1.0</version><title>Anthony Towns [ARCHIVE] wrote</title><author_name>Anthony Towns [ARCHIVE] (npub17r…x9l2h)</author_name><author_url>https://yabu.me/npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2019-09-25&#xA;📝 Original message:&#xA;On Wed, Sep 25, 2019 at 01:30:39PM +0000, ZmnSCPxj wrote:&#xA;&gt; &gt; Since it&#39;s off chain, you could also provide R and C and a zero knowledge&#xA;&gt; &gt; proof that you know an r such that:&#xA;&gt; &gt; R = SHA256( r )&#xA;&gt; &gt; C = SHA256( x || r )&#xA;&#xA;&gt; &gt; in which case you could do it with lightning as it exists today.&#xA;&gt; I can insist on paying only if the server reveals an `r` that matches some known `R` such that `R = SHA256(r)`, as currently in Lightning network.&#xA;&gt; However, how would I prove, knowing only `R` and `x`, and that there exists some `r` such that `R = SHA256(r)`, that `C = SHA256(x || r)`?&#xA;&#xA;If you know x and r, you can generate C and R and a zero knowledge proof&#xA;of the relationship between x,C,R that doesn&#39;t reveal r (eg, I think&#xA;you could do that with bulletproofs). Unfortunately that zkp already&#xA;proves that C was generated based on x, so you get your timestamp for&#xA;free. Ooops. :(&#xA;&#xA;Cheers,&#xA;aj</html></oembed>