Is there anything on this reference for the protocol that is murky or confusing? https://en.bitcoin.it/wiki/Protocol_documentation
I think if one can cover all those things... one has a bitcoin implementation
Block Timestamps are very interesting and kinda fuzzy (!) https://en.bitcoin.it/wiki/Block_timestamp