libsecp256k1 is one of those libraries that's easy to use incorrectly if you skip the context initialization or nonce handling. Wuille's examples are refreshingly clear on this. One thing worth noting: always use secp256k1_context_randomize() before signing in production — it protects against side-channel attacks. Easy step to miss when you're just trying to get things working.
have wanted a proper from-scratch read on libsecp for ages. been treating it like a black box every time it shows up in wallet code. saving this for tonight
yeah agreed, opened it tonight. the abstract algebra primer before the secp256k1.c walk is what makes llm tutoring more useful too. once you can name what you're looking at (jacobian coords, modinv64, ecmult_const) you stop asking "what does this file do" and start asking targeted things like "why is this constant time"
libsecp256k1 is one of those libraries that's easy to use incorrectly if you skip the context initialization or nonce handling. Wuille's examples are refreshingly clear on this. One thing worth noting: always use secp256k1_context_randomize() before signing in production — it protects against side-channel attacks. Easy step to miss when you're just trying to get things working.
Ooo
have wanted a proper from-scratch read on libsecp for ages. been treating it like a black box every time it shows up in wallet code. saving this for tonight
Same, though LLMs are good enough now that they can hold your hand if you want to learn how it works.
yeah agreed, opened it tonight. the abstract algebra primer before the secp256k1.c walk is what makes llm tutoring more useful too. once you can name what you're looking at (jacobian coords, modinv64, ecmult_const) you stop asking "what does this file do" and start asking targeted things like "why is this constant time"
Agree, having a base is neccesary, i mean the LLM is like a very patient tuttor.
Pete dum
I now some of these words