Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: davidgdg on January 11, 2014, 04:00:37 PM



Title: Can somebody explain what the bitcoin protocol actually is?
Post by: davidgdg on January 11, 2014, 04:00:37 PM
As a non-technical person, I am still struggling (after nearly 3 years) to understand what or where the bitcoin protocol actually is.

I understand that it is a set of programming rules but:

1. Where are they to be found?

2. How do they get changed?

3. In what circumstances would it be necessary or desirable to change them?

4. How does the protocol relate to the various bitcoin client implementations?

I have done quite a lot of reading on this (even to the extent of learning about BIPs and so forth), but I am still unclear in my mind. Is there a blog post or article somewhere that explains it all?

Fundamentally I am interested in understanding how bitcoin can evolve and the constraints on that process.

Many thanks in advance to anybody who answers this post.



Title: Re: Can somebody explain what the bitcoin protocol actually is?
Post by: CIYAM on January 11, 2014, 04:11:16 PM
There are some wiki articles that describe the protocol in English but the Satoshi client (bitcoind/bitcoin-qt) source code *is* the real protocol (warts and all).

The source code is on github but unless you are fluent in C++ (including boost) then you probably won't have much luck understanding it.

Although Bitcoin has BIPs which are analogous to RFC's the problem is that unlike a problematic email server that might result in you losing some (hopefully not overly important) messages, problematic bitcoin clients (used by miners in particular) can result in "forks" which would make spending your coin a huge problem.

That being said other clients have been created and more and more unit tests are being written so that down the track it may actually be feasible to have the protocol being closer to something that could be documented like an RFC (I would not be expecting to see such a thing for years though).


Title: Re: Can somebody explain what the bitcoin protocol actually is?
Post by: davidgdg on January 11, 2014, 04:27:10 PM
Many thanks. Is that because it is used by more people than anybody else? What is it that determines that the Satoshi client "is" the protocol?


Title: Re: Can somebody explain what the bitcoin protocol actually is?
Post by: CIYAM on January 11, 2014, 04:41:42 PM
Many thanks. Is that because it is used by more people than anybody else? What is it that determines that the Satoshi client "is" the protocol?

Of course the Satoshi client was the first and others such as Electrum or Multibit (at least AFAIA) are still relying on "full bitcoind" instances running on the servers that these "lighter" clients access (so they are effectively a protocol that sits above the bitcoin protocol).

What determines that it *is* the protocol was that is how the Bitcoin network came to be - the Satoshi code that people started using - as it was not released as an RFC or similar there simply was no other detailed documentation or software to use.


Title: Re: Can somebody explain what the bitcoin protocol actually is?
Post by: bitpop on January 14, 2014, 11:41:35 AM
I think you want to know what it is. It's the language nodes talk to each other with. Simple as that. Browsers and web servers speak http.


Title: Re: Can somebody explain what the bitcoin protocol actually is?
Post by: Eternity on January 15, 2014, 09:51:23 AM
Check this you will get your answers

https://en.bitcoin.it/wiki/Protocol_specification