@maci-protocol/website 0.0.0-ci.26f28d6 → 0.0.0-ci.2d2f5fb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +1 -2
  2. package/blog/2024-02-28-maci-v1.2.0.md +1 -1
  3. package/blog/2024-08-10-maci-v2.md +1 -1
  4. package/blog/2024-12-01-maci-getting-started.md +1 -1
  5. package/blog/2025-03-21-roadmap-2025.md +1 -1
  6. package/package.json +5 -5
  7. package/src/pages/roadmap.md +39 -80
  8. package/static/img/circuits/MACI-Circuits.excalidraw +37 -37
  9. package/static/img/circuits/ecdh.svg +1 -1
  10. package/static/img/circuits/messageToCommand.svg +1 -1
  11. package/static/img/circuits/messageValidator.svg +1 -1
  12. package/static/img/circuits/privToPubkey.svg +1 -1
  13. package/static/img/circuits/processMessages.svg +1 -1
  14. package/static/img/circuits/processMessagesInputHasher.svg +1 -1
  15. package/static/img/circuits/processMessages_2_0.svg +1 -1
  16. package/static/img/circuits/processOne.svg +1 -1
  17. package/static/img/circuits/processTopup.svg +1 -1
  18. package/static/img/circuits/tallyInputHasher.svg +1 -1
  19. package/static/img/circuits/verifySignature.svg +1 -1
  20. package/static/img/relayer-diagram.png +0 -0
  21. package/versioned_docs/version-v3.x/core-concepts/coordinator-service.md +16 -0
  22. package/versioned_docs/version-v3.x/core-concepts/key-change.md +28 -28
  23. package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +1 -1
  24. package/versioned_docs/version-v3.x/core-concepts/offchain-voting.md +14 -0
  25. package/versioned_docs/version-v3.x/core-concepts/poll-types.md +2 -2
  26. package/versioned_docs/version-v3.x/core-concepts/polls.md +3 -3
  27. package/versioned_docs/version-v3.x/core-concepts/spec.md +36 -102
  28. package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +2 -2
  29. package/versioned_docs/version-v3.x/core-concepts/workflow.md +7 -1
  30. package/versioned_docs/version-v3.x/guides/compile-circuits.md +7 -7
  31. package/versioned_docs/version-v3.x/guides/integrating.md +8 -8
  32. package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +1 -1
  33. package/versioned_docs/version-v3.x/guides/troubleshooting.md +11 -11
  34. package/versioned_docs/version-v3.x/quick-start.md +6 -6
  35. package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +2 -2
  36. package/versioned_docs/version-v3.x/technical-references/coordinator-service/_category_.json +8 -0
  37. package/versioned_docs/version-v3.x/technical-references/coordinator-service/index.md +10 -0
  38. package/versioned_docs/version-v3.x/technical-references/coordinator-service/installation.md +43 -0
  39. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/_category_.json +8 -0
  40. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/index.md +51 -0
  41. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/installation.md +109 -0
  42. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +5 -5
  43. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +7 -7
  44. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +2 -2
  45. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +5 -5
  46. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +3 -4
  47. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +12 -12
  48. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +2 -2
  49. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +1 -1
@@ -18,4 +18,4 @@
18
18
  </style>
19
19
 
20
20
  </defs>
21
- <rect x="0" y="0" width="962.581525322702" height="409.41444389171056" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(321.0041776352655 169.08716412264084) rotate(0 114.33810379333897 33.800522136203085)"><path d="M16.9 0 C82.86 0.39, 146.7 -1.28, 211.78 0 M16.9 0 C66.45 -0.25, 116.15 0.32, 211.78 0 M211.78 0 C221.98 -0.36, 227.29 6.53, 228.68 16.9 M211.78 0 C222.51 -2.12, 230.51 7.34, 228.68 16.9 M228.68 16.9 C229.05 28.15, 230.29 35.27, 228.68 50.7 M228.68 16.9 C229.33 26.76, 229.32 36.76, 228.68 50.7 M228.68 50.7 C227.67 62.04, 222.28 68.68, 211.78 67.6 M228.68 50.7 C227.76 61.18, 224.14 66.14, 211.78 67.6 M211.78 67.6 C164.76 66.77, 119.2 69.29, 16.9 67.6 M211.78 67.6 C138.6 67.23, 64.98 67.09, 16.9 67.6 M16.9 67.6 C3.82 68.66, 0.1 61.37, 0 50.7 M16.9 67.6 C4.12 69.61, -1.56 62.53, 0 50.7 M0 50.7 C1.88 40.4, 1.27 27.71, 0 16.9 M0 50.7 C0.95 42.17, 1.02 33.91, 0 16.9 M0 16.9 C1.53 5.48, 5.26 1.05, 16.9 0 M0 16.9 C0.73 6.51, 3.73 0.43, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(369.7723503983311 190.38768625884381) rotate(0 65.56993103027344 12.5)"><text x="65.56993103027344" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">PrivToPubKey</text></g><g stroke-linecap="round"><g transform="translate(420.34275347662606 86.66141639417106) rotate(0 -2.312345687166726 39.34347104050323)"><path d="M-0.21 -0.57 C-0.99 12.38, -3.21 65.53, -3.88 78.7 M-1.78 1.75 C-2.72 14.82, -3.93 67.27, -4.43 80.24" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.34275347662606 86.66141639417106) rotate(0 -2.312345687166726 39.34347104050323)"><path d="M-13.83 51.75 C-11.1 63.43, -6.7 73.26, -4.43 80.24 M-13.83 51.75 C-11.53 59.42, -9.1 67.92, -4.43 80.24" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.34275347662606 86.66141639417106) rotate(0 -2.312345687166726 39.34347104050323)"><path d="M6.68 52.38 C1.9 63.8, -1.2 73.39, -4.43 80.24 M6.68 52.38 C3.3 59.94, 0.06 68.27, -4.43 80.24" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(467.98908237813475 121.9644129259309) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g transform="translate(479.2753184901371 270.53132063242674) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(418.5707446353731 255.84645253409008) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M0.44 0.18 C0.43 7.02, 0.22 34.08, 0.15 40.92 M0 -0.2 C0.16 6.74, 1.04 34.82, 1.24 41.57" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 255.84645253409008) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-6.36 22.52 C-3.52 28.29, -1.51 34.46, 1.24 41.57 M-6.36 22.52 C-3.36 29.49, -1.26 35.28, 1.24 41.57" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 255.84645253409008) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M7.67 22.09 C5.84 28.06, 3.19 34.38, 1.24 41.57 M7.67 22.09 C5.82 29.15, 3.09 35.08, 1.24 41.57" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(321.73479892342675 321.772794800499) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C87.08 -0.39, 159.69 0.54, 204.03 0 M16.09 0 C54.91 -2.22, 93.64 -1.07, 204.03 0 M204.03 0 C216.69 1.9, 219.86 5.48, 220.12 16.09 M204.03 0 C216.97 -1.12, 220.87 4.26, 220.12 16.09 M220.12 16.09 C219.93 26, 220.93 36.64, 220.12 48.27 M220.12 16.09 C219.65 24.82, 220.78 32.89, 220.12 48.27 M220.12 48.27 C218.29 59.22, 215.45 65.93, 204.03 64.35 M220.12 48.27 C218.95 58.37, 216.26 64.71, 204.03 64.35 M204.03 64.35 C132.13 62.75, 57.52 61.33, 16.09 64.35 M204.03 64.35 C131.33 64.21, 57.94 65.65, 16.09 64.35 M16.09 64.35 C5.55 65.42, -2 57.83, 0 48.27 M16.09 64.35 C3.17 64.26, 1.43 58.18, 0 48.27 M0 48.27 C-0.01 36, 1.19 25.11, 0 16.09 M0 48.27 C-0.04 37.27, 0.83 25.68, 0 16.09 M0 16.09 C-0.35 3.43, 4.98 0.62, 16.09 0 M0 16.09 C-1.97 3.46, 4.7 -0.7, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(399.81240487503555 341.45021135137495) rotate(0 31.979965209960938 12.5)"><text x="31.979965209960938" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pubKey</text></g><g transform="translate(604.304562327331 160.36322829268988) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(610.3930684106849 210.9033280264407) rotate(0 49.41329770489415 0.8767946582686363)"><path d="M0.96 0.89 C17.42 1.2, 82.34 0.55, 98.53 0.76 M0 0.31 C16.31 0.83, 81.26 1.82, 97.43 1.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.3930684106849 210.9033280264407) rotate(0 49.41329770489415 0.8767946582686363)"><path d="M69.16 11.81 C78.57 8.31, 83.25 4.88, 97.43 1.77 M69.16 11.81 C78.34 8.26, 88.84 4.37, 97.43 1.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.3930684106849 210.9033280264407) rotate(0 49.41329770489415 0.8767946582686363)"><path d="M69.32 -8.71 C78.49 -6.52, 83.14 -4.27, 97.43 1.77 M69.32 -8.71 C78.65 -5.43, 89.09 -2.49, 97.43 1.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(10 168.86997719411306) rotate(0 138.84988403320312 25)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Generate a public key from </text><text x="0" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">a privateKey</text></g><g stroke-linecap="round" transform="translate(310.6766454753915 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C89.6 0.02, 163.41 -1.62, 204.03 0 M16.09 0 C72.75 -1.36, 130.68 -1.65, 204.03 0 M204.03 0 C213.51 0.35, 221.13 4.75, 220.12 16.09 M204.03 0 C212.66 0.26, 220.92 7.18, 220.12 16.09 M220.12 16.09 C220.34 25.88, 220.06 30.32, 220.12 48.27 M220.12 16.09 C219.47 28.32, 219.45 39.04, 220.12 48.27 M220.12 48.27 C220.33 57.78, 213.8 66.03, 204.03 64.35 M220.12 48.27 C220.34 60.22, 212.46 63.02, 204.03 64.35 M204.03 64.35 C164.9 66.92, 126.33 67.05, 16.09 64.35 M204.03 64.35 C149.38 65.72, 93.28 65.53, 16.09 64.35 M16.09 64.35 C4.76 64.12, 1.14 57.33, 0 48.27 M16.09 64.35 C4.96 62.14, -0.44 59.7, 0 48.27 M0 48.27 C-0.35 42.59, -1 32.72, 0 16.09 M0 48.27 C-0.32 39.47, 0.17 32.2, 0 16.09 M0 16.09 C-0.18 4.55, 5.77 0.01, 16.09 0 M0 16.09 C0.08 6.32, 3.39 1.87, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(387.79425234252767 29.677416550875932) rotate(0 32.939964294433594 12.5)"><text x="32.939964294433594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">privKey</text></g><g stroke-linecap="round" transform="translate(732.4663829995625 55.109525900509425) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C67.11 1.66, 113.07 -0.53, 198.87 0 M21.25 0 C76.75 0.66, 134.43 1.34, 198.87 0 M198.87 0 C212.02 -0.54, 221.43 7.4, 220.12 21.25 M198.87 0 C215.06 0.04, 218.03 8.3, 220.12 21.25 M220.12 21.25 C221.74 32.87, 220.48 47.41, 220.12 63.75 M220.12 21.25 C220.01 31.97, 218.91 41.04, 220.12 63.75 M220.12 63.75 C218.2 77.83, 214.28 84.3, 198.87 85 M220.12 63.75 C221.72 76.94, 214.79 84.83, 198.87 85 M198.87 85 C149.64 83.91, 99.26 84.96, 21.25 85 M198.87 85 C147.48 82.56, 96.26 83.83, 21.25 85 M21.25 85 C5.37 83.35, -0.57 77.31, 0 63.75 M21.25 85 C8.49 83.54, -2.01 77.07, 0 63.75 M0 63.75 C-0.41 48.82, 2 32.12, 0 21.25 M0 63.75 C-0.05 53.14, -0.95 42.51, 0 21.25 M0 21.25 C-1.63 5.86, 6.57 0.1, 21.25 0 M0 21.25 C-1.67 9.36, 4.94 0.43, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(748.5140435776361 72.60952590050942) rotate(0 94.0099105834961 25)"><text x="94.0099105834961" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Convert the </text><text x="94.0099105834961" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">private key to bits</text></g><g stroke-linecap="round" transform="translate(730.1645237312086 163.6504075083801) rotate(0 110.05757116156974 55)"><path d="M27.5 0 C85.27 2.04, 141.72 -0.8, 192.62 0 M27.5 0 C78.42 -1.57, 131 -1.15, 192.62 0 M192.62 0 C212.71 0.03, 218.3 10.22, 220.12 27.5 M192.62 0 C211.07 -0.69, 218.6 11.18, 220.12 27.5 M220.12 27.5 C219.04 39.32, 221.93 53.23, 220.12 82.5 M220.12 27.5 C218.61 46.89, 220.19 66.02, 220.12 82.5 M220.12 82.5 C221.51 99.98, 212.47 109.85, 192.62 110 M220.12 82.5 C219.69 102.04, 211.68 110.87, 192.62 110 M192.62 110 C156.48 110.64, 119.15 109.15, 27.5 110 M192.62 110 C158.16 109.68, 125.12 110.21, 27.5 110 M27.5 110 C10.39 108.73, -1.75 100.1, 0 82.5 M27.5 110 C10.77 108.67, -0.23 100.08, 0 82.5 M0 82.5 C-1.29 64.23, -0.47 45.23, 0 27.5 M0 82.5 C-0.34 63.1, 0.22 44.97, 0 27.5 M0 27.5 C-1.45 11.15, 7.3 0.37, 27.5 0 M0 27.5 C0.54 9.04, 8.41 1, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(747.2321656935596 168.6504075083801) rotate(0 92.98992919921875 50)"><text x="92.98992919921875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Perform scalar </text><text x="92.98992919921875" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">multiplication with </text><text x="92.98992919921875" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">baby jubjub </text><text x="92.98992919921875" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">basepoint</text></g><g stroke-linecap="round" transform="translate(731.0369673181135 314.41444389171056) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C83.8 2.32, 147.47 0.61, 198.87 0 M21.25 0 C70.63 -0.26, 117.34 0.25, 198.87 0 M198.87 0 C213.14 -0.6, 218.8 8.83, 220.12 21.25 M198.87 0 C211.47 0.56, 220.36 5.7, 220.12 21.25 M220.12 21.25 C221.54 29.98, 219.31 40.78, 220.12 63.75 M220.12 21.25 C221.08 33.39, 221.14 46.31, 220.12 63.75 M220.12 63.75 C219.74 78.97, 213.67 85.76, 198.87 85 M220.12 63.75 C218.22 78.35, 212.33 84.73, 198.87 85 M198.87 85 C133.54 84.3, 72.7 82.98, 21.25 85 M198.87 85 C160.88 83.82, 120.81 84.09, 21.25 85 M21.25 85 C8.48 83.84, -0.2 77.26, 0 63.75 M21.25 85 C7.99 87.01, -0.21 76.98, 0 63.75 M0 63.75 C0.83 48.42, 1.63 34.9, 0 21.25 M0 63.75 C-0.62 54.6, -0.83 43.66, 0 21.25 M0 21.25 C0.47 6.97, 6.42 0.87, 21.25 0 M0 21.25 C-2.26 7.56, 8.55 -0.6, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(737.4046199616168 331.91444389171056) rotate(0 103.6899185180664 25)"><text x="103.6899185180664" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Return the public </text><text x="103.6899185180664" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">key </text></g><g stroke-linecap="round" transform="translate(11.165819158557497 236.84458773187225) rotate(0 121.92637087557455 75.12971569299202)"><path d="M32 0 C80.33 -0.63, 127.72 0.44, 211.85 0 M32 0 C94.26 0.5, 155.49 0.36, 211.85 0 M211.85 0 C232.61 -0.85, 244.96 10.41, 243.85 32 M211.85 0 C233.19 2.3, 244.73 12.3, 243.85 32 M243.85 32 C243.76 65.71, 244.42 102.56, 243.85 118.26 M243.85 32 C244.06 50.29, 243.51 67.95, 243.85 118.26 M243.85 118.26 C242.27 140.17, 233.56 148.32, 211.85 150.26 M243.85 118.26 C245.01 138.24, 231.88 149.78, 211.85 150.26 M211.85 150.26 C142.36 150.6, 73.32 150.88, 32 150.26 M211.85 150.26 C168.91 148.74, 125.46 149.01, 32 150.26 M32 150.26 C9.8 149.72, 0.37 139.56, 0 118.26 M32 150.26 C9.29 151.84, 1.51 137.44, 0 118.26 M0 118.26 C-0.44 84.77, -0.41 53.06, 0 32 M0 118.26 C-0.73 86.59, 0.83 57.05, 0 32 M0 32 C-1.37 9.83, 12.44 1.58, 32 0 M0 32 C-1.74 9.14, 11.15 1.39, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(17.372295624952358 249.47430342486427) rotate(0 115.71989440917969 62.5)"><text x="115.71989440917969" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Base point = point on </text><text x="115.71989440917969" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">an elliptic curve which </text><text x="115.71989440917969" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">multiplied by any number</text><text x="115.71989440917969" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">results in a point on </text><text x="115.71989440917969" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the curve.</text></g></svg>
21
+ <rect x="0" y="0" width="962.581525322702" height="409.41444389171056" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(321.0041776352655 169.08716412264084) rotate(0 114.33810379333897 33.800522136203085)"><path d="M16.9 0 C82.86 0.39, 146.7 -1.28, 211.78 0 M16.9 0 C66.45 -0.25, 116.15 0.32, 211.78 0 M211.78 0 C221.98 -0.36, 227.29 6.53, 228.68 16.9 M211.78 0 C222.51 -2.12, 230.51 7.34, 228.68 16.9 M228.68 16.9 C229.05 28.15, 230.29 35.27, 228.68 50.7 M228.68 16.9 C229.33 26.76, 229.32 36.76, 228.68 50.7 M228.68 50.7 C227.67 62.04, 222.28 68.68, 211.78 67.6 M228.68 50.7 C227.76 61.18, 224.14 66.14, 211.78 67.6 M211.78 67.6 C164.76 66.77, 119.2 69.29, 16.9 67.6 M211.78 67.6 C138.6 67.23, 64.98 67.09, 16.9 67.6 M16.9 67.6 C3.82 68.66, 0.1 61.37, 0 50.7 M16.9 67.6 C4.12 69.61, -1.56 62.53, 0 50.7 M0 50.7 C1.88 40.4, 1.27 27.71, 0 16.9 M0 50.7 C0.95 42.17, 1.02 33.91, 0 16.9 M0 16.9 C1.53 5.48, 5.26 1.05, 16.9 0 M0 16.9 C0.73 6.51, 3.73 0.43, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(369.7723503983311 190.38768625884381) rotate(0 65.56993103027344 12.5)"><text x="65.56993103027344" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">PrivToPubKey</text></g><g stroke-linecap="round"><g transform="translate(420.34275347662606 86.66141639417106) rotate(0 -2.312345687166726 39.34347104050323)"><path d="M-0.21 -0.57 C-0.99 12.38, -3.21 65.53, -3.88 78.7 M-1.78 1.75 C-2.72 14.82, -3.93 67.27, -4.43 80.24" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.34275347662606 86.66141639417106) rotate(0 -2.312345687166726 39.34347104050323)"><path d="M-13.83 51.75 C-11.1 63.43, -6.7 73.26, -4.43 80.24 M-13.83 51.75 C-11.53 59.42, -9.1 67.92, -4.43 80.24" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.34275347662606 86.66141639417106) rotate(0 -2.312345687166726 39.34347104050323)"><path d="M6.68 52.38 C1.9 63.8, -1.2 73.39, -4.43 80.24 M6.68 52.38 C3.3 59.94, 0.06 68.27, -4.43 80.24" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(467.98908237813475 121.9644129259309) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g transform="translate(479.2753184901371 270.53132063242674) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(418.5707446353731 255.84645253409008) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M0.44 0.18 C0.43 7.02, 0.22 34.08, 0.15 40.92 M0 -0.2 C0.16 6.74, 1.04 34.82, 1.24 41.57" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 255.84645253409008) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-6.36 22.52 C-3.52 28.29, -1.51 34.46, 1.24 41.57 M-6.36 22.52 C-3.36 29.49, -1.26 35.28, 1.24 41.57" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 255.84645253409008) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M7.67 22.09 C5.84 28.06, 3.19 34.38, 1.24 41.57 M7.67 22.09 C5.82 29.15, 3.09 35.08, 1.24 41.57" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(321.73479892342675 321.772794800499) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C87.08 -0.39, 159.69 0.54, 204.03 0 M16.09 0 C54.91 -2.22, 93.64 -1.07, 204.03 0 M204.03 0 C216.69 1.9, 219.86 5.48, 220.12 16.09 M204.03 0 C216.97 -1.12, 220.87 4.26, 220.12 16.09 M220.12 16.09 C219.93 26, 220.93 36.64, 220.12 48.27 M220.12 16.09 C219.65 24.82, 220.78 32.89, 220.12 48.27 M220.12 48.27 C218.29 59.22, 215.45 65.93, 204.03 64.35 M220.12 48.27 C218.95 58.37, 216.26 64.71, 204.03 64.35 M204.03 64.35 C132.13 62.75, 57.52 61.33, 16.09 64.35 M204.03 64.35 C131.33 64.21, 57.94 65.65, 16.09 64.35 M16.09 64.35 C5.55 65.42, -2 57.83, 0 48.27 M16.09 64.35 C3.17 64.26, 1.43 58.18, 0 48.27 M0 48.27 C-0.01 36, 1.19 25.11, 0 16.09 M0 48.27 C-0.04 37.27, 0.83 25.68, 0 16.09 M0 16.09 C-0.35 3.43, 4.98 0.62, 16.09 0 M0 16.09 C-1.97 3.46, 4.7 -0.7, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(399.81240487503555 341.45021135137495) rotate(0 31.979965209960938 12.5)"><text x="31.979965209960938" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">publicKey</text></g><g transform="translate(604.304562327331 160.36322829268988) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(610.3930684106849 210.9033280264407) rotate(0 49.41329770489415 0.8767946582686363)"><path d="M0.96 0.89 C17.42 1.2, 82.34 0.55, 98.53 0.76 M0 0.31 C16.31 0.83, 81.26 1.82, 97.43 1.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.3930684106849 210.9033280264407) rotate(0 49.41329770489415 0.8767946582686363)"><path d="M69.16 11.81 C78.57 8.31, 83.25 4.88, 97.43 1.77 M69.16 11.81 C78.34 8.26, 88.84 4.37, 97.43 1.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.3930684106849 210.9033280264407) rotate(0 49.41329770489415 0.8767946582686363)"><path d="M69.32 -8.71 C78.49 -6.52, 83.14 -4.27, 97.43 1.77 M69.32 -8.71 C78.65 -5.43, 89.09 -2.49, 97.43 1.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(10 168.86997719411306) rotate(0 138.84988403320312 25)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Generate a public key from </text><text x="0" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">a privateKey</text></g><g stroke-linecap="round" transform="translate(310.6766454753915 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C89.6 0.02, 163.41 -1.62, 204.03 0 M16.09 0 C72.75 -1.36, 130.68 -1.65, 204.03 0 M204.03 0 C213.51 0.35, 221.13 4.75, 220.12 16.09 M204.03 0 C212.66 0.26, 220.92 7.18, 220.12 16.09 M220.12 16.09 C220.34 25.88, 220.06 30.32, 220.12 48.27 M220.12 16.09 C219.47 28.32, 219.45 39.04, 220.12 48.27 M220.12 48.27 C220.33 57.78, 213.8 66.03, 204.03 64.35 M220.12 48.27 C220.34 60.22, 212.46 63.02, 204.03 64.35 M204.03 64.35 C164.9 66.92, 126.33 67.05, 16.09 64.35 M204.03 64.35 C149.38 65.72, 93.28 65.53, 16.09 64.35 M16.09 64.35 C4.76 64.12, 1.14 57.33, 0 48.27 M16.09 64.35 C4.96 62.14, -0.44 59.7, 0 48.27 M0 48.27 C-0.35 42.59, -1 32.72, 0 16.09 M0 48.27 C-0.32 39.47, 0.17 32.2, 0 16.09 M0 16.09 C-0.18 4.55, 5.77 0.01, 16.09 0 M0 16.09 C0.08 6.32, 3.39 1.87, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(387.79425234252767 29.677416550875932) rotate(0 32.939964294433594 12.5)"><text x="32.939964294433594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">privateKey</text></g><g stroke-linecap="round" transform="translate(732.4663829995625 55.109525900509425) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C67.11 1.66, 113.07 -0.53, 198.87 0 M21.25 0 C76.75 0.66, 134.43 1.34, 198.87 0 M198.87 0 C212.02 -0.54, 221.43 7.4, 220.12 21.25 M198.87 0 C215.06 0.04, 218.03 8.3, 220.12 21.25 M220.12 21.25 C221.74 32.87, 220.48 47.41, 220.12 63.75 M220.12 21.25 C220.01 31.97, 218.91 41.04, 220.12 63.75 M220.12 63.75 C218.2 77.83, 214.28 84.3, 198.87 85 M220.12 63.75 C221.72 76.94, 214.79 84.83, 198.87 85 M198.87 85 C149.64 83.91, 99.26 84.96, 21.25 85 M198.87 85 C147.48 82.56, 96.26 83.83, 21.25 85 M21.25 85 C5.37 83.35, -0.57 77.31, 0 63.75 M21.25 85 C8.49 83.54, -2.01 77.07, 0 63.75 M0 63.75 C-0.41 48.82, 2 32.12, 0 21.25 M0 63.75 C-0.05 53.14, -0.95 42.51, 0 21.25 M0 21.25 C-1.63 5.86, 6.57 0.1, 21.25 0 M0 21.25 C-1.67 9.36, 4.94 0.43, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(748.5140435776361 72.60952590050942) rotate(0 94.0099105834961 25)"><text x="94.0099105834961" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Convert the </text><text x="94.0099105834961" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">private key to bits</text></g><g stroke-linecap="round" transform="translate(730.1645237312086 163.6504075083801) rotate(0 110.05757116156974 55)"><path d="M27.5 0 C85.27 2.04, 141.72 -0.8, 192.62 0 M27.5 0 C78.42 -1.57, 131 -1.15, 192.62 0 M192.62 0 C212.71 0.03, 218.3 10.22, 220.12 27.5 M192.62 0 C211.07 -0.69, 218.6 11.18, 220.12 27.5 M220.12 27.5 C219.04 39.32, 221.93 53.23, 220.12 82.5 M220.12 27.5 C218.61 46.89, 220.19 66.02, 220.12 82.5 M220.12 82.5 C221.51 99.98, 212.47 109.85, 192.62 110 M220.12 82.5 C219.69 102.04, 211.68 110.87, 192.62 110 M192.62 110 C156.48 110.64, 119.15 109.15, 27.5 110 M192.62 110 C158.16 109.68, 125.12 110.21, 27.5 110 M27.5 110 C10.39 108.73, -1.75 100.1, 0 82.5 M27.5 110 C10.77 108.67, -0.23 100.08, 0 82.5 M0 82.5 C-1.29 64.23, -0.47 45.23, 0 27.5 M0 82.5 C-0.34 63.1, 0.22 44.97, 0 27.5 M0 27.5 C-1.45 11.15, 7.3 0.37, 27.5 0 M0 27.5 C0.54 9.04, 8.41 1, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(747.2321656935596 168.6504075083801) rotate(0 92.98992919921875 50)"><text x="92.98992919921875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Perform scalar </text><text x="92.98992919921875" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">multiplication with </text><text x="92.98992919921875" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">baby jubjub </text><text x="92.98992919921875" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">basepoint</text></g><g stroke-linecap="round" transform="translate(731.0369673181135 314.41444389171056) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C83.8 2.32, 147.47 0.61, 198.87 0 M21.25 0 C70.63 -0.26, 117.34 0.25, 198.87 0 M198.87 0 C213.14 -0.6, 218.8 8.83, 220.12 21.25 M198.87 0 C211.47 0.56, 220.36 5.7, 220.12 21.25 M220.12 21.25 C221.54 29.98, 219.31 40.78, 220.12 63.75 M220.12 21.25 C221.08 33.39, 221.14 46.31, 220.12 63.75 M220.12 63.75 C219.74 78.97, 213.67 85.76, 198.87 85 M220.12 63.75 C218.22 78.35, 212.33 84.73, 198.87 85 M198.87 85 C133.54 84.3, 72.7 82.98, 21.25 85 M198.87 85 C160.88 83.82, 120.81 84.09, 21.25 85 M21.25 85 C8.48 83.84, -0.2 77.26, 0 63.75 M21.25 85 C7.99 87.01, -0.21 76.98, 0 63.75 M0 63.75 C0.83 48.42, 1.63 34.9, 0 21.25 M0 63.75 C-0.62 54.6, -0.83 43.66, 0 21.25 M0 21.25 C0.47 6.97, 6.42 0.87, 21.25 0 M0 21.25 C-2.26 7.56, 8.55 -0.6, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(737.4046199616168 331.91444389171056) rotate(0 103.6899185180664 25)"><text x="103.6899185180664" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Return the public </text><text x="103.6899185180664" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">key </text></g><g stroke-linecap="round" transform="translate(11.165819158557497 236.84458773187225) rotate(0 121.92637087557455 75.12971569299202)"><path d="M32 0 C80.33 -0.63, 127.72 0.44, 211.85 0 M32 0 C94.26 0.5, 155.49 0.36, 211.85 0 M211.85 0 C232.61 -0.85, 244.96 10.41, 243.85 32 M211.85 0 C233.19 2.3, 244.73 12.3, 243.85 32 M243.85 32 C243.76 65.71, 244.42 102.56, 243.85 118.26 M243.85 32 C244.06 50.29, 243.51 67.95, 243.85 118.26 M243.85 118.26 C242.27 140.17, 233.56 148.32, 211.85 150.26 M243.85 118.26 C245.01 138.24, 231.88 149.78, 211.85 150.26 M211.85 150.26 C142.36 150.6, 73.32 150.88, 32 150.26 M211.85 150.26 C168.91 148.74, 125.46 149.01, 32 150.26 M32 150.26 C9.8 149.72, 0.37 139.56, 0 118.26 M32 150.26 C9.29 151.84, 1.51 137.44, 0 118.26 M0 118.26 C-0.44 84.77, -0.41 53.06, 0 32 M0 118.26 C-0.73 86.59, 0.83 57.05, 0 32 M0 32 C-1.37 9.83, 12.44 1.58, 32 0 M0 32 C-1.74 9.14, 11.15 1.39, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(17.372295624952358 249.47430342486427) rotate(0 115.71989440917969 62.5)"><text x="115.71989440917969" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Base point = point on </text><text x="115.71989440917969" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">an elliptic curve which </text><text x="115.71989440917969" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">multiplied by any number</text><text x="115.71989440917969" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">results in a point on </text><text x="115.71989440917969" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the curve.</text></g></svg>