Hey I am kindy new to all of this about bitcoins, cryptology and programming but I´m researching how bitcoins work through more of a math view about all the mathematical algorithims and equations used. I know about ECDSA in digital signatures and have some idea of how bitcoin mining works, so can somebody help me know about what is used for bitcoins and how.
- Elliptical Curve point multiplication: To generate a public key from a private key
- ECDSA digital signature: To prove authorization to transfer control of funds
- RIPEMD160 and SHA256: To generate a public key hash from a public key
- base10 to base58 conversion: To generate a bitcoin address from a public key hash
- SHA256(SHA256(blockheader)): To mine a bitcoin block
- Algebraic addition, subtraction, multiplication, division, and comparison: To calculate balances from the list of unspent transaction outputs, increment nonce, calculate block reward, etc.
and I'm not sure, but I think...
- AES256: To encrypt private keys in the Bitcoin Core wallet
That's about it from a high level. Obviously this is all just a computer program, which means that almost everything is a set of machine code telling the computer which binary values to compare, copy, increment, decrement, or any of the other instructions available in the processor, but I doubt that's what you're talking about. I think there are also some checksums and parity calculations in the network communications protocol, but I doubt you're asking about that either.