developers/zcash-halo2-dag.html

606 lines
41 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash halo2 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="1687pt" height="1001pt"
viewBox="0.00 0.00 1687.00 1000.50" 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 996.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-996.5 1683,-996.5 1683,4 -4,4"/>
<!-- zcash/pasta_curves#35 -->
<g id="node1" class="node open">
<title>zcash/pasta_curves#35</title>
<g id="a_node1"><a xlink:href="https://github.com/zcash/pasta_curves/issues/35" xlink:title="zcash/pasta_curves#35&#10;Enable `ec&#45;gpu` to&#10;generate MSM and FFT code&#10;for `pasta_curves`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="226,-68 0,-68 0,0 226,0 226,-68"/>
<text text-anchor="middle" x="113" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/pasta_curves#35</text>
<text text-anchor="middle" x="113" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Enable `ec&#45;gpu` to</text>
<text text-anchor="middle" x="113" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">generate MSM and FFT code</text>
<text text-anchor="middle" x="113" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">for `pasta_curves`</text>
</a>
</g>
</g>
<!-- zcash/halo2#379 -->
<g id="node2" class="node open">
<title>zcash/halo2#379</title>
<g id="a_node2"><a xlink:href="https://github.com/zcash/halo2/issues/379" xlink:title="zcash/halo2#379&#10;Add `ec&#45;gpu` support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="459,-53 286,-53 286,-15 459,-15 459,-53"/>
<text text-anchor="middle" x="372.5" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#379</text>
<text text-anchor="middle" x="372.5" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add `ec&#45;gpu` support</text>
</a>
</g>
</g>
<!-- zcash/pasta_curves#35&#45;&gt;zcash/halo2#379 -->
<g id="edge1" class="edge">
<title>zcash/pasta_curves#35&#45;&gt;zcash/halo2#379</title>
<path fill="none" stroke="#000000" d="M226.07,-34C242.69,-34 259.69,-34 275.94,-34"/>
<polygon fill="#000000" stroke="#000000" points="275.96,-37.5001 285.96,-34 275.96,-30.5001 275.96,-37.5001"/>
</g>
<!-- zcash/halo2#426 -->
<g id="node3" class="node committed">
<title>zcash/halo2#426</title>
<g id="a_node3"><a xlink:href="https://github.com/zcash/halo2/issues/426" xlink:title="zcash/halo2#426&#10;Publish `halo2_proofs&#10;0.1.0`" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" points="459,-210.5 286,-210.5 286,-157.5 459,-157.5 459,-210.5"/>
<text text-anchor="middle" x="372.5" y="-195.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#426</text>
<text text-anchor="middle" x="372.5" y="-180.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_proofs</text>
<text text-anchor="middle" x="372.5" y="-165.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.1.0`</text>
</a>
</g>
</g>
<!-- zcash/halo2#460 -->
<g id="node4" class="node committed">
<title>zcash/halo2#460</title>
<g id="a_node4"><a xlink:href="https://github.com/zcash/halo2/issues/460" xlink:title="zcash/halo2#460&#10;Publish `halo2_gadgets&#10;v0.1.0`" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" points="710,-253.5 525,-253.5 525,-200.5 710,-200.5 710,-253.5"/>
<text text-anchor="middle" x="617.5" y="-238.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#460</text>
<text text-anchor="middle" x="617.5" y="-223.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_gadgets</text>
<text text-anchor="middle" x="617.5" y="-208.3" font-family="Times,serif" font-size="14.00" fill="#000000">v0.1.0`</text>
</a>
</g>
</g>
<!-- zcash/halo2#426&#45;&gt;zcash/halo2#460 -->
<g id="edge2" class="edge">
<title>zcash/halo2#426&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M459.22,-199.22C477.19,-202.37 496.29,-205.73 514.77,-208.97"/>
<polygon fill="#000000" stroke="#000000" points="514.2048,-212.4242 524.66,-210.71 515.4177,-205.5301 514.2048,-212.4242"/>
</g>
<!-- zcash/halo2#75 -->
<g id="node5" class="node open">
<title>zcash/halo2#75</title>
<g id="a_node5"><a xlink:href="https://github.com/zcash/halo2/issues/75" xlink:title="zcash/halo2#75&#10;Implement support for&#10;recursion" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1436.5,-518.5 1257.5,-518.5 1257.5,-465.5 1436.5,-465.5 1436.5,-518.5"/>
<text text-anchor="middle" x="1347" y="-503.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#75</text>
<text text-anchor="middle" x="1347" y="-488.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement support for</text>
<text text-anchor="middle" x="1347" y="-473.3" font-family="Times,serif" font-size="14.00" fill="#000000">recursion</text>
</a>
</g>
</g>
<!-- zcash/halo2#494 -->
<g id="node6" class="node open">
<title>zcash/halo2#494</title>
<g id="a_node6"><a xlink:href="https://github.com/zcash/halo2/issues/494" xlink:title="zcash/halo2#494&#10;Consider adding an API&#10;that enables application&#10;circuits to be built&#10;across both fields" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1679,-533.5 1490,-533.5 1490,-450.5 1679,-450.5 1679,-533.5"/>
<text text-anchor="middle" x="1584.5" y="-518.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#494</text>
<text text-anchor="middle" x="1584.5" y="-503.3" font-family="Times,serif" font-size="14.00" fill="#000000">Consider adding an API</text>
<text text-anchor="middle" x="1584.5" y="-488.3" font-family="Times,serif" font-size="14.00" fill="#000000">that enables application</text>
<text text-anchor="middle" x="1584.5" y="-473.3" font-family="Times,serif" font-size="14.00" fill="#000000">circuits to be built</text>
<text text-anchor="middle" x="1584.5" y="-458.3" font-family="Times,serif" font-size="14.00" fill="#000000">across both fields</text>
</a>
</g>
</g>
<!-- zcash/halo2#75&#45;&gt;zcash/halo2#494 -->
<g id="edge3" class="edge">
<title>zcash/halo2#75&#45;&gt;zcash/halo2#494</title>
<path fill="none" stroke="#000000" d="M1436.8,-492C1450.7,-492 1465.3,-492 1479.5,-492"/>
<polygon fill="#000000" stroke="#000000" points="1479.8,-495.5001 1489.8,-492 1479.8,-488.5001 1479.8,-495.5001"/>
</g>
<!-- zcash/halo2#79 -->
<g id="node7" class="node open">
<title>zcash/halo2#79</title>
<g id="a_node7"><a xlink:href="https://github.com/zcash/halo2/issues/79" xlink:title="zcash/halo2#79&#10;Migrate Rescue and&#10;Poseidon gadgets to&#10;algebraic hash&#10;abstraction" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179.5,-800.5 1018.5,-800.5 1018.5,-717.5 1179.5,-717.5 1179.5,-800.5"/>
<text text-anchor="middle" x="1099" y="-785.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#79</text>
<text text-anchor="middle" x="1099" y="-770.3" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate Rescue and</text>
<text text-anchor="middle" x="1099" y="-755.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadgets to</text>
<text text-anchor="middle" x="1099" y="-740.3" font-family="Times,serif" font-size="14.00" fill="#000000">algebraic hash</text>
<text text-anchor="middle" x="1099" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000">abstraction</text>
</a>
</g>
</g>
<!-- zcash/halo2#78 -->
<g id="node8" class="node open">
<title>zcash/halo2#78</title>
<g id="a_node8"><a xlink:href="https://github.com/zcash/halo2/issues/78" xlink:title="zcash/halo2#78&#10;Implement algebraic hash&#10;/ random oracle&#10;abstraction gadget" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="957,-793 753,-793 753,-725 957,-725 957,-793"/>
<text text-anchor="middle" x="855" y="-777.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#78</text>
<text text-anchor="middle" x="855" y="-762.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement algebraic hash</text>
<text text-anchor="middle" x="855" y="-747.8" font-family="Times,serif" font-size="14.00" fill="#000000">/ random oracle</text>
<text text-anchor="middle" x="855" y="-732.8" font-family="Times,serif" font-size="14.00" fill="#000000">abstraction gadget</text>
</a>
</g>
</g>
<!-- zcash/halo2#78&#45;&gt;zcash/halo2#79 -->
<g id="edge4" class="edge">
<title>zcash/halo2#78&#45;&gt;zcash/halo2#79</title>
<path fill="none" stroke="#000000" d="M957.06,-759C974.04,-759 991.55,-759 1008.2,-759"/>
<polygon fill="#000000" stroke="#000000" points="1008.5,-762.5001 1018.5,-759 1008.5,-755.5001 1008.5,-762.5001"/>
</g>
<!-- zcash/halo2#250 -->
<g id="node9" class="node open">
<title>zcash/halo2#250</title>
<g id="a_node9"><a xlink:href="https://github.com/zcash/halo2/issues/250" xlink:title="zcash/halo2#250&#10;Implement the logic for&#10;the IVC verifier circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1192,-580.5 1006,-580.5 1006,-527.5 1192,-527.5 1192,-580.5"/>
<text text-anchor="middle" x="1099" y="-565.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#250</text>
<text text-anchor="middle" x="1099" y="-550.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="1099" y="-535.3" font-family="Times,serif" font-size="14.00" fill="#000000">the IVC verifier circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#78&#45;&gt;zcash/halo2#250 -->
<g id="edge5" class="edge">
<title>zcash/halo2#78&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M944.1,-724.99C948.93,-722.17 953.6,-719.17 958,-716 1007.1,-680.55 1050.7,-624.85 1076,-588.87"/>
<polygon fill="#000000" stroke="#000000" points="1078.8952,-590.8368 1081.7,-580.62 1073.1361,-586.8578 1078.8952,-590.8368"/>
</g>
<!-- zcash/halo2#250&#45;&gt;zcash/halo2#75 -->
<g id="edge6" class="edge">
<title>zcash/halo2#250&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1192.1,-530.74C1210.1,-526.22 1229.1,-521.47 1247.4,-516.91"/>
<polygon fill="#000000" stroke="#000000" points="1248.256,-520.3038 1257.1,-514.47 1246.5483,-513.5153 1248.256,-520.3038"/>
</g>
<!-- zcash/halo2#57 -->
<g id="node10" class="node open">
<title>zcash/halo2#57</title>
<g id="a_node10"><a xlink:href="https://github.com/zcash/halo2/issues/57" xlink:title="zcash/halo2#57&#10;Remove unused&#10;fixed_values from&#10;ProvingKey" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="184.5,-535 41.5,-535 41.5,-467 184.5,-467 184.5,-535"/>
<text text-anchor="middle" x="113" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#57</text>
<text text-anchor="middle" x="113" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove unused</text>
<text text-anchor="middle" x="113" y="-489.8" font-family="Times,serif" font-size="14.00" fill="#000000">fixed_values from</text>
<text text-anchor="middle" x="113" y="-474.8" font-family="Times,serif" font-size="14.00" fill="#000000">ProvingKey</text>
</a>
</g>
</g>
<!-- zcash/halo2#443 -->
<g id="node11" class="node open">
<title>zcash/halo2#443</title>
<g id="a_node11"><a xlink:href="https://github.com/zcash/halo2/issues/443" xlink:title="zcash/halo2#443&#10;implement `read` &amp;&#10;`write` for `halo2::plonk&#10;::ProvingKey`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="469.5,-535 275.5,-535 275.5,-467 469.5,-467 469.5,-535"/>
<text text-anchor="middle" x="372.5" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#443</text>
<text text-anchor="middle" x="372.5" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement `read` &amp;</text>
<text text-anchor="middle" x="372.5" y="-489.8" font-family="Times,serif" font-size="14.00" fill="#000000">`write` for `halo2::plonk</text>
<text text-anchor="middle" x="372.5" y="-474.8" font-family="Times,serif" font-size="14.00" fill="#000000">::ProvingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#57&#45;&gt;zcash/halo2#443 -->
<g id="edge7" class="edge">
<title>zcash/halo2#57&#45;&gt;zcash/halo2#443</title>
<path fill="none" stroke="#000000" d="M184.6,-501C209.47,-501 237.94,-501 265.07,-501"/>
<polygon fill="#000000" stroke="#000000" points="265.39,-504.5001 275.39,-501 265.39,-497.5001 265.39,-504.5001"/>
</g>
<!-- zcash/halo2#449 -->
<g id="node12" class="node open">
<title>zcash/halo2#449</title>
<g id="a_node12"><a xlink:href="https://github.com/zcash/halo2/issues/449" xlink:title="zcash/halo2#449&#10;Define a stable&#10;serialization format for&#10;`VerifyingKey`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="204,-621 22,-621 22,-553 204,-553 204,-621"/>
<text text-anchor="middle" x="113" y="-605.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#449</text>
<text text-anchor="middle" x="113" y="-590.8" font-family="Times,serif" font-size="14.00" fill="#000000">Define a stable</text>
<text text-anchor="middle" x="113" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000">serialization format for</text>
<text text-anchor="middle" x="113" y="-560.8" font-family="Times,serif" font-size="14.00" fill="#000000">`VerifyingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#483 -->
<g id="node13" class="node committed">
<title>zcash/halo2#483</title>
<g id="a_node13"><a xlink:href="https://github.com/zcash/halo2/issues/483" xlink:title="zcash/halo2#483&#10;Refactor variable&#45;base&#10;scalar mul to distinguish&#10;the &quot;base field element&quot;&#10;case" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" stroke-width="2" points="469.5,-311.5 275.5,-311.5 275.5,-228.5 469.5,-228.5 469.5,-311.5"/>
<text text-anchor="middle" x="372.5" y="-296.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#483</text>
<text text-anchor="middle" x="372.5" y="-281.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor variable&#45;base</text>
<text text-anchor="middle" x="372.5" y="-266.3" font-family="Times,serif" font-size="14.00" fill="#000000">scalar mul to distinguish</text>
<text text-anchor="middle" x="372.5" y="-251.3" font-family="Times,serif" font-size="14.00" fill="#000000">the &quot;base field element&quot;</text>
<text text-anchor="middle" x="372.5" y="-236.3" font-family="Times,serif" font-size="14.00" fill="#000000">case</text>
</a>
</g>
</g>
<!-- zcash/halo2#483&#45;&gt;zcash/halo2#460 -->
<g id="edge8" class="edge">
<title>zcash/halo2#483&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M469.68,-252.94C484.45,-250.35 499.72,-247.67 514.6,-245.06"/>
<polygon fill="#000000" stroke="#000000" points="515.5829,-248.4413 524.83,-243.27 514.3764,-241.546 515.5829,-248.4413"/>
</g>
<!-- zcash/halo2#420 -->
<g id="node14" class="node open">
<title>zcash/halo2#420</title>
<g id="a_node14"><a xlink:href="https://github.com/zcash/halo2/issues/420" xlink:title="zcash/halo2#420&#10;CI: Measure memory&#45;usage&#10;benchmarks" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-692.5 5.5,-692.5 5.5,-639.5 220.5,-639.5 220.5,-692.5"/>
<text text-anchor="middle" x="113" y="-677.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#420</text>
<text text-anchor="middle" x="113" y="-662.3" font-family="Times,serif" font-size="14.00" fill="#000000">CI: Measure memory&#45;usage</text>
<text text-anchor="middle" x="113" y="-647.3" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks</text>
</a>
</g>
</g>
<!-- zcash/halo2#418 -->
<g id="node15" class="node open">
<title>zcash/halo2#418</title>
<g id="a_node15"><a xlink:href="https://github.com/zcash/halo2/issues/418" xlink:title="zcash/halo2#418&#10;[memory optimization]&#10;lookup prover memory&#10;analysis" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="462,-700 283,-700 283,-632 462,-632 462,-700"/>
<text text-anchor="middle" x="372.5" y="-684.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#418</text>
<text text-anchor="middle" x="372.5" y="-669.8" font-family="Times,serif" font-size="14.00" fill="#000000">[memory optimization]</text>
<text text-anchor="middle" x="372.5" y="-654.8" font-family="Times,serif" font-size="14.00" fill="#000000">lookup prover memory</text>
<text text-anchor="middle" x="372.5" y="-639.8" font-family="Times,serif" font-size="14.00" fill="#000000">analysis</text>
</a>
</g>
</g>
<!-- zcash/halo2#420&#45;&gt;zcash/halo2#418 -->
<g id="edge9" class="edge">
<title>zcash/halo2#420&#45;&gt;zcash/halo2#418</title>
<path fill="none" stroke="#000000" d="M220.8,-666C237.86,-666 255.45,-666 272.34,-666"/>
<polygon fill="#000000" stroke="#000000" points="272.75,-669.5001 282.75,-666 272.75,-662.5001 272.75,-669.5001"/>
</g>
<!-- zcash/halo2#427 -->
<g id="node16" class="node open">
<title>zcash/halo2#427</title>
<g id="a_node16"><a xlink:href="https://github.com/zcash/halo2/issues/427" xlink:title="zcash/halo2#427&#10;Use smaller extended&#10;domains where possible&#10;during proving" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="207,-779 19,-779 19,-711 207,-711 207,-779"/>
<text text-anchor="middle" x="113" y="-763.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#427</text>
<text text-anchor="middle" x="113" y="-748.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use smaller extended</text>
<text text-anchor="middle" x="113" y="-733.8" font-family="Times,serif" font-size="14.00" fill="#000000">domains where possible</text>
<text text-anchor="middle" x="113" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000">during proving</text>
</a>
</g>
</g>
<!-- zcash/halo2#456 -->
<g id="node17" class="node open">
<title>zcash/halo2#456</title>
<g id="a_node17"><a xlink:href="https://github.com/zcash/halo2/issues/456" xlink:title="zcash/halo2#456&#10;Benchmark `sha256`&#10;gadget." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="198,-850.5 28,-850.5 28,-797.5 198,-797.5 198,-850.5"/>
<text text-anchor="middle" x="113" y="-835.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#456</text>
<text text-anchor="middle" x="113" y="-820.3" font-family="Times,serif" font-size="14.00" fill="#000000">Benchmark `sha256`</text>
<text text-anchor="middle" x="113" y="-805.3" font-family="Times,serif" font-size="14.00" fill="#000000">gadget.</text>
</a>
</g>
</g>
<!-- zcash/halo2#455 -->
<g id="node18" class="node open">
<title>zcash/halo2#455</title>
<g id="a_node18"><a xlink:href="https://github.com/zcash/halo2/issues/455" xlink:title="zcash/halo2#455&#10;[Book] add description of&#10;Poseidon gadget and chip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="213,-921.5 13,-921.5 13,-868.5 213,-868.5 213,-921.5"/>
<text text-anchor="middle" x="113" y="-906.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#455</text>
<text text-anchor="middle" x="113" y="-891.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] add description of</text>
<text text-anchor="middle" x="113" y="-876.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadget and chip</text>
</a>
</g>
</g>
<!-- zcash/halo2#251 -->
<g id="node19" class="node open">
<title>zcash/halo2#251</title>
<g id="a_node19"><a xlink:href="https://github.com/zcash/halo2/issues/251" xlink:title="zcash/halo2#251&#10;Implement user&#45;facing API&#10;for recursive proving of&#10;IVC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1204,-463 994,-463 994,-395 1204,-395 1204,-463"/>
<text text-anchor="middle" x="1099" y="-447.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#251</text>
<text text-anchor="middle" x="1099" y="-432.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement user&#45;facing API</text>
<text text-anchor="middle" x="1099" y="-417.8" font-family="Times,serif" font-size="14.00" fill="#000000">for recursive proving of</text>
<text text-anchor="middle" x="1099" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#251&#45;&gt;zcash/halo2#75 -->
<g id="edge10" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1204.2,-455.72C1218.5,-459.37 1233.3,-463.11 1247.5,-466.73"/>
<polygon fill="#000000" stroke="#000000" points="1246.746,-470.1496 1257.3,-469.22 1248.4699,-463.3651 1246.746,-470.1496"/>
</g>
<!-- zcash/halo2#437 -->
<g id="node20" class="node open">
<title>zcash/halo2#437</title>
<g id="a_node20"><a xlink:href="https://github.com/zcash/halo2/issues/437" xlink:title="zcash/halo2#437&#10;Amend user&#45;facing API to&#10;work for both IVC and PCD" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1454,-424.5 1240,-424.5 1240,-371.5 1454,-371.5 1454,-424.5"/>
<text text-anchor="middle" x="1347" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#437</text>
<text text-anchor="middle" x="1347" y="-394.3" font-family="Times,serif" font-size="14.00" fill="#000000">Amend user&#45;facing API to</text>
<text text-anchor="middle" x="1347" y="-379.3" font-family="Times,serif" font-size="14.00" fill="#000000">work for both IVC and PCD</text>
</a>
</g>
</g>
<!-- zcash/halo2#251&#45;&gt;zcash/halo2#437 -->
<g id="edge11" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M1204.2,-415.85C1212.6,-414.8 1221.2,-413.73 1229.7,-412.66"/>
<polygon fill="#000000" stroke="#000000" points="1230.2114,-416.1234 1239.7,-411.41 1229.3431,-409.1775 1230.2114,-416.1234"/>
</g>
<!-- zcash/halo2#436 -->
<g id="node21" class="node open">
<title>zcash/halo2#436</title>
<g id="a_node21"><a xlink:href="https://github.com/zcash/halo2/issues/436" xlink:title="zcash/halo2#436&#10;Implement mock&#10;verification circuit for&#10;PCD" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="705,-365 530,-365 530,-297 705,-297 705,-365"/>
<text text-anchor="middle" x="617.5" y="-349.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#436</text>
<text text-anchor="middle" x="617.5" y="-334.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-319.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-304.8" font-family="Times,serif" font-size="14.00" fill="#000000">PCD</text>
</a>
</g>
</g>
<!-- zcash/halo2#436&#45;&gt;zcash/halo2#437 -->
<g id="edge12" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M705.36,-341.87C720.89,-343.67 736.91,-345.46 752,-347 798.08,-351.71 1069.8,-374.7 1229.6,-388.15"/>
<polygon fill="#000000" stroke="#000000" points="1229.743,-391.6741 1240,-389.02 1230.3266,-384.6985 1229.743,-391.6741"/>
</g>
<!-- zcash/halo2#438 -->
<g id="node22" class="node open">
<title>zcash/halo2#438</title>
<g id="a_node22"><a xlink:href="https://github.com/zcash/halo2/issues/438" xlink:title="zcash/halo2#438&#10;Implement the logic for&#10;the PCD verifier circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="948,-338.5 762,-338.5 762,-285.5 948,-285.5 948,-338.5"/>
<text text-anchor="middle" x="855" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#438</text>
<text text-anchor="middle" x="855" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="855" y="-293.3" font-family="Times,serif" font-size="14.00" fill="#000000">the PCD verifier circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#436&#45;&gt;zcash/halo2#438 -->
<g id="edge13" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#438</title>
<path fill="none" stroke="#000000" d="M705.26,-323.98C720.33,-322.77 736.11,-321.51 751.54,-320.28"/>
<polygon fill="#000000" stroke="#000000" points="751.9325,-323.7598 761.62,-319.47 751.3718,-316.7823 751.9325,-323.7598"/>
</g>
<!-- zcash/halo2#435 -->
<g id="node23" class="node open">
<title>zcash/halo2#435</title>
<g id="a_node23"><a xlink:href="https://github.com/zcash/halo2/issues/435" xlink:title="zcash/halo2#435&#10;Implement mock&#10;verification circuit for&#10;IVC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="705,-523 530,-523 530,-455 705,-455 705,-523"/>
<text text-anchor="middle" x="617.5" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#435</text>
<text text-anchor="middle" x="617.5" y="-492.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-477.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-462.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#247 -->
<g id="node24" class="node open">
<title>zcash/halo2#247</title>
<g id="a_node24"><a xlink:href="https://github.com/zcash/halo2/issues/247" xlink:title="zcash/halo2#247&#10;Implement underlying&#10;scaffolding for creating&#10;the IVC proof cycle" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="947.5,-463 762.5,-463 762.5,-395 947.5,-395 947.5,-463"/>
<text text-anchor="middle" x="855" y="-447.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#247</text>
<text text-anchor="middle" x="855" y="-432.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement underlying</text>
<text text-anchor="middle" x="855" y="-417.8" font-family="Times,serif" font-size="14.00" fill="#000000">scaffolding for creating</text>
<text text-anchor="middle" x="855" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000">the IVC proof cycle</text>
</a>
</g>
</g>
<!-- zcash/halo2#435&#45;&gt;zcash/halo2#247 -->
<g id="edge14" class="edge">
<title>zcash/halo2#435&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M705.26,-466.83C720.69,-462.93 736.87,-458.84 752.66,-454.86"/>
<polygon fill="#000000" stroke="#000000" points="753.5843,-458.2365 762.42,-452.39 751.8669,-451.4504 753.5843,-458.2365"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#250 -->
<g id="edge15" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M939.17,-463.06C945.59,-465.99 951.93,-468.98 958,-472 988.53,-487.17 1021.5,-506.21 1047.9,-522.12"/>
<polygon fill="#000000" stroke="#000000" points="1046.2316,-525.2012 1056.6,-527.38 1049.8533,-519.211 1046.2316,-525.2012"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#251 -->
<g id="edge16" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#251</title>
<path fill="none" stroke="#000000" d="M947.59,-429C959.39,-429 971.58,-429 983.68,-429"/>
<polygon fill="#000000" stroke="#000000" points="983.81,-432.5001 993.81,-429 983.81,-425.5001 983.81,-432.5001"/>
</g>
<!-- zcash/halo2#246 -->
<g id="node25" class="node open">
<title>zcash/halo2#246</title>
<g id="a_node25"><a xlink:href="https://github.com/zcash/halo2/issues/246" xlink:title="zcash/halo2#246&#10;Create recursive proof&#10;structures" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="462,-448.5 283,-448.5 283,-395.5 462,-395.5 462,-448.5"/>
<text text-anchor="middle" x="372.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#246</text>
<text text-anchor="middle" x="372.5" y="-418.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create recursive proof</text>
<text text-anchor="middle" x="372.5" y="-403.3" font-family="Times,serif" font-size="14.00" fill="#000000">structures</text>
</a>
</g>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#436 -->
<g id="edge17" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#436</title>
<path fill="none" stroke="#000000" d="M444.02,-395.43C467.82,-386.6 494.74,-376.6 520.15,-367.16"/>
<polygon fill="#000000" stroke="#000000" points="521.6479,-370.3372 529.8,-363.57 519.2072,-363.7764 521.6479,-370.3372"/>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#435 -->
<g id="edge18" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#435</title>
<path fill="none" stroke="#000000" d="M462.34,-446.57C481.06,-451.69 500.88,-457.11 519.87,-462.3"/>
<polygon fill="#000000" stroke="#000000" points="519.1512,-465.7318 529.72,-464.99 520.9954,-458.9791 519.1512,-465.7318"/>
</g>
<!-- zcash/halo2#439 -->
<g id="node26" class="node open">
<title>zcash/halo2#439</title>
<g id="a_node26"><a xlink:href="https://github.com/zcash/halo2/issues/439" xlink:title="zcash/halo2#439&#10;Support split&#10;accumulation in Halo 2" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="204.5,-448.5 21.5,-448.5 21.5,-395.5 204.5,-395.5 204.5,-448.5"/>
<text text-anchor="middle" x="113" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#439</text>
<text text-anchor="middle" x="113" y="-418.3" font-family="Times,serif" font-size="14.00" fill="#000000">Support split</text>
<text text-anchor="middle" x="113" y="-403.3" font-family="Times,serif" font-size="14.00" fill="#000000">accumulation in Halo 2</text>
</a>
</g>
</g>
<!-- zcash/halo2#439&#45;&gt;zcash/halo2#246 -->
<g id="edge19" class="edge">
<title>zcash/halo2#439&#45;&gt;zcash/halo2#246</title>
<path fill="none" stroke="#000000" d="M204.86,-422C226.86,-422 250.45,-422 272.79,-422"/>
<polygon fill="#000000" stroke="#000000" points="272.95,-425.5001 282.95,-422 272.95,-418.5001 272.95,-425.5001"/>
</g>
<!-- zcash/halo2#359 -->
<g id="node27" class="node open">
<title>zcash/halo2#359</title>
<g id="a_node27"><a xlink:href="https://github.com/zcash/halo2/issues/359" xlink:title="zcash/halo2#359&#10;Set up `BaseTranscript`,&#10;`ScalarTranscript`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="716,-436.5 519,-436.5 519,-383.5 716,-383.5 716,-436.5"/>
<text text-anchor="middle" x="617.5" y="-421.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#359</text>
<text text-anchor="middle" x="617.5" y="-406.3" font-family="Times,serif" font-size="14.00" fill="#000000">Set up `BaseTranscript`,</text>
<text text-anchor="middle" x="617.5" y="-391.3" font-family="Times,serif" font-size="14.00" fill="#000000">`ScalarTranscript`</text>
</a>
</g>
</g>
<!-- zcash/halo2#359&#45;&gt;zcash/halo2#247 -->
<g id="edge20" class="edge">
<title>zcash/halo2#359&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M716.16,-417.89C728.11,-418.85 740.33,-419.83 752.34,-420.79"/>
<polygon fill="#000000" stroke="#000000" points="752.1131,-424.2829 762.36,-421.59 752.6703,-417.3051 752.1131,-424.2829"/>
</g>
<!-- zcash/halo2#249 -->
<g id="node28" class="node open">
<title>zcash/halo2#249</title>
<g id="a_node28"><a xlink:href="https://github.com/zcash/halo2/issues/249" xlink:title="zcash/halo2#249&#10;Implement recursion&#10;circuit logic for&#10;handling public inputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="943.5,-707 766.5,-707 766.5,-639 943.5,-639 943.5,-707"/>
<text text-anchor="middle" x="855" y="-691.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#249</text>
<text text-anchor="middle" x="855" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement recursion</text>
<text text-anchor="middle" x="855" y="-661.8" font-family="Times,serif" font-size="14.00" fill="#000000">circuit logic for</text>
<text text-anchor="middle" x="855" y="-646.8" font-family="Times,serif" font-size="14.00" fill="#000000">handling public inputs</text>
</a>
</g>
</g>
<!-- zcash/halo2#249&#45;&gt;zcash/halo2#250 -->
<g id="edge21" class="edge">
<title>zcash/halo2#249&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M938.51,-638.96C945.14,-636.01 951.7,-633 958,-630 986.74,-616.3 1018,-599.65 1043.7,-585.43"/>
<polygon fill="#000000" stroke="#000000" points="1045.5416,-588.4112 1052.6,-580.51 1042.1549,-582.285 1045.5416,-588.4112"/>
</g>
<!-- zcash/halo2#380 -->
<g id="node29" class="node committed">
<title>zcash/halo2#380</title>
<g id="a_node29"><a xlink:href="https://github.com/zcash/halo2/pull/380" xlink:title="zcash/halo2#380&#10;[book] Fix errors and&#10;typos" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" stroke-width="2" points="197,-274.5 29,-274.5 29,-270.5 25,-270.5 25,-266.5 29,-266.5 29,-229.5 25,-229.5 25,-225.5 29,-225.5 29,-221.5 197,-221.5 197,-274.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="29,-270.5 33,-270.5 33,-266.5 29,-266.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="29,-229.5 33,-229.5 33,-225.5 29,-225.5 "/>
<text text-anchor="middle" x="113" y="-259.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#380</text>
<text text-anchor="middle" x="113" y="-244.3" font-family="Times,serif" font-size="14.00" fill="#000000">[book] Fix errors and</text>
<text text-anchor="middle" x="113" y="-229.3" font-family="Times,serif" font-size="14.00" fill="#000000">typos</text>
</a>
</g>
</g>
<!-- zcash/halo2#380&#45;&gt;zcash/halo2#426 -->
<g id="edge22" class="edge">
<title>zcash/halo2#380&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M197.25,-227.22C222.32,-221.04 249.97,-214.22 275.77,-207.86"/>
<polygon fill="#000000" stroke="#000000" points="276.6835,-211.2396 285.55,-205.44 275.002,-204.4445 276.6835,-211.2396"/>
</g>
<!-- zcash/halo2#542 -->
<g id="node30" class="node committed">
<title>zcash/halo2#542</title>
<g id="a_node30"><a xlink:href="https://github.com/zcash/halo2/pull/542" xlink:title="zcash/halo2#542&#10;Relicense Halo 2 crates&#10;as MIT OR Apache 2.0" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" stroke-width="2" points="206.5,-203.5 19.5,-203.5 19.5,-199.5 15.5,-199.5 15.5,-195.5 19.5,-195.5 19.5,-158.5 15.5,-158.5 15.5,-154.5 19.5,-154.5 19.5,-150.5 206.5,-150.5 206.5,-203.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="19.5,-199.5 23.5,-199.5 23.5,-195.5 19.5,-195.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="19.5,-158.5 23.5,-158.5 23.5,-154.5 19.5,-154.5 "/>
<text text-anchor="middle" x="113" y="-188.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#542</text>
<text text-anchor="middle" x="113" y="-173.3" font-family="Times,serif" font-size="14.00" fill="#000000">Relicense Halo 2 crates</text>
<text text-anchor="middle" x="113" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">as MIT OR Apache 2.0</text>
</a>
</g>
</g>
<!-- zcash/halo2#542&#45;&gt;zcash/halo2#426 -->
<g id="edge23" class="edge">
<title>zcash/halo2#542&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M206.69,-179.53C229.09,-180.13 253.06,-180.78 275.61,-181.39"/>
<polygon fill="#000000" stroke="#000000" points="275.7713,-184.8954 285.86,-181.66 275.9557,-177.8978 275.7713,-184.8954"/>
</g>
<!-- zcash/halo2#248 -->
<g id="node31" class="node open">
<title>zcash/halo2#248</title>
<g id="a_node31"><a xlink:href="https://github.com/zcash/halo2/issues/248" xlink:title="zcash/halo2#248&#10;Implement endoscaling in&#10;the circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="956.5,-620.5 753.5,-620.5 753.5,-567.5 956.5,-567.5 956.5,-620.5"/>
<text text-anchor="middle" x="855" y="-605.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#248</text>
<text text-anchor="middle" x="855" y="-590.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement endoscaling in</text>
<text text-anchor="middle" x="855" y="-575.3" font-family="Times,serif" font-size="14.00" fill="#000000">the circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#248&#45;&gt;zcash/halo2#250 -->
<g id="edge24" class="edge">
<title>zcash/halo2#248&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M956.71,-577.33C969.51,-575.23 982.61,-573.08 995.43,-570.98"/>
<polygon fill="#000000" stroke="#000000" points="996.3042,-574.3831 1005.6,-569.3 995.1632,-567.4767 996.3042,-574.3831"/>
</g>
<!-- zcash/halo2#245 -->
<g id="node32" class="node open">
<title>zcash/halo2#245</title>
<g id="a_node32"><a xlink:href="https://github.com/zcash/halo2/issues/245" xlink:title="zcash/halo2#245&#10;Remove the need to&#10;multiply by powers of x^n&#10;in verifier" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="958,-549 752,-549 752,-481 958,-481 958,-549"/>
<text text-anchor="middle" x="855" y="-533.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#245</text>
<text text-anchor="middle" x="855" y="-518.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove the need to</text>
<text text-anchor="middle" x="855" y="-503.8" font-family="Times,serif" font-size="14.00" fill="#000000">multiply by powers of x^n</text>
<text text-anchor="middle" x="855" y="-488.8" font-family="Times,serif" font-size="14.00" fill="#000000">in verifier</text>
</a>
</g>
</g>
<!-- zcash/halo2#245&#45;&gt;zcash/halo2#250 -->
<g id="edge25" class="edge">
<title>zcash/halo2#245&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M958.12,-531.48C970.65,-533.48 983.44,-535.53 995.96,-537.53"/>
<polygon fill="#000000" stroke="#000000" points="995.4727,-540.9965 1005.9,-539.12 996.5784,-534.0843 995.4727,-540.9965"/>
</g>
<!-- zcash/halo2#543 -->
<g id="node33" class="node open">
<title>zcash/halo2#543</title>
<g id="a_node33"><a xlink:href="https://github.com/zcash/halo2/pull/543" xlink:title="zcash/halo2#543&#10;Optimize Fft" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="183,-128 43,-128 43,-124 39,-124 39,-120 43,-120 43,-98 39,-98 39,-94 43,-94 43,-90 183,-90 183,-128"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="43,-124 47,-124 47,-120 43,-120 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="43,-98 47,-98 47,-94 43,-94 "/>
<text text-anchor="middle" x="113" y="-112.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#543</text>
<text text-anchor="middle" x="113" y="-97.8" font-family="Times,serif" font-size="14.00" fill="#000000">Optimize Fft</text>
</a>
</g>
</g>
<!-- zcash/halo2#543&#45;&gt;zcash/halo2#426 -->
<g id="edge26" class="edge">
<title>zcash/halo2#543&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M180.55,-128.02C195.52,-132.26 211.31,-136.76 226,-141 242.18,-145.67 259.35,-150.66 276.03,-155.54"/>
<polygon fill="#000000" stroke="#000000" points="275.1991,-158.9437 285.78,-158.4 277.1695,-152.2267 275.1991,-158.9437"/>
</g>
<!-- zcash/halo2#548 -->
<g id="node34" class="node open">
<title>zcash/halo2#548</title>
<g id="a_node34"><a xlink:href="https://github.com/zcash/halo2/issues/548" xlink:title="zcash/halo2#548&#10;Implement performance and&#10;memory optimizations for&#10;halo2_proofs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="483,-139 262,-139 262,-71 483,-71 483,-139"/>
<text text-anchor="middle" x="372.5" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#548</text>
<text text-anchor="middle" x="372.5" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement performance and</text>
<text text-anchor="middle" x="372.5" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">memory optimizations for</text>
<text text-anchor="middle" x="372.5" y="-78.8" font-family="Times,serif" font-size="14.00" fill="#000000">halo2_proofs</text>
</a>
</g>
</g>
<!-- zcash/halo2#543&#45;&gt;zcash/halo2#548 -->
<g id="edge27" class="edge">
<title>zcash/halo2#543&#45;&gt;zcash/halo2#548</title>
<path fill="none" stroke="#000000" d="M183.22,-107.92C204.37,-107.59 228.21,-107.22 251.66,-106.86"/>
<polygon fill="#000000" stroke="#000000" points="251.7236,-110.3595 261.67,-106.71 251.6186,-103.3603 251.7236,-110.3595"/>
</g>
<!-- zcash/halo2#312 -->
<g id="node35" class="node open">
<title>zcash/halo2#312</title>
<g id="a_node35"><a xlink:href="https://github.com/zcash/halo2/issues/312" xlink:title="zcash/halo2#312&#10;[Book] Document gadget&#10;API" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="210.5,-992.5 15.5,-992.5 15.5,-939.5 210.5,-939.5 210.5,-992.5"/>
<text text-anchor="middle" x="113" y="-977.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#312</text>
<text text-anchor="middle" x="113" y="-962.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] Document gadget</text>
<text text-anchor="middle" x="113" y="-947.3" font-family="Times,serif" font-size="14.00" fill="#000000">API</text>
</a>
</g>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>