Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebCrypto API: Ed25519 #5

Open
autonome opened this issue Jul 19, 2024 · 0 comments
Open

WebCrypto API: Ed25519 #5

autonome opened this issue Jul 19, 2024 · 0 comments

Comments

@autonome
Copy link
Member

autonome commented Jul 19, 2024

Ed25519 curves [1] are used by Metamask, libp2p, IPFS, UCANs, Web3.storage and many many cryptocurrencies [2] for signing operations at high speed.

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.

Browser 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.

Initiated while at Protocol Labs, the effort to implement this feature for the web was a contract with Igalia [3] for their browser engineering and standards expertise, which transitioned to a grant from the IPFS Foundation.

After 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] 🎉

We 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.

The 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.

  1. https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-ed25519-and-what-does-it-have-to-do-with-curve-25519-f229804f2d08
  2. http://ethanfast.com/top-crypto.html
  3. https://www.igalia.com/
  4. https://issues.chromium.org/issues/40241089
  5. https://bugs.webkit.org/show_bug.cgi?id=246145
  6. https://bugzilla.mozilla.org/show_bug.cgi?id=1804788
@autonome autonome changed the title WebCrypto API: Ed25519 support WebCrypto API: Ed25519 Oct 14, 2024
@autonome autonome pinned this issue Oct 14, 2024
@autonome autonome unpinned this issue Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant