WebTransitions: Ed25519 on the web
{"title": "WebTransitions: Ed25519 on the web", "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", "projectGithub": "webtransitions", "projectTwitter": "dietrich"}