3

Some time ago, a vulnerability was discovered in IOTA because the team implemented the cipher algorithm by themselves instead of using open source (more tested) implementation. I can conclude Ethereum cipher is very secure since the platform stores a lot of money already. But, anyway, does anyone know if the ECDSA and KECCAK-256 were implemented by Ethereum (e.g. Geth) team or not?

  • I'm not 100% sure but I believe the ECDSA one was implemented by Gavin Wood, correct me if I'm wrong. – phant0m Jun 10 at 1:39
  • 1
    The issue with IOTA was more than just a poor implementation, they invented their own hash function that had never been reviewed by cryptographers and turned out to be vulnerable to differential cryptanalysis. – Tjaden Hess Jun 10 at 3:19
3

Both Geth and Parity use libsecp256k1 for ECDSA. libsecp256k1 was developed originally for and continues to be used by Bitcoin Core.

This library is actively maintained and has been the basis of all elliptic curve cryptography in most of the major blockchains for over 5 years. The incentives to break the implementation are extremely high, so the fact that it has not been broken is a very good sign. secp256k1 as a curve is based on the well-studied Koblitz curve form and while it is not the fastest or most secure curve known, no significant attacks have been published for it or similar curves.

As for Keccak, Parity has it's own implementation while Geth uses the implementation from the Golang crypto library. Frankly, it's much harder to mess up a hash implementation than an elliptic curve implementation, so it is reasonable that these are less vetted. Notably, Ethereum uses Keccak256, which is slightly different than SHA3 but almost certainly equally as secure (it differs only in a single constant changed after the original Keccak won the competition)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.