I was talking with a friend recently and in the course of our conversation came to the question: “just what is a protocol?” It is a word we hear all the time in crypto so figured I would share some definitions as I see it. A good definition strikes the right balance between being as minimal as possible while covering the maximal number of instances of the things it defines so that is the metric I’m using for the definitions below.
Given how central the notion is to our work in the blockchain space, I would say it is very important to have a common understanding of these concepts; let me know if you see it otherwise!
A protocol is a set of rules and a set of messages along with the set of participants who are carrying out the protocol. The rules concern what someone who is following the protocol is supposed to do when they get a certain message. An example is “when I (Alice) get a box of blue paint from Bob, I should put it on the shelf over there.”
To get to a protocol in the context of cryptocurrencies, we can add a refinement to capture the notion of decentralization.
A decentralized protocol is a protocol where every participant has the exact same set of rules and messages as every other participant. The notion here is in contrast to a centralized protocol where one or a few participants have “admin rights” or something where they can reach behind everyone’s back and e.g. adjust the ledger as they see fit.
Given that cryptocurrencies are decentralized protocols that represent scarce resources, there are strong incentives for economically rational actors to participate in the protocol and try to profit by bending the rules or messages in a way to accumulate these scarce resources at reduced cost (relative to everyone else, especially the honest participants). As a final definition, we can say participants following the protocol as specified are honest. Participants who are not honest are dishonest. They aren’t trying to cheat other participants by sending spurious messages or breaking the rules. A lot of the design of robust blockchain systems lies in specifying rules that make it either impractical or infeasible (economically) for participants to be dishonest. A great example here is the use of proof-of-work in Bitcoin. To convince someone on the network you have coins when you already spent them (a “double spend” attack), you would need more computing power running the proof-of-work algorithm than the majority of the existing network (to convince someone your malicious transaction was valid). As more and more miners join the network, this type of attack becomes more and more infeasible as the cost for you to successfully do this sky-rockets.