{"signature": "0xb3d0a2c2572ca65518cbf5c1faf53edb038afedf7d911cb7f89382dd5d63b8c82523433be183da44cc26b6f63a2d8eb458e69a96732ae6b30bb2f2eae4158ca41b", "application": {"round": "0xd2d99614321becd7cd0636715bbb4c94968e6271", "answers": [{"type": "email", "hidden": true, "question": "Email Address", "questionId": 0, "encryptedAnswer": {"ciphertext": "jhJp6cje9TnBfBE7Y9jBcdvopNL4eZCOfQf2B2uq5DTNUXDoQ8dVf41BkqXVo9+M", "encryptedSymmetricKey": "0cc1644ab13b957aa50bde04248ac8c956beb402946aad18f0f9adcbec2b0c528ea540565a72865d0c18a2ffa4e046177e49df75ddff57e1cef32a8361ba6af067aa23c811e5544ab1d80cd249ba991f21cec92167e54cc1e76be2dc0d95db90d057ba0297448f788e67c161238dbcec4aa633a4719060ca01eebda80278041700000000000000201a13fe4b84522705cf057f3f3aef40ab6e59240ed8ad450ebb873b4815611d2759fd4f04c69ff4b99cd5da2793fa14a6"}}, {"type": "short-answer", "answer": "dietricha", "hidden": true, "question": "Telegram Handle", "questionId": 1}, {"type": "short-answer", "answer": "https://github.com/webtransitions/initiatives", "hidden": true, "question": "Project GitHub Repo", "questionId": 2}, {"type": "short-answer", "answer": "https://matrix.to/#/#browsers-and-standards:ipfs.io", "hidden": true, "question": "Link to your Public Group Chat", "questionId": 3}, {"type": "short-answer", "hidden": true, "question": "Have you participated in a previous Gitcoin Grants Round? If so, please name the rounds or link the builder profile associated with previous rounds.", "questionId": 4}, {"type": "paragraph", "answer": "Ed25519 curves are used by Metamask, libp2p, IPFS, UCANs, Web3.storage and many many cryptocurrencies  for signing operations at high speed. The web itself did not support Ed25519 however, so projects using these curves have had to bundle implementations for years, instead of using native support.", "hidden": true, "question": "Provide a brief overview of your tool, library, or framework. What specific problem or inefficiency in the development process does it address?", "questionId": 5}, {"type": "paragraph", "answer": "While the web has a cryptography API, it did not support Ed25519. This means that dapps must ship large JavaScript bundles that contain implementations which are not necessarily verified or audited. This is bad for user experience, as the sites load more slowly, and user safety.", "hidden": true, "question": "How does your project reduce development barriers, improve efficiency, or enhance the security of Web3 projects? Please provide specific examples or metrics if available.", "questionId": 6}, {"type": "paragraph", "answer": "This is the culmination of years of work, and the APIs are only newly available in web browsers. Google Chrome maintains a status page here, on where it's implemented and what state: https://chromestatus.com/feature/4913922408710144. We've already got Firefox and Safari to ship the feature, enabled by default. Once Chrome enables the curve by default, it will be considered \"available\" on the web as a whole, which should happen in the next  1-2 months.", "hidden": true, "question": "Describe the current usage and support for your tool within the developer community. This could include GitHub stars, downloads, or testimonials from developers.", "questionId": 7}, {"type": "paragraph", "answer": "This project has been active for over three years, and is finally at the completion point, where the feature will be available in web browsers. We proved that it is possible to change *the web itself* to meet web3/crypto developer needs. Funding will be applied to similar initiatives such as adding more curves to the Web Cryptography API, adding support for custom protocols to the web, and continuing to push for P2P and decentralization support in web browsers and standards generally.", "hidden": true, "question": "Outline your project's roadmap and how the grant funds will be used to achieve your development goals.", "questionId": 8}, {"type": "paragraph", "hidden": true, "question": "For any project deploying smart contracts on blockchain networks, please list all your deployer addresses and their corresponding blockchain networks. Use this format for each entry: [deployer_address], [chain_id]—for example, 0x123abc..., 42161 (This represents a deployer address on the Arbitrum network). Please include a separate line for each unique deployer address and blockchain combination.", "questionId": 9}], "project": {"id": "0x45612e1104675369b81dd5a069cadfa21f0381d5dfde3b1c88f54cbe08f3fceb", "title": "WebTransitions: Ed25519 on the web", "metaPtr": {"pointer": "bafkreielx5etknc3naj3g3qe3fn4sostqzcetwcm7zgctwa34kg37rdvhi", "protocol": "undefined"}, "website": "https://webtransitions.org", "createdAt": 1728878124754, "userGithub": "autonome", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..ubrZ6CPTYa6SY6Lg9O4e1D4AS4DezoTm6Od7N-XhptmYmDVcL1DHTj3NdrotgwVm1BkfSO1LwTqIeJtemYkRDQ", "type": "Ed25519Signature2018", "created": "2024-10-14T04:17:35.344Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-14T04:17:35.344Z", "expirationDate": "2025-01-12T04:17:35.344Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x26d3bE736aB6b5D8A3266fFCC0895dDc1bc19a38", "hash": "v0.0.0:bH7l/RgLH9jLqhRo5wz2YfG6sPAi3AZ9RRY712UuElw=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#webtransitions#50103"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..-37HBcf5QB_JOvz9YMx0wGaVTTitLgUhdQrhiIXbWq4VjvgqtgC3veUlyyqbWvTxYq7ifh2NQj8heWavAnEfDg", "type": "Ed25519Signature2018", "created": "2024-10-14T04:13:32.439Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-14T04:13:32.438Z", "expirationDate": "2025-01-12T04:13:32.438Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x26d3bE736aB6b5D8A3266fFCC0895dDc1bc19a38", "hash": "v0.0.0:GdRYhuHEVboHdDJC3v8lA0oLveO1bXkb/L9+gShA3W0=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#dietrich"}}}, "description": "Ed25519 curves [1] are used by Metamask, libp2p, IPFS, UCANs, Web3.storage and many many cryptocurrencies [2] for signing operations at high speed.\n\nWhile the web has a cryptography API, it did not support Ed25519. This means that dapps must ship large JavaScript bundles that contain implementations which are not necessarily verified or audited. This is bad for user experience, as the sites load more slowly, and user safety.\n\nBrowser makers were generally positive on adding Ed25519 to the Web Cryptography API, but it was very low priority - no engines were actively working on implementing it.\n\nWhile at Protocol Labs I initiated the effort to implement this feature for the web, contracting Igalia [3] for their browser engineering and standards expertise. I left Protocol Labs over two years ago, and have continued to direct this initiative on a volunteer basis.\n\nAfter more than 3yrs of effort, from engineering to negotiations at standards bodies to backchannel skullduggery, support for Ed25519 in the Web Cryptography API is now implemented in all major browser engines - Chromium [4], Webkit [5] and Gecko [6]  🎉\n\nWe overcame many hurdles over the years to get to this point - incompatibility on various parts of the each implementation, and being blocked by different browser vendors at different times for different reasons. We had to go back to the standards group at the W3C to hammer out a road forward for compatibility. Twice.\n\nThe primary functionality is complete. Nearly all compat issues are now ironed out, or have agreement from the vendors on a way forward. The remaining piece for web availability is for Chromium to enable the feature by default, which should happen in the next month or so.\n\nDietrich Ayala created https://webtransitions.org to work on web browser/standards support for technologies used in p2p / web3 / crypto, and volunteered for nearly 2yrs to get Ed25519 shipped on the web. Funding will support further initiatives for Web Cryptography features, custom protocol support in Web Extensions and other decentralization features in the web and browsers.\n\n1. https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-ed25519-and-what-does-it-have-to-do-with-curve-25519-f229804f2d08\n2. http://ethanfast.com/top-crypto.html\n3. https://www.igalia.com/\n4. https://issues.chromium.org/issues/40241089\n5. https://bugs.webkit.org/show_bug.cgi?id=246145\n6. https://bugzilla.mozilla.org/show_bug.cgi?id=1804788", "lastUpdated": 0, "projectGithub": "webtransitions", "projectTwitter": "dietrich"}, "recipient": "0x26d3bE736aB6b5D8A3266fFCC0895dDc1bc19a38"}}