73 lines
3.3 KiB
XML
73 lines
3.3 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none" role="img" aria-label="IF.Trace verification flow diagram">
|
|
<defs>
|
|
<linearGradient id="g" x1="240" y1="180" x2="1360" y2="720" gradientUnits="userSpaceOnUse">
|
|
<stop stop-color="#60A5FA" stop-opacity="0.95" />
|
|
<stop offset="0.5" stop-color="#34D399" stop-opacity="0.85" />
|
|
<stop offset="1" stop-color="#F472B6" stop-opacity="0.85" />
|
|
</linearGradient>
|
|
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
|
|
<feGaussianBlur stdDeviation="10" result="b" />
|
|
<feColorMatrix
|
|
in="b"
|
|
type="matrix"
|
|
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.35 0"
|
|
/>
|
|
<feMerge>
|
|
<feMergeNode />
|
|
<feMergeNode in="SourceGraphic" />
|
|
</feMerge>
|
|
</filter>
|
|
<style>
|
|
.card { fill: rgba(2,6,23,0.35); stroke: rgba(255,255,255,0.10); }
|
|
.title { fill: rgba(255,255,255,0.92); font: 600 28px ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji"; }
|
|
.sub { fill: rgba(255,255,255,0.70); font: 500 18px ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; }
|
|
.mono { fill: rgba(255,255,255,0.75); font: 500 16px ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
|
|
.stroke { stroke: rgba(226,232,240,0.70); stroke-width: 2.5; }
|
|
</style>
|
|
</defs>
|
|
|
|
<rect x="0" y="0" width="1600" height="900" rx="36" fill="rgba(2,6,23,0.08)" />
|
|
<path
|
|
d="M250 740 C 520 560, 740 600, 920 420 C 1080 260, 1240 260, 1360 180"
|
|
stroke="url(#g)"
|
|
stroke-width="10"
|
|
stroke-linecap="round"
|
|
stroke-opacity="0.35"
|
|
filter="url(#glow)"
|
|
/>
|
|
|
|
<g>
|
|
<rect class="card" x="190" y="160" width="360" height="170" rx="22" />
|
|
<text class="title" x="230" y="218">1) Keep it private</text>
|
|
<text class="sub" x="230" y="254">You hold the source.</text>
|
|
<text class="mono" x="230" y="292">source_sha256</text>
|
|
</g>
|
|
|
|
<g>
|
|
<rect class="card" x="620" y="220" width="360" height="170" rx="22" />
|
|
<text class="title" x="660" y="278">2) Hash the output</text>
|
|
<text class="sub" x="660" y="314">What you will share.</text>
|
|
<text class="mono" x="660" y="352">output_sha256</text>
|
|
</g>
|
|
|
|
<g>
|
|
<rect class="card" x="1040" y="160" width="390" height="170" rx="22" />
|
|
<text class="title" x="1080" y="218">3) Publish a receipt</text>
|
|
<text class="sub" x="1080" y="254">No login required.</text>
|
|
<text class="mono" x="1080" y="292">/trace/…</text>
|
|
</g>
|
|
|
|
<g>
|
|
<rect class="card" x="900" y="540" width="530" height="190" rx="22" />
|
|
<text class="title" x="940" y="602">4) Third party verifies</text>
|
|
<text class="sub" x="940" y="638">They download bytes and compare hashes.</text>
|
|
<text class="mono" x="940" y="676">verified == (hashes match)</text>
|
|
</g>
|
|
|
|
<path class="stroke" d="M550 245 C 610 245, 600 260, 620 270" />
|
|
<path class="stroke" d="M980 270 C 1025 260, 1005 245, 1040 245" />
|
|
<path class="stroke" d="M1235 330 C 1235 400, 1170 450, 1100 540" />
|
|
<path class="stroke" d="M800 390 C 800 460, 880 500, 980 540" />
|
|
|
|
<text class="sub" x="190" y="800">Integrity claims only: byte-level verification, not interpretation.</text>
|
|
</svg>
|