Elon Musk (pbuh) teaches us that Social Security Numbers (SSN#) aren’t unique. He’s technically right, but mostly stupid about this. Let me explain.
Uniqueness
SSNs were invented before computers (as we know them). My parents were issued their SSNs back in the 1940s (for example). While they were intended to be unique for each person, the lack of computers back then meant they functionally weren't. Millions of people had faulty SSNs back then — not just duplicates, but people having multiple SSNs. My great-grandmother apparently had two.
It wasn't really until Gen Z that the system became robust against common flaws. But still, it's the Greatest Generation and Boomers who are getting retirement checks from when the system wasn't computerized.
This isn't necessarily a flaw. Europe loves the centralized government control of a national ID, but America has long rejected this. We don't necessarily want the federal government to assign us a unique number.
In America, it's the state, or even local community, that is in charge of such things as citizenship and voting rights. We want it that way. As a country, we've long been hostile to the central government being involved in our affairs. The national "REAL ID" law has taken 20 years to finally come into force. Having state databases synchronized with federal databases is a potential privacy violation.
It's not just our hostility to the federal government; we have strong freedom and privacy traditions that reject any sort of government interference with our identity.
As a consequence, roughly 20 million people in the United States have no government ID, or even birth certificates where they can establish such ID. This includes many people in rural communities, including those living far from civilization in the Appalachian Mountains or Louisiana Bayou. Sure, they may be getting their Social Security check, but they may otherwise be disconnected from all other government institutions.
The original problems with SSNs are well documented. There are legendary problems, such as a wallet company that once printed a sample Social Security card to put in their wallets with the number 078-05-1120. At its peak in the 1940s, over 5,000 people were using that as their number.
What's not documented is how well they've cleaned this up.
We know they attempt to clean it up. When two people are accidentally assigned the same SSN, they do indeed try to fix it.
But we don't know the rate of success. Maybe they fix 100% of such problems, but maybe they only fix 99.9%. When those people are in the mountains or bayous with duplicate numbers, how do you contact them to fix the problem? It's much harder than you think. Sure, you can send them mail to their mailing address, or try to send federal agents to talk to them in person, but what if they just still keep using the wrong number?
I suspect that there are a few sticky accounts they just can't solve and "de-duplicate." Government famously must accommodate extreme edge cases — to treat everyone equally. For example, any fingerprint identification system must also handle the case where people have no fingers. Our instinct that such people don't exist or don't matter would be wrong.
Fraud
This entire discussion is separate from fraud, such as immigrants stealing people's SSNs, or identity theft. That's the problem Musk is really concerned about, not the fact of duplicate numbers.
And, I suspect, Musk is right that the Social Security Administration isn't doing enough to solve it.
But uniqueness really has nothing to do with fraud. For example, this past year the government got more diligent about dead people receiving Social Security checks and recovered $30 million in false payments. They can do this even when numbers aren't unique.
SQL databases
Musk goes on to talk about “SQL”. Here he grossly wrong.
"SQL" is the language we use to access (modern) databases.
The discussion pivots here because SQL arranges data around unique keys. If we know somebody's unique key, like an SSN, we can then look up all the data entries related to that number.
If a key isn't actually unique, things misbehave.
That's the real discussion, that it's inconceivable that an SSN wouldn't be a unique key for database lookups. Of course it would be! It's obvious to any programmer!
Except, well, it isn't necessarily. In fact, most of the tables in such big databases would not use the SSN as a unique key. For example, somewhere there is a table containing how much you've earned every year. It would be the combination of your SSN and year that would be the unique key, not just the SSN alone.
If there exist valid duplicate uses of SSNs, then they could likewise use a combo key, including such things as date of birth, last name, or even just an arbitrary number (1, 2, 3, etc.) as the unique key.
From a programmer's point of view, there's nothing really that I can conclude from "SSNs are not de-duplicated." My naive assumptions about how they might've structured their SQL databases probably don't match the reality.
Now, Musk might be right. Back in the 1970s, there were big mainframe databases that predate SQL. Big corporations and big government have a lot of apps written in Cobol and IBM’s old database-like technology. However, indexing such files and tables doesn’t change. You still make the decision of SSN uniqueness, regardless of the technology.
Part of my knowledge here is as a programmer, and the Falsehoods Programmers Believe about Names. The things we consider immutable and unique about a person, such as names, date/place of birth, address, and so on — simply aren't.
For example, both my parents have different names on different official government documents. These aren't radically different names, just slight differences. This is the norm. It's especially true with people from different cultures where multiple "names" are the norm.
The point is:
There are lots of good historical reasons why Social Security entries weren't unique, and it's not clear whether they've all been solved
None of this really has anything to do with SQL database construction
Conclusion
The point of this post is that there's no reason for outrage and partisanship here. Musk hasn't supplied enough information to tell us what's happening, only enough to develop assumptions and misconceptions.
If there's something actually wrong, then he could quickly write up a document and explain things in full, addressing the sorts of issues I bring up here.
"Elon Musk (pbuh)" ... nice.
> If there's something actually wrong, then he could quickly write up a document and explain things in full
but he gets way more mileage from casually throwing out technical-sounding jargon and making people afraid.