developers/zcash-halo2-dag.html

623 lines
42 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="976pt"
viewBox="0.00 0.00 1687.00 975.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 971.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-971.5 1683,-971.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,-275.5 525,-275.5 525,-222.5 710,-222.5 710,-275.5"/>
<text text-anchor="middle" x="617.5" y="-260.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#460</text>
<text text-anchor="middle" x="617.5" y="-245.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_gadgets</text>
<text text-anchor="middle" x="617.5" y="-230.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,-207.01C477.19,-211.78 496.29,-216.84 514.77,-221.74"/>
<polygon fill="#000000" stroke="#000000" points="514.0964,-225.1824 524.66,-224.37 515.8954,-218.4175 514.0964,-225.1824"/>
</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,-540.5 1257.5,-540.5 1257.5,-487.5 1436.5,-487.5 1436.5,-540.5"/>
<text text-anchor="middle" x="1347" y="-525.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#75</text>
<text text-anchor="middle" x="1347" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement support for</text>
<text text-anchor="middle" x="1347" y="-495.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,-555.5 1490,-555.5 1490,-472.5 1679,-472.5 1679,-555.5"/>
<text text-anchor="middle" x="1584.5" y="-540.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#494</text>
<text text-anchor="middle" x="1584.5" y="-525.3" font-family="Times,serif" font-size="14.00" fill="#000000">Consider adding an API</text>
<text text-anchor="middle" x="1584.5" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">that enables application</text>
<text text-anchor="middle" x="1584.5" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">circuits to be built</text>
<text text-anchor="middle" x="1584.5" y="-480.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,-514C1450.7,-514 1465.3,-514 1479.5,-514"/>
<polygon fill="#000000" stroke="#000000" points="1479.8,-517.5001 1489.8,-514 1479.8,-510.5001 1479.8,-517.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,-804.5 1018.5,-804.5 1018.5,-721.5 1179.5,-721.5 1179.5,-804.5"/>
<text text-anchor="middle" x="1099" y="-789.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#79</text>
<text text-anchor="middle" x="1099" y="-774.3" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate Rescue and</text>
<text text-anchor="middle" x="1099" y="-759.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadgets to</text>
<text text-anchor="middle" x="1099" y="-744.3" font-family="Times,serif" font-size="14.00" fill="#000000">algebraic hash</text>
<text text-anchor="middle" x="1099" y="-729.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,-797 753,-797 753,-729 957,-729 957,-797"/>
<text text-anchor="middle" x="855" y="-781.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#78</text>
<text text-anchor="middle" x="855" y="-766.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement algebraic hash</text>
<text text-anchor="middle" x="855" y="-751.8" font-family="Times,serif" font-size="14.00" fill="#000000">/ random oracle</text>
<text text-anchor="middle" x="855" y="-736.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,-763C974.04,-763 991.55,-763 1008.2,-763"/>
<polygon fill="#000000" stroke="#000000" points="1008.5,-766.5001 1018.5,-763 1008.5,-759.5001 1008.5,-766.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,-613.5 1006,-613.5 1006,-560.5 1192,-560.5 1192,-613.5"/>
<text text-anchor="middle" x="1099" y="-598.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#250</text>
<text text-anchor="middle" x="1099" y="-583.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="1099" y="-568.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="M942.95,-728.89C948.15,-726.08 953.21,-723.11 958,-720 1000.9,-692.16 1042.5,-650.52 1069.3,-621.27"/>
<polygon fill="#000000" stroke="#000000" points="1071.9954,-623.5075 1076.1,-613.74 1066.8002,-618.8159 1071.9954,-623.5075"/>
</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="M1189.2,-560.44C1208.2,-554.86 1228.3,-548.94 1247.6,-543.27"/>
<polygon fill="#000000" stroke="#000000" points="1248.6096,-546.6213 1257.2,-540.42 1246.6174,-539.9108 1248.6096,-546.6213"/>
</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,-510 41.5,-510 41.5,-442 184.5,-442 184.5,-510"/>
<text text-anchor="middle" x="113" y="-494.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#57</text>
<text text-anchor="middle" x="113" y="-479.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove unused</text>
<text text-anchor="middle" x="113" y="-464.8" font-family="Times,serif" font-size="14.00" fill="#000000">fixed_values from</text>
<text text-anchor="middle" x="113" y="-449.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,-510 275.5,-510 275.5,-442 469.5,-442 469.5,-510"/>
<text text-anchor="middle" x="372.5" y="-494.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#443</text>
<text text-anchor="middle" x="372.5" y="-479.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement `read` &amp;</text>
<text text-anchor="middle" x="372.5" y="-464.8" font-family="Times,serif" font-size="14.00" fill="#000000">`write` for `halo2::plonk</text>
<text text-anchor="middle" x="372.5" y="-449.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,-476C209.47,-476 237.94,-476 265.07,-476"/>
<polygon fill="#000000" stroke="#000000" points="265.39,-479.5001 275.39,-476 265.39,-472.5001 265.39,-479.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,-596 22,-596 22,-528 204,-528 204,-596"/>
<text text-anchor="middle" x="113" y="-580.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#449</text>
<text text-anchor="middle" x="113" y="-565.8" font-family="Times,serif" font-size="14.00" fill="#000000">Define a stable</text>
<text text-anchor="middle" x="113" y="-550.8" font-family="Times,serif" font-size="14.00" fill="#000000">serialization format for</text>
<text text-anchor="middle" x="113" y="-535.8" font-family="Times,serif" font-size="14.00" fill="#000000">`VerifyingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#420 -->
<g id="node13" class="node open">
<title>zcash/halo2#420</title>
<g id="a_node13"><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,-667.5 5.5,-667.5 5.5,-614.5 220.5,-614.5 220.5,-667.5"/>
<text text-anchor="middle" x="113" y="-652.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#420</text>
<text text-anchor="middle" x="113" y="-637.3" font-family="Times,serif" font-size="14.00" fill="#000000">CI: Measure memory&#45;usage</text>
<text text-anchor="middle" x="113" y="-622.3" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks</text>
</a>
</g>
</g>
<!-- zcash/halo2#418 -->
<g id="node14" class="node open">
<title>zcash/halo2#418</title>
<g id="a_node14"><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,-675 283,-675 283,-607 462,-607 462,-675"/>
<text text-anchor="middle" x="372.5" y="-659.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#418</text>
<text text-anchor="middle" x="372.5" y="-644.8" font-family="Times,serif" font-size="14.00" fill="#000000">[memory optimization]</text>
<text text-anchor="middle" x="372.5" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000">lookup prover memory</text>
<text text-anchor="middle" x="372.5" y="-614.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="edge8" class="edge">
<title>zcash/halo2#420&#45;&gt;zcash/halo2#418</title>
<path fill="none" stroke="#000000" d="M220.8,-641C237.86,-641 255.45,-641 272.34,-641"/>
<polygon fill="#000000" stroke="#000000" points="272.75,-644.5001 282.75,-641 272.75,-637.5001 272.75,-644.5001"/>
</g>
<!-- zcash/halo2#427 -->
<g id="node15" class="node open">
<title>zcash/halo2#427</title>
<g id="a_node15"><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,-754 19,-754 19,-686 207,-686 207,-754"/>
<text text-anchor="middle" x="113" y="-738.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#427</text>
<text text-anchor="middle" x="113" y="-723.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use smaller extended</text>
<text text-anchor="middle" x="113" y="-708.8" font-family="Times,serif" font-size="14.00" fill="#000000">domains where possible</text>
<text text-anchor="middle" x="113" y="-693.8" font-family="Times,serif" font-size="14.00" fill="#000000">during proving</text>
</a>
</g>
</g>
<!-- zcash/halo2#456 -->
<g id="node16" class="node open">
<title>zcash/halo2#456</title>
<g id="a_node16"><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,-825.5 28,-825.5 28,-772.5 198,-772.5 198,-825.5"/>
<text text-anchor="middle" x="113" y="-810.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#456</text>
<text text-anchor="middle" x="113" y="-795.3" font-family="Times,serif" font-size="14.00" fill="#000000">Benchmark `sha256`</text>
<text text-anchor="middle" x="113" y="-780.3" font-family="Times,serif" font-size="14.00" fill="#000000">gadget.</text>
</a>
</g>
</g>
<!-- zcash/halo2#455 -->
<g id="node17" class="node open">
<title>zcash/halo2#455</title>
<g id="a_node17"><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,-896.5 13,-896.5 13,-843.5 213,-843.5 213,-896.5"/>
<text text-anchor="middle" x="113" y="-881.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#455</text>
<text text-anchor="middle" x="113" y="-866.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] add description of</text>
<text text-anchor="middle" x="113" y="-851.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadget and chip</text>
</a>
</g>
</g>
<!-- zcash/halo2#251 -->
<g id="node18" class="node open">
<title>zcash/halo2#251</title>
<g id="a_node18"><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,-467 994,-467 994,-399 1204,-399 1204,-467"/>
<text text-anchor="middle" x="1099" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#251</text>
<text text-anchor="middle" x="1099" y="-436.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement user&#45;facing API</text>
<text text-anchor="middle" x="1099" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000">for recursive proving of</text>
<text text-anchor="middle" x="1099" y="-406.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="edge9" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1203.5,-467.12C1220.8,-472.79 1238.7,-478.64 1255.7,-484.19"/>
<polygon fill="#000000" stroke="#000000" points="1255.0074,-487.6459 1265.6,-487.43 1257.1847,-480.9932 1255.0074,-487.6459"/>
</g>
<!-- zcash/halo2#437 -->
<g id="node19" class="node open">
<title>zcash/halo2#437</title>
<g id="a_node19"><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,-428.5 1240,-428.5 1240,-375.5 1454,-375.5 1454,-428.5"/>
<text text-anchor="middle" x="1347" y="-413.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#437</text>
<text text-anchor="middle" x="1347" y="-398.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="-383.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="edge10" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M1204.2,-419.85C1212.6,-418.8 1221.2,-417.73 1229.7,-416.66"/>
<polygon fill="#000000" stroke="#000000" points="1230.2114,-420.1234 1239.7,-415.41 1229.3431,-413.1775 1230.2114,-420.1234"/>
</g>
<!-- zcash/halo2#436 -->
<g id="node20" class="node open">
<title>zcash/halo2#436</title>
<g id="a_node20"><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="edge11" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M705.3,-344.86C720.84,-347.08 736.88,-349.23 752,-351 775.29,-353.73 1063,-378.08 1229.6,-392.13"/>
<polygon fill="#000000" stroke="#000000" points="1229.6434,-395.6457 1239.9,-392.99 1230.2259,-388.67 1229.6434,-395.6457"/>
</g>
<!-- zcash/halo2#438 -->
<g id="node21" class="node open">
<title>zcash/halo2#438</title>
<g id="a_node21"><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,-342.5 762,-342.5 762,-289.5 948,-289.5 948,-342.5"/>
<text text-anchor="middle" x="855" y="-327.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#438</text>
<text text-anchor="middle" x="855" y="-312.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="855" y="-297.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="edge12" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#438</title>
<path fill="none" stroke="#000000" d="M705.26,-325.46C720.33,-324.51 736.11,-323.51 751.54,-322.53"/>
<polygon fill="#000000" stroke="#000000" points="751.8578,-326.0171 761.62,-321.9 751.4211,-319.0307 751.8578,-326.0171"/>
</g>
<!-- zcash/halo2#435 -->
<g id="node22" class="node open">
<title>zcash/halo2#435</title>
<g id="a_node22"><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,-451 530,-451 530,-383 705,-383 705,-451"/>
<text text-anchor="middle" x="617.5" y="-435.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#435</text>
<text text-anchor="middle" x="617.5" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-405.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-390.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#247 -->
<g id="node23" class="node open">
<title>zcash/halo2#247</title>
<g id="a_node23"><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,-467 762.5,-467 762.5,-399 947.5,-399 947.5,-467"/>
<text text-anchor="middle" x="855" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#247</text>
<text text-anchor="middle" x="855" y="-436.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement underlying</text>
<text text-anchor="middle" x="855" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000">scaffolding for creating</text>
<text text-anchor="middle" x="855" y="-406.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="edge13" class="edge">
<title>zcash/halo2#435&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M705.26,-422.91C720.55,-423.94 736.57,-425.02 752.21,-426.08"/>
<polygon fill="#000000" stroke="#000000" points="752.2095,-429.5876 762.42,-426.76 752.6747,-422.6031 752.2095,-429.5876"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#250 -->
<g id="edge14" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M947.12,-467.07C950.97,-469.83 954.62,-472.81 958,-476 984.59,-501.11 966.71,-525.65 994,-550 995.76,-551.57 997.59,-553.07 999.47,-554.51"/>
<polygon fill="#000000" stroke="#000000" points="997.8738,-557.6594 1008.1,-560.43 1001.8336,-551.887 997.8738,-557.6594"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#251 -->
<g id="edge15" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#251</title>
<path fill="none" stroke="#000000" d="M947.59,-433C959.39,-433 971.58,-433 983.68,-433"/>
<polygon fill="#000000" stroke="#000000" points="983.81,-436.5001 993.81,-433 983.81,-429.5001 983.81,-436.5001"/>
</g>
<!-- zcash/halo2#246 -->
<g id="node24" class="node open">
<title>zcash/halo2#246</title>
<g id="a_node24"><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,-423.5 283,-423.5 283,-370.5 462,-370.5 462,-423.5"/>
<text text-anchor="middle" x="372.5" y="-408.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#246</text>
<text text-anchor="middle" x="372.5" y="-393.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create recursive proof</text>
<text text-anchor="middle" x="372.5" y="-378.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="edge16" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#436</title>
<path fill="none" stroke="#000000" d="M462.34,-372.8C481.06,-367.75 500.88,-362.42 519.87,-357.3"/>
<polygon fill="#000000" stroke="#000000" points="520.9727,-360.6279 529.72,-354.65 519.154,-353.8682 520.9727,-360.6279"/>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#435 -->
<g id="edge17" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#435</title>
<path fill="none" stroke="#000000" d="M462.34,-404.33C480.98,-405.86 500.7,-407.47 519.61,-409.01"/>
<polygon fill="#000000" stroke="#000000" points="519.4698,-412.51 529.72,-409.83 520.0357,-405.5329 519.4698,-412.51"/>
</g>
<!-- zcash/halo2#439 -->
<g id="node25" class="node open">
<title>zcash/halo2#439</title>
<g id="a_node25"><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,-423.5 21.5,-423.5 21.5,-370.5 204.5,-370.5 204.5,-423.5"/>
<text text-anchor="middle" x="113" y="-408.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#439</text>
<text text-anchor="middle" x="113" y="-393.3" font-family="Times,serif" font-size="14.00" fill="#000000">Support split</text>
<text text-anchor="middle" x="113" y="-378.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="edge18" class="edge">
<title>zcash/halo2#439&#45;&gt;zcash/halo2#246</title>
<path fill="none" stroke="#000000" d="M204.86,-397C226.86,-397 250.45,-397 272.79,-397"/>
<polygon fill="#000000" stroke="#000000" points="272.95,-400.5001 282.95,-397 272.95,-393.5001 272.95,-400.5001"/>
</g>
<!-- zcash/halo2#359 -->
<g id="node26" class="node open">
<title>zcash/halo2#359</title>
<g id="a_node26"><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,-522.5 519,-522.5 519,-469.5 716,-469.5 716,-522.5"/>
<text text-anchor="middle" x="617.5" y="-507.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#359</text>
<text text-anchor="middle" x="617.5" y="-492.3" font-family="Times,serif" font-size="14.00" fill="#000000">Set up `BaseTranscript`,</text>
<text text-anchor="middle" x="617.5" y="-477.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="edge19" class="edge">
<title>zcash/halo2#359&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M716.16,-469.83C728.11,-466.66 740.33,-463.42 752.34,-460.23"/>
<polygon fill="#000000" stroke="#000000" points="753.5928,-463.5187 762.36,-457.57 751.7967,-456.7531 753.5928,-463.5187"/>
</g>
<!-- zcash/halo2#249 -->
<g id="node27" class="node open">
<title>zcash/halo2#249</title>
<g id="a_node27"><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,-625 766.5,-625 766.5,-557 943.5,-557 943.5,-625"/>
<text text-anchor="middle" x="855" y="-609.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#249</text>
<text text-anchor="middle" x="855" y="-594.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement recursion</text>
<text text-anchor="middle" x="855" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000">circuit logic for</text>
<text text-anchor="middle" x="855" y="-564.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="edge20" class="edge">
<title>zcash/halo2#249&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M943.78,-589.54C960.64,-589.27 978.41,-588.98 995.68,-588.69"/>
<polygon fill="#000000" stroke="#000000" points="995.8566,-592.1877 1005.8,-588.53 995.7459,-585.1886 995.8566,-592.1877"/>
</g>
<!-- zcash/halo2#380 -->
<g id="node28" class="node committed">
<title>zcash/halo2#380</title>
<g id="a_node28"><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="edge21" 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="node29" class="node committed">
<title>zcash/halo2#542</title>
<g id="a_node29"><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="edge22" 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="node30" class="node open">
<title>zcash/halo2#248</title>
<g id="a_node30"><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,-538.5 753.5,-538.5 753.5,-485.5 956.5,-485.5 956.5,-538.5"/>
<text text-anchor="middle" x="855" y="-523.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#248</text>
<text text-anchor="middle" x="855" y="-508.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement endoscaling in</text>
<text text-anchor="middle" x="855" y="-493.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="edge23" class="edge">
<title>zcash/halo2#248&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M941.37,-538.55C961.37,-544.7 982.77,-551.27 1003.2,-557.54"/>
<polygon fill="#000000" stroke="#000000" points="1002.1119,-560.8669 1012.7,-560.49 1004.1878,-554.1818 1002.1119,-560.8669"/>
</g>
<!-- zcash/halo2#245 -->
<g id="node31" class="node open">
<title>zcash/halo2#245</title>
<g id="a_node31"><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,-711 752,-711 752,-643 958,-643 958,-711"/>
<text text-anchor="middle" x="855" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#245</text>
<text text-anchor="middle" x="855" y="-680.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove the need to</text>
<text text-anchor="middle" x="855" y="-665.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="-650.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="edge24" class="edge">
<title>zcash/halo2#245&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M947.25,-642.97C970.27,-634.48 994.81,-625.43 1017.3,-617.14"/>
<polygon fill="#000000" stroke="#000000" points="1018.6266,-620.3813 1026.8,-613.64 1016.2066,-613.8129 1018.6266,-620.3813"/>
</g>
<!-- zcash/halo2#543 -->
<g id="node32" class="node open">
<title>zcash/halo2#543</title>
<g id="a_node32"><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="edge25" 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="node33" class="node open">
<title>zcash/halo2#548</title>
<g id="a_node33"><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="edge26" 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#483 -->
<g id="node34" class="node committed">
<title>zcash/halo2#483</title>
<g id="a_node34"><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="edge27" class="edge">
<title>zcash/halo2#483&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M469.68,-261.67C484.45,-260.4 499.72,-259.1 514.6,-257.82"/>
<polygon fill="#000000" stroke="#000000" points="515.1668,-261.2843 524.83,-256.94 514.5668,-254.31 515.1668,-261.2843"/>
</g>
<!-- zcash/halo2#569 -->
<g id="node35" class="node open">
<title>zcash/halo2#569</title>
<g id="a_node35"><a xlink:href="https://github.com/zcash/halo2/issues/569" xlink:title="zcash/halo2#569&#10;Implement the recursive&#10;proof verifier" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1196,-540.5 1002,-540.5 1002,-487.5 1196,-487.5 1196,-540.5"/>
<text text-anchor="middle" x="1099" y="-525.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#569</text>
<text text-anchor="middle" x="1099" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the recursive</text>
<text text-anchor="middle" x="1099" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">proof verifier</text>
</a>
</g>
</g>
<!-- zcash/halo2#569&#45;&gt;zcash/halo2#75 -->
<g id="edge28" class="edge">
<title>zcash/halo2#569&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1196.3,-514C1212.9,-514 1230.2,-514 1246.9,-514"/>
<polygon fill="#000000" stroke="#000000" points="1247.3,-517.5001 1257.3,-514 1247.3,-510.5001 1247.3,-517.5001"/>
</g>
<!-- zcash/halo2#312 -->
<g id="node36" class="node open">
<title>zcash/halo2#312</title>
<g id="a_node36"><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,-967.5 15.5,-967.5 15.5,-914.5 210.5,-914.5 210.5,-967.5"/>
<text text-anchor="middle" x="113" y="-952.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#312</text>
<text text-anchor="middle" x="113" y="-937.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] Document gadget</text>
<text text-anchor="middle" x="113" y="-922.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>