A few months ago, in the scope of a University project, I began to learn about the inner workings of Bitcoin. After scouting the Internet for days I've stumbled upon several descriptions that attempt to describe how Bitcoin works with raw transactions. Although these descriptions are sufficient as a starting point, they lack the depth necessary to be considered a sensible reference, e.g. for software-projects. For this reason I've attempted to create an in-depth protocol description of Bitcoin based on the implementation of the reference client - Bitcoin Core. You can find a link to the PDF right below:
The specification is from now on under version control and can be found under:
I hope this will prove useful to anyone wishing to get to know the technical details of Bitcoin better. If any of you will find any errors or can provide improvements, I'd really appreciate it if you would contact me over the contact form page or the e-mail included in the PDF on the front page.