Merge pull request #21 from tlsnotary/intro

Rewrite introduction
This commit is contained in:
Hendrik Eeckhaut
2023-08-18 14:32:22 +02:00
committed by GitHub
7 changed files with 390 additions and 279 deletions

View File

@@ -1,25 +1,40 @@
<mxfile host="Electron" modified="2023-08-01T12:50:38.332Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="tLbQ2Tcs3b02EW_tnZjy" version="21.6.5" type="device">
<mxfile host="Electron" modified="2023-08-03T09:50:21.867Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="2bJHSDfEvUGkQAMHXwOr" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="748" dy="686" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<mxGraphModel dx="1682" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="190" width="60" height="60" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-46" value="No Data Provenance" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="160" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-2" target="HxEEL8P-OPklS3m3PPNj-3" edge="1">
<mxCell id="HxEEL8P-OPklS3m3PPNj-47" value="Status Quo&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="500" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-48" value="Ultimate solution" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="330" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-11" value="TLSNotary" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="70" y="770" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-18" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="190" width="412" height="120" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-2" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="160" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-3" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="320" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-18" source="HxEEL8P-OPklS3m3PPNj-2" target="HxEEL8P-OPklS3m3PPNj-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-2" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-3" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-1" target="HxEEL8P-OPklS3m3PPNj-2" edge="1">
<mxCell id="HxEEL8P-OPklS3m3PPNj-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="0T9UpzUMcqbGcj6tkd16-18" source="HxEEL8P-OPklS3m3PPNj-1" target="HxEEL8P-OPklS3m3PPNj-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="360" as="sourcePoint" />
<mxPoint x="460" y="310" as="targetPoint" />
<mxPoint x="340" y="170" as="sourcePoint" />
<mxPoint x="390" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-6" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-4" vertex="1" connectable="0">
@@ -27,62 +42,28 @@
<mxPoint y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-7" value="data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="150" y="230" width="60" height="70" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-7" value="data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="80" y="40" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-8" value="data&lt;br&gt;⁉️" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="230" width="60" height="70" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-8" value="data&lt;br&gt;⁉️" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="240" y="40" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-9" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ⁉️&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity ⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="250" width="136" height="60" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-9" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ⁉️&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity ⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="276" y="60" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-18" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="350" y="525" width="136" height="60" as="geometry" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-19" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="360" width="440" height="113" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-24" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="465" width="60" height="60" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-37" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-24" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry relative="1" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-39" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry x="160" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-26" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-25" vertex="1" connectable="0">
<mxGeometry x="-0.1121" y="2" relative="1" as="geometry">
<mxPoint x="6" y="-8" as="offset" />
</mxGeometry>
<mxCell id="HxEEL8P-OPklS3m3PPNj-40" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry x="320" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-27" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-28" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="465" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-29" value="" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="395" as="sourcePoint" />
<mxPoint x="450" y="485" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-30" value="grant access" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-29" vertex="1" connectable="0">
<mxGeometry x="-0.0036" y="-1" relative="1" as="geometry">
<mxPoint y="-13" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-31" value="data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="505" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-33" value="OAuth&lt;br&gt;Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-34" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;censoring possible&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;sees all requests&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="272" y="365" width="148" height="40" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-37" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="620" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-39" target="HxEEL8P-OPklS3m3PPNj-40" edge="1">
<mxCell id="HxEEL8P-OPklS3m3PPNj-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-19" source="HxEEL8P-OPklS3m3PPNj-39" target="HxEEL8P-OPklS3m3PPNj-40" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-49" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-38" vertex="1" connectable="0">
@@ -90,40 +71,115 @@
<mxPoint x="12" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-39" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="620" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-40" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="620" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-37" target="HxEEL8P-OPklS3m3PPNj-39" edge="1">
<mxCell id="HxEEL8P-OPklS3m3PPNj-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="0T9UpzUMcqbGcj6tkd16-19" source="HxEEL8P-OPklS3m3PPNj-37" target="HxEEL8P-OPklS3m3PPNj-39" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="790" as="sourcePoint" />
<mxPoint x="460" y="740" as="targetPoint" />
<mxPoint x="340" y="170" as="sourcePoint" />
<mxPoint x="390" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-42" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-41" vertex="1" connectable="0">
<mxCell id="HxEEL8P-OPklS3m3PPNj-42" value="Improved TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-41" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint y="-11" as="offset" />
<mxPoint x="7" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-43" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="150" y="660" width="60" height="70" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-43" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry x="80" y="40" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-44" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="660" width="60" height="70" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-44" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry x="240" y="40" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-45" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="673" width="164" height="60" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-45" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry x="276" y="53" width="164" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-46" value="No Data Provenance" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="160" width="120" height="20" as="geometry" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-20" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="530" width="416" height="235" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-47" value="Status Quo&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="325" width="120" height="20" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-18" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="280" y="170" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-48" value="Desired solution" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="590" width="120" height="20" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-24" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="160" y="110" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-20" source="HxEEL8P-OPklS3m3PPNj-24" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-26" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-25" vertex="1" connectable="0">
<mxGeometry x="-0.1121" y="2" relative="1" as="geometry">
<mxPoint x="6" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-27" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-28" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="320" y="110" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-29" value="" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;" parent="0T9UpzUMcqbGcj6tkd16-20" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="40" y="40" as="sourcePoint" />
<mxPoint x="380" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-30" value="grant access" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-29" vertex="1" connectable="0">
<mxGeometry x="-0.0036" y="-1" relative="1" as="geometry">
<mxPoint y="-13" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-20" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-33" value="OAuth&lt;br&gt;Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="160" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-34" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;censoring possible&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;sees all requests&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="202" y="10" width="148" height="40" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-13" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-20">
<mxGeometry x="240" y="165" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-21" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="800" width="440" height="182" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-4" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="160" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-5" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="320" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-4" target="0T9UpzUMcqbGcj6tkd16-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-3" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="0T9UpzUMcqbGcj6tkd16-2">
<mxGeometry x="-0.2352" y="1" relative="1" as="geometry">
<mxPoint x="12" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-8" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="82.5" y="112" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-9" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="240" y="99" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-10" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="276" y="112" width="164" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-12" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="80" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-14" target="0T9UpzUMcqbGcj6tkd16-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-14" value="Multi-party TLS" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="77.5" y="74" width="65" height="30" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-1" target="0T9UpzUMcqbGcj6tkd16-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-12" target="0T9UpzUMcqbGcj6tkd16-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>

View File

@@ -1,196 +1,201 @@
<mxfile host="Electron" modified="2023-08-01T13:32:38.607Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="J53KrDbPkxDRDJ4fZzPF" version="21.6.5" type="device">
<mxfile host="Electron" modified="2023-08-03T09:27:28.067Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="hTLg8wOhsqTRZDaZwdFx" version="21.6.5" type="device">
<diagram id="Ta_ITRcVz4Bdm_ywW9Xz" name="Page-1">
<mxGraphModel dx="1309" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1700" pageHeight="1100" math="0" shadow="0">
<mxGraphModel dx="1392" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1700" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lWufevYBVzTER42Q3oKB-60" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="540" y="120" width="460" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-35" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry width="460" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-36" value="Notarization Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry x="130" y="10" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-55" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontSize=12;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="lWufevYBVzTER42Q3oKB-60" source="lWufevYBVzTER42Q3oKB-38" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="160" y="234.75862068965512" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-38" value="&lt;b&gt;Notary&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry x="40" y="195" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-47" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry x="340" y="195" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-53" value="" style="group" parent="lWufevYBVzTER42Q3oKB-60" vertex="1" connectable="0">
<mxGeometry x="160" y="90" width="150" height="290" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=21;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry width="140" height="290" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-50" value="Notarized Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="5" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-41" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="10" y="40" width="120" height="160" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-42" value="&lt;b&gt;Transcript&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="20" y="40" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-43" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="20" y="100" width="100" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-44" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="25" y="70" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-45" value="1010101010101&lt;br&gt;0101010101010&lt;br&gt;1010101110101&lt;br&gt;0101010010101&lt;br&gt;0010101010101&lt;br&gt;0101011001011" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;whiteSpace=wrap;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="40" y="100" width="60" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-51" value="&lt;b&gt;Signature&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="10" y="250" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-52" value="&lt;b&gt;Metadata&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="10" y="210" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-48" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.check;fontSize=21;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="100" y="30" width="50" height="40" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-56" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="lWufevYBVzTER42Q3oKB-60" source="lWufevYBVzTER42Q3oKB-49" target="lWufevYBVzTER42Q3oKB-47" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-63" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;fontSize=12;arrowWidth=0.45714285714285713;arrowSize=0.58;fillColor=#CCCCCC;" parent="1" vertex="1">
<mxGeometry x="480" y="320" width="50" height="70" as="geometry" />
<mxCell id="7FoGzQ1kGSNo0XInAhHn-1" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;fontSize=12;arrowWidth=0.45714285714285713;arrowSize=0.58;fillColor=#CCCCCC;" parent="1" vertex="1">
<mxGeometry x="510" y="415" width="50" height="70" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-57" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="1070" y="120" width="600" height="470" as="geometry" />
<mxGeometry x="580" y="140" width="540" height="590" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-58" value="Selective Disclosure Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="1" vertex="1">
<mxGeometry x="1229.9969565217389" y="130" width="327.8260869565217" height="30" as="geometry" />
<mxGeometry x="686.0869565217389" y="150" width="327.8260869565217" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-4" value="&lt;b&gt;Verifier&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="1569.9991304347825" y="310" width="80" height="80" as="geometry" />
<mxCell id="n7Sm2ovnSprmrU6ltvT2-32" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="600.0017391304348" y="335" width="499.99739130434773" height="230" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-87" target="lWufevYBVzTER42Q3oKB-90" edge="1">
<mxCell id="n7Sm2ovnSprmrU6ltvT2-27" value="&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;ZK Proof&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="309.99826086956523" y="92.5" width="80" height="35" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-112" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="n7Sm2ovnSprmrU6ltvT2-32" source="n7Sm2ovnSprmrU6ltvT2-27" target="lWufevYBVzTER42Q3oKB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-87" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="1090.0017391304348" y="315" width="80" height="80" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-4" value="&lt;b&gt;Verifier&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="n7Sm2ovnSprmrU6ltvT2-32" vertex="1">
<mxGeometry x="419.99739130434773" y="70" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-112" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-100" target="lWufevYBVzTER42Q3oKB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-90" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=21;" parent="1" vertex="1">
<mxGeometry x="1200" y="210" width="140" height="290" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-91" value="Notarized Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="1205" y="210" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-92" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
<mxGeometry x="1210" y="250" width="120" height="160" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-93" value="&lt;b&gt;Transcript&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1220" y="250" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-94" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1220" y="310" width="100" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-95" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1225" y="280" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-96" value="&lt;font color=&quot;#cccccc&quot;&gt;1010101010101&lt;br&gt;0101010101010&lt;br&gt;1010&lt;/font&gt;&lt;b&gt;1011101&lt;/b&gt;&lt;font color=&quot;#cccccc&quot;&gt;01&lt;br&gt;0101010010101&lt;br&gt;0010101010101&lt;br&gt;0101011001011&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="1240" y="310" width="60" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-97" value="&lt;b&gt;Signature&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
<mxGeometry x="1210" y="460" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-98" edge="1">
<mxCell id="lWufevYBVzTER42Q3oKB-111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="n7Sm2ovnSprmrU6ltvT2-32" source="lWufevYBVzTER42Q3oKB-87" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1470" y="350" as="targetPoint" />
<Array as="points">
<mxPoint x="1370" y="435" />
<mxPoint x="1370" y="350" />
</Array>
<mxPoint x="109.99826086956523" y="115" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-98" value="&lt;b&gt;Metadata&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
<mxGeometry x="1210" y="420" width="120" height="30" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-87" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="n7Sm2ovnSprmrU6ltvT2-32" vertex="1">
<mxGeometry y="75" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-100" value="&lt;b&gt;ZK Proof&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;fillColor=default;" parent="1" vertex="1">
<mxGeometry x="1410" y="320" width="120" height="60" as="geometry" />
<mxCell id="n7Sm2ovnSprmrU6ltvT2-10" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=21;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="109.99826086956523" width="140" height="230" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-107" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-97" target="lWufevYBVzTER42Q3oKB-100" edge="1">
<mxCell id="n7Sm2ovnSprmrU6ltvT2-11" value="Notarized Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="114.99826086956523" width="130" height="28.965517241379313" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-12" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="119.99826086956523" y="38.620000000000005" width="120" height="121.38" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-13" value="&lt;b&gt;Transcript&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="129.99826086956523" y="38.62068965517244" width="100" height="28.965517241379313" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-14" value="&lt;font color=&quot;#cccccc&quot;&gt;1010101010101&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;0101&lt;/font&gt;&lt;font color=&quot;#080808&quot;&gt;&lt;b&gt;0101010&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#cccccc&quot;&gt;10&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;1010101110101&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="129.99826086956523" y="96.54999999999995" width="100" height="53.45" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-15" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="134.99826086956523" y="67.58620689655174" width="90" height="28.965517241379313" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-16" value="&lt;b&gt;Signature&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="119.99826086956523" y="200" width="120" height="21.38" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-17" value="&lt;b&gt;Metadata&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="119.99826086956523" y="170" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-107" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="n7Sm2ovnSprmrU6ltvT2-32" source="n7Sm2ovnSprmrU6ltvT2-16" target="n7Sm2ovnSprmrU6ltvT2-27" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1370" y="475" />
<mxPoint x="1370" y="350" />
<mxPoint x="279.99826086956523" y="155" />
</Array>
<mxPoint x="239.99826086956523" y="235" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-105" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;fontColor=#000000;fillColor=#000000;edgeStyle=orthogonalEdgeStyle;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.444;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="lWufevYBVzTER42Q3oKB-96" target="lWufevYBVzTER42Q3oKB-100" edge="1">
<mxCell id="lWufevYBVzTER42Q3oKB-106" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="n7Sm2ovnSprmrU6ltvT2-32" source="n7Sm2ovnSprmrU6ltvT2-17" edge="1" target="n7Sm2ovnSprmrU6ltvT2-27">
<mxGeometry relative="1" as="geometry">
<mxPoint x="319.99826086956523" y="110" as="targetPoint" />
<Array as="points">
<mxPoint x="279.99826086956523" y="145" />
</Array>
<mxPoint x="239.99826086956523" y="195.0344827586207" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-105" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;fontColor=#000000;fillColor=#000000;edgeStyle=elbowEdgeStyle;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="n7Sm2ovnSprmrU6ltvT2-32" source="n7Sm2ovnSprmrU6ltvT2-22" target="n7Sm2ovnSprmrU6ltvT2-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="920" y="370" as="sourcePoint" />
<mxPoint x="970" y="320" as="targetPoint" />
<mxPoint x="209.99826086956523" y="109.96000000000004" as="sourcePoint" />
<mxPoint x="319.99826086956523" y="175" as="targetPoint" />
<Array as="points">
<mxPoint x="279.99826086956523" y="115" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="7FoGzQ1kGSNo0XInAhHn-1" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;fontSize=12;arrowWidth=0.45714285714285713;arrowSize=0.58;fillColor=#CCCCCC;" vertex="1" parent="1">
<mxGeometry x="1010" y="320" width="50" height="70" as="geometry" />
<mxCell id="n7Sm2ovnSprmrU6ltvT2-22" value="&lt;b style=&quot;border-color: var(--border-color); color: rgb(8, 8, 8); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot;&gt;0&lt;/b&gt;" style="text;whiteSpace=wrap;html=1;fillColor=none;textOpacity=0;" vertex="1" parent="n7Sm2ovnSprmrU6ltvT2-32">
<mxGeometry x="201.99826086956523" y="118.26999999999998" width="9" height="10" as="geometry" />
</mxCell>
<mxCell id="7FoGzQ1kGSNo0XInAhHn-2" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="30" y="120" width="440" height="470" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-31" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;container=0;" parent="1" vertex="1">
<mxGeometry x="20" y="140" width="470" height="590" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-31" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry width="440" height="470" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-1" value="&lt;b&gt;Server&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="40" y="198" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-33" value="Request Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="120" y="10" width="200" height="30" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-2" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="200" y="198" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-1" value="&lt;b&gt;Server&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="20" y="80" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-2" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="180" y="80" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-23" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-1" target="lWufevYBVzTER42Q3oKB-2" edge="1">
<mxCell id="lWufevYBVzTER42Q3oKB-23" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="1" source="lWufevYBVzTER42Q3oKB-1" target="lWufevYBVzTER42Q3oKB-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-29" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-3" target="lWufevYBVzTER42Q3oKB-2" edge="1">
<mxCell id="lWufevYBVzTER42Q3oKB-29" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="1" source="lWufevYBVzTER42Q3oKB-3" target="lWufevYBVzTER42Q3oKB-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-3" value="&lt;b&gt;Notary&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="340" y="80" width="80" height="80" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-3" value="&lt;b&gt;Notary&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="360" y="198" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-30" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-11" edge="1">
<mxCell id="lWufevYBVzTER42Q3oKB-30" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="n7Sm2ovnSprmrU6ltvT2-34" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="120" as="targetPoint" />
<mxPoint x="320" y="238" as="targetPoint" />
<mxPoint x="240" y="343" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-24" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-11" edge="1">
<mxCell id="lWufevYBVzTER42Q3oKB-24" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="n7Sm2ovnSprmrU6ltvT2-34" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="120" as="targetPoint" />
<mxPoint x="160" y="238" as="targetPoint" />
<mxPoint x="240" y="343" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-39" value="" style="group" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1" connectable="0">
<mxGeometry x="160" y="230" width="120" height="160" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-32" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="lWufevYBVzTER42Q3oKB-2" target="n7Sm2ovnSprmrU6ltvT2-34" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-10" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry width="120" height="160" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-36" value="Notarization Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="1" vertex="1">
<mxGeometry x="140" y="145.31914893617022" width="200" height="45.95744680851064" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-11" value="Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxCell id="n7Sm2ovnSprmrU6ltvT2-3" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="n7Sm2ovnSprmrU6ltvT2-34" target="lWufevYBVzTER42Q3oKB-10">
<mxGeometry relative="1" as="geometry">
<mxPoint x="340" y="388" as="targetPoint" />
<mxPoint x="270" y="358" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-8" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="330" y="485" width="140" height="230" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=21;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry width="140" height="230" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-50" value="Notarized Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="5" width="130" height="28.965517241379313" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-41" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="10" y="38.620000000000005" width="120" height="121.38" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-42" value="&lt;b&gt;Transcript&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="20" y="38.62068965517244" width="100" height="28.965517241379313" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-43" value="1010101010101&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;0101010101010&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;1010101110101" style="rounded=0;whiteSpace=wrap;html=1;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="20" y="96.54999999999995" width="100" height="53.45" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-44" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="25" y="67.58620689655174" width="90" height="28.965517241379313" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-51" value="&lt;b&gt;Signature&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="10" y="200" width="120" height="21.38" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-52" value="&lt;b&gt;Metadata&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="10" y="170" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-48" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.check;fontSize=21;" parent="n7Sm2ovnSprmrU6ltvT2-8" vertex="1">
<mxGeometry x="100" y="38.620000000000005" width="27.97" height="22.38" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-6" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="340" y="285" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-10" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="n7Sm2ovnSprmrU6ltvT2-6" vertex="1">
<mxGeometry width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-11" value="Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="n7Sm2ovnSprmrU6ltvT2-6" vertex="1">
<mxGeometry x="10" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-26" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry x="10" y="60" width="100" height="90" as="geometry" />
<mxCell id="lWufevYBVzTER42Q3oKB-26" value="1010101010101&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;0101010101010&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;1010101110101" style="rounded=0;whiteSpace=wrap;html=1;" parent="n7Sm2ovnSprmrU6ltvT2-6" vertex="1">
<mxGeometry x="10" y="60" width="100" height="50" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-27" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxCell id="lWufevYBVzTER42Q3oKB-27" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="n7Sm2ovnSprmrU6ltvT2-6" vertex="1">
<mxGeometry x="15" y="30" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-28" value="1010101010101&lt;br&gt;0101010101010&lt;br&gt;1010101110101&lt;br&gt;0101010010101&lt;br&gt;0010101010101&lt;br&gt;0101011001011" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;whiteSpace=wrap;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry x="30" y="60" width="60" height="90" as="geometry" />
<mxCell id="n7Sm2ovnSprmrU6ltvT2-26" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="330" y="582.8" as="sourcePoint" />
<mxPoint x="250" y="583" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-32" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-2" target="lWufevYBVzTER42Q3oKB-11" edge="1">
<mxGeometry relative="1" as="geometry" />
<mxCell id="n7Sm2ovnSprmrU6ltvT2-33" value="&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;Notarize&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="430" width="80" height="35" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-34" value="&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;Multi-party request&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="200" y="327.5" width="80" height="35" as="geometry" />
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-35" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lWufevYBVzTER42Q3oKB-10" target="n7Sm2ovnSprmrU6ltvT2-33">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="370" y="418" as="sourcePoint" />
<mxPoint x="420" y="368" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="n7Sm2ovnSprmrU6ltvT2-37" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="n7Sm2ovnSprmrU6ltvT2-33" target="lWufevYBVzTER42Q3oKB-50">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="458" as="sourcePoint" />
<mxPoint x="420" y="438" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>

View File

@@ -1,72 +1,86 @@
<mxfile host="Electron" modified="2023-07-31T13:54:50.992Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="ULuF8GtXYlD2jlOd8ATy" version="21.6.5" type="device">
<mxfile host="Electron" modified="2023-08-08T08:54:27.446Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="O6_GzdmjAoGOofJi7Om-" version="21.6.5" type="device">
<diagram id="kcIGn_kX_1L25iIxUXLg" name="Page-1">
<mxGraphModel dx="830" dy="486" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<mxGraphModel dx="2060" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="GdnXkJGOJiVmK7E47u4y-44" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;dashed=1;dashPattern=8 8;" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-44" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;dashed=1;dashPattern=8 8;" parent="1" vertex="1">
<mxGeometry x="170" y="220" width="140" height="285" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-1" value="User" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="200" y="260" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-2" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="10" y="330" width="80" height="80" as="geometry" />
<mxGeometry x="30" y="262" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-3" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="200" y="410" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-40" value="signed&lt;br style=&quot;font-size: 11px;&quot;&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fontSize=11;shadow=1;" vertex="1" parent="1">
<mxGeometry x="250" y="348" width="50" height="60" as="geometry" />
<mxCell id="GdnXkJGOJiVmK7E47u4y-40" value="blindly&lt;br&gt;signed&lt;br style=&quot;font-size: 11px;&quot;&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fontSize=11;shadow=1;" parent="1" vertex="1">
<mxGeometry x="251" y="346" width="50" height="58" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-43" value="Verifier" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-43" value="Verifier" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="410" y="260" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-45" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=-0.008;entryY=0.515;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1.028;exitY=0.462;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="EZAqd18MQriHtEKbU3QA-2" target="GdnXkJGOJiVmK7E47u4y-44">
<mxCell id="GdnXkJGOJiVmK7E47u4y-45" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1.028;exitY=0.462;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-2" target="EZAqd18MQriHtEKbU3QA-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="490" as="sourcePoint" />
<mxPoint x="400" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-46" value="notarized request" style="whiteSpace=wrap;html=1;fillColor=none;strokeColor=none;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="100" y="336.5" width="60" height="60" as="geometry" />
<mxCell id="GdnXkJGOJiVmK7E47u4y-46" value="request" style="whiteSpace=wrap;html=1;fillColor=none;strokeColor=none;fontSize=11;" parent="1" vertex="1">
<mxGeometry x="118" y="284" width="60" height="10" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-47" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="EZAqd18MQriHtEKbU3QA-3" target="EZAqd18MQriHtEKbU3QA-1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-47" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-3" target="EZAqd18MQriHtEKbU3QA-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="490" as="sourcePoint" />
<mxPoint x="400" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-48" value="redacted signed&lt;br style=&quot;font-size: 11px;&quot;&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fontSize=11;shadow=1;" vertex="1" parent="1">
<mxCell id="vS6lQRuDm8DtBRq3Yqvl-2" value="notarize" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="GdnXkJGOJiVmK7E47u4y-47" vertex="1" connectable="0">
<mxGeometry x="-0.0599" y="2" relative="1" as="geometry">
<mxPoint x="-21" y="1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-48" value="redacted signed&lt;br style=&quot;font-size: 11px;&quot;&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fontSize=11;shadow=1;" parent="1" vertex="1">
<mxGeometry x="330" y="310" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-49" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="EZAqd18MQriHtEKbU3QA-1" target="GdnXkJGOJiVmK7E47u4y-43">
<mxCell id="GdnXkJGOJiVmK7E47u4y-49" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-1" target="GdnXkJGOJiVmK7E47u4y-43" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="490" as="sourcePoint" />
<mxPoint x="400" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-50" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;selective disclosure&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-50" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;selective disclosure&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="330" y="262" width="50" height="40" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-53" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;Multi party computation&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-53" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;Multi party computation&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;" parent="1" vertex="1">
<mxGeometry x="177" y="215" width="125" height="40" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-54" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="122" y="341" width="13" height="13" as="geometry" />
<mxCell id="GdnXkJGOJiVmK7E47u4y-54" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="138.5" y="268" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-55" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="220" y="371.5" width="13" height="13" as="geometry" />
<mxCell id="GdnXkJGOJiVmK7E47u4y-55" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="210" y="357" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-56" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-56" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="344.5" y="256" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-58" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-58" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="425" y="310" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-59" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;verify&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxCell id="GdnXkJGOJiVmK7E47u4y-59" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;verify&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="438" y="302" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="_06KIDZZ9NYgVlEzEhfi-3" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-1" target="EZAqd18MQriHtEKbU3QA-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="180" y="330" as="sourcePoint" />
<mxPoint x="110" y="354" as="targetPoint" />
<Array as="points">
<mxPoint x="180" y="370" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>

View File

@@ -1,35 +1,71 @@
# Introduction
TLSNotary is a protocol which allows users to export data from any website in a
credible way. This way they can verify the authenticity of parts of a
TLS-encrypted web session without compromising on privacy.
## Data Provenance without Compromising Privacy, That is Why!
It works by adding a third party, the Notary, to the usual TLS connection
between the User and a web server. The User forwards the encrypted TLS traffic
to the Notary which checks that it has not been tampered with and notarizes the
whole TLS session by signing a transcript of it.
The Internet currently lacks effective, privacy-preserving **Data Provenance**. [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security), also known as the "s" in "https" 🔐 to the general public, ensures that data can be securely communicated between a server and a user. But how can this user credibly share this data with another user or server without compromising security, privacy, and control?
The User can now use this transcript and disclose parts of it to another
party, which we call the Verifier. The Verifier only needs to trust the Notary
in order to accept proofs from many different users. This way, TLSNotary
can be used for a variety of purposes. For example you can use TLSNotary to
prove that
Enter TLSNotary: a protocol enabling users to export data securely from any website. Using Zero Knowledge Proof (ZKP) technology, this data can be selectively shared with others in a cryptographically verifiable manner.
- you have received a money transfer using your online banking account, without
revealing your login credentials or sensitive financial information.
- you have access to an account on a web platform.
- a website showed some specific content on a certain date.
TLSNotary makes data truly portable and allows users to share it with others as they see fit.
Overall, the TLSNotary protocol can be used in any scenario where you need to
prove to a third party facts about the content of a TLS connection.
## How Does the TLSNotary Protocol Work?
Some interesting aspects of TLSNotary are:
- The protocol is transparent to the web server, because it is not aware of the
notarization process. For the server it just looks like normal browsing.
- Data is kept private from the Notary. The Notary only sees the ciphertext and
never has access to the plaintext.
- No modifications to the TLS protocol are needed. You can use it without any
changes to web servers.
- The Notary and the Verifier can be the same entity. That means if you as a
Verifier do not want to trust some Notary server, you can run one yourself.
The TLSNotary protocol consists of 4 steps:
1. The `User` **requests** the data from the `Server` privately and securely.
2. The `Notary` **checks** for data tampering and **signs** the data.
3. The `User` **selectively discloses** the data to the `Verifier`.
4. The `Verifier` **verifies** the data.
![](./png-diagrams/overview3.png)
### ① Multi-party TLS Request
TLSNotary works by adding a third party, the `Notary`, to the usual TLS connection between the `User` and a `Server`. This `Notary` is **not "[a man in the middle](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)"**. Instead, the `Notary` participates in a **secure multi-party computation** (MPC) to jointly operate the TLS connection without ever seeing the data in plain text; the `Notary` only sees encrypted data. Given that the `Notary` only sees the temporary key of the `Server`, the `Notary` does not know which `Server` the `User` is communicating with. The TLSNotary protocol is transparent to the `Server`. From the `Server`'s perspective, the User's connection is a standard TLS connection.
<!-- - Transport Layer Security (TLS)
- Encryption: hides data from third parties
- Authentication: ensures that the parties exchanging information are who they claim to be
- Integrity: verifies that data has not been forged or tampered with -->
### ② Notarization
By participating in the **secure multi-party computation** (MPC) for TLS communication, the `Notary` can validate the authenticity and integrity of the communication with the `Server`. If the `User` has not cheated, the `Notary` **signs** the transcript of the entire TLS session. Since the `Notary` only checks encrypted data, this process is referred to as "blind signing".
### ③ Selective Disclosure
The TLSNotary protocol provides a means for the `User` to selectively prove the authenticity of arbitrary sections of the transcript to a `Verifier`. In this context, the `User` is often referred to as the `Prover`.
Due to the manner in which the `Notary` signs the transcript, the `User` can **redact sections**, thereby removing sensitive data. This capability can be paired with Zero-Knowledge Proofs to prove properties of the redacted data without revealing the data itself.
### ④ Verification
A `Verifier` validates the proof received from the `User`. By comparing the signature against the `Notary`'s public key, the `Verifier` ensures that the `User` did not tamper with the data.
The data's origin can be verified by inspecting the `Server` certificate through trusted certificate authorities (CAs).
### Trust Assumptions
TLSNotary requires a trust assumption. A `Verifier` of a proof must trust that the `Notary` did not collude with the `User` to forge it. This trust can be minimized by requiring multiple proofs, each signed by a different notary.
In certain applications, the `Verifier` might also function as the `Notary`, leading to **fully trustless proofs**.
## What Can TLSNotary Do?
TLSNotary can be used for various purposes. For example, you can use TLSNotary to prove that:
- you have access to an account on a web platform
- a website showed specific content on a certain date
- you have private information about yourself (address, birth date, health, etc.)
- you have received a money transfer using your online banking account without revealing your login credentials or sensitive financial information
- you received a private message from someone
- you were blocked from using an app
- you earned professional certificates
While TLSNotary can notarize publicly available data, it does not solve the "[oracle problem](https://ethereum.org/en/developers/docs/oracles/)". For this use case, existing oracle solutions are more suitable.
## Who is behind TLSNotary?
TLSNotary is developed by the Privacy and Scaling Exploration (PSE) research lab of the Ethereum Foundation. The PSE team is committed to conceptualizing and testing use cases for cryptographic primitives.
TLSNotary is not a new project; in fact, it has been around for [more than a decade](https://bitcointalk.org/index.php?topic=173220.0).
In 2022, TLSNotary was rebuilt from the ground up in [Rust](https://www.rust-lang.org/) incorporating state-of-the-art cryptographic protocols. This renewed version of the TLSNotary protocol offers enhanced security, privacy, and performance.
Older versions of TLSNotary, including PageSigner, have been archived due to a security vulnerability.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 KiB

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 148 KiB