The Decompiler Dilemma

The whole advantage to free software is that you can take it apart and look at it, right? That is what most free software advocates would have you believe. So what would happen if the GNU Project released a Perfect Decompiler, a decompiler that could perfectly decode any binary into source code understandable by humans? (For the theoretical purposes of this discussion, let us also assume the impossible case that the binary is decompiled into a verbatim copy of the original source code.) Would this help or hurt the Free Software Movement?

The only barriers ensuring that proprietary software remains proprietary would be those of law. In a pure state of anarchy, a perfect decompiler would be indistinguishable from having all software released as free software. It would essentially render the Free Software Movement perfectly successful in anarchist states. Complete access to the source code of any application could be obtained with little effort, and modification would be limited only by the quality of the newfound code. In the world as it exists today, however, this would not be the case. Proprietary software licenses across the board prohibit disassembling in the first place, and copyright laws prohibit the possibility of doing anything interesting with the decompiled code. It would seem that, besides abandonware and oddly-permissive proprietary licenses, a perfect decompiler would be meaningless to the Free Software Movement due to the artificially imposed limits of the government. Is that necessarily so?

One current roadblock to the Free Software Movement is the diamond-water paradox. The diamond-water paradox points out the fact that water is necessary for survival, yet free, whereas diamonds are useless but highly treasured. Like water, free software has an infinite availability. Like diamonds, the supply of proprietary software is limited by cost. It makes no difference which is more important or useful; when monetarily limited, proprietary software will be seen as having more value than free software. No matter what the quality is, only a fool would exchange something of greater value for something of lesser value. Free software users simply value freedom much more than purchase price, making the free software option more valuable. This is where free software advocates stumble: in order to change what software people use, they must change their entire set of ideals and ways of thinking.

The most common arguments for the promotion of free software involve uncertainty as to how one is being treated, privacy, the ability to control one’s experience, and the ability to share. With a perfect decompiler, uncertainty and privacy could be addressed very easily. After the release of such a decompiler, a fairly large number of privacy-indifferent companies would have their reputations damaged until they released privacy-respecting software updates. After a package of unapologetic apologies, the effects of distrust would be fairly short-term, and would not in themselves result in a significant drop in sales.

The ability to control one’s own experience is, more often than not, seen as a form of individualism. Big companies can never sue every individual that questions their castle on a cloud. Just like the world of software patents today, the actions of independent developers would go unnoticed, for the most part. In other words, only big companies that made modifications to software (and developers who intended to resell modifications) would be hurt by the inability to modify source code, and individuals would be able to make all the changes they wanted. To individuals, this would sound like something that would trip up only large corporations, when in reality, it is from those large corporations that the most useful and important modifications come.  Plus, nobody would ever come to depend on a platform that cannot be reliably run in any situation.  The mixing of individualism and formal/corporate usage is a difficult concept to understand, and one that many seasoned free software advocates still do not grasp.

Finally, the ability to share is seen by a large percentage of the population as a right that already exists. The sharing and usage of illegal proprietary software is so rampant today that the ability to share decompiled code (modified or vanilla) would not be immediately seen as a problem. While it is debatable whether or not this is the path down which society should be going, many of those savvy enough to legally share software are already doing so.

Keeping these ideas in mind, why would any non-philosophically-inclined individual see the value of free software with the availability of the perfect decompiler? Besides existing free software sympathizers, the grounds for showing the advantage of free software would be so small that even the philosophically inclined would have trouble seeing the value of complete freedom as outweighing the value of practicality.

The relevance of this is fairly straightforward: access to the source code is all that many free software supporters really want. It is hammered into the community members’ minds by the most philosophical among them that the term “free” is what is important; however when asked to justify reasoning, it is much more rare to hear reasoning that protects the freedom to redistribute modified or vanilla copies when given access to the source code. It just makes things more difficult for both parties, and is often left out of the explanation of freedom. But does “freedom” really make sense without the holistic picture?

It would not be logical to discuss only the Free Software Movement, however, without giving a nod to its step-sibling movement, the Open Source Movement. The Open Source Movement has made huge contributions to the Free Software Movement, and a significant number of people consider themselves members of both efforts. Open source, however, respects only the interests of businesses trying to maximize profits, without giving a nod to its consumer-protecting step-sibling.

The two most commonly cited reasons that businesses release their software as open source are to gain more users and to develop a community around it. Open source software will not draw a significant number of new users, as we saw above. Consumer ideals are the greatest draws to free software, so open source’s added appeal would be very, very small if a perfect decompiler was developed, considering our explanation. (This reasoning ignores the “no cost to the consumer” mentality of such software because, if the source code was easily decompilable, the illegal acquisition of no-cost versions of proprietary software would be significantly more user friendly and commonplace than it is today.)

A much more difficult question is whether or not communities could be created around a company’s open source software. Even now, though, communities don’t develop overnight. Many times, they don’t develop at all. So exactly how could companies make the decision to give up their monopoly forever in order to get a piece of the profit the community has to offer? With “trade secrets” now readily available, it would seem that there would be much less harm in declaring a particular piece of software “free”. Does that mean companies would be more likely to make this dive into open source?

Community dynamics in software can generally be simplified by focusing on one target niche at a time. In general, there are a limited number of people in the world interested in contributing to free software projects that fill the niche that scratches their itch. The ideas of game theory and Cournot competition suggest that, if all software in a particular niche is identical, all of that software will eventually be open source. Differences do exist among pieces of software, though, and these differences prevent every company from choosing open source and filling the world with truly free software. Traditionally, open source has been seen as a “last resort.” But it has only been a last resort when one company wants to gain an advantage over its competitors. Because every software company would be equally shaken by the same deadly handshake, there would be no additional incentive to gain a relative advantage. One could go as far as to argue that the availability of community members in each niche would decrease, because some of those once interested in programming free software would begin illegal underground work. But again, this would be an industry-wide decrease in resource availability. The relative advantage gained over competitors would just be less.

It can thus be concluded that, even if all source code was made available, it would not increase the number of companies that elect to “make the most of the situation” by choosing open source. Each company in each niche would not turn their eyes to open source because, when enough companies use this route, the advantage to doing so disappears. The number of software developers in the world (and especially the number interested in contributing to free software) is finite, so additional opportunities for contribution only mean more fragmentation and a shrinking community for each company that has already chosen open source. With lowered overall profits from the state of the industry, it would not be economically wise for companies to take advantage of the situation.

It would be naive to suggest, however, that the proprietary software industry would accept such a decompiler without a fight. Both legal and technical means would be used to achieve the end of keeping software restricted in such a way that makes it marketable using the same strategies as physical products. There would no doubt be at least one massive class action lawsuit from the software industry. Depending on the position of the various governments of the world at that particular time, it may or may not be ruled illegal on the spot. (The American government would probably follow the model of the DMCA and rule the usage of the decompiler itself illegal because it gives citizens the power to do illegal things.) Really, though, decompiling software and improperly distributing copyrighted material is already illegal, so it would never stop the effects. How else would the companies fight?

Lawsuits would be their best tool. Yes, they would likely use the same technique the entertainment industry uses today (make a big deal out of it every time a consumer is sued), but there would be much worse cases. The most damaging would be those where the software industry creatively manages to persuade the government that causation is synonymous with correlation. With the right (or wrong) wording, the proprietary software companies could conceivably claim the illegitimacy of accessing any source code to which one doesn’t own the copyright. In other words, this would outlaw truly free software. With enough money, who knows how far preposterous claims such as this could make it. These kinds of claims severely damage the freedom of those partaking in legal activities for ethical causes, a very negative yet plausible effect.

There are more fighting techniques beyond lawsuits, though. For example, there would certainly be obfuscater wars, whereby a software company continuously develops a source code obfuscater to bide time before the obfuscation technique is implemented by the authors of the decompiler. There would be company personnel hired exclusively to expose those who use the software illegally. More means would be used, but I won’t detail them here. The biggest thing they have in common is their heightened cost. This is already a problem with proprietary software: part of the purchase price includes the costs necessary to restrict the user. This would only make the issue much worse, and create more of a need for true freedom.

Taking every view into consideration, it is surprising to see how an action most would think coincides with the goals of the Free Software Movement would actually hurt it. People would see free software as having much less value, and there would be less ground for encouraging its use. Companies would not release all their source code to make the most of the situation; if anything, they would change by becoming less likely to do so in the future. The corporations would work through both technical and legal channels to prevent users from changing their software, and in the process, they would tread on the rights that keep the Free Software Movement alive and thriving today.

This just goes to show the importance of finding the source cause of a problem. It would seem (and many assume) that the root dilemma of the Free Software Movement is the inability to access the source code of all software. In reality, though, the problem is about the legal inability to deal with such source code. Free software advocates advocate using free software for reasons involving read access to the source code, but rarely touch on the most basic concepts of true freedom. This example is, of course, a fictional extrapolation, but an extrapolation from which an important lesson can be drawn. Like all things in the world, the Free Software Movement cannot continue stably on any path but one founded on the most basic and important ideals. The foundation of a house only works when it supports the entire structure.

Published in: on August 16, 2010 at 7:52 pm  Comments (11)  
Tags: , ,