<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 11:01:28AM +0200, Konstantin Ketterer wrote:&#xA;&gt; Motivation: If I had to timestamp multiple messages I could simply aggregate&#xA;&gt; them in a merkle tree and pay relatively low fees per message. However, if I&#xA;&gt; only need to timestamp something once in a while I need to rely on free&#xA;&gt; services or pay high fees.&#xA;&#xA;Maybe model the timestamping service as having fixed and floating users,&#xA;in which case the fixed users pay a subscription fee that covers the costs&#xA;and get placed relatively high in the merkle tree, while the floating&#xA;users are placed low in the merkle tree and are basically free money?&#xA;&#xA;Your merkle tree might then have 2**N-1 fixed slots, all at height N,&#xA;then 2**K floating slots, all at height N+K, but you don&#39;t need to charge&#xA;the floating slots anything up front, because your fixed costs are all&#xA;paid for by subscription income from the fixed slots.&#xA;&#xA;You might still want to charge some up front fee to prevent people&#xA;spamming you with things to timestamp that they&#39;re never going to pay&#xA;for though.&#xA;&#xA;&gt; Solution: buy a place in a merkle tree &#34;risk-free&#34;&#xA;&gt; 1. send hash x of my message (or the merkle root of another tree) to the&#xA;&gt; timstamping server&#xA;&gt; 2. server calculates Pedersen commit: C = x*H + r*G, hashes it, builds merkle&#xA;&gt; tree with other commits in it and publishes a valid transaction containing the&#xA;&gt; merkle root to the Bitcoin blockchain&#xA;&gt; 3. after a certain number of block confirmations and with the given proof I can&#xA;&gt; confirm that the commitment C is indeed part of the Bitcoin blockchain&#xA;&gt; 4. I now have to send a lightning payment with C - x*H = r*G as the payment&#xA;&gt; point  to the timestamping server and as a proof of payment the server must&#xA;&gt; reveal r to receive the money.&#xA;&#xA;Nice.&#xA;&#xA;Since it&#39;s off chain, you could also provide R and C and a zero knowledge&#xA;proof that you know an r such that:&#xA;&#xA;   R = SHA256( r )&#xA;   C = SHA256( x || r )&#xA;&#xA;in which case you could do it with lightning as it exists today.&#xA;&#xA;Cheers,&#xA;aj</html></oembed>