Skip to content

Commit a5ba0b0

Browse files
committed
ots: be honest after stamping -- the pending receipt is half a proof
The previous post-stamp UX framed the pending .ots as a finished artifact ("save this receipt, drop it back later to verify"). That's misleading: the file we hand the user contains ONLY the calendar's pending attestation, not a Bitcoin Merkle path. On its own it isn't proof of anything except "the calendar promised to include this hash". Reworded the post-stamp panel as a 2-step flow: Step 1 (done): calendar accepted the hash, here's your placeholder. Step 2 (user's job): upgrade the receipt after Bitcoin confirms, using the official 'ots upgrade' client from opentimestamps.org. Then drop the UPGRADED receipt back here to see 'Valid by block N'. Switched the alert from success-green to warning-yellow to match the 'this isn't done yet' meaning. We don't ship in-browser upgrade yet, so we point at the official client honestly.
1 parent dfc1018 commit a5ba0b0

1 file changed

Lines changed: 26 additions & 9 deletions

File tree

frontend/src/app/components/_ordpool/ots-stamp-verify/ots-stamp-verify.component.html

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,11 @@ <h2 class="card-title mb-3">Stamp &amp; Verify</h2>
3636
}
3737

3838
@case ('stamped') {
39-
<div class="alert alert-success mt-3 mb-0">
39+
<div class="alert alert-warning mt-3 mb-0">
4040
<p class="mb-2">
41-
<strong>Stamped.</strong> The calendar has accepted your file's hash and
42-
will commit it in the next Bitcoin block. Save this <code>.ots</code>
43-
receipt now: keep it next to your file, you'll need it to verify the
44-
timestamp later.
41+
<strong>Step 1 of 2 done.</strong> The calendar has accepted your
42+
file's hash and will fold it into the next block's Merkle batch.
43+
Download this <code>.ots</code> now and keep it next to your file.
4544
</p>
4645
<p class="mb-2">
4746
<code class="smaller-text">SHA-256: {{ status.hashHex }}</code>
@@ -55,10 +54,28 @@ <h2 class="card-title mb-3">Stamp &amp; Verify</h2>
5554
</a>
5655
}
5756
<button type="button" class="btn btn-outline-light btn-sm" (click)="reset()">Stamp another</button>
58-
<p class="smaller-text mt-2 mb-0 text-muted">
59-
<em>This receipt is "pending" until Bitcoin confirms (~10 minutes).
60-
After confirmation, drop the receipt back in to verify it against the
61-
actual on-chain block.</em>
57+
58+
<hr>
59+
60+
<p class="mb-1">
61+
<strong>This receipt is not yet proof.</strong> What you just
62+
downloaded contains only a <em>pending calendar attestation</em>.
63+
It says <em>"the calendar promised to include this hash"</em>, not
64+
yet <em>"Bitcoin confirmed it."</em>
65+
</p>
66+
<p class="mb-1 smaller-text">
67+
<strong>Step 2: upgrade the receipt</strong> a few hours after
68+
stamping (allow at least ~10 minutes for Bitcoin, but most calendars
69+
wait several blocks before publishing the Merkle path). Upgrading
70+
replaces the pending attestation with the full Merkle path leading
71+
to the Bitcoin block header. Once upgraded, the proof verifies
72+
offline forever, even if every calendar disappears.
73+
</p>
74+
<p class="mb-0 smaller-text">
75+
Upgrade with the official client from
76+
<a href="https://opentimestamps.org" target="_blank" rel="noopener">opentimestamps.org</a>
77+
(<code>ots upgrade your-file.ots</code>), then drop the upgraded
78+
receipt back into this page to see <em>"Valid by block N"</em>.
6279
</p>
6380
</div>
6481
}

0 commit comments

Comments
 (0)