developers/zcash-zf-frost-dag.html

278 lines
19 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash zf-frost DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="747pt" height="1019pt"
viewBox="0.00 0.00 747.00 1019.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1015)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1015 743,-1015 743,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="none" stroke="#0000ff" points="4.5,-444 4.5,-663 228.5,-663 228.5,-444 4.5,-444"/>
<text text-anchor="middle" x="116.5" y="-647.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Remaining Curves</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_2</title>
<polygon fill="none" stroke="#0000ff" points="0,-243 0,-436 739,-436 739,-243 0,-243"/>
<text text-anchor="middle" x="369.5" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: Re&#45;randomizable FROST</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_3</title>
<polygon fill="none" stroke="#0000ff" points="0,0 0,-235 233,-235 233,0 0,0"/>
<text text-anchor="middle" x="116.5" y="-219.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: v9/v10</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_1</title>
<polygon fill="none" stroke="#0000ff" points="4.5,-671 4.5,-778 481.5,-778 481.5,-671 4.5,-671"/>
<text text-anchor="middle" x="243" y="-762.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: DKG</text>
</g>
<!-- ZcashFoundation/frost#70 -->
<g id="node1" class="node open">
<title>ZcashFoundation/frost#70</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/70" xlink:title="ZcashFoundation/frost#70&#10;Add Ed25519 support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-632 12.5,-632 12.5,-594 220.5,-594 220.5,-632"/>
<text text-anchor="middle" x="116.5" y="-616.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#70</text>
<text text-anchor="middle" x="116.5" y="-601.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add Ed25519 support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#19 -->
<g id="node2" class="node open">
<title>ZcashFoundation/frost#19</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/19" xlink:title="ZcashFoundation/frost#19&#10;`frost&#45;secp256k1`:&#10;implement FROST on&#10;Secp256k1 curve" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-576 12.5,-576 12.5,-508 220.5,-508 220.5,-576"/>
<text text-anchor="middle" x="116.5" y="-560.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#19</text>
<text text-anchor="middle" x="116.5" y="-545.8" font-family="Times,serif" font-size="14.00" fill="#000000">`frost&#45;secp256k1`:</text>
<text text-anchor="middle" x="116.5" y="-530.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement FROST on</text>
<text text-anchor="middle" x="116.5" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000">Secp256k1 curve</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#71 -->
<g id="node3" class="node open">
<title>ZcashFoundation/frost#71</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/71" xlink:title="ZcashFoundation/frost#71&#10;Add Ed448 support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-490 12.5,-490 12.5,-452 220.5,-452 220.5,-490"/>
<text text-anchor="middle" x="116.5" y="-474.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#71</text>
<text text-anchor="middle" x="116.5" y="-459.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add Ed448 support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#119 -->
<g id="node4" class="node open">
<title>ZcashFoundation/frost#119</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/119" xlink:title="ZcashFoundation/frost#119&#10;Review and officially&#10;submit the Re&#45;&#10;randomizable FROST ZIP" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="478,-319 261,-319 261,-251 478,-251 478,-319"/>
<text text-anchor="middle" x="369.5" y="-303.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#119</text>
<text text-anchor="middle" x="369.5" y="-288.8" font-family="Times,serif" font-size="14.00" fill="#000000">Review and officially</text>
<text text-anchor="middle" x="369.5" y="-273.8" font-family="Times,serif" font-size="14.00" fill="#000000">submit the Re&#45;</text>
<text text-anchor="middle" x="369.5" y="-258.8" font-family="Times,serif" font-size="14.00" fill="#000000">randomizable FROST ZIP</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#120 -->
<g id="node5" class="node open">
<title>ZcashFoundation/frost#120</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/120" xlink:title="ZcashFoundation/frost#120&#10;Update Re&#45;randomizable&#10;FROST implementation to&#10;V10" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="478,-405 261,-405 261,-337 478,-337 478,-405"/>
<text text-anchor="middle" x="369.5" y="-389.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#120</text>
<text text-anchor="middle" x="369.5" y="-374.8" font-family="Times,serif" font-size="14.00" fill="#000000">Update Re&#45;randomizable</text>
<text text-anchor="middle" x="369.5" y="-359.8" font-family="Times,serif" font-size="14.00" fill="#000000">FROST implementation to</text>
<text text-anchor="middle" x="369.5" y="-344.8" font-family="Times,serif" font-size="14.00" fill="#000000">V10</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#121 -->
<g id="node6" class="node open">
<title>ZcashFoundation/frost#121</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/121" xlink:title="ZcashFoundation/frost#121&#10;Organize the Re&#45;&#10;randomizable FROST&#10;implementation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="731,-405 514,-405 514,-337 731,-337 731,-405"/>
<text text-anchor="middle" x="622.5" y="-389.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#121</text>
<text text-anchor="middle" x="622.5" y="-374.8" font-family="Times,serif" font-size="14.00" fill="#000000">Organize the Re&#45;</text>
<text text-anchor="middle" x="622.5" y="-359.8" font-family="Times,serif" font-size="14.00" fill="#000000">randomizable FROST</text>
<text text-anchor="middle" x="622.5" y="-344.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#120&#45;&gt;ZcashFoundation/frost#121 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/frost#120&#45;&gt;ZcashFoundation/frost#121</title>
<path fill="none" stroke="#000000" d="M478.26,-371C486.64,-371 495.13,-371 503.57,-371"/>
<polygon fill="#000000" stroke="#000000" points="503.83,-374.5001 513.83,-371 503.83,-367.5001 503.83,-374.5001"/>
</g>
<!-- ZcashFoundation/frost#140 -->
<g id="node7" class="node open">
<title>ZcashFoundation/frost#140</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/140" xlink:title="ZcashFoundation/frost#140&#10;Update Re&#45;randomizable&#10;FROST ZIP to V10" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="225,-387.5 8,-387.5 8,-334.5 225,-334.5 225,-387.5"/>
<text text-anchor="middle" x="116.5" y="-372.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#140</text>
<text text-anchor="middle" x="116.5" y="-357.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update Re&#45;randomizable</text>
<text text-anchor="middle" x="116.5" y="-342.3" font-family="Times,serif" font-size="14.00" fill="#000000">FROST ZIP to V10</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#140&#45;&gt;ZcashFoundation/frost#119 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/frost#140&#45;&gt;ZcashFoundation/frost#119</title>
<path fill="none" stroke="#000000" d="M204.99,-334.42C219.86,-329.95 235.5,-325.25 250.98,-320.6"/>
<polygon fill="#000000" stroke="#000000" points="252.0157,-323.9435 260.59,-317.72 250.0061,-317.2381 252.0157,-323.9435"/>
</g>
<!-- ZcashFoundation/frost#140&#45;&gt;ZcashFoundation/frost#120 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/frost#140&#45;&gt;ZcashFoundation/frost#120</title>
<path fill="none" stroke="#000000" d="M225.26,-365.3C233.64,-365.63 242.13,-365.97 250.57,-366.3"/>
<polygon fill="#000000" stroke="#000000" points="250.7012,-369.8077 260.83,-366.7 250.974,-362.813 250.7012,-369.8077"/>
</g>
<!-- ZcashFoundation/frost#81 -->
<g id="node8" class="node open">
<title>ZcashFoundation/frost#81</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/81" xlink:title="ZcashFoundation/frost#81&#10;Start rerandomized repo" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-307 12.5,-307 12.5,-269 220.5,-269 220.5,-307"/>
<text text-anchor="middle" x="116.5" y="-291.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#81</text>
<text text-anchor="middle" x="116.5" y="-276.8" font-family="Times,serif" font-size="14.00" fill="#000000">Start rerandomized repo</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#79 -->
<g id="node9" class="node open">
<title>ZcashFoundation/frost#79</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/79" xlink:title="ZcashFoundation/frost#79&#10;Publish `frost&#45;` crates" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-204 12.5,-204 12.5,-166 220.5,-166 220.5,-204"/>
<text text-anchor="middle" x="116.5" y="-188.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#79</text>
<text text-anchor="middle" x="116.5" y="-173.8" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `frost&#45;` crates</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#102 -->
<g id="node10" class="node open">
<title>ZcashFoundation/frost#102</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/102" xlink:title="ZcashFoundation/frost#102&#10;frost&#45;core: add and use C&#10;iphersuite.identifier_to_&#10;scalar()" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="225,-148 8,-148 8,-80 225,-80 225,-148"/>
<text text-anchor="middle" x="116.5" y="-132.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#102</text>
<text text-anchor="middle" x="116.5" y="-117.8" font-family="Times,serif" font-size="14.00" fill="#000000">frost&#45;core: add and use C</text>
<text text-anchor="middle" x="116.5" y="-102.8" font-family="Times,serif" font-size="14.00" fill="#000000">iphersuite.identifier_to_</text>
<text text-anchor="middle" x="116.5" y="-87.8" font-family="Times,serif" font-size="14.00" fill="#000000">scalar()</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#133 -->
<g id="node11" class="node open">
<title>ZcashFoundation/frost#133</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/133" xlink:title="ZcashFoundation/frost#133&#10;Use nonce_generate test&#10;vectors" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="225,-61.5 8,-61.5 8,-8.5 225,-8.5 225,-61.5"/>
<text text-anchor="middle" x="116.5" y="-46.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#133</text>
<text text-anchor="middle" x="116.5" y="-31.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use nonce_generate test</text>
<text text-anchor="middle" x="116.5" y="-16.3" font-family="Times,serif" font-size="14.00" fill="#000000">vectors</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#35 -->
<g id="node12" class="node open">
<title>ZcashFoundation/frost#35</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/35" xlink:title="ZcashFoundation/frost#35&#10;frost&#45;core: Implement the&#10;generic DKG" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-739.5 12.5,-739.5 12.5,-686.5 220.5,-686.5 220.5,-739.5"/>
<text text-anchor="middle" x="116.5" y="-724.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#35</text>
<text text-anchor="middle" x="116.5" y="-709.3" font-family="Times,serif" font-size="14.00" fill="#000000">frost&#45;core: Implement the</text>
<text text-anchor="middle" x="116.5" y="-694.3" font-family="Times,serif" font-size="14.00" fill="#000000">generic DKG</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#63 -->
<g id="node13" class="node open">
<title>ZcashFoundation/frost#63</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/63" xlink:title="ZcashFoundation/frost#63&#10;frost&#45;ristretto255:&#10;implement `frost&#45;core`&#39;s&#10;DKG concretely" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="473.5,-747 265.5,-747 265.5,-679 473.5,-679 473.5,-747"/>
<text text-anchor="middle" x="369.5" y="-731.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#63</text>
<text text-anchor="middle" x="369.5" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000">frost&#45;ristretto255:</text>
<text text-anchor="middle" x="369.5" y="-701.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement `frost&#45;core`&#39;s</text>
<text text-anchor="middle" x="369.5" y="-686.8" font-family="Times,serif" font-size="14.00" fill="#000000">DKG concretely</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#35&#45;&gt;ZcashFoundation/frost#63 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/frost#35&#45;&gt;ZcashFoundation/frost#63</title>
<path fill="none" stroke="#000000" d="M220.5,-713C231.99,-713 243.74,-713 255.34,-713"/>
<polygon fill="#000000" stroke="#000000" points="255.49,-716.5001 265.49,-713 255.49,-709.5001 255.49,-716.5001"/>
</g>
<!-- ZcashFoundation/frost#39 -->
<g id="node14" class="node open">
<title>ZcashFoundation/frost#39</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/39" xlink:title="ZcashFoundation/frost#39&#10;Migrate/port `redjubjub`&#10;to frost&#45;core / FROST&#10;spec v05+" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-854 12.5,-854 12.5,-786 220.5,-786 220.5,-854"/>
<text text-anchor="middle" x="116.5" y="-838.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#39</text>
<text text-anchor="middle" x="116.5" y="-823.8" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate/port `redjubjub`</text>
<text text-anchor="middle" x="116.5" y="-808.8" font-family="Times,serif" font-size="14.00" fill="#000000">to frost&#45;core / FROST</text>
<text text-anchor="middle" x="116.5" y="-793.8" font-family="Times,serif" font-size="14.00" fill="#000000">spec v05+</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#40 -->
<g id="node15" class="node open">
<title>ZcashFoundation/frost#40</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/40" xlink:title="ZcashFoundation/frost#40&#10;Migrate/port `redpallas`&#10;to frost&#45;core / FROST&#10;spec v05+" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-940 12.5,-940 12.5,-872 220.5,-872 220.5,-940"/>
<text text-anchor="middle" x="116.5" y="-924.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#40</text>
<text text-anchor="middle" x="116.5" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate/port `redpallas`</text>
<text text-anchor="middle" x="116.5" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">to frost&#45;core / FROST</text>
<text text-anchor="middle" x="116.5" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000">spec v05+</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#132 -->
<g id="node16" class="node open">
<title>ZcashFoundation/frost#132</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/frost/issues/132" xlink:title="ZcashFoundation/frost#132&#10;Epic: v9/v10" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="225,-996 8,-996 8,-958 225,-958 225,-996"/>
<text text-anchor="middle" x="116.5" y="-980.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#132</text>
<text text-anchor="middle" x="116.5" y="-965.8" font-family="Times,serif" font-size="14.00" fill="#000000">Epic: v9/v10</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#114 -->
<g id="node17" class="node open">
<title>ZcashFoundation/frost#114</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/frost/pull/114" xlink:title="ZcashFoundation/frost#114&#10;Refreshed Identifier&#10;newtype of Scalar with&#10;traits" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="478,-1011 261,-1011 261,-1007 257,-1007 257,-1003 261,-1003 261,-951 257,-951 257,-947 261,-947 261,-943 478,-943 478,-1011"/>
<polyline fill="none" stroke="#000000" points="261,-1007 265,-1007 265,-1003 261,-1003 "/>
<polyline fill="none" stroke="#000000" points="261,-951 265,-951 265,-947 261,-947 "/>
<text text-anchor="middle" x="369.5" y="-995.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/frost#114</text>
<text text-anchor="middle" x="369.5" y="-980.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refreshed Identifier</text>
<text text-anchor="middle" x="369.5" y="-965.8" font-family="Times,serif" font-size="14.00" fill="#000000">newtype of Scalar with</text>
<text text-anchor="middle" x="369.5" y="-950.8" font-family="Times,serif" font-size="14.00" fill="#000000">traits</text>
</a>
</g>
</g>
<!-- ZcashFoundation/frost#132&#45;&gt;ZcashFoundation/frost#114 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/frost#132&#45;&gt;ZcashFoundation/frost#114</title>
<path fill="none" stroke="#000000" d="M225.26,-977C233.64,-977 242.13,-977 250.57,-977"/>
<polygon fill="#000000" stroke="#000000" points="250.83,-980.5001 260.83,-977 250.83,-973.5001 250.83,-980.5001"/>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>