The source code of a computer program operates behind the scenes to display input screens and to process information. When it comes to computer programs, there are two basic types: open and closed source programs. Closed source programs provide no access for end-users to either see or modify the code controlling the program. Open source programs generally allow both, giving the end-user freedom and flexibility in tailoring the program to their specific needs. A free protocol is an open source program that comes without any licensing restrictions on its use; the end-user is free to take, leave, use, modify, and distribute the program as they see fit.
One primary advantage to using free protocol programs is that the world becomes part of the program's evolution. Over time, innovative users of the program isolate issues with the original source code, modifying them to create better, faster, and more reliable versions of the original software. Over time, the best "evolution" of the program will naturally rise to the top. The Linux® operating system is one example of this; there are any number of different Linux® flavors, allowing knowledgeable users to find a version specifically tailored to fit their individual needs.
The corresponding downside to this inherent flexibility is that the excess of choice creates an "analysis by paralysis" situation for knowledgeable users. Since so many different versions of a program can crop up over time, it can become difficult to know which one is best, resulting in much time wasted as end-users deliberate over the different versions. Additionally, this can freeze out less-knowledgeable computer users, as the sheer complexity of choosing between multiple different versions can make them avoid the choice altogether.
A second major problem with a free protocol program is its potential for abuse. Unscrupulous users can modify the program just as readily as those with legitimate interests at heart. By hacking the source code, unscrupulous users can write themselves "backdoors" into the system, gateways through which they can attack or access any computer running their modified version of the software. This is a serious concern that should always linger in the back of anyone's mind while using a modified version of a free protocol program. Since the only way to know whether a backdoor exists is to read and understand the source code, this further ostracizes more casual users of the program.