The Ethics of Locked Hardware
Published: 2023-05-18 15:30:18

---
title: The Ethics of Locked Hardware
published: true
date: 2023-05-14 11:50:00 UTC
tags: 
canonical_url: https://kevincox.ca/2023/05/14/ethics-of-locked-hardware/
---

<main style="--width:min(36em,100%);display:grid;grid-template-columns:1fr var(--width) 1fr;overflow:auto;padding:0;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">It isn’t too hard to find cases where you can buy hardware that has features that are locked unless you pay extra. For example the 2010 <a href="https://en.wikipedia.org/wiki/Intel_Upgrade_Service" style="box-sizing:border-box;margin:0;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray">Intel Upgrade Card</a> which allowed you to upgrade your processor by entering a code or <a href="https://www.tesla.com/en_ca/support/upgrades" style="box-sizing:border-box;margin:0;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray">Tesla’s Over-the-air upgrades</a> which allows you to purchase extra features for your car at any time.</p>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">I agree that this certainly feels wrong, and <a href="https://youtu.be/4V_pYA7Uq0U?t=540" style="box-sizing:border-box;margin:0;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray">I’m not the only one with this feeling</a>. They have already sold me the hardware that is capable of these features, it costs them literally nothing to enable it! However, I think that these types of locked features are not unethical on their own. Although they are often paired with questionable pricing tactics I think that these are orthogonal to artificially restricted hardware.</p>
<h2 id="why-make-one-model" style="box-sizing:border-box;grid-column:2;margin:1.5em 1rem .8em"><a href="https://kevincox.ca/2023/05/14/ethics-of-locked-hardware/#why-make-one-model" style="box-sizing:border-box;color:inherit!important;margin:0;text-decoration:inherit;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray;text-shadow:inherit!important">Why make one model?</a></h2>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">For simplicity I am going to compare the raw manufacturing cost. Prices are not directly related to costs but act as a floor (assuming that the company wants to be profitable). Let’s assume that we are making a product and there is demand for 200 units with basic features and 100 units with extra advanced features.</p>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">The most obvious solution is to manufacture two separate products. I create one product with the basic features at a lower price, and a more advanced product at a higher price. The main downside of this approach is that you lose economy of scale. Let’s make up a cost curve for these products.</p>
<table style="border-collapse:collapse;box-sizing:border-box;grid-column:2;grid-column:1/4;margin:0 auto .8rem">
<thead style="box-sizing:border-box;margin:0"><tr style="box-sizing:border-box;margin:0">
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Units</th>
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Per-Unit Cost</th>
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Basic Total</th>
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Advanced Total</th>
</tr></thead>
<tbody style="box-sizing:border-box;margin:0">
<tr style="border-bottom:1px solid #80808080;box-sizing:border-box;margin:0">
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">100</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">100%</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">$100</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">$110</td>
</tr>
<tr style="border-bottom:1px solid #80808080;box-sizing:border-box;margin:0">
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">200</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">90%</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">$180</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">$198</td>
</tr>
<tr style="box-sizing:border-box;margin:0">
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">300</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">85%</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">$260</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">$280</td>
</tr>
</tbody>
</table>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">The important observation is that making 300 advanced units costs $280, this is cheaper than 200 basic units ($180) and 100 advanced units ($110) for $290. This means that it is cheaper overall to only make the advanced version and lock the advanced features. It is <strong style="box-sizing:border-box;margin:0">illogical</strong> to make a separate basic model, it costs more for no user benefit.</p>
<h2 id="why-not-just-enable-it-for-everyone" style="box-sizing:border-box;grid-column:2;margin:1.5em 1rem .8em"><a href="https://kevincox.ca/2023/05/14/ethics-of-locked-hardware/#why-not-just-enable-it-for-everyone" style="box-sizing:border-box;color:inherit!important;margin:0;text-decoration:inherit;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray;text-shadow:inherit!important">Why not just enable it for everyone?</a></h2>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">“If the hardware supports it why not just enable it?” is a very common complaint about this practice. The problem is that this raises the cost of the base model. It is counter-intuitive because they are making the more expensive product anyways, but removing the higher price tier removes income, so the cost of implementing the advanced features needs to spread out across all customers, not only the ones who want them. Let’s compare the costs of the various options. We will assume we will sell 300 units and if available 200 people will choose the cheaper model. This is obviously too simple as price will affect demand, but it is good enough to illustrate the point.</p>
<table style="border-collapse:collapse;box-sizing:border-box;grid-column:2;grid-column:1/4;margin:0 auto .8rem">
<thead style="box-sizing:border-box;margin:0"><tr style="box-sizing:border-box;margin:0">
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Option</th>
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Basic</th>
<th style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Advanced</th>
</tr></thead>
<tbody style="box-sizing:border-box;margin:0">
<tr style="border-bottom:1px solid #80808080;box-sizing:border-box;margin:0">
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Two Models</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center"><span title="$180 / 200 units" style="box-sizing:border-box;margin:0;padding:0;-webkit-text-decoration:underline dashed #888;text-decoration:underline dashed #888">$0.90</span></td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center"><span title="$110 / 100 units" style="box-sizing:border-box;margin:0;padding:0;-webkit-text-decoration:underline dashed #888;text-decoration:underline dashed #888">$1.10</span></td>
</tr>
<tr style="border-bottom:1px solid #80808080;box-sizing:border-box;margin:0">
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Single Locked</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center"><span title="$180 / 200 units" style="box-sizing:border-box;margin:0;padding:0;-webkit-text-decoration:underline dashed #888;text-decoration:underline dashed #888">$0.90</span></td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center"><span title="($280 total cost - $180 basic cost) / 100 units" style="box-sizing:border-box;margin:0;padding:0;-webkit-text-decoration:underline dashed #888;text-decoration:underline dashed #888">$1.00</span></td>
</tr>
<tr style="box-sizing:border-box;margin:0">
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center">Single Unlocked</td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center"><span title="Not available" style="box-sizing:border-box;margin:0;padding:0;-webkit-text-decoration:underline dashed #888;text-decoration:underline dashed #888">N/A</span></td>
<td style="box-sizing:border-box;margin:0;padding:.4em;text-align:center"><span title="$280 / 300 units" style="box-sizing:border-box;margin:0;padding:0;-webkit-text-decoration:underline dashed #888;text-decoration:underline dashed #888">$0.93</span></td>
</tr>
</tbody>
</table>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">As discussed earlier the two model choice is simply illogical, it costs more for no customer benefit. The remaining question is locked or unlocked. Unlocked is better for those who think the advanced model is worth paying more (their cost goes down 7%), however it harms those who don’t find the upgrade worth it (their cost goes up 3%). In this example the cost difference is fairly small, but depending on the cost scaling and demand distribution the numbers can vary wildly. Remember that the total cost is the same whether locked or unlocked, the difference is simply shifting some cost from those who think the feature is worth paying for to those who don’t.</p>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">Additionally, purchasing upgrades separately from the initial purchase can be a valuable feature. People on a tight budget can appreciate purchasing features as their budget allows it. Trials can also allow users to test out features before purchasing, which can prevent wasting money on unimportant features.</p>
<h2 id="summary" style="box-sizing:border-box;grid-column:2;margin:1.5em 1rem .8em"><a href="https://kevincox.ca/2023/05/14/ethics-of-locked-hardware/#summary" style="box-sizing:border-box;color:inherit!important;margin:0;text-decoration:inherit;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray;text-shadow:inherit!important">Summary</a></h2>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">So the answer to “Why can’t you allow me to fully use the hardware that I own?” Is “You would have to pay more if we allowed that, instead we gave you the choice”. In general locking these features puts the cost onto those who think that the advanced features are worth it, rather than spreading the cost across those who don’t.</p>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">In some cases the extra marginal cost is so small that it probably does make sense to include the feature in every model, but I think there are many cases where it is legitimate to make the people who want the feature pay for it rather than spreading the cost over everyone.</p>
<h2 id="freedom-exception" style="box-sizing:border-box;grid-column:2;margin:1.5em 1rem .8em"><a href="https://kevincox.ca/2023/05/14/ethics-of-locked-hardware/#freedom-exception" style="box-sizing:border-box;color:inherit!important;margin:0;text-decoration:inherit;text-decoration:underline;-webkit-text-decoration-color:gray;text-decoration-color:gray;text-shadow:inherit!important">Freedom Exception</a></h2>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">There is one concern of this model that I find legitimate. The answer is that in order to implement this scheme the consumer can not have full control over the hardware that they purchase. If they did have full control they could remove the lock and effectively force the “Single Unlocked” model.</p>
<p style="box-sizing:border-box;grid-column:2;margin:0 1rem .8em">I think how relevant this is depends a lot on how the lock is implemented. For example blowing a fuse in a computer chip may effectively lock the advanced features (although they can’t be purchased later if desired). However, in the heated seats example it is enforced by locking down the entire entertainment console, which removes user control. If the lock can cleanly block a single feature I think it is acceptable, but if enforcing the lock requires locking down the entire device then the removal of customer freedom becomes a problem that needs to be factored into the ethics equation.</p></main>