I want to start from the beginning and learn everything. What are the best resources for this?
I want to start from the beginning and learn everything. What are the best resources for this?
You're best bet to do so is probably to just skip the reference client and its complex C++ implementation, and learn the protocol from the Python implementation [0], combined with the protocol specification on the Bitcoin wiki [1].
If Java is your thing, I've also heard good things about the readability of Bitcoinj, which is used for various Android Bitcoin clients. Just note that Bitcoinj implements SPV, which is not the full reference protocol. But it would still be a great start to learning about Bitcoin.
If you're not a programmer, there are a 101 different intro to Bitcoin sites. I think I've heard good things about the Khan Academy's intro videos, but I've never watched them myself. And yes, and Satoshi's original paper.
0. https://github.com/jgarzik/python-bitcoinlib
1. https://en.bitcoin.it/wiki/Protocol_specification
2. http://code.google.com/p/bitcoinj/
3. bitcoin.org/bitcoin.pdf
EDIT: s/legibility/readability
It's not too bad to read. Only the first six sections are really necessary to understand how it works.
http://www.mail-archive.com/search?l=cryptography@metzdowd.c...
https://bitcointalk.org/index.php?action=profile;u=3;sa=show...
The bitcoin wiki is also pretty good: https://en.bitcoin.it/wiki/Introduction
I won't add more resources to the list others presented but i will +1 this suggestion: if programmer, code something bitcoin related.